我经常从我的OS Xterminal窗口login到不同的服务器。
我想给不同的主机分配一个配色scheme,这样我的terminal窗口就更容易区分了。 这可以自动完成吗?
这是一个完整的解决scheme。 在〜/ .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:
#!/斌/庆典
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
告诉应用程序“terminal”将窗口1的选定标签的当前设置设置为(其名称是(argv的项目1)的第一设置)
最终运行
我从这个博客文章中获取了大部分代码。
是。
您可以使用例如“屏幕”并自定义它: 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/
@ muirbot的解决scheme对我来说真的很好。 我做了一些小的改进。 一旦我拥有足够的声望,我会在他的post下面添加它。
更换线路
ip =echo $1 | cut -d"@" -f2echo $1 | cut -d"@" -f2
同
ip =echo $@ | grep -Eio [[:alnum:]_.-]+@[[:alnum:]_.-]+ | cut -d@ -f2echo $@ | grep -Eio [[:alnum:]_.-]+@[[:alnum:]_.-]+ | cut -d@ -f2
这个改变允许给你的ssh命令提供额外的参数,例如“ssh -p 1111 userName @ host”
正则expression式允许使用简单的ipv4地址和域名。
为了进一步支持多个参数,将最后一行改为
/ usr / bin / ssh $ @
我只是在寻找同样的事情,发现这篇文章:
http://akrabat.com/php/osx-terminal-colours/
它使用php脚本通过applescript更改terminal颜色。 您可以为每个服务器设置不同颜色的映射。 对我很好,虽然觉得重写PHP的东西成ruby的冲动:)
FK
我使用一个脚本,在不同的bg / fg颜色的xterm窗口中启动SSH。 它根据颜色范围中的主机名散列来select颜色,以便不需要进行configuration。
脚本是用Ruby编写的: https : //github.com/mickeyil/ssx
如果您使用的是iTerm2,请使用https://gist.github.com/jbochi/31f118b8ae2882a2c90fa46c46509b57中的内容创build一个名为~/bin/ssh-host-color.sh的文件:
set_term_bgcolor(){ local R=$1 local G=$2 local B=$3 /usr/bin/osascript <<EOF tell application "iTerm" tell the current window tell the current session set background color to {$(($R*65535/255)), $(($G*65535/255)), $(($B*65535/255))} end tell end tell end tell EOF } if [[ "$@" =~ "production.example.com" ]]; then set_term_bgcolor 40 0 0 elif [[ "$@" =~ "qa.example.com" ]]; then set_term_bgcolor 0 40 0 fi trap "set_term_bgcolor 0 0 0" EXIT ssh $@
并将以下行添加到~/.aliases.sh文件中:
alias ssh="~/bin/ssh-host-color.sh $@"