¿Cómo colorear la salida de ls?

22

Estoy ejecutando CentOS en modo de texto Linux. Cuando ejecuto el comando ls /usr/, la salida es demasiado difícil de leer (azul oscuro sobre negro). ¿Cómo puedo cambiar el color del texto?

Captura de pantalla de la salida ls

corre todos los días
fuente

Respuestas:

19

Si desea cambiar sus colores en la consola, eso está fuera de X , entonces puede especificar los colores en su .bashrc, así:

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0222222" #black
    echo -en "\e]P8222222" #darkgrey
    echo -en "\e]P1803232" #darkred
    ....
    fi

Donde está definiendo el negro como #222222Consulte esta publicación para obtener más detalles: http://phraktured.net/linux-console-colors.html

Si está trabajando en X , puede personalizar su configuración definiendo sus colores de la siguiente .Xresourcesmanera:

!black
 *color0:  #3D3D3D
 *color8:  #5E5E5E
!red
 *color1:  #8C4665
 *color9:  #BF4D80
 ...

y luego obtiene este archivo cuando inicia X, generalmente desde su .xinitrc:

xrdb -merge ~/.Xresources

Arch Wiki tiene una página en .Xresources que explica todas las opciones: https://wiki.archlinux.org/index.php/Xresources

Otra mejora que puede hacer en X o no es especificar todos los diferentes tipos de archivos que le gustaría colorear, y sus respectivos colores en un .dir_colorsarchivo, de esta manera:

.xinitrc       01;31 
.Xauthority    01;31
.Xmodmap       00;31
.Xresources    01;33
 ...

Para comenzar, copie /etc/dir_colorsen el /homedirectorio de su usuario y realice sus cambios. Luego, obtenga esto de su .bashrccon eval $(dircolors -b ~/.dir_colors)Esto le permitirá un control detallado sobre los colores de los archivos y los tipos de archivos cuando los use ls.

Puede encontrar un .dir_colorsarchivo de ejemplo (increíblemente detallado y completo) aquí: https://github.com/trapd00r/LS_COLORS/blob/master/LS_COLORS

Con una combinación de los tres enfoques, puede crear una configuración razonablemente uniforme, ya sea que esté trabajando en la consola o en X.

jasonwryan
fuente
Lo siento, soy un nuevo alumno de Linux. Lo instalé en linux text. No hay consola. todo se está ejecutando en la línea de comando. gracias,
runeveryday
2
Sí: a eso me refería cuando dije fuera de X - en las consolas TTY (TTY 1-7).
jasonwryan
jasonwryan, ejecuto el comando vim / etc / DIR_COLORS el DIR es 01; 34 CÓMO CAMBIAR EL color verde azulado. gracias,
runeveryday
2
El término colores está aquí: tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html El verde es 00;32y el verde claro / negrita es 1;32La única forma de obtener verde azulado es usar el método que describí anteriormente para definir uno de esos 16 colores como un equivalente hexadecimal de verde azulado.
jasonwryan
perdón si esta es una pregunta para principiantes, pero ¿cambia su respuesta para un sistema Unix en OS X?
Charlie Parker
9

El archivo que quieres es /etc/DIR_COLORS. Tuve exactamente el mismo problema que tú y cambié los directorios a un color verde azulado. Funciona mucho mejor.

cp /etc/DIR_COLORS /home/yourusername/.dir_colors

Editar /home/yourusername/.dir_colors, verá esta línea:

DIR 01;34    #directory

Cambia eso a esto:

DIR 01;36    #directory

Lo que hace que los colores del directorio sean verde azulado.

n0pe
fuente
cuando ejecuto el comando / etc / DIR_COLORS, el permiso de salida denegado. Soy el usuario root, ¿por qué? Cómo cambiar el color a verde azulado. gracias
runeveryday
3
@run No es un comando, es un archivo de configuración; ábralo en un editor de texto
Michael Mrozek
el DIR es 01; 34 CÓMO CAMBIAR DE COLOR AZUL gracias,
runeveryday
@MaxMackie Esto no parece funcionar para mí (copiado ~/.dir_colors) y cambió todo a 00. Descubrí que tengo que abrir una nueva terminal. ¿Cómo se aplica / se conecta al terminal actual?
Bernhard