Изменить цвет терминала на основе сеанса SSH

28

Можно ли автоматически менять цвет терминала в зависимости от того, к какому серверу я подключен через SSH?

Например, когда я запускаю терминал, он имеет стандартные цвета, определенные в моем профиле. Затем я ssh к ssh.example.com и цвет меняется на черный и зеленый вместо этого. Затем я выхожу из сессии и цвет возвращается к стандартной цветовой теме.

Я знаю, что вы могли бы сделать это вручную. Но я ищу автоматизированный способ.

karlingen
источник

Ответы:

23

Да, вы можете изменить PS1значение в .bashrcфайле на каждом имени хоста, с которым вы соединяетесь ssh.

Посмотрите этот ответ, чтобы узнать, как оценить, как вам нравится изменение PS1значения.

ssh цветной

На моей машине (radu @ Radu) я в .bashrc:

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

На хосте машины (radu @ ubuntu) у меня есть:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35;40m\]\u@ubuntu\[\033[00;40m\]:\[\033[01;34;40m\] \w\[\033[01;32;40m\] > '
Раду Рэдяну
источник
5
Как именно вам удалось изменить цвет фона?
chrisg86
Коды «3x» изменяют цвет переднего плана. коды «4x» изменяют цвет фона. Обратите внимание, что на хост-машине есть коды «4х», а на локальном - нет. arwin.net/tech/bash.php
FlipMcF
Есть ли способ получить тот же результат, не меняя ничего на удаленной коробке? Мы используем виртуальные машины, и изменения не будут сохраняться долго ...
Кристиан,