Post

Como Personalizar o PS1 no Bash

Como Personalizar o PS1 no Bash

Sumário

  1. Editando o .bashrc
  2. Personalizando o PS1
  3. Aplicar e Verificar a Personalização
  4. Dicas Extras:

Personalização do PS1 no .bashrc

O PS1 é uma variável do shell que define como o prompt do terminal será exibido. Com o PS1, você pode modificar a aparência do seu terminal, incluindo informações úteis como o nome de usuário, o nome da máquina (hostname), o diretório atual, e até personalizar as cores.

Este tutorial vai mostrar como personalizar o PS1 em sistemas Debian, Ubuntu e Oracle Linux. Vamos editar o arquivo .bashrc, que controla as configurações de shell para cada sessão do terminal.

Explicação Básica das Variáveis do PS1

Aqui estão algumas das variáveis especiais usadas no PS1:

  • \u: Nome do usuário.
  • \h: Nome do host (a máquina onde você está logado).
  • \w: Caminho do diretório atual.
  • \W: Nome da última pasta no caminho (caminho curto).
  • !: Número do comando no histórico.
  • \d: Exibe a data (Dia da Semana Mês Dia).
  • \t: Exibe a hora no formato HH:MM:SS.
  • $: Exibe $ para usuários normais e # para o root.

Você pode combinar essas variáveis para personalizar o PS1, além de usar códigos de cores ANSI para destacar as informações visualmente.


Parte 1: Editando o .bashrc

Passo 1: Localizar o arquivo .bashrc

O arquivo .bashrc está localizado no diretório home de cada usuário e controla as configurações de cada sessão do terminal. Para localizá-lo, siga estas etapas:

  1. Abra o terminal e navegue até o diretório home do usuário:
    1
    
    cd ~
    
  2. Verifique se o arquivo .bashrc está presente. Use o comando:
    1
    
    ls -a
    

    O arquivo .bashrc deve aparecer na listagem. Caso não esteja presente, você pode criá-lo manualmente com o comando:

    1
    
    touch .bashrc
    

Passo 2: Abrir o arquivo .bashrc para edição

Você pode abrir o arquivo .bashrc com qualquer editor de texto no terminal:

  • Para abrir com o nano:
    1
    
     nano .bashrc
    
  • Para abrir com o vim:
    1
    
     vim .bashrc
    

Passo 3: Localizar ou adicionar a linha do PS1

Dentro do arquivo .bashrc, procure por uma linha que comece com:

1
PS1='...'

Se você não encontrar uma linha com o PS1, adicione-a ao final do arquivo. Isso permitirá que você defina a personalização do prompt conforme desejado.


Parte 2: Personalizando o PS1

Agora que você já sabe onde localizar e editar o arquivo .bashrc, vamos explorar diferentes formas de personalizar o PS1 com cores e variáveis úteis.

Você pode usar códigos de cores ANSI para tornar o prompt mais visual, facilitando a identificação rápida de informações como o usuário, hostname e diretório. Aqui estão alguns dos códigos de cores ANSI mais comuns que você pode usar:

