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

8

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

Я подумал, что было бы более чистым решением установить текст строки заголовка в 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
Hubro
источник

Ответы:

6

Большинство терминальных программ, включая 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, вы найдете больше HowTos, чем вы знаете, что делать с. Выберите тот, который вы найдете легким для чтения.

Рич Гомолка
источник
14

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

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

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

echo -e "\033]0;<your string>\007"
jhenninger
источник
Обратите внимание, это единственный ответ на вопрос.
Эрик Аронесты
Измените -eна, -enесли хотите избежать лишней пустой строки, выводимой командой echo.
ADTC
2

Я искал много форумов, и я не нашел ответа на вопрос:
Как получить все выходные команды для заголовка 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"

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

Яцек Домагала
источник