pipe理很多打开的ssh会话,以id为主机名的服务器

最近我工作了很多与多个VPS服务器的打开的SSH连接。 服务器的主机名都遵循ID方法,并且知道我正在使用哪台机器变得非常困难。

我想知道是否有一种方法可以把我定义的名称作为terminal的标题。 所以我想,例如,将IP 123.123.123.123与webserver-stg相关联。 打开到IP的连接时,webserver-stg会自动显示为会话的名称。 当然,我无法更改VPS服务器上的代码,所以解决scheme应该是客户端。

编辑:我在OSX 10.6上使用terminal.app

首先,您应该尝试使您的stream程自动化,以免手动进行大量的ssh会话。 To follow up on the xterm -T选项,还可以通过shell转义设置xterm标题。 我认为大多数terminal程序都支持类似的function。 有关详细信息,请参阅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中的作用,就像我说的,它可能在大多数terminal程序模拟exterm。

xterm有一个-T标志,可以让你设置窗口标题。 腻子可以让你把它设置在窗口选项的行为子菜单中。

假设远程主机是* nix,您还可以将您的login提示设置为主机名。

在bash或ksh中, export PS1="[\u@\h]$ "结果如下所示:

[mazianni @欧洲] $

为什么不设置指向IDtypes主机名的有意义的CNAMElogging呢? 然后可以通过CNAME连接。 如果您没有这些主机的DNS访问权限,您也可以使用HOSTS文件来执行此操作 – 这将适用于安装在其上的任何计算机。

腻子会显示你在标题栏中用来连接的东西。 不能说XTERM。

或者,如果您使用的是PuTTY,则只需在标题栏(“菜单中的窗口”>“行为”选项)中configuration具有所需名称的会话,目标字段中的丑陋主机名/ IP地址以及您的首选名称名称。 然后你可以点击难忘的会话名称来打开连接并拥有你想要的标题。

你也许还想为.sh脚本中的.bash_profile文件做一些事情 ,这样就可以在提示框中使用首选名称,但是你说你不能改变任何东西(似乎你可以改变你自己的configuration文件虽然)。

其他答案是正确的,但我发现有一个好的脚本和快捷方式是更有用的。


我个人在Debian上使用Ion3,并将F4绑定到以下脚本。 Ion3提示我input主机名:

 #!/bin/bash HOST=$1 x-terminal-emulator -t $HOST -e ssh -l root $HOST 

如果您想要一个面板快捷方式来要求您input主机名,请创build一个面板快捷方式,链接到以下脚本:

 #!/bin/bash HOST=$(zenity --entry --text="Connect to SSH Host") x-terminal-emulator -t $HOST -e ssh -l root $HOST 

最后,您也可以创build一个脚本,然后获得该脚本的链接,每个脚本都用于不同的主机。

 #!/bin/bash HOST=$0 x-terminal-emulator -t $HOST -e ssh -l root $HOST 

然后,创build链接,如:ln -s ssh-script.sh yourhost.example.com

然后,您可以为每个这样的链接创build一个单独的桌面/面板快捷方式。

 PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\007"' 

将您的Mac OS Xterminal窗口的标题更改为给定的string。 然后,您可以从“terminal”的“窗口”菜单中轻松select所需的terminal窗口。

如果没有定义$ HOSTNAME,可以使用subshel​​l命令插入任意string,如下所示:

 PROMPT_COMMAND='echo -ne "\033]0;$(cat /etc/my.host.name)\007"'