Definir/Redefinir

Definir/Redefinir

Posso alterar a cor através de preferência, mas como posso alterar a cor de fundo e a cor do texto do terminal através da linha de comando?

Responder1

Em certos terminais compatíveis com XTerm/ANSI (como xterme gnome-terminal), você pode definir cores usando uma paleta maior que a paleta padrão de 8/16 cores (por exemplo, usando uma paleta de 88 cores, 256 cores ou 16777216 cores (RGB) ; ambos xterme gnome-terminalsuportam a paleta de 256 cores e 16777216 cores (RGB); lembre-se de que o shell pode substituir isso (este é o caso, por exemplo, de zsh).

Aqui está um script para listar as cores na paleta de 256 cores junto com seu código de cores ANSI em terminais compatíveis com XTerm/ANSI com suporte para paleta de 256 cores:

#!/bin/bash
for((i=16; i<256; i++)); do
    printf "\e[48;5;${i}m%03d" $i;
    printf '\e[0m';
    [ ! $((($i - 15) % 6)) -eq 0 ] && printf ' ' || printf '\n'
done

captura de tela1

captura de tela

Dependendo se você deseja aplicar a cor ao primeiro plano ou ao plano de fundo, use um <fg_bg>valor de 38ou 48(respectivamente) no seguinte comando:

printf '\e[<fg_bg>;5;<ANSI_color_code>m'

Por exemplo, para definir a cor de primeiro plano ( <fg_bg>= 38) como vermelho ( <ANSI_color_code>= 196) e a cor de fundo ( <fg_bg>= 48) como preto ( <ANSI_color_code>= 0):

printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'

captura de tela3

É necessário redesenhar o prompt usando printf '\e[K'para que a cor de fundo seja aplicada a toda a linha e para que a cor de primeiro plano seja aplicada ao cursor:

captura de tela4

A mesma coisa pode ser feita usando valores RGB em vez de códigos de cores ANSI em um terminal compatível; dependendo se você deseja aplicar a cor ao primeiro plano ou ao plano de fundo, use um <fg_bg>valor de 38ou 48(respectivamente) no seguinte comando:

printf '\e[<fg_bg>;2;<R>;<G>;<B>m'

Por exemplo, para definir a cor de primeiro plano ( <fg_bg>= 38) como vermelho ( <R>= 255, <G>= 0, <B>= 0) e a cor de fundo ( <fg_bg>= 48) como preto ( <R>= 0, <G>= 0, <B>= 0):

printf '\e[38;2;255;0;0m Foreground color: red\n'
printf '\e[48;2;0;0;0m Background color: black\n'

captura de tela5

Novamente, é necessário redesenhar o prompt usando printf '\e[K'para que a cor de fundo seja aplicada a toda a linha e para que a cor de primeiro plano seja aplicada ao cursor:

captura de tela6

Usando qualquer um dos métodos, você pode usar printf '\e[0m'para redefinir todos os atributos:

captura de tela7

Responder2

Informações encontradas emesta página, excluindo a coluna de visualização:

As sequências são compostas pelo caractere Escape (geralmente representado por ” ^[” ou ” <Esc>”) seguido por alguns outros caracteres: ” ^[FCm” (onde FCé um dos números na lista com marcadores abaixo).

Em bash, o Esccódigo pode ser um dos seguintes:

  1. \e
  2. \033(octal)
  3. \x1B(hexadecimal)

Nota 1:A \e[0msequência " " remove todos os atributos (formatação e cores). Pode ser uma boa ideia adicioná-lo no final de cada texto colorido.

Nota 2:As cores de primeiro plano e de fundo podem variar, dependendo da configuração do terminal enem todas as cores são suportadas.

Definir/Redefinir

  • 0: redefinir/remover todos os atributos modificadores, de primeiro plano e de fundo:echo -e "\e[0mNormal Text"
  • 1: Negrito/Brilhante:echo -e "Normal \e[1mBold"
  • 2: Escuro:echo -e "Normal \e[2mDim"
  • 4: Sublinhado:echo -e "Normal \e[4mUnderlined"
  • 5: Pisca (não funciona na maioria dos terminais, exceto XTerm):echo -e "Normal \e[5mBlink"
  • 7: Reverter/Inverter:echo -e "Normal \e[7minverted"
  • 8: Oculto (útil para informações confidenciais):echo -e "Normal \e[8mHidden Input"
  • 21: Redefinir/remover negrito/brilhante:echo -e "Normal \e[1mBold \e[21mNormal"
  • 22: Redefinir/remover dim:echo -e "Normal \e[2mDim \e[22mNormal"
  • 24: Redefinir/remover sublinhado:echo -e "Normal \e[4mUnderlined \e[24mNormal"
  • 25: Redefinir/Remover piscar:echo -e "Normal \e[5mBlink \e[25mNormal"
  • 27: Redefinir/remover reversão/inversão:echo -e "Normal \e[7minverted \e[27mNormal"
  • 28: Redefinir/Remover oculto:echo -e "Normal \e[8mHidden \e[28mNormal"

Primeiro plano

  • 39: Padrão (geralmente verde, branco ou cinza claro):echo -e "Default \e[39mDefault"
  • 30: Preto: echo -e "Default \e[30mBlack"(melhor combinado com uma cor de fundo: echo -e "Default \e[30;107mBlack on white")
  • 31: Vermelho (não use com fundo verde)
  • 32: Verde
  • 33: Amarelo
  • 34: Azul
  • 35: Magenta/Roxo
  • 36: Ciano
  • 37: Cinza claro
  • 90: Cinza escuro
  • 91: Luz vermelha
  • 92: Luz verde
  • 93: Luz amarela
  • 94: Azul claro
  • 95: Magenta Claro/Rosa
  • 96: Ciano claro
  • 97: Branco

Fundo

  • 49: Cor de fundo padrão (geralmente preto ou azul)
  • 40: Preto
  • 41: Vermelho
  • 42: Verde
  • 43: Amarelo
  • 44: Azul
  • 45: Magenta/Roxo
  • 46: Ciano
  • 47: Cinza Claro (não use com primeiro plano branco)
  • 100: Cinza Escuro (não use com primeiro plano preto)
  • 101: Luz vermelha
  • 102: Verde Claro (não use com primeiro plano branco)
  • 103: Amarelo Claro (não use com primeiro plano branco)
  • 104: Azul Claro (não use com primeiro plano amarelo claro)
  • 105: Magenta Claro/Rosa (não use com primeiro plano claro)
  • 106: Ciano claro (não use com primeiro plano branco)
  • 107: Branco (não use com primeiro plano claro)

Para definir as cores de primeiro plano e de fundo de uma só vez, use o formulário echo -e "\e[S;FG;BGm". Por exemplo: echo -e "\e[1;97;41m"(primeiro plano branco em negrito sobre fundo vermelho)

Para 256 opções de cores, consulte a página de origem.

Responder3

Alterar as cores acidentalmente

Se for para alterar as cores acidentalmente:

Você pode usar odefinir prazocomando:

setterm -term linux -back <background_colour> -fore <text_color> -clear

entre as cores, você pode escolher (frente e fundo):

black|blue|green|cyan|red|magenta|yellow|white|default

para mais opções:

setterm -help

Alterar as configurações do seu perfil (cor)

No 14.04, não encontrei opção de usar dconfpara definir as cores ou o terminal. No entanto, você pode usargconftool

  • Primeiro você precisa obter o nome do seu perfil:

    gconftool-2 --get /apps/gnome-terminal/global/profile_list
    
  • Em seguida, para definir as cores do texto do seu perfil:

    gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/foreground_color" --type string "#FFFFFF"
    

    por exemplo, para definir a cor do texto como branco

    O mesmo com a cor de fundo:

    gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string "#000000"
    

    por exemplo, para definir a cor de fundo para preto

Alternativamente, para definir o nome da(s) cor(es), você pode simplesmente usar whiteou green, da mesma paleta do comando setterm, por exemplo:

gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string black

Responder4

Os vários códigos de cores usados ​​para obter resultados coloridos também podem ser usados ​​para obterfundos coloridos:

40  black
41  red
42  green
43  yellow
44  blue
45  magenta
46  cyan
47  white

Portanto, o seguinte comando deixa meu fundo vermelho:

$ echo -e '\e[0;41m'

Dependendo do shell, do emulador de terminal, etc., talvez você não precise do arquivo -e.

informação relacionada