O que significam as diferentes cores no ls
comando do Ubuntu ? Por exemplo, quando digito o ls
comando em uma das minhas pastas, recebo um dos arquivos em verde claro, o outro (que é uma pasta) em azul com destaque verde.
O que significam essas cores e existe algum manual sobre todas as cores?
command-line
colors
ls
Rafid
fonte
fonte
eval
script que mostra a representação de cores de saída para cada tipo é brilhante ... obrigado!eval
script é aqui: github.com/gkotian/gautam_linux/blob/master/scripts/colours.shVocê pode descobrir quais cores
ls
usam olhando a$LS_COLORS
variável:Além disso, os arquivos são coloridos por atributos:
aac, au, flac, mid, midi, mka, mp3, mpc, ogg, ra, wav, axa, oga, spx, xspf.
tar, tgz, arj, taz, lzh, lzma, tlz, txz, zip, z, Z, dz, gz, lz, xz, bz2, bz, tbz, tbz2, tz, deb, rpm, jar, rar, ace, zoo, cpio, 7z, rz.
jpg, jpeg, gif, bmp, pbm, pgm, ppm, tga, xbm, xpm, tif, tiff, png, svg, svgz, mng, pcx, mov, mpg, mpeg, m2v, mkv, ogm, mp4, m4v, mp4v, vob, qt, nuv, wmv, asf, rm, rmvb, flc, avi, fli, flv, gl, dl, xcf, xwd, yuv, cgm, emf, axv, ans, ogv, ogx.
Toda essa informação está contida na saída de
dircolors --print-database
, mas sua formatação é bastante ilegível.Aqui está uma explicação técnica do que está acontecendo:
Exemplo:
O código de cores consiste em três partes:
A primeira parte antes do ponto e vírgula representa o estilo do texto.
A segunda e terceira parte são a cor e a cor do plano de fundo:
Cada parte pode ser omitida, assumindo o início à esquerda. ie "01" significa negrito, "01; 31" significa negrito e vermelho. E você faria com que seu terminal imprima em cores escapando da instrução
\33[
e finalizando-o com umm
. 33 ou 1B em hexadecimal, é o sinal ASCII "ESCAPE" (um caractere especial no conjunto de caracteres ASCII). Exemplo:Imprime "Hello World" em vermelho brilhante.
O comando
ls
com o argumento--color=auto
(no Ubuntu,ls
é um apelido parals --color=auto
) percorre todos os nomes de arquivos e tenta primeiro corresponder tipos diferentes, como Executable, Pipe e assim por diante. Em seguida, ele tenta corresponder expressões regulares como * .wav e imprime o nome do arquivo resultante, incluído nestas instruções de mudança de cor para o bash.fonte
Se você digitar
dircolors
(echo $LS_COLORS
também funciona) na linha de comando, receberá uma lista de códigos e cores para vários tipos de arquivos em uma linha.dircolors --print-database
mostra uma linha de cada vez. Aqui está uma pequena lista (tentei colocar as mais importantes). Na parte inferior, há uma explicação sobre o que os diferentes códigos no final de cada linha representam:00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
Se você quiser brincar com isso, aqui está um exemplo de como definir uma cor para um arquivo:
Isso irá definir
*.ogg
e.mp3
parabold magenta
. E se você colocá-lo em seu.bashrc
arquivo, ele se tornará permanente.fonte
pdf
arquivo, o processo é usarexport
? É possível simplesmente adicionar uma extensão naLS_COLORS
variável padrão ?Isso se expande na resposta de Karthick87 .
Com a configuração padrão
ls -l
)Script para mostrar cores
Saída com configuração padrão:
Saída com minha configuração (dircolors personalizados e tema personalizado do terminal Solarized):
Peguei as descrições de
dircolors -p
eman dir_colors
preenchi as lacunas com minha própria pesquisa.As cores e descrições são as mesmas de 14.04 a 17.10.
fonte
rs
meiosRESET
,mh
meiosMULTIHARDLINK
,ca
meiosCAPABILITY
etc?dircolors -p
.dircolors -p
não diz que rs é RESET 0 # redefinir para a cor "normal" .Nenhuma das respostas aqui inclui as 256 opções de cores nas versões mais recentes do Ubuntu. Eu sou deficiente em cores (algumas cores me incomodam), então o diretório azul padrão em preto é muito difícil de ler. O que se segue é minha pesquisa para mudar isso.
Digite
dircolors -p |less
para ver seu código de cores atual.O .bashrc padrão já deve estar configurado não apenas para aproveitar o código de cores do sistema, mas também um em ~ / .dircolors, para despejar a saída de dircolors em .dircolor para que você possa começar usando esse comando.
dircolors -p > ~/.dircolors
Alternativa: escolha dircolors de 256 cores muito semelhantes no projeto solarizado da seebi .
Pegue esse script mais elegante e execute-o com o comando
colortest -w
para poder ver todas as cores de uma só vez. Escolha uma cor. Eu gosto da laranja # 208. Quero que seja a cor do texto, portanto, usando essas informações em códigos de cores estendidos, posso aplicar isso.Então você tem uma cor, e agora. Primeiro temos que criar a string.
O primeiro número será um código de atributo, provavelmente 00, mas se você quiser piscar, vá com 05:
Em seguida, escolha anexar
;38;5;
a esse código de atributo para indicar a cor do texto para obter 00; 38; 5; e depois acrescente sua cor. Eu escolhi 208, então eu recebo00;38;5;208
.Se você quiser também colocar um plano de fundo, escolha outra cor (digamos 56) com o script mais recente e o apêndice
;48;5;
para o plano de fundo e 56 para a cor para obter uma sequência total de00;38;5;208;48;5;56
.Então agora você tem, o que você faz com isso?
vim ~/.dircolors
e encontre a seção que você deseja alterar (para mim, que é DIR) para a sequência que determinamos acima "00; 38; 5; 208".Isso não se aplicará imediatamente, você precisará carregar a configuração. Use
dircolors ~/.dircolors
para o código get para definir sua variável LS_COLORS. Você pode simplesmente colar isso na sua sessão do terminal ou pode fechar o seu terminal e reabri-lo. Você também pode canalizar isso para um arquivo e executá-lo como um script de shell.Você pode executar o mesmo procedimento com 16 cores. Você não precisa do material especial; 38; 5 ou; 48; 5. Basta jogar os números na corda e aproveitar a simplicidade.
Obrigado a Dan e seebi por suas anotações e código sobre isso.
fonte