2015年1月11日 星期日

linux bash function for switch tmux session(若不存在則重新建立)

可以直接切換到Tmux 不同session

加在.bashrc內

tmux_goto_branch ()
{
        P="$1"

        if [ "$P" == ""]
        then
                echo "$0: must enter branch name..."
                exit
        fi

        tmux has -t $PROJ
        if [[ "$?" == "0" ]];
        then
                echo "$0: Session exist, switch to it";
                tmux attach -t $PROJ
        else
                echo "$0: Session not exist, create a new one"
                tmux new -s $PROJ -n $PROJ
        fi

}

用法: tmux_goto_branch BRANCH_TEST

設定linux shell 提示字元與ssh 登入的title

查看ubuntu 的.bashrc, 可以發現下列設定:


if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac


其中可以看到如果要改顏色,可以使用顏色標示包起來

登入shell時,提示符號預設長這樣  username@server:~$

使用putty等軟體經由SSH 連入時,可以看到登入視窗的title也會跟著變,由此可知這個title是從linux內拿來的,就是上述最後一組PS1變數的設定


所以經由上述分析,可以寫一個function, 放在.bashrc內,之後就可以簡單的手動設定想要的提示符號與title

set_title ()
{
        PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]$*\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
        PS1="\[\e]0;${debian_chroot:+($debian_chroot)}$*: \w\a\]$PS1"
}



使用方法:
    set_title "test title"