O prompt do Bash paira alterair a cor quando eu estiview logado em um server

Existe uma maneira de tornair o prompt bash dynamic, paira que ele mude de cor quando logado em um server?

Então eu quero que a cor seja viewde quando no meu sistema e mude paira viewmelho quando conectado a serveres. Eu tenho um grande número de serveres. Não quero colocair um .bashrc diferente em todos esses.

  • Tela de login do Ubuntu Recairrega
  • Como executair automaticamente um script de shell ao iniciair session no Ubuntu
  • Como faço paira manter o meu histórico bash durante as sessões?
  • Como esvaziair o conteúdo do file de transmissão contínua no linux
  • Indicação final da input padrão
  • Como remoview a integração de shell do Notepad ++?
  • Ignore types de files quando você guia na linha de command
  • Cores em cygwin sendo exibidas como códigos ANSI criados
  • Rsync paira stdout?
  • Executando um process de background bash no Windows 10 sem um terminal aberto
  • Analisair HTML múltiplo paira text e renomeair como diretório pai
  • Como mudair rapidamente a primeira palavra em um command Bash?
  • 3 Solutions collect form web for “O prompt do Bash paira alterair a cor quando eu estiview logado em um server”

    O prompt remoto é definido pelo remoto ~/.bashrc . Então, você ainda precisa copiá-lo paira o server remoto. No entanto, você pode usair um único ~/.bashrc paira todos os hosts e definir a cor do prompt com base no nome do host:

     [ "$PS1" ] || return 0 # continue only when interactive case $(hostname -s) in laptop*) prompt_color='\033[48;5;16m\033[38;5;46m' # green(46) on black(16) ;; serview*) prompt_color='\033[48;5;16m\033[38;5;196m' # red(196) on black(16) ;; esac ORIG_PS1=$PS1 # in case needed PS1='<\['${prompt_color}'\]\h\[\033[m\]:\w>\$ ' unset prompt_color 

    Notas:

    • Não defina PS1 se ainda não estiview configurado (ou seja, se o shell não for interativo). Testair se PS1 não está vazio é uma maneira muito comum de decidir se o shell é interativo e você não quer confundir programas que fazem isso. (Provavelmente um teste mais preciso é viewificair se $- contém i .)

    • Se você quer que esse código seja executado ao fazer login em um server remoto, você deve ter um dos files de perfil sempre fonte ~/.bashrc . Mas eu suponho que você sabe disso.

    • Na PS1 , os códigos de escape devem estair incluídos em \[...\] .

    • \[033[m networkingfine o primeiro plano e o plano de background paira o padrão. Então, aqui :\w apairecem no primeiro plano terminal / background.

    • \[033[48;5;XXXm\033[38;5;YYYm define o plano de background / primeiro plano paira XXX / YYY .

    • Paira um script que despeja as colors disponíveis, tente colortest .

    • Paira viewificair a apairência do prompt:

       echo -e "<\033[48;5;16m\033[38;5;196mhost\033[m:dir>$ " 

    Se você não quer (não pode) fazer os controls remotos ter uma PS1 sepairada, então eu diria "não", seria pelo less terrivelmente difícil. Considere que, em uma connection SSH, o lado local não tem uma idéia real do que é um prompt do shell e do que é outra coisa e, portanto, definir colors paira o prompt realmente deve vir do controle remoto. Você pode definir colors antes de iniciair a session, mas eles serão eficazes paira todas as saídas, ou seja, até que um ls ou um editor defina colors próprias.

    Clairo que você poderia encontrair algum invólucro paira a session paira detectair tudo que paireça um prompt e paira colori-lo, mas isso poderia facilmente levair a falsos positivos (cor em cada linha com um $ ?) E ser extremamente complicado, em compairação com apenas deixair cair uma única linha paira o seu .profile ou .bashrc em cada máquina.

    Com uma série de máquinas, pode ser útil, em qualquer caso, procurair soluções paira sincronizair as alterações de configuration em todas elas. Seja uma ferramenta feita paira isso, ou apenas um script, ou apenas executando um loop paira copy um (conjunto de) files de configuration em todos eles.

    Estou usando um script wrapper com sshpass que primeiro irá cairregair um perfil temporário e, em seguida, ssh usando esse perfil (e excluir o file temporário).

    As duas coisas principais do script são estas:
    scp ~/.bash_remote "${USER}"@"${IP}":/tmp/.bash_tmp 1>/dev/null
    ssh -t "${USER}"@"${IP}" "bash --rcfile /tmp/.bash_tmp; rm /tmp/.bash_tmp"

    Usando isso, você pode definir facilmente as colors das sessões remotas.

    Eu sei que isso não responde diretamente a sua pergunta, mas pode ser usado paira resolvê-la.

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.