linux unix cli command prompt by elias praciano

Como personalizar o prompt da linha de comando no UNIX/Linux — parte 1

Usuários Linux adoram personalizar seus sistemas e isto não é segredo.
Ao usar uma interface gráfica (GUI), isto fica fácil, com a escolha de um tema.
Mas, quando estamos usando um terminal (CLI), como fazer para obter um visual mais agradável e único?

Quando você precisa acessar outros servidores via ssh (às vezes, simultaneamente), pode ver utilidade em que cada um tenha um terminal com visual diferenciado. Desta forma, você sempre saberá em que servidor exatamente está executando algum comando.

Como o assunto pode ser um pouco extenso — calma, que não é nada complicado! 😉 — achei interessante dividir em mais de um post, para tornar a leitura mais agradável e passar o máximo de informações.
Há muitas maneiras de personalizar o seu console, no Linux/UNIX. Por este motivo, este texto vai se concentrar no command prompt, que é a parte que é exibida antes do cursor piscante.


Clique nos links, no decorrer do texto, para obter informações sobre algum assunto específico. A tag emulador de terminal, por exemplo, tem alguns textos que podem te interessar — não esqueça de dar uma olhada nas outras tags, no rodapé deste post, portanto!
fancy linux terminal
Nesta área, o sistema pode exibir uma série de informações, que você pode julgar importantes.
É possível exibir o nome do servidor ou host em que você está trabalhando, seu nome de usuário, a quantidade de processos em execução etc.
O limite é o bom senso — se você estender muito, vai acabar pecando pelo excesso.
Para mim, o mais importante, mesmo, é saber em que diretório precisamente estou executando algum comando.

Qual prompt de comando você quer alterar?

Caso você já não saiba, há vários command prompts possíveis, no Bash.
Veja a lista:

  • PS1 — os valores dados para este parâmetro são usados para determinar a aparência da principal string do prompt da linha de comando. Em algumas distribuições Linux/UNIX o valor padrão é “\s-\v\$ “.
  • PS2 — o valor padrão para a string do prompt secundário e “> “. Ele costuma aparecer quando é necessário complementar algum comando, dado na linha anterior.
    Digite echo " e tecle Enter, no seu terminal, para ver como é o seu PS2.
  • PS3 — é usado como prompt do comando select.
  • PS4 — o valor deste parâmetro é expandido, tal como o do PS1. Seu valor é imprimido na tela antes de cada comando que o bash exibe durante uma execution trace.
    O primeiro caractere do PS4 é replicado múltiplas vezes, de acordo com a necessidade, para indicar vários níveis. Seu valor padrão é “+”

Como você pode ver, os mais usados são o PS1 e o PS2. Os outros dois são bem raros para usuários comuns.
Neste artigo, vamos mostrar exemplos de configuração e uso do PS1.
Se quiser configurar os outros itens, basta seguir os mesmos procedimentos usados para configurar o PS1

Exemplos de prompt da linha de comando

Se quiser fazer uma experiência, agora, para alterar o seu prompt execute a seguinte linha de comando:

PS1="meu prompt -> "

e veja como ficou:

meu prompt -> 

Se quiser que ele fique com cara de Python Shell, use-o assim:

meu prompt -> PS1=" »»» "

»»»

Você pode inserir um Enter entre as aspas, para fazer uma mudança de linha — assim, você pode ter um prompt em 2 linhas ou mais. Para obter este mesmo efeito, pode usar o caractere tradicional de mudança de linha: \n. Veja como fica:

PS1=" digite um comando, abaixo:\n --> "

ps1 prompt command
Como você pode ver, quando o sistema encontra os caracteres \n, ele sabe que deve mudar de linha. Estes não serão impressos.
O Bash permite inserir diversos outros tipos de “caracteres não-imprimíveis” dentro do conteúdo de PS1. Experimente inserir o \a para obter um aviso sonoro no prompt, por exemplo.
Na próxima parte deste artigo, vamos mostrar como inserir informações básicas do sistema no prompt da linha de comando.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia. Fã de séries, como "Rick and Morty" e "BoJack Horseman". Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *