Answers:
我正在使用以下内容。
有一个名为的shell命令myssh
,其中包含以下内容:
PROFILE="$1";shift;
DEF="Basic" #the default profile name
echo "tell app \"Terminal\" to set current settings of first window to settings set \"${PROFILE}\""|osascript
ssh $@
echo "tell app \"Terminal\" to set current settings of first window to settings set \"${DEF}\""|osascript
并使用bash别名进行连接,例如:
alias ssweb='myssh Homebrew user@web.example.com'
alias ssmail='myssh Ocean me@mail.example.com'
当我想通过SSH进入Web服务器时,我只需ssweb
在终端中编写代码,然后获得“自制”配置文件。ssh会话结束时,AppleScript设置回“基本”状态。
别名应放入$ HOME / .profile或类似的bash-startup文件中。
“自制”,“海洋”等是来自Terminal.app首选项的设置配置文件。您还可以设置不同的字体,编码等。
当然,您可以直接使用它(不使用别名),例如:
myssh Pro user@another.machine.example.com
^ ^
| ssh command arguments
terminal profile name
我知道已经有几个答案,但是这里有一个替代方法:
没有通用的方法来更改背景颜色,但是我们可以使用标准的方法来更改窗口标题。如果要登录许多非“ Unix服务器”设备(例如网络设备,路由器,交换机,防火墙等),则必须使用它们的外壳程序,并且无法安装自己的外壳程序变量。因此,这是另一种方式:
function ssh() {
H=$(echo $@ | sed -e 's/.*@//g;s/ .*//g')
echo $@ | grep '@' && U=$(echo $@ | sed -e 's/@.*//g;s/.* //g')
echo -ne "\033]0;${U:=$(whoami)}@${H%%.*}\007"
unset H
unset U
/usr/bin/ssh $@
}
将此添加到您的.bashrc
。
基本上,由于函数和别名优先于查找路径,因此使用ssh命令,并在“ @”之前和之后使用文本来设置HOST和USER变量,然后将其用于回显被ASCII代码识别的ASCII代码。终端并用于设置标题。
为此,您必须使用“ ssh user@host.blah”,而不是“ ssh -l user host.blah”
如果您不提供用户名,则会将其设置为您的当前用户名(显然,如果您使用的是自定义.ssh / config(我经常使用),那么这将不够准确,但我认为这已经足够了有用。