tmux(terminal multiplexer)是Linux上的終端複用神器,可從一個屏幕上管理多個終端(準確說是僞終端)。使用該工具,用戶能夠鏈接或斷開會話,而保持終端在後臺運行。相似的工具還有screen,我的對這兩者的使用感覺是,用過tmux就不再想用screen了。shell
tmux的結構包括會話(session)、窗口(window)、窗格(pane)三部分,會話實質是僞終端的集合,每一個窗格表示一個僞終端,多個窗格展示在一個屏幕上,這一屏幕就叫窗口。基本結構及狀態信息以下圖所示:vim
基本的操做無非就是對會話、窗口、窗格進行管理,包括建立、關閉、重命名、鏈接、分離、選擇等等。bash
通常使用命令和快捷鍵進行操做,可在系統shell終端和tmux命令模式(相似vim的命令模式)下使用命令,或者在tmux終端使用快捷鍵。session
tmux默認的快捷鍵前綴是Ctrl+b(下文用prefix指代),按下前綴組合鍵後鬆開,再按下命令鍵進行快捷操做,好比使用prefix d分離會話(應該寫做prefix d而不是prefix+d,由於d鍵不須要與prefix同時按下)。工具
快捷鍵能夠自定義,好比將前綴改成Ctrl+a,但須要保留shell默認的Ctrl+a快捷鍵,按以下所示修改~/.tmux.conf文件:spa
1 set-option -g prefix C-a 2 unbind-key C-b 3 bind-key C-a send-prefix 4 bind-key R source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded."
如今已將原先的Ctrl+a用prefix Ctrl+a取代,即須要按兩次Ctrl+a生效。code
第4行的做用是使用prefix r從新加載配置文件,並輸出提示,不然須要關閉會話後配置文件才能生效,也可手動加載配置文件,在tmux終端輸入"prefix :"進入命令模式,用source-file命令加載配置文件。server
注意,將多個命令寫在一塊兒做爲命令序列時,命令之間要用空格和分號分隔。 blog
經常使用命令教程
tmux new 建立默認名稱的會話(在tmux命令模式使用new命令可實現一樣的功能,其餘命令同理,後文再也不列出tmux終端命令)
tmux new -s mysession 建立名爲mysession的會話
tmux ls 顯示會話列表
tmux a 鏈接上一個會話
tmux a -t mysession 鏈接指定會話
tmux rename -t s1 s2 重命名會話s1爲s2
tmux kill-session 關閉上次打開的會話
tmux kill-session -t s1 關閉會話s1
tmux kill-session -a -t s1 關閉除s1外的全部會話
tmux kill-server 關閉全部會話
經常使用快捷鍵
prefix s 列出會話,可進行切換
prefix $ 重命名會話
prefix d 分離當前會話
prefix D 分離指定會話
prefix c 建立一個新窗口
prefix , 重命名當前窗口
prefix w 列出全部窗口,可進行切換
prefix n 進入下一個窗口
prefix p 進入上一個窗口
prefix l 進入以前操做的窗口
prefix 0~9 選擇編號0~9對應的窗口
prefix . 修改當前窗口索引編號
prefix ' 切換至指定編號(可大於9)的窗口
prefix f 根據顯示的內容搜索窗格
prefix & 關閉當前窗口
prefix % 水平方向建立窗格
prefix " 垂直方向建立窗格
prefix Up|Down|Left|Right 根據箭頭方向切換窗格
prefix q 顯示窗格編號
prefix o 順時針切換窗格
prefix } 與下一個窗格交換位置
prefix { 與上一個窗格交換位置
prefix x 關閉當前窗格
prefix space(空格鍵) 從新排列當前窗口下的全部窗格
prefix ! 將當前窗格置於新窗口
prefix Ctrl+o 逆時針旋轉當前窗口的窗格
prefix t 在當前窗格顯示時間
prefix z 放大當前窗格(再次按下將還原)
prefix i 顯示當前窗格信息
tmux list-key 列出全部綁定的鍵,等同於prefix ?
tmux list-command 列出全部命令
以上爲tmux的常見操做,基本能夠知足大部分的工做需求,至於更高端的操做待往後再整理。
--------------------------------------------------
參考資料:
1. man tmux;
2. 《Tmux 速成教程:技巧和調整》。