Además de colorear archivos basados en su tipo (turquesa para archivos de audio, rojo brillante para Archivos y archivos comprimidos, y púrpura para imágenes y videos), ls
también colorea archivos y directorios en función de sus atributos:
- El texto negro con fondo verde indica que un directorio puede ser escrito por otros, aparte del usuario propietario y el grupo, y tiene el bit fijo establecido (
o+w, +t
).
- El texto azul con fondo verde indica que un directorio puede ser escrito por otros, aparte del usuario propietario y el grupo, y no tiene el bit fijo establecido (
o+w, -t
).
Stephano Palazzo en Ask Ubuntu ha hecho esta imagen muy instructiva sobre los diferentes colores de atributos:
Como señaló Terdon , la configuración de color se puede modificar a través de dircolors
. Se puede acceder a una lista de las diferentes configuraciones de coloración dircolors --print-database
.
Cada línea de salida, como BLK 40;33;01
, tiene la forma:
[TARGET] [TEXT_STYLE];[FOREGROUND_COLOR];[BACKGROUND_COLOR]
TARGET
indica el objetivo para la regla de colorear
TEXT_STYLE
indica el estilo del texto:
00
= ninguno
01
= negrita
04
= subrayado
05
= parpadeo
07
= reverso,
08
= oculto
FOREGROUND_COLOR
indica el color de primer plano:
30
= negro
31
= rojo
32
= verde
33
= amarillo
34
= azul,
35
= magenta
36
= cian
37
= blanco
BACKGROUND_COLOR
indica los colores de fondo:
40
= negro
41
= rojo
42
= verde
43
= amarillo
44
= azul,
45
= magenta
46
= cian
47
= blanco
Los campos pueden omitirse comenzando desde la derecha, por lo que, por ejemplo, .tar 01;31
significa negrita y rojo.
XTerm y la mayoría de los emuladores de terminales modernos admiten 256 colores.
Un código de color de primer plano XTerm de 256 colores tiene la forma:
38;5;[FOREGROUND_COLOR]
Un código de color de fondo XTerm de 256 colores tiene la forma:
48;5;[BACKGROUND_COLOR]
donde ambos FOREGROUND_COLOR
y BACKGROUND_COLOR
es un número del rango 0-255. En la siguiente captura de pantalla se muestra una lista completa de códigos de color para los modos de color 16 y 256:
38;5;
inicia un código de color de primer plano xterm de 256 colores.48;5;
inicia un código de color de fondo xterm de 256 colores. Cian en mi salida de dircolors38;5;51
no es36
aunque el resultado sea el mismo.Los colores de
ls
pueden representar los permisos, los valores predeterminados para algunos sistemas son mostrar directorios donde todos tienen permisos de escritura con un fondo verde:Puede cambiar los colores editando su
$LS_COLORS
variable usandodircolors
(desdeman ls
):La sintaxis es ciertamente un poco molesta aquí, pero puede cambiar este color creando un archivo con los colores que desee y guardándolo como
~/.dircolors
:Ese comando imprimirá los valores predeterminados en
~/.dircolors
. Luego deberá editar ese archivo y cambiar esta línea:Por ejemplo, para convertirlo en texto negro sobre un fondo rojo (vea aquí una lista de códigos de color):
No necesita tener todos los valores predeterminados, también puede crear un archivo con una sola línea, redefiniendo solo el que desea cambiar. De todos modos, una vez que haya creado el archivo, cárguelo con:
Y aquí está en acción:
Para que eso suceda automáticamente, agregue el
eval
comando anterior a su~/.bashrc
archivo.fuente
eval "$(dircolors ~/dircolors)";
lugar de una forma más directa comodircolors ~/dircolors
?Si bien todas las respuestas técnicas son ciertas, consideraría un poco una advertencia informal, que dispensaba un poco los derechos generosamente o copiaba criss + cross ... (a menudo todos lo hacemos, para que las cosas funcionen inicialmente, eh ?)
Un buen "de-más verde" para volver a los derechos que probablemente desee, es esta declaración:
Comprenda mejor lo que hace, si comprende el propósito de mayúsculas + X "ejecución especial", es decir, consulte Wikipedia
fuente
Tuve la misma pregunta, la respuesta de terdon es agradable, pero creo que hay una confusión entre dirname y dircolors.
De todos modos, después de algunas investigaciones adicionales, podría cambiar los colores, así que estoy compartiendo mi solución aquí. ¡Puede ser útil para alguien algún día!
Entonces, 3 pasos simples:
Primero, como dijo terdon, copie los colores predeterminados en un archivo
Luego modifique este archivo. Puede encontrar algunos valores para los colores en el interior, pero encontré más aquí :)
Y finalmente, agregue la siguiente línea a su
~/.bashrc
archivo para que los colores se carguen automáticamente cuando abra un terminal:Voilà :)
fuente
~/.zshrc
que tenía que ir conif [[ -f ~/.dircolors ]] ; then eval $(dircolors -b ~/.dircolors) elif [[ -f /etc/DIR_COLORS ]] ; then eval $(dircolors -b /etc/DIR_COLORS) fi
. Lo siento, el salto de línea es terriblePara solucionar rápidamente el problema (haga que los archivos que se pueden escribir sean amarillos en nobg):
Reemplace
33
por34
azul en nobg. Aún más simple, para que sea nofg en nobg:Para que su cambio sea permanente, agréguelo a su perfil.
Para ver las reglas no relacionadas con la extensión de LS_COLORS:
sed
coloca cada regla en una línea ygrep
elimina las reglas comenzando por*.'.
Para explorar los
ls
colores en su terminal, considere usarEntonces
Como se indicó en otra respuesta (la de Thomas Nyman),
38;5;
es el prefijo para el término x de 256 colores en primer plano y para el término x de 256 colores48;5;
en segundo plano. Sin embargo, todos los terminales no admiten 256 colores.También vea -¿Qué significan los diferentes colores en ls? - en AskUbuntu.
fuente
Bueno, esto significa que esta carpeta tiene permisos si ejecuta esto:
eliminará bgcolor :)
fuente
Para solucionar este problema, pruebe el parámetro ow sobre LS_COLORS
Por ejemplo:
Ahora agregas la opción ow
fuente
Puede cambiar el tono de verde en Putty para que el texto sea legible.
Abra Putty y vaya a Window \ Colors, seleccione "ANSI Green", configúrelo en un verde más oscuro (R: 0 G: 70 B: 0).
fuente