tmux使用簡單記錄

.tmux.conf 配置文件如下。

# ============================================================
# tmux 常用配置 - 適合日常開發(fā)
# ============================================================

# -------------------- 基礎(chǔ)設(shè)置 --------------------
# 前綴鍵改為 Ctrl+a(比默認(rèn) Ctrl+b 更順手)
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# 啟用鼠標(biāo)支持(滾輪、點(diǎn)擊窗格、拖拽調(diào)整大?。?set -g mouse on

# 增加滾動(dòng)歷史緩沖區(qū)
set -g history-limit 50000

# 減少按鍵延遲(vim 用戶必配)
set -sg escape-time 0

# 讓窗口編號(hào)從 1 開始
set -g base-index 1
setw -g pane-base-index 1

# 關(guān)閉中間窗口后自動(dòng)重新編號(hào)
set -g renumber-windows on

# 支持 256 色和真彩色
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"

# 系統(tǒng)剪貼板支持(需要 xclip 或 xsel)
# 選中后復(fù)制到系統(tǒng)剪貼板
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -selection clipboard"
# 鼠標(biāo)選中后也復(fù)制到系統(tǒng)剪貼板
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard"

# -------------------- 分屏快捷鍵 --------------------
# 更直觀的分屏快捷鍵(| 豎分,- 橫分,符號(hào)和方向一致)
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %

# 新建窗口也保持當(dāng)前路徑
bind c new-window -c "#{pane_current_path}"

# -------------------- 窗格導(dǎo)航 --------------------
# Vim 風(fēng)格窗格切換(無需前綴鍵)
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R

# Vim 風(fēng)格調(diào)整窗格大?。◣熬Y鍵 + H/J/K/L)
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5

# -------------------- 復(fù)制模式 --------------------
# vi 風(fēng)格的復(fù)制模式
setw -g mode-keys vi

# Enter 復(fù)制模式
bind Enter copy-mode

# v 開始選擇(vim 習(xí)慣)
bind-key -T copy-mode-vi v send-keys -X begin-selection

# -------------------- 實(shí)用快捷鍵 --------------------
# 快速重載配置
bind r source-file ~/.tmux.conf \; display-message "tmux config reloaded!"

# 快速交換窗格位置
bind > swap-pane -D
bind < swap-pane -U

# 快速跳轉(zhuǎn)到指定窗口(帶前綴鍵 + 數(shù)字)
bind 1 select-window -t :1
bind 2 select-window -t :2
bind 3 select-window -t :3
bind 4 select-window -t :4
bind 5 select-window -t :5
bind 6 select-window -t :6
bind 7 select-window -t :7
bind 8 select-window -t :8
bind 9 select-window -t :9

# 同步輸入到所有窗格(批量操作多臺(tái)服務(wù)器時(shí)超有用)
bind S setw synchronize-panes

# -------------------- 狀態(tài)欄美化 --------------------
# 狀態(tài)欄顏色(Tokyo Night 風(fēng)格)
set -g status-style "bg=#1a1b26,fg=#a9b1d6"

# 活動(dòng)窗口高亮
setw -g window-status-current-style "bg=#7aa2f7,fg=#1a1b26,bold"
setw -g window-status-current-format " #I:#W "

# 非活動(dòng)窗口
setw -g window-status-format " #I:#W "

# 窗格邊框
set -g pane-border-style "fg=#3b4261"
set -g pane-active-border-style "fg=#7aa2f7"

# 狀態(tài)欄左側(cè):會(huì)話名
set -g status-left-length 30
set -g status-left "#[fg=#1a1b26,bg=#7aa2f7,bold] #S #[default] "

# 狀態(tài)欄右側(cè):時(shí)間日期
set -g status-right-length 50
set -g status-right "#[fg=#565f89] %Y-%m-%d #[fg=#1a1b26,bg=#7aa2f7,bold] %H:%M "

# 消息樣式
set -g message-style "bg=#7aa2f7,fg=#1a1b26,bold"

# -------------------- 其他優(yōu)化 --------------------
# 監(jiān)聽窗口活動(dòng)(有輸出時(shí)高亮提示)
setw -g monitor-activity on
set -g visual-activity off

tmux 配置說明文檔

基于當(dāng)前 ~/.tmux.conf 配置編寫,適合零基礎(chǔ)新手。
配置文件位置:~/.tmux.conf
tmux 版本:3.2a


一、tmux 是什么?

