Como configurar o prompt do terminal com a variável de ambiente PS1 no Linux
Como configurar o prompt do terminal com a variável de ambiente PS1
Quando trabalhamos com o terminal no Linux, digitamos os comandos após um prompt, que geralmente traz informações sobre o usuário logado, o nome do host e o diretório atual. Muitas vezes, queremos que esse prompt exiba informações diferentes desse padrão, como por exemplo a data, hora, textos fixos, ou ainda queremos que o prompt seja exibido em cores diferenciadas para melhor contraste. Podemos realizar essa configuração por meio da variável de ambiente PS1. PS1 significa “Prompt String One“, ou seja, a primeira string do prompt, que é a sequência de termos que visualizamos na linha de comandos. Trata-se de uma variável de ambiente que controla o formato do prompt padrão da linha de comandos.
Visualizando o conteúdo de PS1
Podemos visualizar as configurações atuais do prompt usando o comando echo:
echo $PS1
Veja a saída desse comando executada em meu sistema (Ubuntu 16.04): No meu prompt é exibido o nome do usuário logado, o nome do computador (hostname), e a hora atual, tudo isso na cor ciano. Podemos alterar facilmente o formato do prompt utilizando o comando export e códigos específicos que determinam quais elementos devem ser exibidos. A lista a seguir mostra os principais códigos empregados na configuração da variável de ambiente PS1:
Códigos para configuração da variável de ambiente PS1
Código | Significado |
\u | Nome de usuário |
\h | Hostname |
\w | Caminho completo do diretório atual |
\t | hora atual, no formato hh:mm:ss |
\@ | hora atual, no formato AM/PM |
\d | Data, no formato dia da semana mês dia |
\$ | mostrar $ ou #, dependendo do UID efetivo do usuário logado ($ = usuário comum; # = usuário root) |
\e | Caracter de escape ASCII (o mesmo que \033) |
\j | Número de jobs gerenciados atualmente pelo shell |
\n | Caractere ASCII newline |
\r | Caractere ASCII retorno de carro |
\v | Versão do bash |
\[ | inicia uma sequência de caracteres não-imprimíveis |
\] | finaliza uma sequência de caracteres não-imprimíveis |
\a | Caractere de bip |
\\ | Barra invertida |
Todos os caracteres especiais do prompt se iniciam com uma barra invertida \. Esse caractere diferencia um caractere do prompt de texto normal exibido no prompt. Em uma variável de ambiente PS1 também é possível executar qualquer comando do Linux, bastando para isso especificá-lo no formato $(comando). Por exemplo, para exibir a hora atual no prompt:
export PS1="\u@\h \$(date +%k:%M:%S)> "
ou ainda, usando uma opção existente para esse caso:
export PS1="\u@\h \t> "
Exemplos de configuração do prompt
1 – Exibindo no prompt apenas o nome do usuário e o hostname da máquina:
export PS1="\u@\h> "
Note que adicionei um espaço no final do comando, antes de fechar as aspas. Isso é para evitar que o prompt fique “colado” aos comandos que emitiremos no terminal durante seu uso. 2 – Prompt deve exibir o nome do usuário logado, caminho completo do diretório atual, mais a data com dia da semana, mês e dia do mês:
export PS1="\u \w \d> "
3 – Usando cores no prompt. Veja o exemplo a seguir:
export PS1="\[\e[0;33m\]\u@\h \w> \[\e[m\]"
Cada parte do exemplo é explicada a seguir: \e[ – Indica o início do prompt colorido. Podemos usar também o código \033[ 0;33m – Código da cor. \e[m – Indica o final do prompt colorido. Para usar outras cores no prompt, consulte a tabela de códigos de cores seguinte:
Cor | Código |
Preto | 0;30 |
Vermelho | 0;31 |
Verde | 0;32 |
Amarelo | 0;33 |
Azul | 0;34 |
Roxo | 0;35 |
Ciano | 0;36 |
Para cores escuras, troque o 0 por 1. 4 – Alterando a cor de fundo do prompt: Podemos alterar a cor de fundo do prompt especificando \e[{código_cor}m como neste exemplo (fundo verde):
$ export PS1="\[\e[42m\]\u@\h \w> \[\e[m\]"
A lista a seguir mostra os códigos de cores de fundo que podemos usar no prompt:
Cor | Código |
Cinza escuro | \e[40m |
Vermelho | \e[41m |
Verde | \e[42m |
Amarelo | \e[43m |
Azul | \e[44m |
Roxo | \e[45m |
Ciano | \e[46m |
Cinza claro | \e[47m |
5 – Ajustando cor do texto e cor do fundo no prompt:
export PS1="\[\e[0;32m\e[41m\]\u@\h \t> \[\e[m\]"
6 – Usando cores diferentes: nome de usuário em uma cor e nome de host com outra:
export PS1="\[\e[0;32m\]\u@\[\e[1;33m\]\h> \[\e[m\]"
Este exemplo configura o nome do usuário em verde e o hostname em amarelo. Quando a variável de ambiente PS1 é alterada, as novas definições de prompt somente duram até o final da sessão do shell. Quando um novo shell é iniciado, o prompt padrão é recarregado. Para tornar as mudanças permanentes, é necessário editar um arquivo de configuração como o .bashrc, que estudaremos na parte 02 deste tutorial.
Próximo: Tornando as mudanças no prompt permanentes
Escreva um comentário