В последнее время я много работаю с несколькими открытыми ssh-соединениями с несколькими серверами VPS. Имена хостов серверов основаны на подходе идентификатора, и становится очень трудно узнать, на какой машине я работаю.
Мне было интересно, есть ли способ поместить имя, которое я определяю где-нибудь как заголовок терминала. Поэтому я бы, например, связал IP 123.123.123.123 с webserver-stg. При открытии соединения с IP-адресом webserver-stg будет автоматически отображаться как имя сеанса. Конечно, я не могу изменить код на серверах VPS, поэтому решение должно быть клиентским.
Изменить: я работаю с terminal.app на OSX 10.6
xterm имеет флаг -T, который позволяет вам установить заголовок окна. putty позволяет вам установить его в подменю Behavior опций Window.
Предполагая, что удаленные хосты - * nix, вы также можете установить в качестве приглашения входа в систему имя хоста.
В bash или ksh выполняя export PS1="[\u@\h]$ "
приводит к чему-то вроде:
[mazianni @ europe] $
Прежде всего, вам следует попытаться автоматизировать процесс, чтобы не запускать много сеансов ssh вручную.
To follow up on the xterm -T
вариант, вы также можете установить заголовок xterm через escape-символы оболочки. Я думаю, что большинство терминальных программ поддерживают аналогичную функцию. Увидеть Xterm Title Howto для подробностей. Затем используйте оболочку для вашей команды ssh, примерно так:
#!/usr/bin/bash
if [ x$1 != x ]
then
remote=$1
else
read -p "host? " remote
fi
echo -ne "\033]0;$remote\007"
exec ssh $remote
Я подтвердил, что это работает в xterms и в mac terminal.app, как я уже сказал, он, вероятно, работает в большинстве терминальных программ, которые имитируют exterm.
Почему бы просто не настроить значимые записи CNAME, указывающие на имя хоста типа ID. Затем вы можете подключиться через CNAME. Если у вас нет доступа к DNS для этих хостов, вы также можете сделать это с помощью файла HOSTS, который будет работать на любом компьютере, на котором он установлен.
Putty отобразит все, что вы использовали для подключения, в строке заголовка. Не могу сказать про XTERM.
В качестве альтернативы, если вы используете PuTTY, вы можете просто настроить сеанс с именем, которое вы хотите, в строке заголовка (параметр Window> Behavior в меню), уродливым именем хоста / IP-адресом в поле назначения и вашим предпочтительным именем в качестве сеанса название. Затем вы можете щелкнуть запоминающееся имя сеанса, чтобы открыть соединение и присвоить нужный заголовок.
Вы также можете захотеть сделать что-нибудь с .bash_profile для пользователей, которые подключились, чтобы в приглашении на поле использовалось предпочтительное имя, но вы сказали, что не можете ничего изменить в поле (хотя, вероятно, вы можете изменить свой собственный профиль).
Другие ответы верны, но я считаю, что полезнее иметь хороший сценарий и ярлыки к нему.
Я лично использую Ion3 в Debian и привязал F4 к следующему скрипту. Ion3 запрашивает у меня имя хоста:
#!/bin/bash
HOST=$1
x-terminal-emulator -t $HOST -e ssh -l root $HOST
Если вам нужен ярлык панели, который запрашивает имя хоста, создайте ярлык панели, который ссылается на следующий сценарий:
#!/bin/bash
HOST=$(zenity --entry --text="Connect to SSH Host")
x-terminal-emulator -t $HOST -e ssh -l root $HOST
Наконец, вы также можете просто создать сценарий, а затем иметь ссылки на этот сценарий, каждая для другого хоста.
#!/bin/bash
HOST=$0
x-terminal-emulator -t $HOST -e ssh -l root $HOST
Затем создайте ссылки, например: ln -s ssh-script.sh yourhost.example.com
Затем для каждой такой ссылки можно создать отдельный ярлык на рабочем столе / панели.
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\007"'
Изменит заголовок окна вашего терминала Mac OS X на заданную строку. Затем вы можете легко выбрать, какое окно терминала вы хотите, в меню «Окно» в Терминале.
Если $ HOSTNAME не определен так, как хотелось бы, вы можете вставить любую произвольную строку с помощью команды подоболочки, например:
PROMPT_COMMAND='echo -ne "\033]0;$(cat /etc/my.host.name)\007"'