Ao personalizar a cor dos caracteres do prompt (ou de shell), você a tornará mais legível. Se você adotar uma convenção de cores, você pode transmitir sentido de acordo com a cor, o que evita ter um prompt muito longa.
Você pode afixar o prompt em verde para a primeira máquina host e em azul para outra, ou então em verde se o sistema não foi trocado, em amarelo se ele é um pouco e em vermelho se quase todos os recursos são utilizados. Ou mais simplesmente, você escolhe todos os recursos para um prompt root, outro para uma MC ...
Duas técnicas são possíveis. A mais utilizada (mas não a mais eficaz) consiste em inserir caracteres de escape (eles tem uma significação especial pelo interpretador). A cadeia seguinte afixa o prompt em azul:
$ PS1="\[\033[0;34m\][\u@\h]\[\033[0m\]"
Este método sofre dois inconvenientes : sua sintaxe é pouco legível, então sujeita a erros de digitação, e ela só é utilizável se a janela do terminal suporta a seqüência de escape ANSI, o que não é o caso para muitos terminais, nem de softwares de emulação de terminais? Adote antes a técnica que se baseia tput.
Quando você colori o prompt (ou o shell) com tput, suas definições são portátil para outros emuladores de terminais tput sabe quais as seqüência de escape devem ser utilizadas, o que nos deixa livre desta busca enjoada.
$ BLUE=$ (tput setaf 4) $ BLACK=$ (tput setaf 0) $ PS1="\ [$BLUE\] \u@\h] \ [$BLACK\] "
Estudamos estas linhas:
A primeira linha de exemplos explora tput para definir uma variável que contém caracteres para forçar a cor do primeiro plano em Azul (para afixar os próximas caracteres).A segunda linha faz o mesmo para o preto. É inútil conhecer as seqüência para todos os terminais, pois tput gera um arquivo de correspondência das descrições para todos os terminais, arquivo que ele consulta para encontrar a seqüência apropriada para o terminal físico ou emulado. A terceira linha utiliza, enfim, as duas $BLUE e $BLACK na definição da variável de prompt $PS1.
Mas tput pode fazer bem mais que colorir os caracteres do prompt.
NB: Você pode afixar a lista completa pelos comandos man tput et man terminfo.
Tradução feita por Ana Spadari