Como personalizar cores e conteúdo do Bash no prompt de terminal Linux

Como personalizar cores e conteúdo do Bash no prompt de terminal Linux

Hoje, Bash é o shell padrão na maioria (se não todas) distribuições Linux modernas. No entanto, você deve ter notado que a cor do texto no terminal e o conteúdo imediato podem ser diferentes de uma distro para outra.

Leia sugerida: 5 mais frequentemente usados ​​conchas de código aberto para Linux

Caso você esteja se perguntando como personalizá -lo para uma melhor acessibilidade ou mero capricho, continue lendo - neste artigo, explicaremos como fazer exatamente isso.

A variável de ambiente PS1 Bash

O prompt de comando e a aparência do terminal são regidos por uma variável de ambiente chamada Ps1. De acordo com Bash página de homem, Ps1 Representa a sequência de prompt Primeiro que é exibida quando o shell está pronto para ler um comando.

O conteúdo permitido em Ps1 consiste em vários caracteres especiais escassos de barragem cujo significado está listado no Solicitando seção da página do homem.

Para ilustrar, vamos exibir o conteúdo atual de Ps1 Em nosso sistema (isso pode ser um pouco diferente no seu caso):

$ eco $ ps1 [\ [email protegido] \ h \ w] $ 

Agora vamos explicar como personalizar Ps1 De acordo com nossas necessidades.

Personalizando o formato PS1

De acordo com a seção de promoção na página do homem, esse é o significado de cada personagem especial:

  1. \você: o nome de usuário do usuário atual.
  2. \ h: o nome de anfitrião até o primeiro ponto (.) no nome de domínio totalmente qualificado.
  3. \C: o nome de base do diretório de trabalho atual, com $ Home abreviado com um tilde (~).
  4. \ $: Se o usuário atual for root, exibir #, $ de outra forma.

Por exemplo, podemos querer considerar adicionar \! Se quisermos exibir o número de histórico do comando atual, ou \ H Se quisermos exibir o FQDN em vez do nome do servidor curto.

No exemplo seguinte, importaremos ambos para o nosso ambiente atual, executando este comando:

Ps1 = "[\ [email protegido] \ h \ w \!] $ " 

Quando você pressiona Digitar Você verá que o rápido conteúdo muda como mostrado abaixo. Compare o prompt antes e depois de executar o comando acima:

Personalize o prompt de terminal Linux PS1

Agora vamos dar um passo adiante e mudar a cor do do utilizador e nome de anfitrião no prompt de comando - tanto o texto quanto o fundo circundante.

Na verdade, podemos personalizar 3 aspectos do prompt:

Formato de texto Coloração em primeiro plano (texto) Cor de fundo
0: texto normal 30: preto 40: preto
1: negrito 31: vermelho 41: vermelho
4: texto sublinhado 32: Verde 42: Verde
33: Amarelo 43: amarelo
34: azul 44: azul
35: roxo 45: roxo
36: CIAN 46: CIAN
37: branco 47: branco

Vamos usar o \ e personagem especial no início e um m no final para indicar que o que se segue é uma sequência de cores.

Nesta sequência, os três valores (fundo, formatar, e primeiro plano) são separados por vírgulas (se nenhum valor for dado, o padrão será assumido).

Leia sugerida: Aprenda script de shell bash no Linux

Além disso, como os intervalos de valor são diferentes, não importa qual (fundo, formatar, ou primeiro plano) você especifica primeiro.

Por exemplo, o seguinte Ps1 fará com que o aviso apareça em amarelo texto sublinhado com vermelho fundo:

Ps1 ="\ e [41; 4; 33m [\ [email protegido] \ h \ w] $" 
Alterar o prompt de cor do terminal Linux PS1

Por mais bom que pareça, essa personalização durará apenas para a sessão atual do usuário. Se você fechar seu terminal ou sair da sessão, as alterações serão perdidas.

Para tornar essas mudanças permanentes, você terá que adicionar a seguinte linha a ~/.Bashrc ou ~/.Bash_profile Dependendo da sua distribuição:

Ps1 ="\ e [41; 4; 33m [\ [email protegido] \ h \ w] $" 

Sinta -se à vontade para brincar com as cores para encontrar o que funciona melhor para você.

Resumo

Neste artigo, explicamos como personalizar a cor e o conteúdo do seu prompt de bash. Se você tiver dúvidas ou sugestões sobre esta postagem, sinta -se à vontade para usar o formulário de comentário abaixo para entrar em contato. Estamos ansiosos para ouvir de você!