【tmux x Claude Code 教學】#02 tmux 核心操作:視窗、面板與會話管理

測驗:tmux 核心操作:視窗、面板與會話管理

共 5 題,點選答案後會立即顯示結果

1. tmux 的三層架構由外到內的正確順序是什麼?

  • A. Window > Session > Pane
  • B. Pane > Window > Session
  • C. Session > Window > Pane
  • D. Session > Pane > Window

2. tmux 的前綴鍵(prefix key)預設是什麼?它的作用是什麼?

  • A. Ctrl+a,用來啟動 tmux 程式
  • B. Ctrl+b,用來告訴 tmux「接下來的按鍵是給你的指令」
  • C. Ctrl+b,用來同時和指令鍵一起按下送出操作
  • D. Ctrl+d,用來從 tmux 會話中分離

3. 你在 tmux 裡按了 Ctrl+b d 之後會發生什麼事?

  • A. 刪除目前的會話,所有程式都會停止
  • B. 關閉目前的面板
  • C. 關閉目前的視窗
  • D. 離開(detach)會話回到普通終端機,但會話在背景繼續執行

4. 你看到 tmux 狀態列顯示如下內容:

[my-app] 0:code 1:server* 2:git

這代表什麼意思?

  • A. 目前在名為 server 的會話中,有 3 個面板
  • B. 目前在視窗 0(code),會話名稱是 server
  • C. 目前在名為 my-app 的會話中,正在查看視窗 1(server),共有 3 個視窗
  • D. 目前有 3 個會話正在執行,server 是目前使用中的會話

