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

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

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

Я использую gnome-терминал, но принимаю любое работоспособное решение под Linux.

  • linux + запустить скрипт на удаленном компьютере
  • Какие команды использует git при общении через ssh?
  • Как я могу предупредить о завершении длинной задачи над ssh?
  • Синтаксис сбоя с gpg-агентом и SSH
  • SSH попытки входа в минуту на каждый IP-адрес
  • Не удается войти в систему или отправить ssh пользователю без полномочий администратора Cygwin в этом месяце, но может в прошлом месяце и по-прежнему использовать для других пользователей, не являющихся администраторами
  • Как открыть порт в начале процесса загрузки, чтобы разблокировать LUKS через SSH
  • Невозможно установить подлинность хоста «103.35.202.76 (103.32.202.71)»
  • 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 не запускается через сценарий оболочки или псевдоним.

    Interesting Posts

    kfd: ошибка получения информации об iommu

    При добавлении содержимого в начале файла происходит обновление всех блоков данных?

    Сценарий оболочки UNIX: использование «case» для проверки ввода пользователя

    Как объединить 2 образа диска в один с 2 разделами?

    Рекурсивно скопировать apache openmeetings в папку red5 на linux

    Я не могу изменить пароль пользователя на ubuntu

    Винный эквивалент для пакетов Linux на MacOS

    Как отформатировать и установить большой раздел с размером сектора 4k в Freebsd?

    Экран GNU: как использовать: aclumask для установки разрешений для неизвестных пользователей?

    Настройка связывания с DHCP

    Как установить параметры по умолчанию для htop?

    Как найти pid приложения, недавно запущенного на Linux?

    Как выполнить эту команду оболочки из Python?

    Настройте ноутбук Linux, чтобы отключить экран, но в остальном он работает при закрытой крышке

    gpg: невозможно открыть `- ': нет такого файла или каталога

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