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): Prompt com variável PS1 no Ubuntu Linux 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  

 

Sobre Fábio dos Reis (1194 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Astronomia, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*