DEV Community

Patrícia Villela for Feministech

Posted on

11 4

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!

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more