Alterar a cor do terminal com base na sessão SSH

28

É possível alterar automaticamente a cor do terminal com base em qual servidor estou conectado através do SSH?

Por exemplo, quando eu ligo o terminal, ele tem as cores padrão definidas no meu perfil. Então eu ssh para ssh.example.com e a cor muda para preto e verde. Então saio da sessão e a cor volta ao tema padrão.

Eu sei que você poderia fazer isso manualmente. Mas estou procurando uma maneira automatizada.

karlingen
fonte

Respostas:

23

Sim, você pode alterar o PS1valor no .bashrcarquivo em todos os nomes de host com os quais está se conectando ssh.

Veja esta resposta para ver como costumizar como você gosta do bash alterando o PS1valor.

ssh colorido

Na minha máquina (radu @ Radu), tenho .bashrc:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35m\]\u@\h\[\033[00m\]:\[\033[01;34m\] \w\[\033[01;37m\] > '

Na máquina hospedada (radu @ ubuntu), tenho:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35;40m\]\u@ubuntu\[\033[00;40m\]:\[\033[01;34;40m\] \w\[\033[01;32;40m\] > '
Radu Rădeanu
fonte
5
Como exatamente você conseguiu mudar a cor de fundo?
Chrisg86 11/03/2015
Os códigos '3x' mudam a cor do primeiro plano. os códigos '4x' mudam a cor do plano de fundo. Observe que a máquina hospedada possui códigos '4x', mas o local não. arwin.net/tech/bash.php
FlipMcF
Existe uma maneira de obter o mesmo resultado sem alterar nada na caixa remota? Usamos VMs, e as mudanças não seriam persistidas por muito tempo ... #
Christian