Как выбрать, что будет отображаться в строке заголовка PuTTY в Linux?

Как выбрать, что будет отображаться в строке заголовка PuTTY в Linux?

В конфигурации PuTTY есть опция в Терминале → Функции, которая называетсяОтключить дистанционное управление изменением заголовка окна. Если эта опция отключена, строка заголовка PuTTY будет меняться каждый раз, когда я нажимаю клавишу Enter в консоли.

Я думал, что было бы более чистым решением задать текст заголовка окна из Linux, чем указывать его для каждого клиента PuTTY, который у меня есть. Так где же мне изменить то, что Linux устанавливает в качестве заголовка окна?


$ uname -a
Linux drevo 2.6.32-5-amd64 #1 SMP Пн Янв 16 16:22:28 UTC 2012 x86_64 GNU/Linux

$ cat /etc/debian_version
6.0.4

решение1

Большинство терминальных программ, включая konsole, putty и xterm, эмулируют старый терминал VT100. Этот терминал позволяет вам устанавливать определенные параметры, включая жирный шрифт, цвета, устанавливать заголовок терминала и т. д., используя специальные последовательности символов, называемые escape-последовательностями.

В оболочке bash есть переменная PROMPT_COMMAND, которая, если установлена, вычисляется перед каждым выводимым вами приглашением (я думаю, что в zsh есть что-то похожее, на самом деле, я думаю, что bash взял код оттуда). Вы можете выводить escape-последовательности в PROMPT_COMMAND, и она установит вашу строку заголовка.

Вот что у меня (Linux/bash):

USER=$(/usr/bin/id -un)
HOSTNAME=$(uname -n)
HOSTNAME=${HOSTNAME%%.*}
PROMPT_COMMAND='echo -ne "\e]0;$USER@${HOSTNAME}: $(pwd -P)\a"'

Вы можете поместить это в ваш ~/.bashrc

Вы можете сделать много настроек с вашим терминалом. Мне нравится жирный шрифт в приглашении, чтобы было легче увидеть конец приглашения. Это делает его жирным желтым, хорошо на моем черном фоне по умолчанию:

PS1="\[\e[33;1m\]\h:\$\[\e[0m\] "

Поищите Linux Prompt Customization, вы найдете больше HowTo, чем сможете придумать, что с ними делать. Выберите тот, который вам легче всего читать.

решение2

Заголовок терминала устанавливается с помощью специальных escape-последовательностей в выводе консоли. По умолчанию приглашение bash включает эти escape-последовательности и устанавливает заголовок на текущий рабочий каталог.

Поэтому вам придется отредактировать переменную PS1 (чаще всего она установлена ​​в ~/.bashrc), в противном случае bash будет перезаписывать ваш заголовок каждый раз, когда будет отображаться приглашение.

Затем вы можете задать заголовок, поместив следующее в скрипт, который будет выполняться при входе в систему, например ~/.profile:

echo -e "\033]0;<your string>\007"

решение3

Я просмотрел много форумов и не нашел ответа на вопрос:
Как перенести все выходные данные команд в заголовок Putty?

Это было нужно для других программ, чтобы знать, когда некоторые задания на сервере выполнены и сделаны ли они правильно или неправильно. Plink stdout и stdin не работали. Я использовал много настроек с задержками ожидания и для некоторых команд, которые работали, для других — нет. XSEL и XCLIP не могли быть установлены на этом сервере.

Итак, вот решение:

  1. Получить вывод команды в файле.
  2. Выведите этот файл в заголовок.

На клиенте Putty и сервере SUSE это выглядит так:

ls /home | grep domagaja > logutoit.txt 
echo -e "\033]0\\;$(cat logutoit.txt)\\007\\c"

Надеюсь, кто-то сможет это использовать. Конечно, это не будет работать для всех типов серверов и настроек клиента putty, но идея должна работать хорошо.

Связанный контент