tmux 解决一件事:让你的远程任务和 SSH 连接解绑。SSH 断了 → tmux 里的程序继续跑;重新连上 → 接回去继续看。如果你用 VPS 跑 Claude Code 或在云端做任何长任务,tmux 是标配。

这是 tmuxcheatsheet.com 的中文整理版。


看 tmux 命令前先认 3 个东西

1. Prefix(前缀键)= Ctrl + b

tmux 所有快捷键都是先按 prefix,松开,再按下一个键。例如”创建新 window”:

按住 Ctrl + b    →  松开    →  按 c

不是三键同按,也不是长按。本文表格里 Ctrl + b c 都按这个节奏读。

2. Session / Window / Pane 三层结构

像浏览器:

tmux 概念类比浏览器是什么
session整个浏览器窗口一个独立工作环境,可命名,可后台保持
window浏览器标签页一个 session 里的”一屏”
pane标签页分屏一个 window 里再切出来的小框

一台服务器可以有多个 session(给不同项目);一个 session 多个 window(同一项目的不同任务);一个 window 多个 pane(同时跑 dev + log + git)。

3. 命令有 3 种来源

出现位置长什么样在哪输
CLI(shell 里)$ tmux ...还没进 tmux 之前在 shell 里跑
Prefix 快捷键Ctrl + b X已经在 tmux 里,按 prefix + 键
命令模式: ...(冒号开头)在 tmux 里先按 Ctrl + b : 进命令模式,再输入命令

