Como personalizar cores e conteúdo do Bash no prompt do terminal Linux
Hoje, Bash é o shell padrão na maioria (se não em todas) das distribuições Linux modernas. No entanto, você deve ter notado que a cor do texto no terminal e o conteúdo do prompt podem ser diferentes de uma distribuição para outra.
Leitura sugerida: 5 shells de código aberto usados com mais frequência para Linux
Caso você esteja se perguntando como personalizar isso para melhor acessibilidade ou por mero capricho, continue lendo – neste artigo explicaremos como fazer exatamente isso.
A variável de ambiente PS1 Bash
O prompt de comando e a aparência do terminal são governados por uma variável de ambiente chamada PS1
. De acordo com a página de manual do Bash, PS1 representa a string de prompt primária que é exibida quando o shell está pronto para ler um comando.
O conteúdo permitido em PS1 consiste em vários caracteres especiais com escape de barra invertida, cujo significado está listado na seção PROMPTING da página de manual.
Para ilustrar, vamos exibir o conteúdo atual do PS1
em nosso sistema (isso pode ser um pouco diferente no seu caso):
echo $PS1
[\u@\h \W]$
Explicaremos agora como personalizar o PS1 de acordo com nossas necessidades.
Personalizando o formato PS1
De acordo com a seção PROMPTING na página de manual, este é o significado de cada caractere especial:
\u:
o nome de usuário do usuário atual.\h:
o nome do host até o primeiro ponto (.) no nome de domínio totalmente qualificado.\W:
o nome base do diretório de trabalho atual, com $HOME abreviado com um til (~).\$:
Se o usuário atual for root, exiba #, $ caso contrário.
Por exemplo, podemos considerar adicionar \!
se quisermos exibir o número do histórico do comando atual, ou \H
se quisermos exibir o FQDN em vez de o nome curto do servidor.
No exemplo a seguir, importaremos ambos para nosso ambiente atual executando este comando:
PS1="[\u@\H \W \!]$"
Ao pressionar Enter você verá que o conteúdo do prompt muda conforme mostrado abaixo. Compare o prompt antes e depois de executar o comando acima:
Agora vamos dar um passo adiante e alterar a cor do usuário e do nome do host no prompt de comando – tanto o texto quanto o fundo ao redor.
Na verdade, podemos personalizar 3 aspectos do prompt:
Text Format | Foreground (text) color | Background color |
0: normal text | 30: Black | 40: Black |
1: bold | 31: Red | 41: Red |
4: Underlined text | 32: Green | 42: Green |
33: Yellow | 43: Yellow | |
34: Blue | 44: Blue | |
35: Purple | 45: Purple | |
36: Cyan | 46: Cyan | |
37: White | 47: White |
Usaremos o caractere especial \e
no início e um m
no final para indicar que o que se segue é uma sequência de cores.
Nesta sequência, os três valores (background, format e foreground) são separados por vírgulas (se nenhum valor for fornecido, o padrão será assumido) .
Leitura sugerida: Aprenda Bash Shell Scripting no Linux
Além disso, como os intervalos de valores são diferentes, não importa qual deles (plano de fundo, formato ou primeiro plano) você especifica primeiro.
Por exemplo, o seguinte PS1
fará com que o prompt apareça em texto sublinhado amarelo com fundo vermelho:
PS1="\e[41;4;33m[\u@\h \W]$ "
Por melhor que pareça, essa personalização durará apenas durante a sessão atual do usuário. Se você fechar seu terminal ou sair da sessão, as alterações serão perdidas.
Para tornar essas alterações permanentes, você terá que adicionar a seguinte linha a ~/.bashrc
ou ~/.bash_profile
dependendo da sua distribuição:
PS1="\e[41;4;33m[\u@\h \W]$ "
Sinta-se à vontade para brincar com as cores para descobrir o que funciona melhor para você.
Resumo
Neste artigo, explicamos como personalizar a cor e o conteúdo do prompt do Bash. Se você tiver dúvidas ou sugestões sobre esta postagem, sinta-se à vontade para usar o formulário de comentários abaixo para entrar em contato conosco. Estamos ansiosos para ouvir de você!