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

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

2005年8月27日 发表评论 阅读评论

作为系统管理员

大概都有这种体会

管理的机器多了

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

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

很容易搞混机器:)

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]\\$ "

  1. 2008年4月17日18:44 | #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”

  1. 本文目前尚无任何 trackbacks 和 pingbacks.

*
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