Terminal · productivity

tmux
使用指南

把 terminal 工作留在背景繼續跑。最重要的概念只有三層:Session 裡有多個 Window,每個 Window 又可以切成多個 Pane

預設快捷鍵前綴:Ctrl + b,放開後再按下一個鍵

Session:最先要會的

你可以把 session 想成一個持續存在的工作區。SSH 斷線或 terminal 關掉,只要 tmux server 還在,session 通常都還在。

# 建立一個有名字的 session
$ tmux new -s work

# 查看目前有哪些 session
$ tmux ls

# 重新接回指定 session
$ tmux attach -t work

# 結束指定 session
$ tmux kill-session -t work
DETACH

退出 terminal,但保留工作

在 tmux 裡按 Ctrl + b,放開後按 d。這叫 detach,不會關掉 session。

  • 直接關掉 terminal 視窗,tmux session 通常也還會留著。
  • 但如果你在 pane 裡輸入 exit,是在關掉 shell;最後一個 pane/window 被關掉時,session 也會結束。
  • 重新接回:tmux attach -t work

Window:像 terminal 分頁

同一個 session 可以開很多 window,適合把 editor、server、logs 分開。

CREATE

Ctrl+bc

建立新的 window。

SWITCH

Ctrl+bn / p

切到下一個 / 上一個 window;也可以直接按 0~9。

RENAME

Ctrl+b,

重新命名目前 window,方便辨識用途。

Pane:同一頁切畫面

Pane 是同一個 window 裡的分割視窗。

操作快捷鍵用途
左右分割Ctrl+b%切成左右兩個 pane
上下分割Ctrl+b"切成上下兩個 pane
切換 paneCtrl+b → 方向鍵移動到相鄰 pane
放大 / 還原Ctrl+bz暫時把目前 pane 放到最大
關閉 paneCtrl+bxtmux 會先詢問是否關閉

最常用速查

如果只想先記一小組,這些就夠日常用了。

目的指令 / 快捷鍵說明
建立 sessiontmux new -s NAME建立並進入
離開但保留Ctrl+bdDetach
查看 sessiontmux ls列出目前 tmux sessions
接回 sessiontmux attach -t NAME重新連回工作環境
重新命名 sessionCtrl+b$修改目前 session 名稱
新增 windowCtrl+bc建立新分頁
列出 / 選擇 windowCtrl+bw顯示可選清單
進入 copy modeCtrl+b[可以用鍵盤往回捲;按 q 離開

推薦設定

tmux 的設定檔通常放在 ~/.tmux.conf

# ~/.tmux.conf

# 開啟滑鼠:選 pane、捲動、調整大小
set -g mouse on

# window / pane 編號從 1 開始
set -g base-index 1
setw -g pane-base-index 1

# 增加歷史捲動行數
set -g history-limit 50000
RELOAD

修改後不用重開 tmux

存檔後執行:

tmux source-file ~/.tmux.conf
小提醒:快捷鍵中的 Ctrl+b 是前綴,不是要和後面的鍵一起按住。例如 detach 是先按 Ctrl+b,放開,再按 d。