11Jul

Como você faz o prompt do Bash Alterar as cores quando logado em um servidor?

Se você acessar vários servidores ao longo do dia do trabalho, então será capaz de dizer qual você está trabalhando com um resumo baseado em um esquema de cores pode ser muito útil. O SuperUser Q & A Post ajuda um leitor a alcançar um nirvana colorido em seu ambiente de trabalho.

Today's Question &A sessão de atendimento chega a cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento comunitário de sites Q & A.

A pergunta

SuperUser leitor nitins quer saber como fazer o Bash Prompt mudar as cores quando logado em um servidor:

Existe uma maneira de tornar o Bash Prompt dinâmico para que ele mude de cor quando eu estou logado em um servidor? Eu quero que a cor seja verde ao usar meu próprio sistema pessoal, mas mude para vermelho sempre que estiver conectado aos servidores. Eu tenho um grande número de servidores que eu acesse e não quero ter que colocar um diferente. bashrc em todos e cada um deles.

Como você faz o Bash Prompt mudar as cores quando logado em um servidor?

A Resposta

Colaborador SuperUser Matei David tem a resposta para nós:

Remote Bash Prompts são definidos pelo ~ /. bashrc remoto, então você ainda precisará copiá-lo para os servidores remotos. No entanto, você pode usar um único ~ /. bashrc para todos os hosts e definir a cor Bash Prompt com base no nome do host:

Notas

  • Não configure PS1 se ainda não estiver configurado( ou seja, se o shell não forinterativo).Testar para ver se PS1 é "não vazio" é uma maneira muito comum de descobrir se o shell é interativo e você não quer confundir programas que fazem isso( possivelmente, um teste mais preciso é verificar se $ - contém i ).
  • Se você deseja que esse código seja executado ao fazer login em um servidor remoto, você deve ter um dos arquivos de perfil sempre fonte ~ /. bashrc ( eu suponho que você sabe disso).
  • Em PS1 , os códigos de escape devem estar incluídos em \ [... \] .
  • \ [033 [m redefine o primeiro plano e o plano de fundo para seus padrões, então, aqui : \ w aparece no primeiro plano do terminal / fundo.
  • \ [033 [48; 5; XXXm \ 033 [38; 5; AAAA define o plano de fundo / primeiro plano para XXX / AAAA .
  • Para um script que despeja as cores disponíveis, tente colortest.
  • Para verificar e ver como o Bash Prompt se parece, use: echo -e "& lt; \ 033 [48; 5; 16m \ 033 [38; 5; 196mhost \ 033 [m: dir & gt; $"

Tem algopara adicionar a explicação? Som desligado nos comentários. Deseja ler mais respostas de outros usuários Tech-savvy Stack Exchange? Confira o tópico de discussão completo aqui.

Crédito de Imagem: Emx( Wikipedia)