介紹
Tmux 是一套最近接觸到於 tty 下的多程式視窗工具,類似很多老手在使用 Linux or BSD 就有使用 GUN Screen 這一個程式。使用 tmux 和 screen 最大好處在於遠端管理的時候,如果需要執行相當耗時的程式,可以讓我們在離開(或許這裡稱「斷開」比較合適)的時候還可以繼續的執行,下次回來的時候再「取回」之前的內容即可。
Tmux 和 Screen 不同的地方,主要在於:
- 視窗分割
在一個視窗中縱向或是橫向分割許多視窗 - 視窗切換
在 Session 中相互切換 - 多人共用視窗
可以被多個 ssh 連線共用一個 tmux session
Screen 和 Tmux 的架構圖,可以參考下面兩張圖(圖片來源:這樣做就對了)
Screen 一次只能有一個連線,切換視窗必須先 detach。
Tmux 有 Session、Window、Pane 的概念,而且隨時可以作彈性切換,將 Pane 獨立成新的 Window。
安裝
目前在常見的 Linux distributions 中都可以利用套件庫安裝,如果沒有也可以下載 Tarball 來安裝:
- 自行下載 Tarball 安裝,下載位置 Tmux(目前最新為1.6版)
- uBuntu 安裝
# sudo apt-get install tmux
- CentOS 安裝
# yum install tmux
$PS1顯示問題
安裝完 Tmux 在 tty 中輸入 tmux 可以啟動進入,如果有在 .bashrc 中設定 $PS1 的顯示方式,uBuntu 中(測試為 uBuntu 12.04)會發現失去設定的效果,而在 CEntOS 6.2 中顯示為正常。要如何修正讓在 Tmux 環境中仍然可以正常顯示?
開啟 .bashrc 檔案,找尋 「case "$TERM" in」部份,加入 screen 項目(如下紅字部份)再重新進入tmux 環境即套用設定。(參考資訊)
case "$TERM" in
xterm*|rxvt*|screen*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
如果之前已習慣使用 Screen 也沒有關係,可以參考 Tsung's Blog 文章「Tmux 教學 + Screen 到 Tmux 的無痛轉換」,最後附上安裝後的圖~真的視窗切得很愉快 :)
留言