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

12768
Hubro

В конфигурации 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 
8

3 ответа на вопрос

14
WakiMiko

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

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

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

echo -e "\033]0;<your string>\007" 
Обратите внимание, это единственный ответ на вопрос. Erik Aronesty 9 лет назад 0
Измените `-e` на` -en`, если вы хотите избежать лишней пустой строки, которая выводится командой echo. ADTC 7 лет назад 0
6
Rich Homolka

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

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

Вот что у меня есть (Linux / Bash):

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

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

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

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

Посмотрите на Linux Prompt Customization, вы найдете больше HowTos, чем вы знаете, что делать с. Выберите тот, который вы найдете легким для чтения.

2
Jacek Domagała

I have searched many forums and I haven't found the answer for the question:
How to get all command output to Putty title?

Needed it for other programs to know when some jobs on a server is done and is it done right or wrong. Plink stdout and stdin wasn't working. I used many tweaks with wait delays and for some commands that worked, for others not. XSEL and XCLIP couldn't be installed on that server.

So here is the solution:

  1. Get command output in a file.
  2. Echo that file to title.

On Putty client and SUSE server it looks like this:

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

Hopefully someone will be able to use this. It won't work for all server types and putty client settings, of course, but the idea should work well.

Похожие вопросы