Usei várias cores no prompt do PS1, como
\033]01;31\] # pink
\033]00m\] # white
\033]01;36\] # bold green
\033]02;36\] # green
\033]01;34\] # blue
\033]01;33\] # bold yellow
Onde posso encontrar uma lista dos códigos de cores que posso usar?
Eu olhei para Colorize Bash Console Color, mas ele não respondeu à minha pergunta sobre uma lista dos códigos reais.
Seria bom se houvesse uma forma mais legível também.
Consulte também https://unix.stackexchange.com/a/127800/10043
\]
aqui não faz parte da sequência de cores; serve para definir especificamente os prompts (adicionamos alguns parágrafos ao final da minha resposta sobre isso). "Seria bom se houvesse uma forma mais legível também." -> o recorte e cole em sua própria resposta é uma maneira de fazer isso.Respostas:
Essas são sequências de escape ANSI ; esse link é para uma tabela de códigos de cores, mas também há outras coisas interessantes nessa página da Wikipedia. Nem todos eles funcionam (por exemplo) em um console Linux normal.
Isso está incorreto:
0
redefine o terminal para o padrão (provavelmente branco). O código real para o primeiro plano branco é 37. Além disso, a chave de fechamento com escape no final (\]
) não faz parte da sequência de cores (consulte os últimos parágrafos abaixo para obter uma explicação sobre sua finalidade ao definir um prompt).Observe que alguns terminais da GUI permitem especificar um esquema de cores personalizado. Isso afetará a saída.
Há uma lista aqui que adiciona 7 cores de primeiro plano e 7 de fundo que eu nunca tinha visto antes, mas elas parecem funcionar:
Além disso, se você tiver um terminal GUI de 256 cores (acho que a maioria deles está agora), poderá aplicar cores neste gráfico:
A sequência ANSI para selecioná-las, usando o número no canto inferior esquerdo, inicia
38;5;
no primeiro plano e no plano48;5;
de fundo, depois o número da cor, por exemplo:Dá-me uma cor laranja clara no bronzeado (ou seja, a tabela de cores é aproximadamente aproximada).
Você pode ver as cores nesta tabela 1 como elas apareceriam no seu terminal com bastante facilidade:
A saída é auto-explicativa.
Alguns sistemas configuram a variável $ TERM como
xterm-256color
se você estiver em um terminal de 256 cores por meio de algum código shell/etc/profile
. Em outros, você deve poder configurar seu terminal para usar isso. Isso permitirá que os aplicativos TUI saibam que existem 256 cores e permitirá que você adicione algo assim ao seu~/.bashrc
:Cuidado ao usar sequências de escape de cores em seu prompt, coloque-as
\
entre colchetes de escape ( prefixados), desta forma:Observe que o
[
interior da sequência de cores não é escapado, mas os anexos são. O objetivo deste último é indicar ao shell que a sequência incluída não conta para o comprimento de caracteres do prompt. Se essa contagem estiver errada, coisas estranhas acontecerão quando você voltar ao histórico, por exemplo, se for muito longo, o excesso de comprimento da última sequência rolada aparecerá anexado ao seu prompt e você não poderá retroceder no (é ignorado da mesma maneira que o prompt).Observe também que se você deseja incluir a saída de um comando executado toda vez que o prompt é usado (em vez de apenas uma vez quando o prompt é definido), você deve configurá-lo como uma string literal com aspas simples, por exemplo:
Embora este não seja um ótimo exemplo, se você estiver satisfeito com o escape especial
\d
ou\D{format}
imediato do bash - que não é o tópico da pergunta, mas pode ser encontrado emman bash
abaixoPROMPTING
. Existem várias outras fugas úteis, como\w
diretório\u
atual, usuário atual etc.1. A parte principal deste gráfico, as cores 16 - 231 (observe que elas não estão em ordem numérica) são um cubo de cores 6 x 6 x 6 RGB. "Cubo de cores" refere-se ao fato de que um espaço de cores RGB pode ser representado usando uma matriz tridimensional (com um eixo para vermelho, um para verde e outro para azul). Cada cor no cubo aqui pode ser representada como coordenadas em uma matriz 6 x 6 x 6, e o índice no gráfico calculado da seguinte forma:
A primeira cor no cubo, no índice 16 no gráfico, é preta (RGB 0, 0, 0). Você pode usar esta fórmula no shell script:
fonte
echo
para nada além de texto literal que não comece com um hífen (-
). Isso não é portável. Todas as implementações comuns violam o padrão que afirma que nenhuma opção deve ser suportada. Pior, eles são inconsistentes. Você deve usar em seuprintf
lugar. (E não incorporar variáveis dentro declarações printf, uso%s
.)colortest-256
liste a paleta xterm em uma boa forma compacta. (apt-get install colortest
se estiver faltando)Parece que pelo menos parte da lista é:
com base em https://wiki.archlinux.org/index.php/Color_Bash_Prompt
fonte
Eu escrevi uma função bash que pode mostrar todas as cores, se isso ajudar.
Você pode jogá-lo em .bashrc / .bash_profile / .bash_aliases ou salvá-lo como um script e executá-lo dessa maneira. Você pode usar as cores para mudar de cor, como fiz com o meu nome abaixo.
saídas colorgrid ():
Mudei meu nome no meu .bash_profile, fazendo o seguinte:
Observe que o prefixo 01 em uma string como o
\[\033[01;38;5;214m\]a
define em negrito.fonte
Outro script como o postado pela TAFKA 'goldilocks' para exibir cores que talvez seja um pouco mais prático para fins de referência:
O tamanho deve estar correto para o terminal que você está usando. É um pouco exagerado para esse propósito, mas agora você pode controlar muitos aspectos de como isso é exibido através de parâmetros. Felizmente, todos eles são auto-explicativos.
fonte
fonte