在 Linux / BSD 使用 Screen 已經很習慣, 但是現在有更好用的同類產品 Tmux.
Tmux 除了平常 Screen 功能外, 有簡化很多快速鍵, ex: 視窗切割, 視窗切換, 多人共享同一個畫面 等等. (特別是 視窗切割 變的非常容易)
- 官方網站: tmux
註1: 此篇快速鍵等, 是依照 Screen + Vim 的設定所產出的, 有些可能會跟 Tmux 原始的有些不同, 可能得要測試看看.
註2: 若使用此篇的 .tmux.conf, 只需要習慣 tmux 的指令操作, 進入 tmux 後, 快速鍵都跟 Screen 一樣, 就可以輕鬆轉換過去.
於 Debian / Ubuntu Linux 安裝 Tmux
- apt-get install tmux
Tmux V.S Screen 對照學習
Tmux 與 Screen 中間還是有些不同的地方, 在這兩篇的對照表, 可以加快學習速度.
- tmux: 更好的screen - tmux vs screen - 常用的幾個指令對照表
- dayid's screen and tmux cheat sheet - 此篇有 Screen 與 Tmux 的指令、快速鍵對照清單 (推薦)
Screen 與 Tmux 指令操作 對照表
Tmux 的指令是需要另外學習的, 剩下的進入 Tmux 後的操作, 只要將設定檔弄到跟 Screen 相同即可.
視窗取回
- screen -r
- tmux attach
視窗取回 by session name
- screen -r session-name
- tmux attach -t session-id
視窗開啟自訂 session-name
- screen -S session-name
- tmux new -s session-name # ex: tmux new -s irc
列出所有 session
- screen -ls
- tmux ls # tmux list-sessions
Tmux 設定檔 - .tmux.conf
不過, Screen 已經很習慣, 現在要轉換到 Tmux, 要重新適應還蠻困難的, 所以只好把 Tmux 設定成跟 Screen 快速鍵一模一樣, 來達到無痛轉換. 😛
Debian / Ubuntu 安裝 Tmux 後, 於設定檔範例裡面, 就有設定成跟 Screen 快速鍵一致的設定, 還有把 Vim 的快速鍵操作方式(切割視窗)加入 的設定範例, 位置如:
- /usr/share/doc/tmux/examples/screen-keys.conf
- /usr/share/doc/tmux/examples/vim-keys.conf
vim ~/.tmux.conf # 將上述兩個檔案加入, 再加上我自己習慣的 Status 顏色等設定, 詳見下述檔案. (將此檔案抓下來, 改名為 ~/.tmux.conf 即可)
- 設定檔可見 Github: shell/tmux.conf
Tmux 快速鍵
Tmux 預設Key 是 Ctrl + b, 使用上述設定後, 會設成 Ctrl + a, 至於快速鍵都會跟 Screen 一樣, Tmux 的快速鍵就沒有額外研究了.
註: 於此篇下方有 "Tmux 教學文件", 有興趣可自行參考.
至於 Screen 若不熟的(基本的跟下述兩篇都一樣), 這兩篇可以參考.
而 Tmux 有額外特殊功能部份, 如下述: (註: 下述都是依照上述的 .tmux.conf, 若設定檔不同, 可能快速鍵會有些差異)
- Tmux 功能
- C-a ? 看說明 (M 代表要先按一下 Esc 鍵)
- C-a t 時鐘, 現在時間
- C-a q 可以看到視窗數字 - 若有切割視窗比較容易懂
- 分割 / 切割視窗 相關
- C-a Ctrl按著 + 上下左右, 可以調整視窗大小
- C-a s 橫切
- C-a v 直切 (或 C-a %)
- C-a C-o 調換 切割視窗 的 位置
- C-a 上下左右 跳到上下左右的分割視窗
- 切割視窗有些 Default Layout 可以用, 假設我已經切了四個分割視窗.
- C-a Esc 1 直的切割視窗排列 (M-1)
- C-a Esc 2 橫的切割視窗排列 (M-2)
- C-a Esc 3 上面一個大的橫視窗 + 下面直的三個直視窗 (M-3)
- C-a Esc 4 左面一個大的橫視窗 + 右面直的三個直視窗 (M-4)
- C-a Esc 5 四個視窗各 1/4 (M-5)
多人共同 操作 / 顯示 同一畫面
- Screen 有多人可以一起登入看同一個畫面的功能, 作法: Linux 文字模式 螢幕畫面共享 - 使用Screen
- 於 Tmux 的話, 不需要做任何事情, 只要每個人登入後, 直接 tmux attach 進去, 就是多人共同看到的畫面, 大家都可以操作同一畫面.
Tmux 測試 256 色支援
- vim .bashrc # 若 tmux 沒有 256 色, 於 .bashrc 加入下述試試看.
alias tmux='TERM=xterm-256color tmux -2'
- $ echo -e "My favorite color is \033[38;5;148mYellow-Green\033[39m" # 應該會看到黃綠色的顏色, 若不支援 256 色, 會看到綠色
- $ tput colors
256
Tmux 教學文件 - 推薦
- Tmux - FrugalWiki
- TMUX – The Terminal Multiplexer (Part 1)
- TMUX – The Terminal Multiplexer (Part 2)
- switching from gnu screen to tmux (updated) | Linux~ized
- 從 screen 切換到 tmux
- TMUX rocks! - 投影片
習慣screen的話,可以直接使用byobu (apt-get install byobu)
嗯嗯, 這個看起來是幫 screen 做更多友善得設定, 感謝提供~
Hi,
tmux 有支援 multiple 送指令了嘛 😛
我不知道耶, 那是要做什麼用呢?
請問 tmux 支援捲軸模式用 hjkl 等 vi 的方式移動嗎?
支援阿, 只是我不確定是否預設就支援, 我的 .tmux.conf 是這樣子使用得. 🙂
調整視窗size我測了一下是Alt按住
感謝您的分享
很實用!
耶, 按住 alt 之後要怎麼調?
我是參照你文章這一行
"C-a Ctrl按著 + 上下左右, 可以調整視窗大小"
我Ctrl按著不能work 查了一下原來是按住Alt
Mmm... 我剛剛再測試一次, 確實是 Ctrl 沒錯耶. XD
是因為設定檔不同造成的?
剛測了一下 在Ubuntu下的確是按Ctrl
原來之前是在Pietty底下按Alt才能work
設定檔是copy你那份的XD
感謝~!
嗯嗯, 原來如此, 感恩~ Orz..
我剛剛有測過, Mac 也要用 Alt. 🙂
我的 tmux / screen 在默認設定下面不支援 Ctrl+x / Ctrl + e 調出 vim 來編輯當前指令。
請問需要設定什麼麼?
呃, 我沒這樣子用過耶, 不知道說. Orz.
用了 shell/tmux.conf 這個設定以後就變得不能用滑鼠直接選取文字了,敢問前輩知道問題出在哪嗎?
搞定了,看來是多加了以下這些造成的。
##bind -n M-s copy-mode
#set -g terminal-overrides 'xterm*:smcup@:rmcup@'
#setw -g mode-mouse copy-mode
#setw mouse-select-pane on
嗯嗯, 這些設定我都沒有耶. XD