我经常从os x终端窗口登录不同的服务器。
我想为不同的主机分配一种配色方案,以使我的终端窗口更容易分辨。可以自动完成吗?
我经常从os x终端窗口登录不同的服务器。
我想为不同的主机分配一种配色方案,以使我的终端窗口更容易分辨。可以自动完成吗?
Answers:
这是一个完整的解决方案。在〜/ .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 告诉应用程序“ 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的解决方案对我来说真的很好。我对此做了一些小的改进。一旦我有足够的声誉,就将其添加到他的帖子下方。
更换线
ip =echo $1 | cut -d"@" -f2
与 ip =echo $@ | grep -Eio [[:alnum:]_.-]+@[[:alnum:]_.-]+ | cut -d@ -f2
此更改允许为ssh命令提供其他参数,例如“ ssh -p 1111 userName @ host”
正则表达式允许使用简单的ipv4地址和域名。
为了进一步支持多个参数,请将最后一行更改为
/ usr / bin / ssh $ @
我只是在寻找同一件事,发现了这篇文章:
http://akrabat.com/php/osx-terminal-colours/
它使用php脚本通过applescript更改终端颜色。您可以为每个服务器设置不同颜色的映射。对我来说效果很好,尽管有将php内容重写为ruby的冲动:)
k
我使用的脚本会在xterm窗口中以不同的bg / fg颜色启动SSH。它从颜色范围中根据主机名的哈希值选择颜色,因此无需进行配置。
该脚本是用Ruby编写的:https://github.com/mickeyil/ssx
如果使用的是iTerm2,请创建一个文件~/bin/ssh-host-color.sh
,其内容来自https://gist.github.com/jbochi/31f118b8ae2882a2c90fa46c46509b57:
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 $@"