DEV Community

Patrícia Villela for Feministech

Posted on

Como customizar o prompt do seu terminal

Salve, salve, camaradas!
Para quem usa Linux ou Mac o terminal é uma visão muito comum e familiar. Estamos acostumados a ver coisas como essa:

patricia@patricia-PC:~$
Enter fullscreen mode Exit fullscreen mode

Comum, certo? Nome do usuário, nome do host e diretório atual. No entanto, você sabia que seu prompt poderia ser assim?

Se liga no comando muito louco que patricia vai rodar agora! > 
Enter fullscreen mode Exit fullscreen mode

Se você não sabia, vem comigo!

Variáveis de ambiente que controlam o prompt

Há 4 variáveis de ambiente que configuram o prompt

  • PS1: Essa variável vai definir o que vai aparecer no prompt padrão.
  • PS2: Essa variável vai definir o que vai aparecer quando seu comando tiver múltiplas linhas (por exemplo num comando for).
  • PS3: Essa variável vai definir o que vai aparecer quando você usar o comando select. Não se preocupe muito com essa.
  • PS4: Essa variável vai definir o que vai ser mostrado quando o bash for instruído a mostrar o stack trace de um comando. Não se preocupe muito com essa também.

Dessas variáveis, as que mais serão usadas são as PS1 e PS2, e a primeira muito mais que a segunda.

Bora customizar??

Customizando o prompt

Em primeiro lugar, não fique com medo de "zoar" seu prompt. Qualquer mudança que você fizer é reversível.

Agora que estamos sem medo, vamos colocar a data atual no prompt.

patricia@patricia-PC:~$ PS1="\t $PS1"
20:00:05 patricia@patricia-PC:~$
Enter fullscreen mode Exit fullscreen mode

Que que aconteceu aí?
Na primeira linha a gente modifica a variável PS1 para receber o valor \t $PS1. Esse $PS1 será expandido para o prompt atual, que no meu caso é \u@\h:\w\$. Então o prompt vai ficar \t \u@\h:\w\$.
Agora, como que \t virou a data? Essa é uma "variável" interna usada pro prompt.

  • \u será expandido para o nome do usuário
  • \h será expandido para o nome do host (até o primeiro ".")
  • \w será expandido para o diretório atual (substituindo /home/${USER} por ~)
  • \$ será expandido para $ quando o usuário for comum e # quando o usuário for o "root"
  • \t será expandido para a data no formato HH:MM:SS (formato de 24 horas)

Se você não gostar do que você fez, você pode ou tentar reconstruir o PS1 anterior ou simplesmente sair e voltar para o terminal. (Se você estiver usando um emulador de terminal, basta abrir uma outra aba ou fechar e abrir de novo).

Aqui tem uma referência boa para ler mais sobre essas configurações, mas é bastante extensa e densa, então leia com coragem. Essa sessão e essa sessão são as mais importantes!

Se quiserem, postem seus PS1's aqui embaixo nos comentários! (se mudarem PS2, PS3 ou PS4 mandem também!)

Um beijo!

Top comments (0)