Как автоматически изменить фон терминала на основе имени ssh?

Как можно прогматически изменить цвет фона окна терминала на основе имени хоста, в которое вы попали?

т.е. когда я нахожусь в живых встроенных системах на оборудовании для производства, я хочу, чтобы фон терминала изменился на красный – чтобы «поддерживать осведомленность» о том, на каком сервере я работаю. Простое имя хоста в PS1 не всегда достаточно.

  • Единственный источник для обоих .ssh / config и / etc / hosts
  • Как вы скрываете пароль при вызове во время команды su?
  • Прерывистый отказ ssh
  • Используйте опцию -i на ssh / scp
  • Как отображать команды в другом терминале?
  • пространство консоли, съеденное содержимым файла
  • Я использую gnome-терминал, но принимаю любое работоспособное решение под Linux.

  • Автоматизированный вход ssh с парольной фразой?
  • Отключить цвета на терминале и SSH
  • управление процессом с другого сеанса
  • Малина Pi, последовательная консоль, миникомпьютер и гном-терминал
  • убить процесс на удаленной машине, когда машина застряла
  • Как начать два процесса, поддерживаемых свиньями? Итак, первый заканчивается, когда второй заканчивается?
  • One Solution collect form web for “Как автоматически изменить фон терминала на основе имени ssh?”

    Вы можете использовать ssh LocalCommand для извлечения escape-последовательности ANSI, чтобы изменить цвет фона, и иметь раздел на хост (или шаблон хоста), чтобы выбрать соответствующий цвет, который вы хотите соответствовать удаленному хосту.

    Если ваши производственные серверы следуют соглашению об именах, например «начинается с prod», вы можете попробовать следующий фрагмент в файле ~ / .ssh / config: Host prod* PermitLocalCommand yes LocalCommand printf "\x1b[41m\x1b[2JPRODUCTION SYSTEM [%n]\n\n"

    Если для использования шаблонов подстановочных знаков нет удобного соглашения об именах, вы можете просто перечислить имена хостов, разделенные пробелами. Вы можете создавать дополнительные хост-блоки с разными значениями цвета и строками для других других непроизводственных серверов.

    После подключения к узлу, который соответствует шаблону, соответствующий printf будет выполняться локально, изменив цвет фона на красный ([41m выбирает красный цвет в качестве цвета фона, [2J часть отображает весь экран с обновленным цветом фона. https://en.wikipedia.org/wiki/ANSI_escape_code для большего количества опций)

    Самая большая неприятность в этом подходе заключается в том, что цвет фона сохраняется при выходе из сеанса ssh; Нет никакого аналога LocalCommand для запуска при отключении (что я знаю). Сценарий оболочки alias или оболочки для ssh может вызывать printf "\x1b[0m" в качестве сброса. С другой стороны, наличие цвета фона, заданного с помощью LocalCommand, означает, что вы получите набор цветов, даже если ssh не запускается через сценарий оболочки или псевдоним.

    Linux и Unix - лучшая ОС в мире.