Como alterar as cores das fontes no terminal?

4

Eu sei como mudar a cor da fonte através das preferências, mas muda a cor de TODO o texto, como abaixo:

Oqueeuestouprocurandoéalgomaisassim:

Alguma dica?

    
por blazonix 08.06.2014 / 08:20

3 respostas

3

Muitos terminais unix podem reconhecer alguns (mas geralmente não todos) códigos Ansi Escape

Assim, você pode usá-los (os que funcionam no seu terminal) para alterar a exibição conforme necessário.

Um exemplo muito simples (eu uso o printf como ele é portátil em muitos shells diferentes (e antigos!)):

export _norm_="$(printf '3[0m')" #reset "everything" to normal
export _bold_="$(printf '3[1m')"   #set bold
export _rred_="$(printf '3[0;1;5;31m')" #"reverse red"
echo "This is an ${_rred_}ERROR${_norm_} and this is ${_bold_}A WARNING${_norm_}"

Por favor, não estes podem variar dependendo do tipo de terminal (TERM = ...), e do programa que você conecta com aquela máquina (mais notavelmente: reverse pode ficar "piscando" quando usar algum terminal Windows como F- seguro em vez de Putty, por exemplo ..)

Em outras palavras: isso não é totalmente portátil e depende de muitas coisas. Mas "negrito" está sempre funcionando. "reverso" é mais propenso a ser dependente do terminal.

tput também é melhor para usar, já que está tomando cuidado para descobrir a sequência adequada para o seu terminal, mas nem sempre está disponível (não em máquinas antigas, por exemplo)

    
por 08.06.2014 / 10:45
1

Como Olivier Dulac disse, você precisa dos códigos de escape ANSI, consulte Dicas de Bash: Cores e formatação

para detalhes.

    
por 23.06.2014 / 03:02
-1
sudo dpkg-reconfigure console-setup 
    
por 26.04.2017 / 15:21