Códigos de Cores ANSI:

  • \e[00;30m: Preto
  • \e[00;31m: Vermelho
  • \e[00;32m: Verde
  • \e[00;33m: Amarelo
  • \e[00;34m: Azul
  • \e[00;35m: Magenta
  • \e[00;36m: Ciano
  • \e[00;37m: Branco
  • \e[01;XXm: Versão “forte” da cor (mais brilhante)

Agora vamos ver como combinar essas cores com as variáveis do PS1.


Exemplos de PS1 Personalizados

A seguir, temos vários exemplos de PS1 personalizados, com diferentes combinações de cores e variáveis para que você possa escolher o estilo que mais gosta.

Opção 1: Vermelho, Verde e Amarelo

Descrição: Neste exemplo, o nome do usuário será exibido em vermelho, o hostname em verde e o diretório atual em amarelo.

  • Usuário: Vermelho
  • Hostname: Verde
  • Caminho: Amarelo
1
PS1='\[\e[01;31m\]\u\[\e[01;32m\]@\[\e[01;32m\]\h\[\e[01;33m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;33m\]]\[\e[01;31m\]\$\[\e[00m\] '
  • Explicação:
    • \[\e[01;31m\]: Muda a cor para vermelho (para o nome do usuário).
    • \u: Nome do usuário.
    • \[\e[01;32m\]: Muda a cor para verde (para o nome do host).
    • \h: Hostname.
    • \[\e[01;33m\]: Muda a cor para amarelo (para o caminho).
    • \w: Caminho do diretório atual.
    • \[\e[00m\]: Reseta as cores para o padrão.

Opção 2: Azul, Ciano e Branco

Descrição: Este exemplo utiliza azul para o nome do usuário, ciano para o hostname e branco para o diretório.

  • Usuário: Azul
  • Hostname: Ciano
  • Caminho: Branco
1
PS1='\[\e[01;34m\]\u\[\e[01;36m\]@\[\e[01;36m\]\h\[\e[01;37m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;36m\]]\[\e[01;34m\]\$\[\e[00m\] '
  • Explicação:
    • \[\e[01;34m\]: Muda a cor para azul (para o nome do usuário).
    • \[\e[01;36m\]: Muda a cor para ciano (hostname).
    • \[\e[01;37m\]: Muda a cor para branco (para o caminho).

Opção 3: Data, Hora e Cores Alternadas

Neste exemplo, vamos incluir a data e a hora no prompt, além de usar cores alternadas.

  • Usuário: Vermelho
  • Hostname: Verde
  • Caminho: Azul
  • Data e Hora: Amarelo
1
PS1='\[\e[01;31m\]\u\[\e[01;32m\]@\[\e[01;32m\]\h\[\e[01;33m\] \d \t \[\e[01;34m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;34m\]]\[\e[01;31m\]\$\[\e[00m\] '
  • Explicação:
    • \d: Exibe a data atual (formato: “Dia da semana Mês Dia”).
    • \t: Exibe a hora no formato HH:MM:SS.
    • \[\e[01;31m\]: Usuário em vermelho.
    • \[\e[01;32m\]: Hostname em verde.
    • \[\e[01;33m\]: Data e hora em amarelo.
    • \[\e[01;34m\]: Diretório em azul.

Opção 4: Número do Comando e Caminho Curto

Aqui, exibimos o número do comando (o histórico de comandos) e o caminho curto no prompt.

  • Usuário: Ciano
  • Hostname: Magenta
  • Número do Comando: Amarelo
  • Caminho Curto: Verde
1
PS1='\[\e[01;36m\]\u\[\e[01;35m\]@\[\e[01;35m\]\h\[\e[01;33m\] \! \[\e[01;32m\][\W]\[\e[01;36m\]\$\[\e[00m\] '
  • Explicação:
    • \!: Exibe o número do comando atual no histórico.
    • \W: Mostra o diretório atual, mas apenas o nome da última pasta (caminho curto).
    • \[\e[01;36m\]: Usuário em ciano.
    • \[\e[01;35m\]: Hostname em magenta.
    • \[\e[01;33m\]: Número do comando em amarelo.
    • \[\e[01;32m\]: Caminho curto em verde.

Opção 5: Hostname com IP, Diretório Completo

Aqui adicionamos o endereço IP do host e usamos o caminho completo do diretório.

  • Usuário: Branco
  • Hostname com IP: Verde
  • Caminho Completo: Ciano
1
PS1='\[\e[01;37m\]\u@\[\e[01;32m\]\h ($(hostname -I | awk "{print \$1}")) \[\e[01;36m\][\w]\[\e[01;37m\]\$\[\e[00m\] '
  • Explicação:
    • $(hostname -I | awk "{print \$1}"): Comando para exibir o IP do host.
    • \w: Mostra o diretório completo.
    • \[\e[01;37m\]: Usuário em branco.
    • \[\e[01;32m\]: Hostname com IP em verde.
    • \[\e[01;36m\]: Caminho completo em ciano.

Outras combinações de cores

1. Combinação Azul e Verde
1
PS1='\[\e[01;34m\]\u\[\e[01;32m\]@\[\e[01;34m\]\h\[\e[01;36m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;36m\]]\[\e[01;34m\]\$\[\e[00m\] '
  • Usuário: Azul claro
  • Host: Verde
  • Caminho: Azul claro
  • Prompt ($): Azul claro
2. Combinação Amarela e Magenta
1
PS1='\[\e[01;33m\]\u\[\e[01;35m\]@\[\e[01;35m\]\h\[\e[01;36m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;36m\]]\[\e[01;33m\]\$\[\e[00m\] '
  • Usuário: Amarelo
  • Host: Magenta
  • Caminho: Ciano claro
  • Prompt ($): Amarelo
3. Combinação Verde e Azul
1
PS1='\[\e[01;32m\]\u\[\e[01;34m\]@\[\e[01;34m\]\h\[\e[01;33m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;33m\]]\[\e[01;32m\]\$\[\e[00m\] '
  • Usuário: Verde claro
  • Host: Azul claro
  • Caminho: Amarelo
  • Prompt ($): Verde claro
4. Combinação Ciano e Vermelho
1
PS1='\[\e[01;36m\]\u\[\e[01;31m\]@\[\e[01;31m\]\h\[\e[01;33m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;33m\]]\[\e[01;36m\]\$\[\e[00m\] '
  • Usuário: Ciano claro
  • Host: Vermelho claro
  • Caminho: Amarelo
  • Prompt ($): Ciano claro
5. Combinação Branco e Roxo
1
PS1='\[\e[01;37m\]\u\[\e[01;35m\]@\[\e[01;35m\]\h\[\e[01;36m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;36m\]]\[\e[01;37m\]\$\[\e[00m\] '
  • Usuário: Branco
  • Host: Roxo
  • Caminho: Ciano claro
  • Prompt ($): Branco
6. Combinação Vermelho e Branco
1
PS1='\[\e[01;31m\]\u\[\e[01;37m\]@\[\e[01;37m\]\h\[\e[01;32m\][\[\e[00m\]\[\e[01;33m\]\w\[\e[01;32m\]]\[\e[01;31m\]\$\[\e[00m\] '
  • Usuário: Vermelho claro
  • Host: Branco
  • Caminho: Verde claro
  • Prompt ($): Vermelho claro
7. Combinação Azul e Amarelo
1
PS1='\[\e[01;34m\]\u\[\e[01;33m\]@\[\e[01;33m\]\h\[\e[01;35m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;35m\]]\[\e[01;34m\]\$\[\e[00m\] '
  • Usuário: Azul claro
  • Host: Amarelo
  • Caminho: Magenta claro
  • Prompt ($): Azul claro
8. Combinação Verde e Roxo
1
PS1='\[\e[01;32m\]\u\[\e[01;35m\]@\[\e[01;35m\]\h\[\e[01;34m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;34m\]]\[\e[01;32m\]\$\[\e[00m\] '
  • Usuário: Verde claro
  • Host: Roxo claro
  • Caminho: Azul claro
  • Prompt ($): Verde claro
9. Combinação Amarelo e Verde
1
PS1='\[\e[01;33m\]\u\[\e[01;32m\]@\[\e[01;32m\]\h\[\e[01;31m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;31m\]]\[\e[01;33m\]\$\[\e[00m\] '
  • Usuário: Amarelo claro
  • Host: Verde claro
  • Caminho: Vermelho claro
  • Prompt ($): Amarelo claro
10. Combinação Ciano e Branco
1
PS1='\[\e[01;36m\]\u\[\e[01;37m\]@\[\e[01;37m\]\h\[\e[01;33m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;33m\]]\[\e[01;36m\]\$\[\e[00m\] '
  • Usuário: Ciano claro
  • Host: Branco
  • Caminho: Amarelo claro
  • Prompt ($): Ciano claro
11. Combinação Preto e Verde
1
PS1='\[\e[01;30m\]\u\[\e[01;32m\]@\[\e[01;32m\]\h\[\e[01;33m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;33m\]]\[\e[01;30m\]\$\[\e[00m\] '
  • Usuário: Preto
  • Host: Verde claro
  • Caminho: Amarelo claro
  • Prompt ($): Preto
12. Combinação Rosa e Amarelo
1
PS1='\[\e[01;35m\]\u\[\e[01;33m\]@\[\e[01;33m\]\h\[\e[01;36m\][\[\e[00m\]\[\e[01;37m\]\w\[\e[01;36m\]]\[\e[01;35m\]\$\[\e[00m\] '
  • Usuário: Magenta claro
  • Host: Amarelo
  • Caminho: Ciano claro
  • Prompt ($): Magenta claro

Parte 3: Aplicar e Verificar a Personalização

Depois de personalizar o PS1 no arquivo .bashrc, é necessário aplicar as mudanças e verificar se o prompt foi atualizado corretamente. Aqui estão os últimos passos para garantir que tudo funcione como esperado.

Passo 4: Salvar as mudanças e sair do editor

Depois de fazer as modificações no .bashrc, você precisa salvar o arquivo e sair do editor:

  • Se estiver usando o nano:
    • Pressione CTRL + O para salvar as mudanças.
    • Depois, pressione CTRL + X para sair do editor.
  • Se estiver usando o vim:
    • Pressione ESC para sair do modo de inserção.
    • Em seguida, digite :wq para salvar e sair do editor.

Passo 5: Aplicar as mudanças

As mudanças feitas no .bashrc não são aplicadas imediatamente. Para ativá-las sem precisar reiniciar o terminal, execute o seguinte comando:

1
source ~/.bashrc

Este comando recarrega o arquivo .bashrc e aplica as novas configurações do PS1. Agora, você verá o novo prompt no terminal.

Passo 6: Verificar o novo PS1

Após rodar o comando source ~/.bashrc, o seu prompt deve refletir as mudanças feitas. Verifique se o esquema de cores e as variáveis estão exibidas conforme esperado.

Caso não veja as alterações, revise a linha do PS1 no arquivo .bashrc para verificar se há algum erro de sintaxe ou caracteres faltando, como colchetes \[ e \] que são necessários para delimitar as cores.


Dicas Extras:

Aqui estão algumas dicas adicionais que podem ser úteis ao personalizar o PS1:

  1. Testar Variações de Cores:
    • Para testar diferentes combinações de cores, basta alterar os códigos ANSI no PS1. Lembre-se sempre de rodar source ~/.bashrc após cada modificação para que as mudanças sejam aplicadas imediatamente.
    • Você pode também usar ferramentas online para visualizar os códigos de cores ANSI.
  2. Reverter as Mudanças:
    • Se quiser reverter para o prompt padrão, você pode comentar a linha do PS1 no arquivo .bashrc. Basta adicionar um # no início da linha:
      1
      
      # PS1='...'
      

      Depois, aplique as mudanças novamente com:

      1
      
      source ~/.bashrc
      

      Isso desativa temporariamente o PS1 personalizado.

  3. Personalizar Diferentes Ambientes:
    • Uma boa prática é usar diferentes cores de PS1 em servidores ou ambientes distintos, como desenvolvimento e produção. Isso ajuda a evitar confusão entre terminais e pode prevenir erros críticos, como comandos executados no ambiente errado.
  4. Comandos Temporários:
    • Se quiser testar uma personalização temporária do PS1 sem alterar o .bashrc, basta digitar a linha do PS1 diretamente no terminal:
      1
      
      PS1='\[\e[01;32m\]\u@\h:\[\e[01;34m\]\w\[\e[00m\]\$ '
      

      Essa alteração é temporária e será aplicada apenas à sessão atual do terminal.


Conclusão

Personalizar o PS1 permite criar um ambiente de terminal mais visual e informativo. Com algumas mudanças simples no arquivo .bashrc, você pode destacar o nome do usuário, hostname, diretório atual e muito mais, utilizando cores e variáveis úteis.

Com as dicas fornecidas, você pode ajustar o PS1 para atender às suas necessidades específicas e até mesmo diferenciar entre terminais de diferentes ambientes.

Se você quiser explorar mais sobre personalizações avançadas do terminal, como adicionar scripts ao prompt, personalizar o comportamento do bash ou outros detalhes, existem muitas outras opções a explorar!


This post is licensed under CC BY 4.0 by the author.