在SecureCRT之类的终端仿真程序的标题显示远程server的全部ip地址

作为系统管理员

大概都有这种体会

管理的机器多了

经常同时用终端仿真程序连好几台机器

而且需要一会儿在这台上操作、一会儿又需要在那台机器上操作

很容易搞混机器:)

bash通过环境变量PROMPT_COMMAND支持在显示提示符PS1之前执行命令

而且xterm的终端类型又支持更改标题

所以……呵呵

我用bash的环境变量PROMPT_COMMAND+xterm

可以说已经解决了这个问题

具体的方法是

vi /etc/sysconfig/bash-prompt-xterm

添加一行,像下面这样:

echo -ne "\e]2;$(/sbin/ip -4 -o addr show | awk ‘{print $4}’ | awk -F/ ‘{print $1}’ | grep -v "^127\." | sed -e :a -e ‘$!N;s/\n/\//g;ta’)\a"

如果终端显示模式不是xterm的话

需要用命令export TERM=xterm将终端显示模式设置成为xterm

即可

其实这个问题也有别的解决方法

把每台机器的hostname设成这台机器的ip

然后再通过环境变量PS1来把ip地址显示在提示符里

不过这需要把环境变量PS1中的\h改成\H

\H能显示完整的ip地址

\h只能显示一个字节

像这样:

export PS1="[@\H \W]\\$ "

One Response to “在SecureCRT之类的终端仿真程序的标题显示远程server的全部ip地址”

  1. /etc/sysconfig/bash-prompt-xterm的最新版本是这样的:
    echo -ne “\e]2;$(ifconfig | awk ‘/inet addr:/ && ! /inet addr:127\./ { sub (”addr:”, “”); print $2 }’ | sed -e :a -e ‘$!N;s/\n/\|/g;ta’):${PWD}\a”

Discussion Area - Leave a Comment




*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word