tmux(Terminal Multiplexer)是一個(gè)終端復(fù)用器,核心能力:

  • 分屏:在一個(gè)終端窗口里同時(shí)顯示多個(gè)終端
  • 會(huì)話:關(guān)閉終端窗口后程序不會(huì)死,下次可以重新連上
  • 遠(yuǎn)程友好:SSH 斷了也能恢復(fù)工作現(xiàn)場(chǎng)

簡單理解:tmux 讓一個(gè)終端窗口變成多個(gè)終端,而且關(guān)不掉。

安裝(如果還沒裝)

sudo apt install tmux

二、最重要的概念:前綴鍵

什么是前綴鍵?

tmux 有一個(gè)特殊按鍵叫前綴鍵(prefix key)。你的配置把前綴鍵設(shè)為 Ctrl+a

絕大多數(shù) tmux 快捷鍵都需要兩步操作:

第一步:按下 Ctrl+a,然后松開
第二步:再按下一個(gè)功能鍵

?? 新手最容易犯的錯(cuò)

很多人會(huì)同時(shí)按住 Ctrl+a 和后面的鍵,這是不對(duì)的。

正確操作示范(以豎分屏 | 為例):

1. 按住 Ctrl
2. 按一下 a
3. 松開 Ctrl 和 a        ← 注意:這里要松開!
4. 按一下 Shift+\(即 | 鍵)

整個(gè)過程大概像這樣:Ctrl+a ... 松手 ... |

速記格式說明

本文檔用以下格式表示快捷鍵:

  • Ctrl+a | → 先按 Ctrl+a 松開,再按 |
  • Alt+h → 直接按,不需要前綴鍵(配置里用 -n 標(biāo)記的都不需要)

三、三大核心概念

tmux 用三個(gè)層級(jí)組織你的工作區(qū):

Session(會(huì)話)
  └── Window(窗口)—— 底部狀態(tài)欄顯示的標(biāo)簽頁
        └── Pane(窗格)—— 屏幕上分割出來的小區(qū)域

打個(gè)比方:

  • Session = 一個(gè)工作項(xiàng)目
  • Window = 項(xiàng)目里的不同任務(wù)(瀏覽器標(biāo)簽頁的感覺)
  • Pane = 同一個(gè)任務(wù)里需要并排看的東西

四、會(huì)話(Session)管理

啟動(dòng)與退出

# 啟動(dòng)一個(gè)匿名會(huì)話
tmux

# 啟動(dòng)一個(gè)命名會(huì)話(推薦,方便后續(xù)查找)
tmux new -s myproject

# 啟動(dòng)一個(gè)指定名稱的會(huì)話,并給它起個(gè)窗口名
tmux new -s myproject -n editor

# 從會(huì)話中脫離(會(huì)話在后臺(tái)繼續(xù)運(yùn)行,程序不會(huì)中斷)
# 快捷鍵:Ctrl+a d
# 或者命令:
tmux detach

查看與恢復(fù)

# 列出所有會(huì)話
tmux ls
# 輸出示例:
# myproject: 1 windows (created Tue Apr 15 10:00:00 2026)
# work: 3 windows (created Tue Apr 15 09:30:00 2026)

# 重新連接到上次的會(huì)話
tmux attach
# 或簡寫
tmux a

# 連接到指定會(huì)話
tmux attach -t myproject
# 或簡寫
tmux a -t myproject

會(huì)話內(nèi)切換

快捷鍵 說明
Ctrl+a s 列出所有會(huì)話(可用方向鍵選擇,Enter 切換)
Ctrl+a $ 重命名當(dāng)前會(huì)話
Ctrl+a d 脫離當(dāng)前會(huì)話(回到普通終端)

殺掉會(huì)話

# 殺掉指定會(huì)話
tmux kill-session -t myproject

# 殺掉所有會(huì)話
tmux kill-server

五、窗口(Window)管理

窗口就像瀏覽器的標(biāo)簽頁,在底部狀態(tài)欄顯示。

快捷鍵 說明
Ctrl+a c 新建窗口(自動(dòng)保持當(dāng)前路徑)
Ctrl+a 1 ~ Ctrl+a 9 跳轉(zhuǎn)到第 1~9 個(gè)窗口
Ctrl+a n 下一個(gè)窗口(next)
Ctrl+a p 上一個(gè)窗口(previous)
Ctrl+a w 列出所有窗口(可用方向鍵選擇)
Ctrl+a , 重命名當(dāng)前窗口
Ctrl+a & 關(guān)閉當(dāng)前窗口

狀態(tài)欄怎么看?

