
En mi consola, el color de los directorios es tan azul que es difícil leer sobre un fondo oscuro.
¿Cómo puedo cambiar las definiciones de color ls
?
Respuesta1
Para cambiar los colores de su directorio, abra su ~/.bashrc
archivo con su editor
nano ~/.bashrc
y haga la siguiente entrada al final del archivo:
LS_COLORS=$LS_COLORS:'di=0;35:' ; export LS_COLORS
Algunas buenas opciones de color (en este caso 0;35
es morado) son:
Blue = 34
Green = 32
Light Green = 1;32
Cyan = 36
Red = 31
Purple = 35
Brown = 33
Yellow = 1;33
Bold White = 1;37
Light Grey = 0;37
Black = 30
Dark Grey= 1;30
El primer número es el estilo (1=negrita), seguido de un punto y coma, y luego el número real del color, los estilos (efectos) posibles son:
0 = default colour
1 = bold
4 = underlined
5 = flashing text (disabled on some terminals)
7 = reverse field (exchange foreground and background color)
8 = concealed (invisible)
Los posibles antecedentes:
40 = black background
41 = red background
42 = green background
43 = orange background
44 = blue background
45 = purple background
46 = cyan background
47 = grey background
100 = dark grey background
101 = light red background
102 = light green background
103 = yellow background
104 = light blue background
105 = light purple background
106 = turquoise background
107 = white background
Todos los colores posibles:
30 = black
31 = red
32 = green
33 = orange
34 = blue
35 = purple
36 = cyan
37 = grey
90 = dark grey
91 = light red
92 = light green
93 = yellow
94 = light blue
95 = light purple
96 = turquoise
97 = white
Estos incluso se pueden combinar, de modo que un parámetro como:
di=1;4;31;42
en su variable LS_COLORS haría que los directorios aparecieran en texto rojo subrayado en negrita con un fondo verde.
Para probar todos estos colores y estilos en tu terminal, puedes utilizar uno de:
for i in 00{2..8} {0{3,4,9},10}{0..7}
do echo -e "$i \e[0;${i}mSubdermatoglyphic text\e[00m \e[1;${i}mSubdermatoglyphic text\e[00m"
done
for i in 00{2..8} {0{3,4,9},10}{0..7}
do for j in 0 1
do echo -e "$j;$i \e[$j;${i}mSubdermatoglyphic text\e[00m"
done
done
También puedes cambiar otros tipos de archivos cuando usas el comando ls definiendo cada tipo con:
bd = (BLOCK, BLK) Block device (buffered) special file
cd = (CHAR, CHR) Character device (unbuffered) special file
di = (DIR) Directory
do = (DOOR) [Door][1]
ex = (EXEC) Executable file (ie. has 'x' set in permissions)
fi = (FILE) Normal file
ln = (SYMLINK, LINK, LNK) Symbolic link. If you set this to ‘target’ instead of a numerical value, the color is as for the file pointed to.
mi = (MISSING) Non-existent file pointed to by a symbolic link (visible when you type ls -l)
no = (NORMAL, NORM) Normal (non-filename) text. Global default, although everything should be something
or = (ORPHAN) Symbolic link pointing to an orphaned non-existent file
ow = (OTHER_WRITABLE) Directory that is other-writable (o+w) and not sticky
pi = (FIFO, PIPE) Named pipe (fifo file)
sg = (SETGID) File that is setgid (g+s)
so = (SOCK) Socket file
st = (STICKY) Directory with the sticky bit set (+t) and not other-writable
su = (SETUID) File that is setuid (u+s)
tw = (STICKY_OTHER_WRITABLE) Directory that is sticky and other-writable (+t,o+w)
*.extension = Every file using this extension e.g. *.rpm = files with the ending .rpm
Una lista más completa está disponible enBigsoft - Configuración de LS_COLORS.
En algunas distribuciones, es posible que también desee cambiar el color de fondo de ow
"( OTHER_WRITABLE
) cuyo valor predeterminado no es legible", por ejemplo, a texto azul sin negrita sobre fondo verde.
Puede usarlo, por ejemplo, LS_COLORS="$LS_COLORS:di=1;33"
al final de su .bashrc
archivo, para obtener un texto naranja en negrita, legible y agradable sobre un fondo negro.
Después de modificar su archivo .bashrc, para que los cambios surtan efecto tendrá que reiniciar su shell o ejecutar source ~/.bashrc
.
Nota: Puedes combinar más comandos con uncolon, Por ejemplo
LS_COLORS=$LS_COLORS:'di=1;33:ln=36' ; export LS_COLORS; ls
Fuente:
Respuesta2
Muy simple. Agregue estas tres líneas a ~/.bashrc
$ vi ~/.bashrc
export LS_OPTIONS='--color=auto'
eval "$(dircolors -b)"
alias ls='ls $LS_OPTIONS'
Si desea aplicar los cambios en una sesión de bash en ejecución, ejecute:
source ~/.bashrc
Respuesta3
Además de la respuesta de Hegazi, en realidad puedes controlar el color del directorio y muchos otros colores usando el comando dircolors. Puede crear un archivo de configuración que esté bien documentado.
Puede crear un archivo .dircolor en su directorio de inicio de la siguiente manera:
dircolors -p > ~/.dircolors
Luego, en su archivo ~/.bashrc agregue las líneas
eval "`dircolors -b ~/.dircolors`"
alias ls='ls --color=auto'
Esto creará una variable $LS_COLORS para bash. El indicador -c se establecerá si es para csh. También marca el comando ls para que se muestre en color.
Edite el valor del atributo DIR como se indica arriba en el color del archivo ~/.dircolor para cambiar el color del directorio (o cualquiera de los otros tipos de archivos incluidos para otros colores). También puedes cambiar los colores de archivos específicos o definir los tuyos propios.
Respuesta4
Esta es una colección de extensiones: asignaciones de colores, adecuadas para usar como variable de entorno LS COLORS.