SSH 服务器时如何自动更改终端颜色?

14 ssh terminal

我经常从我的 os x 终端窗口登录到不同的服务器。

我想为不同的主机分配一个配色方案,以便我的终端窗口更容易区分。这可以自动完成吗?

mui*_*bot 12

这是一个完整的解决方案。在 ~/.server_colors 中保存您的服务器 IP 地址和/或域以及您想要的颜色列表:

192.168.122.102,红沙
192.168.122.103,海洋
www.foo.com,草
foo.com, 草

然后将此行添加到 ~/.profile 以劫持 ssh 命令:

别名 ssh="~/bin/safe_ssh $1"

然后将 ssh 目标中 @ 后面的内容与列表进行比较。如果匹配,请运行 AppleScript 将屏幕更改为相应的颜色。这是 ~/bin/safe_ssh:

#!/bin/bash
ip=`echo $1 | 剪切 -d"@" -f2`
match=`cat ~/.server_colors | grep $ip | wc -l`
如果 [ $match -gt 0 ]
然后
    color=`cat ~/.server_colors | grep $ip | cut -f2 -d","`
    osascript ~/bin/change_terminal_color.scpt "$color" 2>/dev/null
菲
/usr/bin/ssh $1

最后,这里是 ~/bin/change_terminal_color.scpt

运行 argv
    告诉应用程序“终端”将窗口 1 的选定选项卡的当前设置设置为(名称为(argv 的第 1 项)的第一个设置集)
结束运行

我从这篇博文中获取了大部分代码。


Tie*_*ter 2

是的。

您可以使用例如“屏幕”并自定义它: http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/screen.1.html

或者,如果可能的话,您可以设法在 SSH 客户端上执行此操作。

您也可以尝试以下操作:http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/