[myproject] 0:vim-  1:bash*  2:git-
             ↑       ↑         ↑
           非活動(dòng)   當(dāng)前窗口  非活動(dòng)
  • 帶高亮背景的是當(dāng)前窗口
  • * 的是當(dāng)前窗口
  • - 的是非活動(dòng)窗口
  • 窗口編號(hào)從 1 開始(你的配置設(shè)定了 base-index 1

六、窗格(Pane)管理 —— 分屏

這是 tmux 最常用的功能之一。

分屏

快捷鍵 說明
Ctrl+a | 左右豎分屏(` ` 豎線,視覺上和方向一致)
Ctrl+a - 上下橫分屏(- 橫線,視覺上和方向一致)

操作步驟(豎分屏):

1. Ctrl+a(松開)
2. Shift+\(即 | 鍵)

切換窗格

快捷鍵 說明
Alt+h 切到左邊窗格
Alt+j 切到下邊窗格
Alt+k 切到上邊窗格
Alt+l 切到右邊窗格

注意:這四個(gè)鍵不需要前綴鍵,直接 Alt+h 就行。
記憶方式:和 vim 的 h/j/k/l 完全一致(左/下/上/右)。

調(diào)整窗格大小

快捷鍵 說明
Ctrl+a H 窗格向左擴(kuò)大 5 格
Ctrl+a J 窗格向下擴(kuò)大 5 格
Ctrl+a K 窗格向上擴(kuò)大 5 格
Ctrl+a L 窗格向右擴(kuò)大 5 格

Ctrl+a H 可以連續(xù)按(按住 H 不松),因?yàn)榕渲美镉昧?-r(repeatable)。

其他窗格操作

快捷鍵 說明
Ctrl+a > 當(dāng)前窗格和下一個(gè)窗格交換位置
Ctrl+a < 當(dāng)前窗格和上一個(gè)窗格交換位置
Ctrl+a x 關(guān)閉當(dāng)前窗格(會(huì)有確認(rèn)提示)
Ctrl+a z 當(dāng)前窗格全屏/恢復(fù)(再按一次恢復(fù))

七、復(fù)制模式(Copy Mode)

當(dāng)你在 tmux 里想翻看之前的輸出、復(fù)制一段文字時(shí),需要進(jìn)入「復(fù)制模式」。

進(jìn)入與退出

操作 說明
Ctrl+a Enter 進(jìn)入復(fù)制模式
q 退出復(fù)制模式

復(fù)制模式下的操作(vi 風(fēng)格)

進(jìn)入復(fù)制模式后,可以用 vi 風(fēng)格的按鍵移動(dòng)光標(biāo):

按鍵 說明
h/j/k/l 左/下/上/右移動(dòng)光標(biāo)
w / b 下一個(gè)詞 / 上一個(gè)詞
gg 跳到最頂部
G 跳到最底部
Ctrl+u 向上翻半頁
Ctrl+d 向下翻半頁

選擇與復(fù)制

按鍵 說明
v 開始選擇(移動(dòng)光標(biāo)來選中文字)
y 復(fù)制選中內(nèi)容到系統(tǒng)剪貼板,并退出復(fù)制模式
q 不復(fù)制,直接退出

完整復(fù)制流程示例

場(chǎng)景:你想復(fù)制終端里的一段輸出

1. Ctrl+a Enter          ← 進(jìn)入復(fù)制模式
2. 用 j/k 或方向鍵移動(dòng)光標(biāo)到要復(fù)制的起始位置
3. 按 v                  ← 開始選擇(文字會(huì)高亮)
4. 用 j/k 移動(dòng)光標(biāo)到結(jié)束位置
5. 按 y                  ← 復(fù)制到系統(tǒng)剪貼板,自動(dòng)退出復(fù)制模式
6. 在其他程序里 Ctrl+V   ← 粘貼

鼠標(biāo)復(fù)制(更簡單)

你的配置啟用了鼠標(biāo)支持,所以也可以:

1. 直接用鼠標(biāo)拖選文字
2. 松開鼠標(biāo),內(nèi)容自動(dòng)復(fù)制到系統(tǒng)剪貼板
3. 在其他程序里 Ctrl+V 粘貼

八、同步輸入

同步輸入模式下,你在當(dāng)前窗格敲的每一個(gè)鍵都會(huì)同時(shí)發(fā)送到所有窗格。

快捷鍵 說明
Ctrl+a S 開啟/關(guān)閉同步輸入

使用場(chǎng)景:同時(shí)操作多臺(tái)服務(wù)器時(shí),在一個(gè)窗格輸入命令,所有窗格同時(shí)執(zhí)行。

