No meu console, a cor dos diretórios é tão azul que é difícil ler em um fundo escuro.
Como posso alterar as definições de cores ls
?
Para alterar as cores do diretório, abra seu ~/.bashrc
arquivo com seu editor
nano ~/.bashrc
e faça a seguinte entrada no final do arquivo:
LS_COLORS=$LS_COLORS:'di=0;35:' ; export LS_COLORS
Algumas boas opções de cores (nesse caso 0;35
, é roxo) são:
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
O primeiro número é o estilo (1 = negrito), seguido de um ponto e vírgula e, em seguida, o número real da cor, os possíveis estilos (efeitos) são:
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)
Os possíveis 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
Todas as cores possíveis:
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
Eles podem até ser combinados, para que um parâmetro como:
di=1;4;31;42
na sua variável LS_COLORS, os diretórios apareceriam em negrito sublinhado em vermelho com um fundo verde!
Para testar todas essas cores e estilos em seu terminal, você pode usar um dos seguintes:
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
Você também pode alterar outros tipos de arquivos ao usar o comando ls, definindo cada tipo com:
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
Uma lista mais completa está disponível no Bigsoft - Configurando LS_COLORS .
Em algumas distribuições, convém alterar a cor do plano de fundo para ow
"( OTHER_WRITABLE
) cujo padrão é ilegível", por exemplo, para texto em azul não negrito em fundo verde.
Você pode usar, por exemplo, LS_COLORS="$LS_COLORS:di=1;33"
no final do seu .bashrc
arquivo, para obter um bom texto em negrito legível em laranja sobre fundo preto.
Depois de alterar o arquivo .bashrc, para efetivar as alterações, você terá que reiniciar o shell ou executar source ~/.bashrc
.
Nota: Você pode combinar mais comandos com dois pontos , por exemplo
LS_COLORS=$LS_COLORS:'di=1;33:ln=36' ; export LS_COLORS; ls
Fonte:
LS_COLORS=$LS_COLORS:'di=1;44:' ; export LS_COLORS
que mostra os diretórios em negrito branco sobre fundo azul..bashrc
- algumas cores funcionam, outras parecem diferentes. As pastas são verdes, por exemplo, em vez de azuis, mas os arquivos parecem corretamente. O que poderia ser?/etc/bash.bashrc
LS_COLORS=$LS_COLORS:'tw=01;35:ow=01;35:' ; export LS_COLORS
Muito simples. Adicione essas três linhas ao ~ / .bashrc
Se você deseja aplicar as alterações em uma sessão bash em execução, execute:
fonte
source ~/.bashrc
sempre que efetuar login. Existe uma maneira de corrigir isso?echo $SHELL
no prompt do cmd? Aposto que NÃO é/bin/bash
. Você pode encontrar o seu ativo.profile
ou.login
e adicionarsource $HOME/.bashrc
no final. Boa sorte.LS_COLORS
Esta é uma coleção de extensões: mapeamentos de cores, adequados para serem usados como sua variável de ambiente LS COLORS.
fonte
Além da resposta de Hegazi, você pode realmente controlar a cor do diretório e muitas outras cores usando o comando dircolors. Você pode criar um arquivo de configuração que esteja bem documentado.
Você pode criar um arquivo .dircolor no diretório inicial da seguinte maneira:
Em seguida, no seu arquivo ~ / .bashrc, adicione as linhas
Isso criará uma variável $ LS_COLORS para o bash. O sinalizador -c será definido se for para csh. Ele também sinaliza o comando ls para exibir em cores.
Edite o valor do atributo DIR como acima na cor do arquivo ~ / .dircolor para alterar a cor do diretório (ou qualquer outro tipo de arquivo incluído para outras cores). Você também pode alterar as cores de arquivos específicos ou definir seus próprios.
fonte
A
--color=auto
opção não funciona para mim usando o iTerm2 no meu Mac. A-G
opção funciona embora. Coloquei o seguinte alias no meu~/.profile
e agora os diretórios são coloridos e têm um final/
acrescentado:fonte
A é a minha abordagem para o comando ls com as opções mais usadas:
adicione as seguintes linhas em um arquivo chamado ~ / .alias
adicione as seguintes linhas em ~ / .bashrc
fonte
--color=auto
aols
apelido - os outros aliases com herdem a configuração