CLICOLOR e LS_COLORS no bash

48

Eu tenho a seguinte configuração no .bashrc para colorir as listagens.

exportar CLICOLOR = 1
exportar LS_COLORS = 'no = 00: fi = 00: di = 00; 34: ln = 01; 36: pi = 40; 33: so = 01; 35: do = 01; 35: bd = 40; 33; 01: cd = 40; 33; 01: ou = 40; 31; 01: ex = 01; 32: *. tar = 01; 31: *. tgz = 01; 31: *. arj = 01; 31: *. taz = 01; 31: *. Lzh = 01; 31: *. Zip = 01; 31: *. Z = 01; 31: *. Z = 01; 31: *. Gz = 01; 31: *. Bz2 = 01; 31: *. Deb = 01; 31: *. Rpm = 01; 31: *. Jar = 01; 31: *. Jpg = 01; 35: *. Jpeg = 01; 35: *. Gif = 01; 35: * .bmp = 01; 35: *. pbm = 01; 35: *. pgm = 01; 35: *. ppm = 01; 35: *. tga = 01; 35: *. xbm = 01; 35: *. xpm = 01; 35: *. tif = 01; 35: *. tiff = 01; 35: *. png = 01; 35: *. mov = 01; 35: *. mpg = 01; 35: *. mpeg = 01; 35: *. Avi = 01; 35: *. Fli = 01; 35: *. Gl = 01; 35: *. Dl = 01; 35: *. Xcf = 01; 35: *. Xwd = 01; 35: *. Ogg = 01; 35: *. Mp3 = 01; 35: *. Wav = 01; 35: ';

Este site mostra o código das cores e desejo alterar a cor do diretório para `cor clara '. Mas fazer di da seguinte maneira não afeta isso.

di = 04; 94

O interessante é que, mesmo depois de comentar LS_COLORS, posso ver a saída colorida desde que eu tenha CLICOLOR = 1.

  • O que devo fazer para tornar a cor do diretório em azul claro (94)?
  • O que é isso para CLICOLOR e LS_COLORS? Por que colorir funciona sem LS_COLORS?
prosseek
fonte

Respostas:

53

Existem várias implementações diferentes de cores para ls, e você fundiu algumas delas.

  • No FreeBSD e no Mac OS X , lsmostra cores se a CLICOLORvariável de ambiente estiver definida ou se -Gfor passada na linha de comando. As cores reais são configuradas através da LSCOLORSvariável de ambiente (os padrões internos são usados ​​se essa variável não estiver configurada). Para mostrar diretórios em azul claro, use

    export LSCOLORS=Exfxcxdxbxegedabagacad
  • Com o GNU ls , por exemplo, no Linux, lsmostra cores se --colorfor passada na linha de comando. As cores reais são configuradas através da LS_COLORSvariável de ambiente, que pode ser configurada com o dircolorscomando (os padrões internos são usados ​​se essa variável não estiver configurada).

Gilles 'SO- parar de ser mau'
fonte
5
Obrigado pela resposta, você poderia me ensinar o que significa Exfxcxdxbxegedabagacad?
prosseek
@prosseek: Veja as páginas de manual às quais eu vinculei. Por exemplo, os dois primeiros caracteres são o primeiro e o segundo plano dos diretórios, eazul escuro, Eazul claro e xpadrão. fna terceira posição, torna os links simbólicos magenta e assim por diante.
Gilles 'SO- stop being evil' em
Nesta mesma linha, como faço para treemostrar cores? A árvore mostra cores na minha máquina Debian, mas não no meu Mac. As variáveis ​​de ambiente estão presentes para a cor, conforme descrito acima. Então, meu Mac mostra cores para qualquer lscomando, mas não tree. Eu instalei uma árvore com cerveja.
DanCat 17/10/2015
2
@ DanCat eu não sei. treee lssão utilitários não relacionados, não há razão para que as configurações de um se apliquem ao outro. Você deve fazer isso como uma pergunta separada.
Gilles 'SO- stop be evil'
1
Para os preguiçosos (como eu) Está aqui um LSCOLORS gerador geoff.greer.fm/lscolors
udondan
11

O que é isso para CLICOLOR e LS_COLORS? Por que colorir funciona sem LS_COLORS?

CLICOLORirá ativar ou desativar as cores. LS_COLORSnão é necessário e permitirá que você personalize as cores.

Observe que em alguns sistemas operacionais (como MacOSX e FreeBSD), o valor é nomeado LSCOLORS, não LS_COLORS.

Evito definir a cor usando LS_COLORS, porque preciso aplicar o mesmo esquema de cores em cem computadores diferentes e em 10 Un * xes diferentes. Em vez disso, modifico a cor no meu programa Terminal, que funciona da mesma forma na maioria dos hosts Unix.

Stefan Lasiewski
fonte