Como colorir a saída de ls?

22

Estou executando o CentOS no modo de texto Linux. Quando executo o comando ls /usr/, a saída é muito difícil de ler (azul escuro em preto). Como posso alterar a coloração do texto?

Captura de tela da saída ls

todo dia
fonte

Respostas:

19

Se você deseja alterar suas cores no console, ou seja, fora do X , é possível especificar cores no seu .bashrc, assim:

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

Onde você está definindo o preto como #222222Consulte esta publicação para obter detalhes: http://phraktured.net/linux-console-colors.html

Se você estiver trabalhando no X , poderá personalizar sua configuração definindo suas cores da seguinte .Xresourcesmaneira:

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

e, em seguida, forneça esse arquivo quando você iniciar o X, geralmente do seu .xinitrc:

xrdb -merge ~/.Xresources

O Arch Wiki possui uma página em .Xresources que explica todas as opções: https://wiki.archlinux.org/index.php/Xresources

Outro aprimoramento que você pode fazer no X ou não é especificar todos os diferentes tipos de arquivos que você deseja colorir - e suas respectivas cores em um .dir_colorsarquivo, da seguinte forma:

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

Para começar, copie /etc/dir_colorspara o /homediretório do usuário e faça as alterações. Em seguida, obtenha essa informação no seu .bashrccom eval $(dircolors -b ~/.dir_colors)Isso permitirá um controle mais refinado das cores dos arquivos e tipos de arquivos quando você usar ls.

Você pode encontrar um .dir_colorsarquivo de exemplo (incrivelmente detalhado e completo) aqui: https://github.com/trapd00r/LS_COLORS/blob/master/LS_COLORS

Com uma combinação das três abordagens, você pode criar uma configuração razoavelmente uniforme, esteja trabalhando no console ou no X.

jasonwryan
fonte
me desculpe, eu sou um novo aprendiz de linux. eu instalei no texto linux. não há console. tudo está funcionando na linha de comando. obrigado,
runeveryday
2
Sim: foi o que eu quis dizer quando disse fora do X - nos consoles TTY (TTY 1-7).
precisa saber é o seguinte
jasonwryan, executo o comando vim / etc / DIR_COLORS, o DIR é 01; 34 COMO MUDAR PARA A COR AZUL. obrigado,
runeveryday
2
O termo cores está aqui: tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html Verde é 00;32e verde claro / negrito é 1;32A única maneira de obter verde-azulado é usar o método descrito acima para definir uma dessas 16 cores como um equivalente hexadecimal da cerceta.
Jasonwryan
desculpe se esta é uma pergunta para iniciantes, mas sua resposta muda para um sistema Unix no OS X?
Charlie Parker
9

O arquivo que você deseja é /etc/DIR_COLORS. Eu tive exatamente o mesmo problema que você e alterei os diretórios para uma cor verde-azulado. Funciona muito melhor.

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

Editar /home/yourusername/.dir_colors, você verá esta linha:

DIR 01;34    #directory

Mude isso para isso:

DIR 01;36    #directory

O que torna as cores do diretório verde-azuladas.

n0pe
fonte
quando executo o comando / etc / DIR_COLORS, ele gera permissão negada. eu sou o usuário root, por quê? como mudar a cor para verde-azulado. obrigado
runeveryday 23/08
3
@run Não é um comando, é um arquivo de configuração; abra-o em um editor de texto
Michael Mrozek
o DIR é 01; 34 COMO MUDAR PARA A COR AZUL. obrigado,
runeveryday
@ MaxMackie Isso não parece funcionar para mim (copiado para ~/.dir_colors) e mudou tudo para 00. Descobri que eu tenho que abrir um novo terminal. Como isso é aplicado / conectado ao terminal atual?
Bernhard