This articles is published 1312 days ago and last updated 731 days ago, some information may be out of date.
tmux - 多個終端管理工具
tmux_cover.pngtmux是多個終端管理器。它使您可以在一個終端中建立多個程序終端及可以相互之間切換,分離(程序仍然在後台繼續運行)。
'Ubuntu 安裝 tmux'
sudo apt update && sudo apt install tmux -y
TMUX_02.PNG根據圖示很好地理解tmux的層級結構
輸入tmux即可建立一個新的 session,在新的session中預設有一個新的windows視窗,而在windows視窗可以分割成多個 panes。
TMUX_03.JPG
在 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。 |
組合鍵 | 說明 |
---|
Ctrl+b 再按下Alt+方向鍵調整視窗 | 上下左右調整分割的視窗大小。 |
若要建立與管理多個 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 視窗。 |
每執行一次 tmux
就會新建一個 session
如要列出目前所有的 sessions
tmux ls
0: 1 windows (created Thu May 20 03:28:07 2021) (attached)
4: 1 windows (created Thu May 20 04:02:53 2021)
在切換視窗時,如果不清楚每個視窗的內容,推薦使用 Ctrl+b 再輸入 w 的方式,以選單配合預覽的方式選擇視窗。
TMUX_04.JPG新增
tmux
新增session自定名稱
tmux new -s <your_session_name>
session 列表
tmux ls
重新連線 session
tmux a -t 0
重新連線 指定session名稱
tmux a -t <session_name>
刪除 session
tmux kill-session -t 0
刪除指定session
tmux kill-session -t <session_name>
刪除全部session
tmux kill-session -a > 全部
刪除 tmux server
tmux kill-server
重新命名 session
tmux rename-session -t 0 <new_session_name>
在 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。
TMUX_05.JPG啟用Tmux的256色彩支援
echo 'set -g default-terminal "screen-256color"' >> ~/.tmux.conf
啟用在Tmux 的鼠標滾動模式
開啟新的tmux就可以透過tmux往回滾動查看歷史記錄。
echo "set -g mouse on" >> ~/.tmux.conf
也可以手動啟用, 按 Ctrl + B 鍵,然後按“ [ 或者 ] ”鍵。例如向上/向下箭頭、Page up/Page down等。當用戶完成滾動時,他可以通過按 Q 鍵退出 Tmux 的滾動模式。
在 Tmux 的鼠标滾動模式下复制一个项目
如果需要在單個Pane內複製內容,需要啟用這功能,選取已是複製。
vim ~/.tmux.conf
set -g mouse on
bind -n WheelUpPane {
if -F '#{==:#{window_name},nvim}' {
send-keys -M
} {
copy-mode -e
}
}
我是在編譯OpenWrt固件時留意到tmux的優點,通常需要SSH進入到編譯主機內進行, 在編譯的進程中不能關閉SSH視窗(編譯的過程是漫長),而tmux就很方便地解決這問題。
Linux tmux 終端機管理工具使用教學
How to scroll up and down in Tmux