tmux 是一個運行於 OS X 和 Unix 上的終端分屏軟件 terminal multiplexer。shell
CTRL-b
: 同時按下 CTRL
鍵和 b
鍵CTRL-R
: 同時按下 CTRL
、SHIFT
和 r
鍵CTRL-b d
: 同時按下 CTRL
鍵和 b
鍵,再鬆開,而後再迅速按下 d
鍵在 OS X 上:windows
$ brew install tmux
在 Debian 和 Ubuntu 上:服務器
$ sudo apt-get install tmux
肯定是否安裝成功:session
$ tmux -V
開啓 tmux 只需輸入命令:佈局
$ tmux
執行後會打開一個 tmux 會話,和普通的終端會話同樣,能夠在裏面輸入和執行任何命令。命令行
要想從該 tmux 會話中退回到普通的終端,輸入命令:code
$ exit
以上的使用方式用處不大,應該使用 「命名會話」。htm
一臺機器上能夠有多個會話,要使各會話組織有序,應對其命名。進程
建立一個命名爲 basic 的會話:ip
$ tmux new-session -s basic
也能夠用簡寫的命令:
$ tmux new -s basic
tmux 是一個 CS 模式的程序,當開啓一個 tmux 會話時,會話就是一個服務器。全部在該會話環境中開啓的程序和進程都由這個會話服務器管理。當你與該會話 「脫離」 時,因爲會話尚未結束,這些開啓的程序和進程都會在後臺繼續運行。以後,咱們能夠從新 「關聯」 該會話,繼續以前的工做。
示例:
先建立一個命名會話:
$ tmux new -s basic
在該會話中,開啓一個 top 命令:
$ top
而後使用快捷鍵 CTRL-b d
從當前會話中脫離出來,脫離後,會回到普通的終端中。
CTRL-b d
快捷鍵的正確按法是:先同時按下 CTRL
鍵和 b
鍵做爲 tmux 命令的前綴,再所有鬆開按鍵,而後迅速按下表明 tmux 命令的 d
鍵,將 d 命令發送給 tmux。
tmux 的默認命令前綴是 CTRL-b
,記爲 PREFIX
,能夠對該設置進行再綁定。
列出當前機器上的所有會話:
$ tmux list-sessions
也能夠用簡寫命令:
$ tmux ls
該命令會顯示當前只有一個會話:
basic: 1 windows (created Sat Jul 30 09:48:32 2016) [80x23]
要想關聯現有的會話,若是隻有一個會話的話,直接:
$ tmux attach
先用 PREFIX d
從當前會話脫離,再建立一個新的會話但不自動關聯:
tmux new -s second_session -d
此時羅列會話命令會出來有兩個會話:
tmux ls
basic: 1 windows (created Sat Jul 30 09:48:32 2016) [80x23] second_session: 1 windows (created Sat Jul 30 09:52:31 2016) [80x23]
能夠用 -t
(target?) 選項來指定關聯的會話:
$ tmux attach -t second_session
在 tmux 會話內部,能夠用 exit
命令直接銷燬和退出當前會話。在普通終端下也能夠用 kill-session
進行:
$ tmux kill-session -t basic $ tmux kill-session -t second_session
若是某個會話中有僵死的程序,能夠用這個方法來關閉整個會話。
在一個 tmux 會話中能夠同時運行多個程序,tmux 在會話中可使用多窗口對多個程序進行有序組織和管理。
當開啓一個會話時,會自動建立一個初始窗口,以後,在會話中能夠再建立更多的窗口。
建立一個命名爲 windows 的會話,並將第一個(默認)窗口命名爲 shell:
$ tmux new -s windows -n shell
在會話中,使用快捷鍵 PREFIX c
建立一個新的窗口。並在該窗口中運行 top
命令。注意到,該窗口的名稱是基於運行的程序而動態變化的。爲方便管理,應對其顯式命名,方法是在使用快捷鍵 PREFIX ,
後,在狀態欄中輸入名稱,如 Processes。
當前焦點窗口的窗口名上會有一個 *
號。窗口切換能夠用如下快捷鍵:
PREFIX n
: 移到下一個(可往復循環)PREFIX p
: 移到上一個(可往復循環)PREFIX 編號
: 直接移到某編號的窗口,如 PREFIX 0
PREFIX f
: 根據窗口名來定位PREFIX w
: 顯示出一個含有全部窗口名稱的列表窗口,供選擇切換要關閉當前窗口,在窗口中直接運行 exit
命令。也能夠用快捷鍵 PREFIX &
,它會在狀態欄進行確認操做。當全部窗口都關閉後,會話也隨之關閉。
一個窗口能夠分割成多個窗格。並在每一個窗格中運行不一樣程序。
建立一個新的會話,練習多窗格操做:
$ tmux new -s panes
窗格分割快捷鍵:
PREFIX %
: 水平平均分割PREFIX "
: 垂直平均分割在各窗格間切換焦點,用快捷鍵 PREFIX o
,也能夠用 PREFIX 方向鍵
進行切換。
內置的幾種佈局模板:
能夠用快捷鍵 PREFIX SPACEBAR
依次在各佈局模板間切換。
用快捷鍵 PREFIX x
。
當前使用的快捷鍵都是 tmux 命令的快捷鍵。tmux 命令便可以在終端命令行中運行,也能夠和 VI 相似,在命令模式下的狀態行中運行。
在會話中,進入命令模式用快捷鍵 PREFIX :
, 此時,能夠在狀態欄中運行相應的 tmux 命令,如建立一個命名爲 console 的新窗口: new-window -n console
。
建立一個命名窗口,同時執行 "top" 命令: new-window -n processes "top"
,這樣建立的窗口當窗口中的命令執行完畢後,窗口會自動關閉。
快捷鍵 PREFIX ?
列出全部的快捷鍵。
建立會話的命令:
命令 | 描述 |
---|---|
tmux new-session | 建立一個匿名會話,能夠簡寫爲 tmux new 或直接 tmux |
tmux new -s devel | 建立一個命名爲 "devel" 的會話 |
tmux new -s devel -n editor | 建立一個名稱爲 "devel" 的會話,且將第一個窗口命名爲 "editor" |
tmux attach -t devel | 關聯到名爲 "devel" 的會話 |
關於會話、窗口、窗格的默認命令
命令 | 描述 |
---|---|
PREFIX d | 脫離會話,會話會在後臺繼續運行 |
PREFIX : | 進入命令模式 |
PREFIX c | 在會話中建立一個新窗口,對應 tmux 命令 new-window |
PREFIX 0...9 | 根據窗口編號在窗口中切換 |
PREFIX w | 顯示出當前會話中全部的窗口,供選擇切換 |
PREFIX , | 命名當前窗口 |
PREFIX & | 關閉當前窗口 |
PREFIX % | 水平平均分割窗口 |
PREFIX " | 垂直平均分割窗口 |
PREFIX o | 在多個窗格間循環切換 |
PREFIX q | 顯示窗格的編號 |
PREFIX x | 關閉當前窗格 |
PREFIX SPACE | 在各窗格佈局前切換 |
參考資源: