Answers:
您可以使用ssh LocalCommand发出ANSI转义序列来更改背景颜色,并且每个主机都有一个部分(或主机模式)以选择要与远程主机对应的适当颜色。
如果您的生产服务器遵循“以产品开始”这样的命名约定,则可以在〜/ .ssh / config文件中尝试以下代码段:
Host prod*
PermitLocalCommand yes
LocalCommand printf "\x1b[41m\x1b[2JPRODUCTION SYSTEM [%n]\n\n"
如果没有方便的命名约定来使用通配符模式,则只需列出主机名并用空格分隔即可。您还可以为其他各种非生产服务器创建具有不同颜色值和字符串的其他主机块。
连接到与模式匹配的主机后,将在本地执行相应的printf,将背景色更改为红色([41m选择红色作为背景色,[2J部分用更新的背景色重新绘制整个屏幕。请参见https://en.wikipedia.org/wiki/ANSI_escape_code提供更多选择)
这种方法最大的麻烦在于,背景颜色在ssh会话退出时仍然存在。没有与LocalCommand相对的对象可以在断开连接上运行(我知道)。ssh的别名或外壳包装脚本可以printf "\x1b[0m"
作为重置调用。另一方面,通过LocalCommand设置背景颜色意味着即使未通过包装脚本或别名运行ssh,也将获得颜色设置。
ls
别名等命令,ls --color=auto
并且其中包括重置序列'<ESC> [0m'”。要坚持这一点,您可能需要设置不同的gnome-terminal配置文件,并使用包装器脚本路线,根据主机名选择配置文件名称,然后调用gnome-terminal --profile=$PROFILE_NAME -e ssh $HOST &
ls --colour
PS1中有OR重置序列,则任何一个都将覆盖以前的ansi颜色设置。因此,我将着眼于实现您提出的包装脚本解决方案,这也是一个好主意!谢谢!