8

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

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


$ uname -a
Linux drevo 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/Linux

$ cat /etc/debian_version
6.0.4

3 ответа3

14

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

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

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

echo -e "\033]0;<your string>\007"
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, чем вы знаете, что делать с. Выберите тот, который вы найдете легким для чтения.

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"

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .