当我 ssh 到远程生产服务器时,我希望终端窗口的配色方案更改为明亮而可怕的颜色,最好是红色,以警告我正在触摸实时可怕的服务器。
如何让它自动检测到我已通过 ssh 连接到某处,并且如果该某处位于特定列表中,则更改颜色方案?
我想更新 Terminal.app 的方案,不知道如何在纯 linux/unix 环境中执行此操作
最佳答案
将以下脚本放入 ~/bin/ssh
中(确保在 PATH 中的 /usr/bin/
之前检查 ~/bin/
):
#!/bin/sh
HOSTNAME=`echo $@ | sed s/.*@//`
set_bg () {
osascript -e "tell application \"Terminal\" to set background color of window 1 to $1"
}
on_exit () {
set_bg "{0, 0, 0, 50000}"
}
trap on_exit EXIT
case $HOSTNAME in
production1|production2|production3) set_bg "{45000, 0, 0, 50000}" ;;
*) set_bg "{0, 45000, 0, 50000}" ;;
esac
/usr/bin/ssh "$@"
记住通过运行chmod +x ~/bin/ssh
使脚本可执行
上面的脚本从“username@host”行中提取主机名(假设您使用“ssh user@host”登录到远程主机)。
然后根据主机名设置红色背景(对于生产服务器)或绿色背景(对于所有其他服务器)。因此,您的所有 ssh 窗口都将具有彩色背景。
我假设您的默认背景是黑色,因此当您从远程服务器注销时,脚本会将背景颜色恢复为黑色(请参阅“trap on_exit”)。
但请注意,此脚本不会跟踪从一台主机到另一台主机的 ssh 登录链。因此,如果您先登录测试服务器,然后从它登录生产服务器,背景将为绿色。
关于macos - 当我 ssh 到特定服务器时,如何使苹果终端窗口自动更改配色方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/157959/