capa do tutorial ls_colors

Use o LS_COLORS para alterar as cores dos arquivos por tipos, nas listagens com ls.

Quem usa o terminal, no GNU/Linux pode se beneficiar das listagens, com o comando ls, que mostrem os arquivos colorizados por tipo. Nomes de diretórios, links (para diretórios), nomes de arquivos de imagem etc. cada qual com sua própria cor — diferenciando-os dos demais.
Por um lado, há o argumento irrefutável da estética: é elegante e agradável trabalhar em um terminal colorido.
Por outro lado, ver a diferença visual entre um nome de arquivo e um link, entre outras situações, pode prevenir remoções acidentais.
Captura de tela da listagem do diretório
Este assunto foi abordado no artigo Como alterar as cores dos nomes dos diretórios no terminal — leia-o para complementar as informações deste artigo.
Estas cores são controladas pela variável de ambiente LS_COLORS, controlada pelo comando dircolors e você pode alterar todas a seu critério.
Entre os motivos para mudar o esquema de cores do LS_COLORS, está a visibilidade quando você deixa de usar um terminal com fundo preto e muda pro fundo mais claro (branco, por exemplo).
Este artigo aborda um método de configuração que te permita ver os nomes de arquivos diferenciados por cores, em função de seu tipo.

Como configurar o seu perfil para ver listagens coloridas

Normalmente a configuração já vem pronta, em qualquer distro GNU/Linux. Se você usa o comando ls no terminal e não vê arquivos em cores diferentes, é possível que a configuração não esteja ativada.
Tente o comando ls assim:


ls --colors

Se os arquivos forem listados em cores diferentes (diretórios, são tradicionalmente em azul), tudo está pronto no seu sistema.
Para facilitar a sua vida, crie um alias (apelido) para o comando ls --colors:


alias ls="ls --color -Nx"

As opções ‘-Nx’, acima, servem apenas para reorganizar a listagem, para você ver uma quantidade maior de arquivos na tela — não tem nada a ver com este artigo, portanto. Você pode removê-las quando terminar de testar as configurações.
A solução, acima, é temporária. Quando você reiniciar sua sessão Linux, o valor do alias será perdido.
Para tornar o alias permanente, abra o arquivo ~/.bashrc e retire as “#” (marcas de comentários) do início das seguintes linhas:


alias ls='ls --color'

LS_COLORS='di=1:fi=0:ln=31:pi=5:so=5:bd=5:cd=5:or=31:mi=0:ex=35:*.rpm=90'

export LS_COLORS

Se as linhas não existirem, acrescente-as ao final do arquivo.
Explicando o código:

  • alias ls='ls --color' — como já foi dito, esta linha faz com que o comando ls adquira o significado que se encontra entre aspas.
  • LS_COLORS='di=1:fi=0:ln=31:pi=5:so=5:bd=5:cd=5:or=31:mi=0:ex=35:*.deb=90' — define a variável de ambiente LS_COLORS com os valores entre aspas (que serão explicados depois). Recomendo fazer suas alterações nesta linha.
  • export LS_COLORS — armazena na memória os valores da variável.

Ajustar o LS_COLORS faz muito mais do que apenas melhorar o visual das suas listagens ls.
O visual melhora, com toda certeza — mas ajuda principalmente a identificar fácil e rápido os arquivos no seu sistema — principalmente quando estamos procurando por algo em diretórios que não costumamos frequentar.

Como personalizar as cores dos itens do diretório

Se você não está satisfeito com as cores padrão do sistema ou deseja impressionar os seus amigos com um terminal customizado, veja quais são os itens que você pode alterar (todos).
Os itens cujas cores podem ser personalizadas (eu só uso 5 destes) seguem listados abaixo:

  • di = diretório
  • fi = file ou arquivo comum
  • ln = link simbólico
  • pi = arquivo fifo
  • so = socket file
  • bd = arquivo especial de bloco (buffered)
  • cd = arquivo especial de caracteres (unbuffered)
  • or = link simbólico apontando para um arquivo não existente (órfão)
  • mi = arquivo inexistente apontado por um link simbólico (visível quando você usa o comando ls -l
  • ex = arquivo executável (que tenha ‘x’ nas suas permissões).
  • Você ainda pode acrescentar arquivos por suas extensões: *.pdf, *.deb, *.txt etc.

Através da tentativa (e erro) é possível chegar a uma configuração satisfatória.
Veja, abaixo, as cores e os efeitos possíveis:

  • 0 = cor padrão do sistema
  • 1 = negrito
  • 4 = sublinhado
  • 5 = texto piscando
  • 7 = campo revertido
  • 31 = vermelho
  • 32 = verde
  • 33 = laranja
  • 34 = azul
  • 35 = púrpura
  • 36 = ciano
  • 37 = cinza
  • 40 = fundo preto
  • 41 = fundo vermelho
  • 42 = fundo verde
  • 43 = fundo laranja
  • 44 = fundo azul
  • 45 = fundo púrpura
  • 46 = fundo ciano
  • 47 = fundo cinza
  • 90 = cinza escuro
  • 91 = vermelho claro
  • 92 = verde claro
  • 93 = amarelo
  • 94 = azul claro
  • 95 = púrpura claro
  • 96 = turquesa
  • 100 = fundo cinza escuro
  • 101 = fundo vermelho claro
  • 102 = fundo verde claro
  • 103 = fundo amarelo
  • 104 = fundo azul claro
  • 105 = fundo púrpura claro
  • 106 = fundo turquesa

Você pode achar estranho, mas algumas destas variações eram usadas nos antigos monitores de fósforo monocromático (verde, âmbar, branco etc) ou coloridos.
Em monitores monocromáticos, a única forma de fazer diferenciação entre os tipos de arquivos é através de recursos como diferenças na tonalidade, no fundo, uso de sublinha, negrito, invertido etc.

A dica para criar um visual retrô para o seu terminal é combinar vários destes recursos com apenas uma cor.

Ao usar uma combinação como di=5;31;42 você pode obter um efeito bem interessante (olhe a tabela, acima, para ter uma idéia).
O que você acha?
Use os comentários para compartilhar o seu esquema de cores favorito. 😉

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia. Fã de séries, como "Rick and Morty" e "BoJack Horseman". Me siga no Twitter e vamos trocar ideias!

4 comentários sobre “Use o LS_COLORS para alterar as cores dos arquivos por tipos, nas listagens com ls.”

  1. Gostei!
    O meu tema verde hacker ficou assim:

    LS_COLORS=’di=7;32:fi=32:ln=4;32:pi=5;32:so=5;32:bd=5;32:cd=5;32:or=5;32:mi=5;32:ex=1;32:*.png=1;4;32:*.jpg=1;4;32′

    Obrigada!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *