ls
comando no Bash, você notará que os diretórios e arquivos que você vê são coloridos de acordo com o tipo deles. Você pode personalizar seu próprio esquema de cores para escolher diferentes cores de texto, cores de fundo e formatação, como negrito e sublinhado.
Como isso funciona
O esquema de cores é armazenado na variável LS_COLORS. Para visualizar seu esquema de cores atual, você pode dizer ao Bash para imprimir o conteúdo da variável:
echo $LS_COLORS
Você verá uma longa lista de tipos de arquivos e códigos numéricos. Vamos explicar como criar uma lista como esta.
ORIGINAL=$LS_COLORS
LS_COLORS=$ORIGINAL
Suas alterações são sempre temporárias até que você edite um arquivo para torná-las seus novos padrões. Você sempre pode sair e entrar novamente ou fechar e reabrir uma janela de terminal para restaurar as cores à configuração padrão. No entanto, isso facilita o processo com um único comando rápido.
Como definir cores personalizadas
A variável LS_COLORS contém uma lista de tipos de arquivos junto com os códigos de cores associados. A lista padrão é longa porque especifica cores diferentes para vários tipos de arquivos diferentes.
Vamos começar um exemplo básico para demonstrar como isso funciona. Digamos que queremos alterar a cor dos diretórios do azul-negrito padrão para o vermelho em negrito. Podemos executar o seguinte comando para fazer isso:
LS_COLORS='di=1;31'
o
di=1;31
pouco diz
ls
esses diretórios (
di
) está (
=
) negrito (
1;
) vermelho (
31
).
No entanto, isso é apenas uma variável LS_COLORS muito simples que define diretórios como uma cor e deixa todos os outros tipos de arquivo como a cor padrão. Digamos que também desejamos criar arquivos com a extensão de arquivo.desktop e uma cor ciano sublinhada. Podemos executar o seguinte comando para fazer isso:
LS_COLORS='di=1:31:*.desktop=4;36'
Isso informa
ls
esses diretórios (
di
) está (
=
) negrito (
1;
) vermelho (
31
) e (
:
qualquer ficheiro que termine em.desktop (
*.desktop
) é (
=
) sublinhado (
4;
ciano (
36
).
Para montar sua própria lista, você só precisa saber a lista de códigos de cores e códigos de tipo de arquivo. Isso usa os mesmos códigos de cores numéricos que você usa ao alterar a cor no prompt do Bash.
Veja a lista de códigos de cores para o texto do primeiro plano:
- Preto: 30
- Azul: 34
- Ciano: 36
- Verde: 32
- Roxo: 35
- Vermelho: 31
- Branco: 37
- Amarelo: 33
Por exemplo, como o texto amarelo é o código de cor 33, você deve usar
di=33
para fazer diretórios amarelo.
- Texto normal: 0
- Texto Negrito ou Claro: 1 (Depende do emulador de terminal.)
- Dim Text: 2
- Texto sublinhado: 4
- Texto intermitente: 5 (isso não funciona na maioria dos emuladores de terminal).
- Texto invertido: 7 (inverte as cores do primeiro plano e do plano de fundo, então você verá texto preto em um segundo plano branco se o texto atual for texto branco em um plano de fundo preto).
- Texto oculto: 8
Ao especificar um atributo ou mais de um código de cor, separe a lista de códigos com um caractere ponto e vírgula (;). Você não precisa especificar 0 para o texto normal, pois o texto normal é usado quando você não especifica um atributo aqui.
Por exemplo, como o texto em negrito é o código de cor 1 e o amarelo é o código de cor 33, você deve usar
di=1;33
para fazer diretórios negrito amarelo. Você também pode especificar mais de um atributo. Por exemplo, você poderia usar
di=1;4;33
para tornar os diretórios em negrito, sublinhados em amarelo.
- Fundo preto: 40
- Fundo azul: 44
- Plano de fundo ciano: 46
- Fundo verde: 42
- Fundo roxo: 45
- Fundo vermelho: 41
- Fundo Branco: 47
- Fundo amarelo: 43
Por exemplo, como um fundo azul é o código de cor 44, você deve usar
di=44
para usar um plano de fundo azul para diretórios. Você também pode combinar um código de cor de fundo, um código de cor de primeiro plano e quantos atributos desejar. Por exemplo,
di=1;4;33;44
lhe daria texto em negrito, sublinhado amarelo sobre um fundo azul.
- Diretório: di
- Arquivo: fi
- Link simbólico: ln
- Tubo Nomeado (FIFO): pi
- Soquete: so
- Dispositivo de Bloqueio: bd
- Dispositivo de Caracteres: cd
- Link simbólico órfão (aponta para um arquivo que não existe mais): ou
- Arquivo ausente (um arquivo ausente que um link simbólico órfão aponta para): mi
- Arquivo executável (tem a permissão “x”): ex
- *.extensão: Qualquer arquivo que termine com uma extensão que você especificar. Por exemplo, use *.txt para arquivos terminados em.txt, *.mp3 para arquivos terminados em.mp3, *.desktop para arquivos terminados em.desktop ou qualquer outra coisa que você goste. Você pode especificar quantas extensões de arquivos diferentes desejar.
Especifique quantos tipos diferentes de códigos de tipos de arquivo, com quantas cores você quiser, separados pelo caractere:. Repita este processo para montar sua variável LS_COLORS.
Por exemplo, digamos que você queira usar texto em negrito em negrito para diretórios, texto em vermelho sublinhado para arquivos executáveis e texto verde em negrito em um plano de fundo vermelho para arquivos.mp3. Juntando os códigos de tipo de arquivo e códigos de cores das listas acima, você obtém:
LS_COLORS='di=1;35:ex=4;31:*.mp3=1;32;41'
Como definir suas novas cores padrão
Agora você tem uma variável LS_COLORS personalizada que funciona na sessão atual de Bash. No entanto, você provavelmente quer torná-lo permanente, por isso é usado automaticamente sempre que você iniciar uma nova sessão de Bash sem que você precise se lembrar disso.
Você pode definir sua variável LS_COLORS personalizada e qualquer outra variável de Bash que desejar, adicionando-a ao arquivo.bashrc da sua conta de usuário. Este arquivo está localizado em ~ /.bashrc. Então, se seu nome de usuário for bob, você encontrará em /home/bob/.bashrc. Existem outras maneiras de definir variáveis de ambiente também, mas isso é simples.
Primeiro, abra este arquivo no seu editor de texto preferido. Nós vamos usar o nano aqui como exemplo, mas você pode usar o vi, o emacs ou qualquer outra coisa que você goste.
nano ~/.bashrc
LS_COLORS='di=1;35:ex=4;31:*.mp3=1;32;41'
Salve o arquivo e saia. No nano, pressione Ctrl + O, pressione Enter para salvar e pressione Ctrl + X para sair.
Você também pode simplesmente excluir o
LS_COLORS=
linha que você adicionou ao seu arquivo.bashrc para usar as cores padrão novamente. Se você não definir o valor LS_COLORS, o Bash usará as cores padrão.