Pagina inicial » como » Como alterar as cores dos diretórios e arquivos no comando ls

    Como alterar as cores dos diretórios e arquivos no comando ls

    Se você tiver executado o ls comando no Bash, você notará que os diretórios e arquivos que você vê são coloridos de acordo com o seu tipo. Você pode personalizar seu próprio esquema de cores para escolher diferentes cores de texto, cores de plano de fundo e formatação, como negrito e sublinhado..

    Como isso funciona

    O esquema de cores é armazenado na variável LS_COLORS. Para ver o 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.

    Antes de brincar com isso, recomendamos salvar o conteúdo atual da variável LS_COLORS em outra variável. Isso permitirá que você restaure rapidamente as configurações padrão sem sair do shell e entrar novamente, ou fechar e reabrir a janela do terminal. Para salvar o conteúdo atual da variável LS_COLORS em uma nova variável chamada ORIGINAL, execute:

    ORIGINAL = $ LS_COLORS

    A qualquer momento, você pode executar o seguinte comando para desfazer suas alterações e restaurar as cores padrão:

    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 torna mais fácil fazer isso 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 padrão em negrito azul 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 queremos também tornar os arquivos com a extensão de arquivo .desktop 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 (*.Área de Trabalho) é (=) sublinhado (4;ciano (36).

    Este é o processo para montar sua lista de tipos de arquivos e cores. Especifique quantos desejar no formulário filetype = color, separando cada um com um caractere de dois-pontos (:).

    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 seu prompt Bash.

    Aqui está 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ê usaria di = 33 fazer diretórios amarelo.

    Aqui está a lista de atributos de cores de texto:

    • 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 de primeiro plano e de fundo, assim você verá texto preto em um fundo branco se o texto atual for texto branco em um 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 texto amarelo é o código de cor 33, você usaria di = 1; 33 fazer diretórios em negrito amarelo. Você também pode especificar mais de um atributo. Por exemplo, você poderia usar di = 1; 4; 33 fazer diretórios negrito, sublinhado amarelo.

    Aqui está a lista de códigos de cores de fundo:

    • Fundo preto: 40
    • Fundo azul: 44
    • 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ê usaria 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 daria corajoso, sublinhado texto amarelo sobre um fundo azul.

    Aqui está a lista de códigos de tipo de arquivo:

    • Diretório: di
    • Arquivo: fi
    • Link simbólico: ln
    • Tubo Nomeado (FIFO): pi
    • Soquete: so
    • Bloquear Dispositivo: 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 diferentes desejar, 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. Reunindo os códigos de tipo de arquivo e cores das listas acima, você obteria:

    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, então ele é usado automaticamente sempre que você inicia uma nova sessão de Bash sem precisar lembrar.

    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 o 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. Usaremos o nano aqui como exemplo, mas você pode usar o vi, o emacs ou qualquer outra coisa que você goste.

    nano ~ / .bashrc

    Adicione sua variável LS_COLORS personalizada a uma nova linha no final do arquivo, da seguinte forma:

    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..

    Sempre que você iniciar uma nova sessão de Bash, o Bash lerá o arquivo .bashrc e definirá automaticamente sua variável LS_COLORS. Para alterar suas cores no futuro, volte ao seu arquivo .bashrc e edite a linha LS_COLORS.

    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.