注意:用完記得再按一次 Ctrl+a S 關(guān)掉,否則你切換到別的窗格時(shí)會(huì)一頭霧水。


九、鼠標(biāo)操作

你的配置啟用了 mouse on,所以可以直接用鼠標(biāo):

操作 說明
點(diǎn)擊窗格 切換到該窗格
拖拽窗格邊框 調(diào)整窗格大小
鼠標(biāo)滾輪 向上滾動(dòng)查看歷史輸出
鼠標(biāo)拖選文字 自動(dòng)復(fù)制到系統(tǒng)剪貼板
點(diǎn)擊狀態(tài)欄窗口名 切換到該窗口

小技巧:如果想在 tmux 里用鼠標(biāo)選中復(fù)制(而不是進(jìn)入復(fù)制模式),
直接拖選即可,松開后自動(dòng)復(fù)制。需要粘貼到 tmux 內(nèi)部的話用 Ctrl+a ]。


十、實(shí)用技巧

10.1 快速重載配置

修改 ~/.tmux.conf 后,不需要重啟 tmux:

Ctrl+a r → 顯示 "tmux config reloaded!" 即成功

10.2 命令模式

Ctrl+a : 進(jìn)入命令模式,可以輸入任何 tmux 命令:

:resize-pane -D 10      ← 當(dāng)前窗格向下擴(kuò)大 10 行
:swap-window -t 3       ← 把當(dāng)前窗口移到第 3 個(gè)位置
:set mouse off           ← 臨時(shí)關(guān)閉鼠標(biāo)
:kill-session -t old     ← 殺掉指定會(huì)話

10.3 在窗格間發(fā)送按鍵

有時(shí)你想在當(dāng)前窗格操作另一個(gè)窗格:

Ctrl+a : send-keys -t 1 "ls -la" Enter

這會(huì)向第 1 個(gè)窗格發(fā)送 ls -la 命令并執(zhí)行。

10.4 窗格全屏切換

正在一個(gè)窗格里專注工作時(shí),可以臨時(shí)全屏:

Ctrl+a z    ← 當(dāng)前窗格全屏
Ctrl+a z    ← 再按一次恢復(fù)

10.5 翻頁查看歷史

終端輸出太多,想往上翻看:

方法一:鼠標(biāo)滾輪直接滾(最直觀)
方法二:Ctrl+a Enter 進(jìn)入復(fù)制模式,然后用 Ctrl+u / Ctrl+d 翻頁

你的歷史緩沖區(qū)設(shè)置為 50000 行,足夠回看很長的輸出。

10.6 保存終端輸出到文件

在命令模式下:

:capture-pane -S -100    ← 捕獲當(dāng)前窗格最近 100 行
:save-buffer ~/output.txt ← 保存到文件

十一、狀態(tài)欄解讀

你的配置使用了 Tokyo Night 配色,狀態(tài)欄分三部分:

