2012年7月19日星期四

tmux 小技巧一则: 显示 ssh 远程主机名

tmux 和 screen 运行在本机,仅仅当作一个窗口管理器的情况应该很多见。一般我都会开很多窗口, ssh 到不同的机器。tmux 默认会显示命令的名字作为窗口的名字,这里就是一堆 ssh,当要切换到不同的主机时,会特别麻烦,需要一个个的找。将下面这些代码贴到 ~/.bashrc 里面,就可以显示窗口的名字为远程主机名


 function on_exit(){
    printf "\033kbash\033\\"
    tmux set-window-option automatic-rename on  >/dev/null 2>&1
    trap - SIGINT SIGTERM
}

function ssh() {
    if [ $TERM = "screen" ];then
        trap on_exit SIGINT SIGTERM
        a=${1##*@};
        printf "\033k$a\033\\"
        /usr/bin/ssh $@
        printf "\033kbash\033\\"
    else
        /usr/bin/ssh $@
    fi
    tmux set-window-option automatic-rename on  >/dev/null 2>&1
} 


关于 tmux 的窗口名字设置,man tmux 搜索  “NAMES AND TITLES” 有详细信息。trap 函数是为了 Ctrl-C 或者 ssh 推出的时候重置 tmux 窗口名字。

没有评论:

发表评论