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?

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).


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.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.