[左]                                    [中]              [右]
 #S(會(huì)話名)     1:vim-  2:bash*  3:git-       2026-04-15  14:30
 藍(lán)底白字        非活動(dòng)   當(dāng)前     非活動(dòng)        灰色       藍(lán)底白字
  • 左側(cè)藍(lán)色塊:當(dāng)前會(huì)話名稱(#S
  • 中間:窗口列表,高亮的是當(dāng)前窗口
  • 右側(cè):日期和時(shí)間

窗格邊框:

  • 非活動(dòng)窗格:暗藍(lán)色邊框
  • 當(dāng)前窗格:亮藍(lán)色邊框

十二、常見問題

Q:按了快捷鍵沒反應(yīng)?

檢查以下幾點(diǎn):

  1. 是否先按了 Ctrl+a松開了?
  2. | 需要 Shift+\,不是單獨(dú)按 \
  3. 確認(rèn)你在 tmux 會(huì)話內(nèi)(終端底部有狀態(tài)欄)

Q:鼠標(biāo)無法復(fù)制?

確認(rèn) xclip 已安裝:

which xclip
# 如果沒有輸出,安裝它:
# sudo apt install xclip

Q:顏色顯示不對(duì)?

確認(rèn)終端支持真彩色。在 .bashrc.zshrc 中設(shè)置:

export TERM=xterm-256color

Q:SSH 斷開后怎么恢復(fù)?

# 重新連接到服務(wù)器后
tmux a            # 恢復(fù)最近一個(gè)會(huì)話
tmux a -t work    # 恢復(fù)指定會(huì)話

Q:怎么退出 tmux?

# 方法一:脫離(會(huì)話后臺(tái)繼續(xù)運(yùn)行)
Ctrl+a d

# 方法二:殺掉會(huì)話(徹底關(guān)閉)
tmux kill-session -t 會(huì)話名

# 方法三:殺掉所有
tmux kill-server

Q:快捷鍵和程序沖突了?

Alt+h/j/k/l 可能和其他程序沖突。如果某個(gè)程序需要這些按鍵,
可以臨時(shí)關(guān)閉 tmux 鼠標(biāo):Ctrl+a :set mouse off,
用完再開:Ctrl+a :set mouse on。

Q:tmux 里 vim/nvim 顏色不對(duì)?

確認(rèn) ~/.tmux.conf 里有這兩行(你的配置已包含):

set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"

十三、完整快捷鍵速查表

通用操作

快捷鍵 說明 需要前綴鍵?
Ctrl+a 前綴鍵 -
Ctrl+a ? 顯示所有快捷鍵 Yes
Ctrl+a : 進(jìn)入命令模式 Yes
Ctrl+a r 重載配置文件 Yes
Ctrl+a d 脫離當(dāng)前會(huì)話 Yes

窗格(Pane)

快捷鍵 說明 需要前綴鍵?
Ctrl+a | 左右豎分屏 Yes
Ctrl+a - 上下橫分屏 Yes
Alt+h 切到左窗格 No
Alt+j 切到下窗格 No
Alt+k 切到上窗格 No
Alt+l 切到右窗格 No
Ctrl+a H 窗格向左擴(kuò)大 Yes
Ctrl+a J 窗格向下擴(kuò)大 Yes
Ctrl+a K 窗格向上擴(kuò)大 Yes
Ctrl+a L 窗格向右擴(kuò)大 Yes
Ctrl+a > 和下一個(gè)窗格交換 Yes
Ctrl+a < 和上一個(gè)窗格交換 Yes
Ctrl+a x 關(guān)閉當(dāng)前窗格 Yes
Ctrl+a z 全屏/恢復(fù)切換 Yes

窗口(Window)

快捷鍵 說明 需要前綴鍵?
Ctrl+a c 新建窗口 Yes
Ctrl+a 1~9 跳到第 N 個(gè)窗口 Yes
Ctrl+a n 下一個(gè)窗口 Yes
Ctrl+a p 上一個(gè)窗口 Yes
Ctrl+a w 列出所有窗口 Yes
Ctrl+a , 重命名窗口 Yes
Ctrl+a & 關(guān)閉窗口 Yes

復(fù)制模式

快捷鍵 說明 需要前綴鍵?
Ctrl+a Enter 進(jìn)入復(fù)制模式 Yes
v 開始選擇 僅復(fù)制模式內(nèi)
y 復(fù)制到系統(tǒng)剪貼板 僅復(fù)制模式內(nèi)
q 退出復(fù)制模式 僅復(fù)制模式內(nèi)
鼠標(biāo)拖選 復(fù)制到系統(tǒng)剪貼板 -

會(huì)話(Session)

快捷鍵 說明 需要前綴鍵?
Ctrl+a s 列出所有會(huì)話 Yes
Ctrl+a $ 重命名會(huì)話 Yes
Ctrl+a d 脫離會(huì)話 Yes
Ctrl+a S 開關(guān)同步輸入 Yes

十四、推薦的工作流

新手入門流程

1. 打開終端,輸入:tmux new -s work

2. 開始寫代碼,需要看日志?分屏:
   Ctrl+a -    (上下分屏,上面寫代碼,下面看日志)

3. 需要同時(shí)看另一個(gè)項(xiàng)目?新建窗口:
   Ctrl+a c    (新窗口,互不干擾)

4. 需要專注?全屏當(dāng)前窗格:
   Ctrl+a z    (再按恢復(fù))

5. 下班了?脫離會(huì)話:
   Ctrl+a d    (或者直接關(guān)掉終端窗口也行)

6. 明天繼續(xù):
   tmux a -t work    (工作現(xiàn)場(chǎng)完整恢復(fù))

進(jìn)階:多項(xiàng)目管理

# 每個(gè)項(xiàng)目一個(gè)會(huì)話
tmux new -s frontend     # 前端項(xiàng)目
tmux new -s backend      # 后端項(xiàng)目
tmux new -s devops       # 運(yùn)維操作

# 在會(huì)話間切換
Ctrl+a s    → 彈出會(huì)話列表,方向鍵選擇,Enter 切換

# 或者從終端直接切
tmux switch -t frontend

以上配置和文檔來自ai。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容