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

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

Eu sei que uma pergunta semelhante foi feita em:

Como colorir a saída de ls ?

embora eu realmente não tenha entendido a resposta e não conseguisse fazê-la funcionar.

No entanto, tentei algo diferente. Decidi ler a página de manual lse ela menciona diferentes variáveis ​​de ambiente que podem ser definidas ao lidar com o lscomando. Se alguém escolher a -Gopção, será necessário observar as CLICOLORvariáveis ​​de ambiente. eu fiz equeum vincula você à documentação da LSCOLORSvariável de ambiente. Eu fui até ele e menciona:

"O valor desta variável descreve qual cor usar para qual atributo quando as cores estão habilitadas com CLICOLOR. Esta string é uma concatenação de pares do formato fb, onde f é a cor de primeiro plano eb é a cor de fundo."

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 ex significa "primeiro plano" padrão.

1) Primeiro, o que significa isto: "quando as cores são habilitadas com CLICOLOR"?

2) O que faz"primeiro plano"significar?

Quais devem ser as variáveis ​​de ambiente para que o lscomando colora a saída da maneira que eu desejar?


Eu também tentei:

ls --color

Mas isso me gerou o seguinte erro:

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

O mesmo erro aconteceu quando eu fiz ls --color=auto: só isso também gera um erro. Não tenho ideia do porquê e não tenho certeza se foi devido ao iTerm2 ou ao OS X ou por que isso aconteceu. Parece que funciona em outros sistemas ...

Responder1

Ao tentar responder à minha própria pergunta, tentei algumas coisas diferentes e tudo funcionou através de experiências.

1) Suponho que "habilitar CLICOLOR" significa defini-lo como 1 (ou seja, verdadeiro) porque assim que defini essa variável como 1, o LSCOLOR começou a funcionar.

2) Neste contexto, “Primeiro plano” significa o fundo realçando que será aplicado. Por exemplo, bc para o primeiro par significa que os caracteres dos diretórios serão coloridos em vermelho, enquanto o fundo/destaque será verde. Por exemplo, se o seu ambiente var for como: export LSCOLORS="bCfxcxdxbxegedabagacad"

então fazer ls mostra algo assim:

insira a descrição da imagem aqui

Obviamente, para que isso funcione, o comando ls deve ter o alias de ls -G (ou apenas fazer ls -G toda vez) e você deve ter as seguintes linhas em seu .bashrc ou qualquer arquivo shell rc que você usar:

export CLICOLOR=1
export LSCOLORS="gxfxcxdxbxegedabagacad"

Agora você pode alterar o LSCOLORS da maneira que desejar, conforme especificado pelo arquivo man ls.

Pode haver diferentes maneiras de fazer isso funcionar, mas foi assim que funcionou para mim no Unix no OS X Mavericks no iTerm2.

Responder2

Substitua --colorpor -Gao executar ls.

informação relacionada