5. 你正在 tmux 中使用 Claude Code,畫面被分成左右兩個面板,但左邊面板太小看不清楚 Claude Code 的輸出。以下哪個操作流程最合適?

  • A. 關閉右邊面板(Ctrl+b x),看完再重新分割
  • B. 切到左邊面板後按 Ctrl+b z 放大,看完再按一次 Ctrl+b z 還原
  • C. 按 Ctrl+b [ 進入捲動模式,畫面就會自動放大
  • D. 按 Ctrl+b c 建立新視窗,在新視窗重新開啟 Claude Code

一句話說明

tmux 把你的終端機分成三層結構(會話、視窗、面板),讓你同時做很多事而不會搞混。


為什麼你需要懂這些操作

上一篇我們說了為什麼要用 tmux。這一篇要教你實際操作。

想像一個場景:你在左邊面板用 Claude Code 改程式碼,右邊面板即時看檔案變化,底下面板跑測試。如果 SSH 斷線了?沒關係,重新連上來,tmux attach 一下,所有東西都還在。

要做到這些,你需要搞懂 tmux 的三個核心概念和對應操作。


tmux 的三層架構:session / window / pane

這是整篇文章最重要的概念。tmux 的世界分三層:

Session(會話)
 └── Window(視窗)
      └── Pane(面板)

生活化比喻

tmux 術語 生活比喻 說明
Session(會話) 一張辦公桌 一個獨立的工作空間,斷線後還在
Window(視窗) 桌上的一份文件 同一張桌子上可以有多份文件,切換查看
Pane(面板) 把文件分成左右兩欄 同一份文件裡,畫面分割成多個區塊

翻譯成白話

  • 你可以有好幾張「辦公桌」(session),每張桌負責一個專案
  • 每張桌上有好幾份「文件」(window),例如一份寫程式、一份看 log
  • 每份文件可以「分欄」(pane),左邊跑 Claude Code、右邊看結果
Session: "my-project"
 ├── Window 0: "code"      ← 你正在看這個
 │    ├── Pane 0: Claude Code(左邊)
 │    └── Pane 1: 檔案監控(右邊)
 ├── Window 1: "server"
 │    └── Pane 0: npm run dev
 └── Window 2: "git"
      └── Pane 0: git log
Code language: JavaScript (javascript)

前綴鍵:tmux 的通關密語

在學任何操作之前,你必須先懂一個東西:前綴鍵(prefix key)

tmux 的預設前綴鍵是 Ctrl+b

這在幹嘛:因為你在終端機打的每個字都會送到正在跑的程式,tmux 需要一個方法知道「這個指令是給我的,不是給程式的」。所以你要先按 Ctrl+b 告訴 tmux:「接下來這個按鍵是給你的。」

操作方式

1. 先按 Ctrl+b(按完放開)
2. 再按指令鍵(例如 d、c、%)

注意:不是同時按三個鍵。是「先按 Ctrl+b 放開,再按指令鍵」。

最小範例

# 想要從 tmux 暫時離開(detach)
# 步驟:
Ctrl+b   # 先按這個,放開
d        # 再按 d
# 結果:你回到原本的終端機,tmux 會話在背景繼續跑
Code language: PHP (php)

本文後面所有寫 Ctrl+b X 的地方,都是這個意思:先按 Ctrl+b,放開,再按 X


會話(Session)管理

會話是最外層。每個會話是一個獨立的工作空間。

必看懂的指令

你想做什麼 指令 在哪裡打
建立新會話 tmux new -s 名稱 普通終端機
列出所有會話 tmux ls 普通終端機
連回會話 tmux attach -t 名稱 普通終端機
離開會話(不關閉) Ctrl+b d tmux 裡面
刪除會話 tmux kill-session -t 名稱 普通終端機

逐行翻譯

tmux new -s my-project
# tmux new    → 建立新會話
# -s          → 指定名稱(s = session name)
# my-project  → 會話的名字,等等要 attach 回來時用

tmux ls
# 列出目前所有會話
# 輸出長這樣:
# my-project: 1 windows (created Sat Feb  7 10:00:00 2026)
# blog: 2 windows (created Sat Feb  7 09:30:00 2026)

tmux attach -t my-project
# tmux attach → 連回一個存在的會話
# -t          → 指定目標(t = target)
# my-project  → 要連回哪個會話
Code language: PHP (php)

實際操作流程

# 1. 開一個叫 "claude-project" 的會話
tmux new -s claude-project

# 2. 在裡面做事... 跑 Claude Code 之類的

# 3. 要去吃飯了,按 Ctrl+b d 離開(detach)
#    會話在背景繼續跑,Claude Code 不會斷

# 4. 吃完飯回來
tmux attach -t claude-project
#    所有東西都還在,繼續工作
Code language: PHP (php)

重點detach 不是關閉,是「把會話放到背景」。就像你把辦公桌上的東西留著,人走開而已。


視窗(Window)管理

視窗是中間層。同一個會話裡可以有多個視窗,像瀏覽器的分頁。

必看懂的操作

你想做什麼 按鍵 說明
新建視窗 Ctrl+b c c = create
下一個視窗 Ctrl+b n n = next
上一個視窗 Ctrl+b p p = previous
切到第 N 個視窗 Ctrl+b 數字 例如 Ctrl+b 0 切到第 0 個
重新命名視窗 Ctrl+b , 按完會出現輸入框
關閉視窗 Ctrl+b & 會問你確認

狀態列怎麼看

tmux 畫面最下方有一條狀態列,長這樣:

[claude-project] 0:code* 1:server 2:git
Code language: CSS (css)

翻譯

  • [claude-project] → 會話名稱
  • 0:code* → 視窗 0,名叫 code,* 表示你正在看這個
  • 1:server → 視窗 1,名叫 server
  • 2:git → 視窗 2,名叫 git

實際操作流程

# 1. 你已經在 tmux 會話裡了

# 2. 建立新視窗
Ctrl+b c
# 狀態列變成:0:bash  1:bash*
#                           ↑ 你在這裡

# 3. 幫視窗取個名字
Ctrl+b ,
# 底下出現輸入框,打 "server" 按 Enter
# 狀態列變成:0:bash  1:server*

# 4. 切回第一個視窗
Ctrl+b 0
# 狀態列變成:0:bash*  1:server
#              ↑ 你在這裡
Code language: PHP (php)

面板(Pane)管理

面板是最內層。把一個視窗的畫面切成好幾塊,同時看多個東西。

必看懂的操作

你想做什麼 按鍵 記憶方式
左右分割 Ctrl+b % % 中間有條直線,像左右分割
上下分割 Ctrl+b " " 上下兩個點,像上下分割
切換面板 Ctrl+b 方向鍵 方向鍵指向你要去的面板
關閉面板 Ctrl+b x x = 叉叉關閉,會問確認
最大化/還原面板 Ctrl+b z z = zoom

分割的效果

# 原本只有一個面板
┌─────────────────────────┐
│                         │
│         Pane 0          │
│                         │
└─────────────────────────┘

# 按 Ctrl+b % 左右分割
┌────────────┬────────────┐
│            │            │
│   Pane 0   │   Pane 1   │
│            │            │
└────────────┴────────────┘

# 在右邊面板再按 Ctrl+b " 上下分割
┌────────────┬────────────┐
│            │   Pane 1   │
│   Pane 0   ├────────────┤
│            │   Pane 2   │
└────────────┴────────────┘
Code language: PHP (php)

Zoom 模式(超實用)

有時候面板太小看不清楚,Ctrl+b z 可以把當前面板暫時放大到全螢幕:

# 按 Ctrl+b z 前
┌────────────┬────────────┐
│            │   Pane 1   │
│   Pane 0   ├────────────┤
│            │   Pane 2   │
└────────────┴────────────┘

# 按 Ctrl+b z 後(Pane 0 放大)
┌─────────────────────────┐
│                         │
│     Pane 0(放大中)     │
│                         │
└─────────────────────────┘
# 狀態列會出現 Z 標記,表示正在 zoom

# 再按一次 Ctrl+b z → 回到原本的分割畫面
Code language: PHP (php)

捲動模式:往上看歷史輸出

預設情況下,tmux 裡面沒辦法用滑鼠滾輪往上看。你需要進入捲動模式(copy mode)

Ctrl+b [     # 進入捲動模式

# 進入後可以:
方向鍵 ↑↓    # 一行一行捲動
Page Up      # 往上翻一頁
Page Down    # 往下翻一頁
q            # 離開捲動模式
Code language: PHP (php)

什麼時候會用到:Claude Code 輸出了很長的結果,你想往上看前面的內容。


搭配 Claude Code 的實戰配置

以下是一個 Vibe Coder 最實用的 tmux 配置方式。

場景:用 Claude Code 開發專案

# 1. 建立專案會話
tmux new -s my-app

# 2. 左右分割
Ctrl+b %

# 畫面變成:
# ┌────────────┬────────────┐
# │            │            │
# │  左面板     │   右面板    │
# │            │            │
# └────────────┴────────────┘

# 3. 左邊面板:啟動 Claude Code
claude

# 4. 切到右邊面板
Ctrl+b →(右方向鍵)

# 5. 右邊面板:即時監控檔案變化
# 例如用 watch 或 ls -la 看看 Claude 改了什麼
watch -n 1 'git diff --stat'

# 畫面變成:
# ┌────────────┬────────────┐
# │            │ watch 顯示  │
# │ Claude Code│ git 變更    │
# │ 對話中...   │ 的檔案      │
# └────────────┴────────────┘
Code language: PHP (php)

場景:需要同時看 server log

# 接著上面的配置,在右邊面板上下分割
Ctrl+b "

# 畫面變成:
# ┌────────────┬────────────┐
# │            │ git diff   │
# │ Claude Code├────────────┤
# │            │(新面板)    │
# └────────────┴────────────┘

# 在新面板跑 server
npm run dev

# 最終畫面:
# ┌────────────┬────────────┐
# │            │ 檔案變化    │
# │ Claude Code├────────────┤
# │            │ server log │
# └────────────┴────────────┘
Code language: PHP (php)

操作小技巧

當你要在 Claude Code 面板看完整輸出時:

# 1. 先切到 Claude Code 面板
Ctrl+b ←(左方向鍵)

# 2. 放大它
Ctrl+b z

# 3. 看完了,縮回去
Ctrl+b z
Code language: PHP (php)

快速參考卡片

把這張表存起來,忘記的時候翻一下。

會話(在普通終端機打)

tmux new -s 名稱       # 建立會話
tmux ls                # 列出會話
tmux attach -t 名稱    # 連回會話
tmux kill-session -t 名稱  # 刪除會話
Code language: PHP (php)

tmux 內操作(先按 Ctrl+b 再按)

d          離開會話(detach,不關閉)
c          新建視窗
n / p      下一個 / 上一個視窗
0-9        切到第 N 個視窗
,          重命名視窗
&          關閉視窗

%          左右分割面板
"          上下分割面板
方向鍵      切換面板
x          關閉面板
z          最大化 / 還原面板

[          進入捲動模式(q 離開)

Vibe Coder 檢查點

學完這篇,確認自己能做到:

  • [ ] 能建立一個有名字的 tmux 會話(tmux new -s 名稱
  • [ ] 能 detach 後再 attach 回來,東西都還在
  • [ ] 能在同一個會話裡建立多個視窗並切換
  • [ ] 能把畫面分成左右兩個面板,一邊跑 Claude Code
  • [ ] 知道 Ctrl+b z 可以暫時放大面板
  • [ ] 知道 Ctrl+b [ 可以往上捲動看歷史輸出

必看懂 vs 知道就好

必看懂(天天都會用)

  • 會話的 new / attach / detach
  • 面板的分割(%")和切換(方向鍵)
  • 面板的 zoom(z

知道就好(遇到再查)

  • 面板大小調整:Ctrl+b Ctrl+方向鍵 可以微調面板大小
  • 面板交換位置:Ctrl+b {Ctrl+b } 可以把面板前後交換
  • 同步輸入:setw synchronize-panes on 可以同時在所有面板輸入一樣的指令
  • 自訂前綴鍵:很多人會把 Ctrl+b 改成 Ctrl+a(這是下一篇的內容)

下一篇預告

你現在會操作 tmux 了,但每次操作都要按好幾個鍵,而且預設的分割鍵(%")也不太直覺。下一篇會教你怎麼透過設定檔 .tmux.conf 來客製化 tmux,讓它更順手,也更適合搭配 Claude Code 使用。

進階測驗:tmux 核心操作:視窗、面板與會話管理

測驗目標:驗證你是否能在實際情境中應用所學。
共 5 題,包含情境題與錯誤診斷題。

1. 你正在用 Claude Code 開發一個 Web 應用,需要同時做三件事:左邊跑 Claude Code 對話、右上角監控 git 檔案變化、右下角跑開發伺服器。你已經建立了會話並啟動 Claude Code,接下來應該怎麼操作? 情境題

  • A. 按 Ctrl+b c 建立兩個新視窗,分別跑 git watch 和開發伺服器
  • B. 按 Ctrl+b % 左右分割,切到右面板後按 Ctrl+b " 上下分割,在兩個新面板分別執行任務
  • C. 按 Ctrl+b " 上下分割兩次,產生三個水平排列的面板
  • D. 開三個獨立的 tmux 會話,每個會話跑一項任務

2. 你在公司透過 SSH 連線到遠端伺服器,在 tmux 裡用 Claude Code 跑了一個需要很久的程式碼重構任務。現在要去開會了,你希望離開但讓 Claude Code 繼續跑。開完會後回來,你要怎麼恢復工作? 情境題

  • A. 直接關掉 SSH 視窗,回來後重新 SSH 連線,Claude Code 會自動恢復
  • B. 按 Ctrl+b & 關閉視窗,回來後用 tmux new -s 建立新會話
  • C. 按 Ctrl+b d 分離會話,回來後用 tmux attach -t 會話名稱 重新連回
  • D. 按 Ctrl+b x 關閉面板,回來後用 tmux ls 找回會話

3. 你同時在開發兩個不同的專案:一個前端專案和一個後端 API 專案。你希望兩個專案的工作環境完全獨立,互不干擾,而且各自可以有多個視窗和面板。最合適的 tmux 組織方式是什麼? 情境題

  • A. 建立兩個會話:tmux new -s frontendtmux new -s backend,各自在裡面建立需要的視窗和面板
  • B. 在同一個會話裡建立兩個視窗,一個視窗放前端、一個放後端
  • C. 在同一個視窗裡左右分割,左邊面板做前端、右邊面板做後端
  • D. 不用 tmux,直接開兩個終端機視窗分別工作

4. 小華想在 tmux 裡把畫面左右分割,但他按了以下按鍵後,畫面卻變成上下分割。請問他最可能按錯了什麼? 錯誤診斷

小華的操作:Ctrl+b ” 結果:畫面變成上下分割(不是他想要的左右分割)
  • A. 他忘記先按 Ctrl+b 前綴鍵
  • B. 他按對了前綴鍵,但搞混了分割鍵:" 是上下分割,左右分割應該按 %
  • C. 他同時按了 Ctrl+b",應該要分開按
  • D. 他的 tmux 版本太舊,不支援左右分割功能

5. 小美在 tmux 裡使用 Claude Code,想往上捲動查看之前的輸出內容,但她用滑鼠滾輪往上滾,畫面完全沒有反應。她接著嘗試了以下操作,但仍然無法捲動。請問問題出在哪裡? 錯誤診斷

小美的嘗試: 1. 用滑鼠滾輪往上滾 → 沒反應 2. 按鍵盤的 Page Up → 沒反應 3. 按 Ctrl+b 然後按方向鍵 ↑ → 切換到上面的面板了,不是捲動
  • A. tmux 不支援捲動功能,必須退出 tmux 才能查看歷史輸出
  • B. 她需要先按 Ctrl+b z 放大面板,放大後就能自動捲動
  • C. 她需要先按 Ctrl+b [ 進入捲動模式(copy mode),然後才能用方向鍵或 Page Up/Down 捲動,看完後按 q 離開
  • D. 她需要用 Ctrl+b Page Up 來觸發捲動,直接按 Page Up 是沒用的

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *