Como alterar a cor de saída do comando ls no terminal no OS X e iTerm2?

3

Eu sei que uma pergunta semelhante foi feita em:

How to colorize output of ls ?

embora eu não tenha realmente entendido a resposta e não consegui realmente dar certo.

No entanto, tentei algo diferente. Decidi ler a página de manual para ls e menciona diferentes variáveis de ambiente que podem ser definidas ao lidar com o comando ls . Se alguém vai para a opção -G diz para olhar as variáveis de ambiente CLICOLOR . Eu fiz e isso liga-o à documentação para a variável de ambiente LSCOLORS . Eu fui a ele e menciona:

"The value of this variable describes what color to use for which attribute when colors are enabled with CLICOLOR. This string is a concatenation of pairs of the format fb, where f is the foreground color and b is the background color. "

Ele também menciona que o valor padrão de LSCOLORS é "exfxcxdxbxegedabagacad" e que cada parte especifica a cor de alguma coisa específica no comando ls. Por exemplo, o primeiro par ex no exemplo especifica a cor dos diretórios. o segundo fx a cor dos links simbólicos etc ... e significa azul e x significa padrão "primeiro plano".

1) Primeiro o que isso significa: "quando as cores são ativadas com CLICOLOR"?

2) O que significa "primeiro plano" ?

O que as variáveis de ambiente devem ter para o comando ls para colorir a saída da maneira que eu desejar?

Eu também tentei:

ls --color

Mas isso me causou o seguinte erro:

ls: illegal option -- - usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]

O mesmo erro ocorreu quando eu fiz ls --color=auto : sozinho também gerou um erro. Eu não tenho idéia do porquê, e não tenho certeza se foi devido ao iTerm2 ou OS X ou por que isso aconteceu. Parece que funciona em outros sistemas ...

    
por Charlie Parker 16.06.2014 / 04:59

2 respostas

4

Enquanto tentava responder à minha própria pergunta, tentei algumas coisas diferentes e tudo funcionou experimentando.

1) Eu estou supondo que "habilitar CLICOLOR" significa configurá-lo para 1 (ou seja, true) porque uma vez que eu configurei essa variável para 1, o LSCOLOR começou a funcionar.

2) Nesse contexto, "Primeiro Plano" significa o destaque do plano de fundo que será aplicado. Por exemplo, bc para o primeiro par significa que ele irá colorir os caracteres para os diretórios em vermelho enquanto o plano de fundo / realce para ele será verde. Por exemplo, se o seu ambiente var é como: export LSCOLORS="bCfxcxdxbxegedabagacad"

então fazer ls mostra algo assim:

Obviamente,paraissofuncionar,ocomandolsprecisasercolocadoemaliasparals-G(ouapenasls-Geverytime)evocêdeveterasseguinteslinhasemseu.bashrcouqualquerarquivoshellrcusado:

exportCLICOLOR=1exportLSCOLORS="gxfxcxdxbxegedabagacad"

Agora você pode alterar os LSCOLORS como quiser, conforme especificado pelo arquivo man ls.

Pode haver diferentes maneiras de fazer isso funcionar, mas é assim que funcionou para mim no Unix em dispositivos móveis do OS X no iTerm2.

    
por 16.06.2014 / 04:59
2

Substitua --color por -G ao executar ls .

    
por 09.04.2015 / 19:52

Tags