Сделать цвет текста терминала другим, когда в сеансе ssh

Есть ли способ заставить мой терминал (консоль) отображать разные цвета текста, когда я нахожусь в сеансе ssh БЕЗ изменения конфигурации цвета удаленного хоста? Например, может быть, автоматически переключается на другой профиль?

Konsole может использовать эти разные «профили»,

alt text

Я хочу в основном переключиться на другой профиль, когда в ssh-сессии. Таким образом, вместо того, чтобы по умолчанию был зеленый на черном, измените на черный на белом или что-то еще.

Это необязательно использовать эту настройку. Но если xterm или что-то имеет настройку для этого, это тоже сработает.

Идея состоит в том, чтобы работать с ANY ssh-сессией, а не только с отдельными сеансами с конкретными машинами.

  • Открытый ключ Auth + Kerberos
  • Не удается SSH с помощью пароля на удаленном сервере
  • Не удается записать cd в .ssh
  • SSH в SSH в сценарии оболочки
  • Как заставить низкое ssh-шифрование
  • Как я могу использовать собственный локальный текстовый редактор для изменения системных (требуется root для сохранения) файлов в удаленной системе?
  • Специальный символ '#' в команде Perl SSH
  • выйдите из ssh и все еще выполняете команду?
  • 3 Solutions collect form web for “Сделать цвет текста терминала другим, когда в сеансе ssh”

    Одна из возможностей, если терминал поддерживает ее, заключается в использовании escape-последовательности терминала Color Color. По-видимому, консоль не поддерживает его. Из документа последовательности управления Xterm ( ctlseqs ):

    OSC Ps; Pt BEL

    Ps = 4; c; spec -> Изменить цветной номер c на цвет, указанный спецификацией, то есть имя или спецификацию RGB в соответствии с XParseColor. Может быть задано любое число пар имен c. Номера цветов соответствуют цветам ANSI 0-7, их ярким вариантам 8-15 и, если поддерживается, остальная часть таблицы с 88 цветами или 256 цветов.

    Это означает, что управляющая последовательность \e]4; NUMBER ; VALUE \a \e]4; NUMBER ; VALUE \a \e]4; NUMBER ; VALUE \a изменит внешний вид цвета NUMBER . NUMBER – это номер цвета (0-7 для восьми основных цветов, 8-15 для ярких версий и многое другое, если терминал поддерживает больше цветов). VALUE – это то, что понимает XParseColor , например, спецификация RGB #123456 или имя цвета X (посмотрите на rgb.txt на вашем компьютере или используйте xcolors чтобы увидеть возможности).

    Например, следующая команда изменяет основной синий цвет (цвет 4) и его яркий вариант (4 + 8), чтобы содержать зеленый цвет:

     printf '\033]4;4;#004080;12;#0040ff\007' 

    Обратите внимание, что это изменяет каждый символ, отображаемый в данный момент в этом конкретном цвете в окне. Невозможно изменить значение цвета только для отображаемых впоследствии символов; если это то, что вы хотите, вам нужно будет настроить каждую программу, отображаемую внутри терминала, для использования разных цветов при разговоре с терминалом.

    Если это произойдет точно, когда вы вводите сеанс ssh, это будет очень сложно, но обработка общих случаев достаточно проста: используйте обертку вокруг ssh, которая изменяет цветовую палитру, затем запускает ssh и, наконец, изменяет палитру цветов назад. Примеры случаев, которые не будут обрабатываться, – это приостановка процесса ssh и запуск ssh внутри экрана или tmux.

    У Konsole есть место на одной из своих вкладок настроек в строках «Запустить пользовательскую команду вместо моей оболочки»?

    Если это так, вы можете сделать следующее (это то, что я настроил для своего Gnome-терминала, вам может потребоваться слегка настроить для Konsole, я буду рад обновить, если есть различия с Konsole):

    1. Создайте профиль с нужной цветовой схемой.
    2. Установите флажок «Запустить пользовательскую команду».
    3. Поместите ssh [remote host alias] в текстовое поле «пользовательская команда»
      • Если вы хотите, чтобы он работал как локальный терминал и закрывал вкладку, когда вы вводите exit , выберите команду «Когда команда выходит: exit из терминала» (или ее эквивалент)

    С помощью этой настройки вы можете просто открыть новую вкладку с выбранным профилем, и она будет автоматически подключаться к вашему сеансу SSH и иметь желаемую цветовую схему.

    Однако у этого есть недостаток, что он не работает для какого-либо SSH-соединения (как написано выше, вам нужно настроить профиль для каждого SSH-соединения, хотя вы, вероятно, можете написать сценарий, который позволяет вам вводить удаленный хост, когда вы открываете этот профиль), и вам нужно открыть профиль специально, если вы не установите его как свой профиль по умолчанию.

    Последовательность изменения цвета фона и переднего плана в xterm (и нескольких других эмуляторах терминалов X11) равна \33]11;black\7 и \33]10;green\7 . И есть команда xtermcontrol которая упрощает ее:

     xtermcontrol --bg black --fg green 

    Таким образом, вы можете переопределить команду ssh как:

     ssh() { [ -t 2 ] && xtermcontrol --bg black --fg green command ssh "$@" [ -t 2 ] && xtermcontrol --bg white --fg black } 
    Interesting Posts
    Linux и Unix - лучшая ОС в мире.