⚠️ $: 是约定符号,不要把它打进去:

  • $ tmux ls —— 你在 terminal 看到的提示符末尾就是 $(或 root 的 #),教程里写出来是模拟”看到提示符时输入后面的内容”。实际输入的只是 tmux ls
  • : list-keys —— 表示先按 Ctrl + b : 进入命令模式(此时屏幕底部出现一个 : 提示符),然后只输入 list-keys

先看这个 — 4 个翻车点 90% 的新人都卡过

现象原因 / 解法
鼠标滚轮 / PgUp 不能翻页tmux 拦截了滚动。必须先 Ctrl + b [ 进 copy mode 才能翻(用方向键 / PgUp / q 退出)。或者 : set mouse on 开鼠标支持
关掉终端窗口 = session 死了错。关终端 ≠ kill session。session 一直在后台,tmux a -t name 还能接回
改了 ~/.tmux.conf 不生效tmux 不监听文件改动。要么 Ctrl + b : 然后输入 source-file ~/.tmux.conf,要么 detach 重 attach
Ctrl + b 太难按总按错~/.tmux.conf 里改 prefix 到 C-a(更顺手),记得 unbind C-b 否则两个都生效

如果你只看一行就关掉这个网页,看第一行——这是 tmux 新人第一个、最常见、最让人怀疑人生的卡点:“为什么我滚不上去看刚才的输出?” 答案:tmux 截胡了你的滚动,要看历史必须先进 copy mode(Ctrl + b [,然后方向键 / PgUp,q 退出)。


Session — 工作环境

CLI 命令(在 shell 里跑)

命令干什么用
tmux新建一个 session(无名字)
tmux new / tmux new-session同上,完整写法
tmux new -s mysession新建一个叫 mysession 的 session
tmux new -s mysession -n mywindow新建 session 同时给第一个 window 命名
tmux new-session -A -s mysessionmysession 就接上,没有就新建(最常用)
tmux ls / tmux list-sessions列出所有 session
tmux a / tmux at / tmux attach接回最后一个 session
tmux a -t mysession接回指定 session
tmux kill-ses -t mysession杀掉指定 session
tmux kill-session -a杀掉所有 session 除了当前
tmux kill-session -a -t mysession杀掉所有 session 除了 mysession

tmux 内快捷键

快捷键干什么用
Ctrl + b ddetach 当前 session(任务留在后台继续跑)
Ctrl + b $重命名当前 session
Ctrl + b s列出所有 session(选一个跳过去)
Ctrl + b wsession + window 预览(树形展开)
Ctrl + b (跳到上一个 session
Ctrl + b )跳到下一个 session
: new新建 session
: new -s mysession新建命名 session
: kill-session杀当前 session
: attach -ddetach 其他人在这个 session 上的连接(独占)

💡 detach ≠ kill。detach 只是断开连接,程序继续跑。这正是 tmux 的卖点——SSH 断了你 detach 一下,重新连上 attach 回去。


Window — 标签页

快捷键干什么用
Ctrl + b c新建 window
Ctrl + b ,重命名当前 window
Ctrl + b &关闭当前 window(会让你确认)
Ctrl + b w列出所有 window
Ctrl + b n下一个 window
Ctrl + b p上一个 window
Ctrl + b 0 ~ Ctrl + b 9按编号跳到对应 window
Ctrl + b l在最近两个 window 之间切换(toggle last)
Ctrl + b <打开 window 操作菜单

命令模式里的 window 操作

命令干什么用
: swap-window -s 2 -t 1交换 window 2 和 window 1 的位置
: swap-window -t -1把当前 window 往左移一格
: move-window -s src:0 -t dst:9把某 session 的 window 移到另一个 session
: movew -s 0:9把当前 window 重排到编号 9
: move-window -r / : movew -r重排 window 编号,消除空缺

Pane — 分屏

快捷键干什么用
Ctrl + b %垂直分屏(左右两个 pane)
Ctrl + b "水平分屏(上下两个 pane)
Ctrl + b ↑ ↓ ← →切换到对应方向的 pane
Ctrl + b o切到下一个 pane
Ctrl + b ;在最近两个 pane 间切换
Ctrl + b q短暂显示每个 pane 的编号
Ctrl + b q 0 ~ Ctrl + b q 9按编号跳到 pane
Ctrl + b zzoom 当前 pane(全屏 / 还原)
Ctrl + b Spacebar切换 pane 布局(预设几种)
Ctrl + b {把当前 pane 往左移
Ctrl + b }把当前 pane 往右移
Ctrl + b -调当前 pane 高度
Ctrl + b +调当前 pane 宽度
Ctrl + b !把当前 pane 变成一个独立 window
Ctrl + b x关闭当前 pane
Ctrl + b >打开 pane 操作菜单

命令模式里的 pane 操作

命令干什么用
: split-window -h垂直分屏(同 Ctrl + b %)
: split-window -v水平分屏(同 Ctrl + b ")
: join-pane -s 2 -t 1把 window 2 合并成 window 1 的 pane
: join-pane -s 2.1 -t 1.0把 window 2 的 pane 1 移到 window 1 的 pane 0
: setw synchronize-panes切换”同步输入”——一次输入发到所有 pane(批量改服务器配置神器)

Copy Mode — 翻历史 / 搜内容 / 复制

直接在 tmux 里滚鼠标或按 PgUp 没用。要看历史输出必须先进 copy mode。

进 / 出 copy mode

快捷键干什么用
Ctrl + b [进入 copy mode
Ctrl + b PgUp进 copy mode 同时往上翻一页
q退出 copy mode
Ctrl + b ]粘贴 buffer_0 的内容(到当前 pane)

在 copy mode 里(默认 emacs-style 键位)

按键干什么用
/ 上下滚一行
PgUp / PgDn上下翻一页
g跳到最顶
G跳到最底
h / j / k / l光标左 / 下 / 上 / 右(vi 风格,若开了 vi 模式)
w光标向前跳一个词
b光标向后跳一个词
/向下搜关键词
?向上搜关键词
n跳到下一个匹配
N跳到上一个匹配
Spacebar开始选中
Esc取消选中
Enter复制选中内容到 buffer

Buffer 管理(剪贴板)

命令干什么用
: show-buffer显示 buffer_0 内容
: capture-pane把当前 pane 可见内容存到 buffer
: list-buffers列出所有 buffer
: choose-buffer显示 buffer 列表选一个粘贴
: save-buffer buf.txt把 buffer 存到文件
: delete-buffer -b 1删 buffer_1
: setw -g mode-keys vi把 copy mode 改成 vi 风格键位(永久)

杂项 + 配置

命令 / 快捷键干什么用
Ctrl + b :进入命令模式(后面所有 : 开头的命令都从这里输入)
: set -g OPTION设置全局选项(所有 session)
: setw -g OPTION设置全局 window 选项
: set mouse on开鼠标支持——能用鼠标滚轮翻 / 点 pane 切换
: source-file ~/.tmux.conf重载配置文件(改完 .tmux.conf 必跑)
tmux -V显示 tmux 版本(在 shell 里)

查帮助

命令 / 快捷键干什么用
Ctrl + b ?列出当前所有快捷键(最重要的逃生键)
tmux list-keys在 shell 里列出所有快捷键
: list-keys在 tmux 里列出所有快捷键
tmux info显示所有 session / window / pane 的状态

最常用的 10 个 — 先记这些

如果你只想先记一打能用,这 10 个够 80% 的日常:

  1. tmux new -s work —— 新建命名 session
  2. tmux a -t work —— 接回
  3. tmux ls —— 看有哪些 session
  4. Ctrl + b d —— detach
  5. Ctrl + b c —— 新建 window
  6. Ctrl + b n / p —— 上 / 下一个 window
  7. Ctrl + b % / " —— 垂直 / 水平分屏
  8. Ctrl + b z —— pane zoom
  9. Ctrl + b [ —— 进 copy mode 翻历史
  10. Ctrl + b ? —— 查所有快捷键

tmux 的本质就一句话:让你的工作环境跟 SSH 连接解耦。 知道这一点,所有快捷键都只是它的语法糖。