使用terminal / ssh时不同的机器会有不同的颜色提示?

我有5台机器,我不断的ssh进行工作。 当我在错误的盒子上发出错误的命令时,它越来越令人沮丧。 幸运的是,我还没有做任何坏事。 我想知道是否有任何我可以硬编码的黑客,这将显示我的提示以不同的颜色基于我ssh到的机器? 如桌面蓝色1,笔记本紫色,服务器红色等? 这可能吗?

目前我正在使用这个命令export PS1 =“\ e [0; 31m [\ u @ \ h \ W] \ $ \ e [m”取自http://www.cyberciti.biz/faq/bash-shell -help -help-under-linux-or-unix /但是它显然不适用于ssh。

另外,如果你有任何其他的酷bash提示,帮助我缓解我的视线将是美好的。 我得到了这个颜色的手册页提示。

Customize man page colors with ‘less’ definitions

我使用的方法是从主机名为主机名生成颜色。 没有多less颜色可供select,所以很容易产生冲突,但对于我pipe理的less量机器来说,这是有用的。

 hostnamecolor=$(hostname | od | tr ' ' '\n' | awk '{total = total + $1}END{print 30 + (total % 6)}') PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\[\e[${hostnamecolor}m\]\]\h \[\e[32m\]\w\[\e[0m\]\n$ ' 

第一行从机器的主机名称生成30(增量)和36(增量)之间的数字。 第二行将其用于以绿色(32)的用户名和path以及生成的颜色中的主机名的提示。

没有背景颜色设置,我从前台排除青色(36)和白色(37),以避免与我使用的terminal背景冲突。

你在正确的轨道上。 我已经使用了您链接到的页面上详细说明的方法,并详细说明了如何在我的博客上 。 它适用于我使用从Windows窗口中的PuTTY,以及SSH从一个CentOS服务器到另一个。 如果它不适合你,并且你确定你的语法是正确的,那么可能是你的SSH客户端。

你可以改变每台机器上的bash.rc 以提供不同的提示颜色。 或者如果你有足够的权限改变sshdconfiguration允许通过PermitUserEnvironment指令的用户环境传输。

在我的工作中,我们有不同的服务器阶段

生产分期发展

我使用红色提示作为prod和绿色分期。 现在所有的登台机器都有stg的域名。

所以prod会是

 web1.domain.com web2.domain.com 

分期/开发将是

 stg-web1.domain.com stg-web2.domain.com dev-web1.domain.com etc 

这只会对redhat / centos真正起作用

但对于prod服务器,我有以下内容

 /etc/sysconfig/bash-prompt-xterm 

里面是

 export PS1="\[[\e[1;31m\]\u@\[\e[1;31m\]\h\[\e[0m\] \W] " 

这将把提示红色..现在你不能触摸/ etc / bashrc和所有其他非prod机器将保持你使用的正常前景色..但我让他们绿色

 if [ "$PS1" ]; then case $TERM in xterm*) if [ -e /etc/sysconfig/bash-prompt-xterm ]; then PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm else PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"' fi ;; 

如果块应该在那里..我只是改变了其他部分的颜色是绿色的.. 33是绿色的

我们正在研究更全面的主机名string校验和解决scheme。 256色兼容性。 除了你真的有兴趣为自己的每个服务器确定一个特定的颜色,我觉得这是“这是我们有计算机”的问题之一,所以要根据你的“随机”颜色确定校验和应该是一个好方法。