恩,很多人使用securecrt很郁闷的一件事情是它的session标题
特别是我们这种通过一个通道服务器登录其他服务器的哥们……每次上去session标题显示的都是保存在书签那个标题
恩……登录服务器太多了,就很容易搞错,今天就郁闷了一会
google了,发现securecrt支持Xterm Escape Sequences,在它自己的帮助里面也写了,恩
可以用这样的命令来指定标题,以下讨论仅适用于shell是bash的情况
echo -ne "\e]2;Title\a"如果是Linux,可以用下面的命令让标题自动变成本机IP
echo -ne "\e]2;$(ifconfig eth0| awk '{if ( $1 == "inet" && $3 ~ /^Bcast/) print $2}' | awk -F: '{print $2}')\a"如果是FreeBsd,可以用下面的命令
echo -ne "\e]2;$(ifconfig| awk '{if ( $1 == "inet" && $3 ~ /^netmask/) print $2}' |head -1)\a"要注意的一点是, PROMPT_COMMAND这个环境变量会覆盖你在命令行输入的Escape Sequences,所以,我们可以用指定PROMPT_COMMAND的方法来改变标题。当然,为了保险,两个都用了……
加到.bash_profile里面每次登陆就会自动修改了
OS=`uname`if [ $OS = "Linux" ]; then echo -ne "\e]2;$(ifconfig eth0| awk '{if ( $1 == "inet" && $3 ~ /^Bcast/) print $2}' | awk -F: '{print $2}')\a" export PROMPT_COMMAND="echo -ne \"\\e]2;$(ifconfig eth0| awk '{if ( $1 == "inet" && $3 ~ /^Bcast/) print $2}' | awk -F: '{print $2}')\a\""elif [ $OS = "FreeBSD" ]; then echo -ne "\e]2;$(ifconfig| awk '{if ( $1 == "inet" && $3 ~ /^netmask/) print $2}' |head -1)\a" export PROMPT_COMMAND="echo -ne \"\\e]2;$(ifconfig| awk '{if ( $1 == "inet" && $3 ~ /^netmask/) print $2}' |head -1)\a\""fi获取IP也可以用其他方法,不喜欢awk的,可以用grep之类的,就跟系统无关了
ifconfig -a|grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|head -1当然,ys同学用perl写的脚本也很强大
ifconfig -a|perl -e '{while(<>){if(/inet (?:addr:)?([\d\.]+)/i){print $1,"\n";last;}}}'当然,大家不要忘了用grep -v来去掉无效的IP哦,比如127.0.0.1等
当然,改标题还有更多很nb的应用,比如ys的定时在标题显示系统负荷,5s刷新一次……当登录几十个服务器的时候,那个壮观呀……
来源: http://blog.alwaysmylove.net/2008/06/23/change-securecrt-window-title-bar-on-the-fly/