
Я часто использую ssh в screen для подключения к набору машин. Было бы идеально, если бы строка заголовка отображала информацию о сервере, к которому я подключен по ssh (например, machinename, uptime и информацию из vmstat).
Я заметил, что backtick
команда screen, похоже, выполняется только там, где запущен screen, она не выполняется на удаленной машине. Есть ли простой способ заставить backtick запустить команду на любой машине, которая в данный момент подключена по ssh?
решение1
Screen распознает несколько дополнительных последовательностей управления, которые терминал внутри окна может отправить для воздействия на Screen. Особый интерес для вас, вероятно, будут представлять последовательности \ek и \e\. Все, что находится между этими двумя, Screen будет использовать в качестве заголовка окна. Затем вы можете поместить заголовок окна в строку заголовка.
http://www.gnu.org/software/screen/manual/screen.html#index-control-sequences-107
Попробуйте это:
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007\ek${USER}@${HOSTNAME}: ${PWD/$HOME/~}\e\\"'
Я использую это как приглашение на удаленных системах. Оно автоматически устанавливает заголовок окна на user@name: path
. Последовательность управления для Screen находится в конце этой команды.