tmux是一個類似常見的GNU Screen軟體,那作者為啥還開發呢,原因單純,他覺得Screen使用的Licence是GNU有些限制,所以就順手寫了一個類似功能但是卻是用BSD Licence,除了Screen常用的功能都有外,tmux還可以在單一一個window中處理多個不同的terminal,如果你常跟我之前一樣需要常常切換在Screen之間去做事情,你一定會愛死tmux的!!
首先,先來談談如何安裝,由於不是每種OS所提供的tmux package都是最新的1.0版,所以我會建議直接抓tarball回來編譯,快又簡單。安裝步驟如下:
- 下載最新的tmux tarball (目前是tmux-1.0.tar.gz)
- 解開tarball: tar zxf tmux-1.0.tar.gz
- 如果你不是FreeBSD uesr請跳過此步驟,編輯configure檔,移除第215行的"#define HAVE_TREE_H"
- ./configure && make && make install
- 大功告成
如果上述步驟一切順利,理論上就可以順利執行tmux了,但是tmux預設的command prefix是Ctrl+b而非Screen慣用的Ctrl+a,所以我會建議先編輯一份自己專屬的tmux設定檔(vim ~/.tmux.conf),設定如下: 原始檔在此下載
# Written by clyang _AT_ clyang.net
# General Setting
set-option -g prefix C-a
set-window-option -g automatic-rename off
# Statusbar properties.
set -g display-time 3000
set -g status-bg black
set -g status-fg cyan
set -g status-right "#(uptime|awk '{print $11}') #(date)"
# Fix putty/pietty function key problem
set -g terminal-overrides "xterm*:kf1=\e[11~:kf2=\e[12~:kf3=\e[13~:kf4=\e[14~:kf5=\e[15~:kf6=\e[17~:kf7=\e[18~:kf8=\e[19~"
# Binding key
bind C-a send-prefix
bind s split-window
bind '"' splitw\; selectl main-vertical
bind -n F1 lock
bind -n F2 up-pane
bind -n F3 down-pane
bind -n F9 resizep -U 1
bind -n F10 resizep -D 1
bind -n F11 resizep -L 1
bind -n F12 resizep -R 1
# Tmux lock setting
pass -c '$1$A.n6u0qu$KwXA5FnUfkWJpVLoIY1D30'
上述設定檔簡單來說,我把預設的send-prefix從Ctrl+b改成Screen習慣使用的Ctrl+a,然後定義一些快速鍵讓做事情更方便,列表如下:
- Ctrl+a後按 s : 將視窗切為左右兩個區塊
- Ctrl+a後按 " : 將視窗切為上下兩個區塊
- Ctrl+a後按 c : 產生新的window (跟screen一樣)
- Ctrl+a後按 d : 將tmux detch到背景 (呼叫回來請使用tmux attach,就如同screen -r)
- 按下F1: 鎖定tmux,會顯示一個大型的數位時鐘,密碼預設在tmux.conf裡面, 請使用"openssl passwd -1″產生,再將該字串填入pass -c後面那一串,別忘了前後都要加上單引號 ‘ 喔!!當你必須暫時離開座位時,只需要按下F1馬上鎖定tmux
- F2移動到單一畫面中的上一個pane
- F3移動到單一畫面中的下一個pane
- F9將目前這個pane的邊界往上增加一行
- F10將目前這個pane的邊界往下增加一行
- F11將目前這個pane的邊界往左增加一行
- F12將目前這個pane的邊界往右增加一行
其他的功能,大家多多摸索吧,建議趕快裝起來自己體驗一下tmux + 上述快速鍵好用的地方吧!!!
最後當然要有圖有真相(畫面左邊跟右邊那三個切割視窗就是稱之為pane,按F2、F3可以在各pane間切換,按F9~F12可以調整每個pane的大小):

啊啊
有大神推薦
找時間在 csiex.cs && linux.cs 上面編一下 ~
Ctrl+a後按 s : 將視窗切為左右兩個區塊
|| (反了?)
Ctrl+a後按 " : 將視窗切為上下兩個區塊