本篇介紹如何在 Linux 中使用 tmux
終端機管理工具,分割視窗、同時開啟多個終端機。
傳統上在 Linux 中最常見的終端機管理程式是 screen,而後來又發展出 tmux
這個新的終端機管理工具,其功能更多,使用起來更方便。
安裝 tmux
若是 Ubuntu Linux 可用 apt
安裝 tmux
:
# Ubuntu Linux 安裝 tmux
sudo apt install tmux
若為 CentOS Linux 則可用 yum
安裝 tmux
:
# CentOS Linux 安裝 tmux
sudo yum install tmux
安裝好之後,即可執行 tmux
:
# 執行 tmux
tmux
進入 tmux
之後,畫面會像這樣,底部多了一條狀態列:
基本觀念
當我們執行 tmux
指令時,就會建立一個新的 session,在一個 session 中可以建立多個 windows,而每個 window 又可以分割成多個 panes,在下方的狀態列中會顯示目前所處的 session 與 window 編號。
在狀態列中最左側的編號是目前的 session 編號,接著是目前 session 之中所有的 windows 編號以及正在執行的程式名稱,目前所處的 windows 會以星號(*
)標示,以這個例子來說目前就是處於編號 2
的 window 中,正在執行 top
程式。
每一個 window 視窗都可以分割成多個 panes,每一個 pane 都是各自獨立的 shell,可以個別進行不同的工作,例如一邊使用 Vim 寫程式,另外一邊在 shell 中編譯、執行程式等。
Panes(分割視窗)
在 tmux 的環境中,若想要將 window 視窗分割成多個 pane,並管理建立的 panes,可以使用以下的操作組合鍵:
組合鍵 | 說明 |
---|---|
Ctrl+b 再輸入 % | 垂直分割視窗。 |
Ctrl+b 再輸入 " | 水平分割視窗。 |
Ctrl+b 再輸入 o | 以輪流方式輪流切換 pane。 |
Ctrl+b 再輸入 方向鍵 | 切換至指定方向的 pane。 |
Ctrl+b 再輸入 空白鍵 | 切換佈局。 |
Ctrl+b 再輸入 ! | 將目前的 pane 抽出來,獨立建立一個 window 視窗。 |
Ctrl+b 再輸入 x | 關閉目前的 pane。 |
Windows
若要建立與管理多個 windows 視窗,可以使用以下的操作組合鍵:
組合鍵 | 說明 |
---|---|
Ctrl+b 再輸入 c | 建立新 window 視窗(create)。 |
Ctrl+b 再輸入 w | 以視覺化選單切換 window 視窗(很好用)。 |
Ctrl+b 再輸入 n | 切換至下一個 window 視窗(next)。 |
Ctrl+b 再輸入 p | 切換至上一個 window 視窗(previous)。 |
Ctrl+b 再輸入 數字鍵 | 切換至指定的 window 視窗。 |
Ctrl+b 再輸入 & | 關閉目前的 window 視窗。 |
在切換視窗時,如果不清楚每個視窗的內容,非常推薦使用 Ctrl+b 再輸入 w 的方式,以選單配合預覽的方式選擇視窗。
Sessions
每執行一個 tmux
就會建立一個 session,若要列出目前所有的 sessions,可以執行:
# 列出所有 Sessions
tmux ls
0: 5 windows (created Wed Dec 4 10:02:22 2019) 1: 1 windows (created Wed Dec 4 10:12:14 2019)
若要繼續使用指定的 session,可以使用 attach
並指定要續用的 session 編號:
# 繼續使用第 0 個 Sessions tmux attach -t 0
而在 tmux
環境下,可以利用以下的操作組合鍵來操作 sessions:
組合鍵 | 說明 |
---|---|
Ctrl+b 再輸入 $ | 重新命名目前的 session。 |
Ctrl+b 再輸入 d | 分離目前的 session(detach),離開 tmux 環境。 |
Ctrl+b 再輸入 s | 以視覺化選單切換 session(select,很好用)。 |
Ctrl+b 再輸入 L | 切換至上一個使用過的 session。 |
Ctrl+b 再輸入 ( | 切換至上一個 session。 |
Ctrl+b 再輸入 ) | 切換至下一個 session。 |
在 tmux 環境之下切換 session 的時候,使用 Ctrl+b 再輸入 s 的方式,可以快速預覽每個 session 並選擇需要的 session。
搜尋功能
組合鍵 | 說明 |
---|---|
Ctrl+b 再輸入 f | 在所有 window 視窗中搜尋關鍵字(很好用)。 |
搜尋功能是一項很好用的功能,他可以讓我們在多 window 視窗中搜尋指定的關鍵字,並以選單方式呈現搜尋結果:
tmux 還有很多進階的功能,詳細的用法可以參考 tmux 的線上手冊:
man tmux
2 則自動引用通知