tmux 速查表与命令参考
tmux 是一个终端复用器:断开连接后会话继续运行,一个窗口可拆分为多个面板,把单个终端变成持久的工作区。本页是快速参考——所有快捷键分组详解。
- 1按下前缀键 Ctrl+b
- 2松开
- 3再按功能键,如 d
每天最常用的 8 个快捷键
先掌握这些——它们覆盖 90% 的日常操作。
Prefix d
退出后程序继续运行tmux a
回到最近一次的会话Prefix c
类似浏览器标签页Prefix %
并排两个面板Prefix "
上下堆叠面板Prefix z
再按一次恢复Prefix [
复制模式即回滚查看Prefix s
从列表中选择会话
会话是 tmux 的核心——断开连接后工作不丢。
| 操作 | 快捷键 / 命令 | 说明 |
|---|---|---|
| 新建命名会话 | tmux new -s name | 务必给会话命名 |
| 分离 / 重新接入 | Prefix d · tmux a -t name | 日常往返循环 |
| 列出 / 切换 | tmux ls · Prefix s | 选择器或命令行 |
| 重命名 / 终止 | Prefix $ · tmux kill-session -t name | 终止不可恢复 |
窗口
窗口是会话里的标签页。
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 新建 / 关闭 | Prefix c · Prefix & | 关闭前会确认 |
| 下一个 / 上一个 / 按编号 | n · p · 0…9 (配合前缀键) | 按编号跳转最快 |
| 重命名 / 列表 | , · w (配合前缀键) | 列表即总览选择器 |
面板
面板是同一窗口内的拆分。
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 拆分面板 | Prefix % · Prefix " | % 左右并排,引号键上下堆叠 |
| 移动 / 调整大小 | Prefix ↑↓←→ · hold Ctrl | 方向键移动;Ctrl+方向键调整 |
| 全屏 / 关闭 | Prefix z · x | z 切换全屏 |
复制模式与滚动
滚动前要先进入复制模式——新手第一困惑。
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 进入复制模式 | Prefix [ | 之后用 PgUp/PgDn 或方向键 |
| 选择、复制、粘贴 | Ctrl+Space · Alt+w · Prefix ] | vi 模式:Space / Enter |
| 搜索 / 退出 | Ctrl+s · q | vi 模式:/ 和 ? |
自定义 ~/.tmux.conf
多数配置都从这四行开始。
| 目标 | 配置 | 说明 |
|---|---|---|
| 前缀键改为 Ctrl+a | set -g prefix C-a | 记得同时 unbind C-b |
| 开启鼠标 | set -g mouse on | 点击、拖拽、滚轮 |
| 回滚 5 万行 | set -g history-limit 50000 | 默认只有 2 千行 |
| 快速重载 | bind r source-file ~/.tmux.conf | 之后 Prefix+r 即可重载 |
tmux 新手?接着读
前缀键(Prefix Key)
这份 tmux cheat sheet(速查表)按主题分组,忘了随时回来查。在开始之前,你必须知道一个概念:所有 tmux 指令(快捷键)都需要先按一个前缀键(prefix key),松开后再按功能键。
默认前缀键是 Ctrl+b。
本文中用 Prefix 代表这个前缀键。举个例子,Prefix+d 的意思是:先按 Ctrl+b,松开,再按 d。
说实话,这个默认键位不太顺手——左手要跨一大截。很多人的第一个 tmux 配置就是把前缀键改成 Ctrl+a(跟 screen 一样)或者 Ctrl+Space。如果你想改,在 ~/.tmux.conf 里加一行就行:
unbind C-b
set -g prefix C-a改完之后运行 tmux source-file ~/.tmux.conf 让它生效。
tmux Cheat Sheet:Session(会话)管理命令
这份 tmux cheat sheet 从最核心的 session 操作开始。Session 是 tmux 的顶层容器——一个 session 里可以包含多个 window,每个 window 又可以分成多个 pane。
| 操作 | 快捷键 / 命令 | 常用度 | 说明 |
|---|---|---|---|
| 新建 session | tmux new -s 名称 | ⭐⭐⭐ | 建议始终给 session 起个名字 |
| 新建(不命名) | tmux | ⭐⭐ | 会自动生成数字编号 |
| 后台新建 | tmux new -s 名称 -d | ⭐⭐ | 创建后不自动连接,后台运行 |
| 断开(detach) | Prefix+d | ⭐⭐⭐ | 退出但保持后台运行,最常用 |
| 重新连接 | tmux attach -t 名称 | ⭐⭐⭐ | 或简写 tmux a -t 名称 |
| 连接上一个 session | tmux a | ⭐⭐⭐ | 只有一个 session 时最方便 |
| 列出所有 session | tmux ls | ⭐⭐⭐ | 或 tmux list-sessions |
| 切换 session | Prefix+s | ⭐⭐ | 弹出列表选择 |
| 重命名 session | Prefix+$ | ⭐⭐ | 输入新名称回车确认 |
| 杀死指定 session | tmux kill-session -t 名称 | ⭐⭐ | 关闭并销毁 |
| 杀死所有 session | tmux kill-server | ⭐ | 核弹按钮,慎用 |
一个典型的日常操作流程:
# 早上到公司,创建一个叫"work"的 session
tmux new -s work
# 中午吃饭,断开(session 继续在服务器上跑)
# 按 Prefix+d
# 下午回来,重新连接
tmux a -t work
# 下班了,再次断开就行对了,在 SSH 场景下这个特别有用。你 SSH 到服务器开个 tmux,跑个耗时任务然后 detach,哪怕网络断了任务也不会中断。下次再 attach 回来就能看到输出。
Window(窗口)快捷键与 tmux 常用命令
Window 类似浏览器里的标签页。一个 session 里可以开多个 window,每个 window 独立运行。
| 操作 | 快捷键 / 命令 | 常用度 | 说明 |
|---|---|---|---|
| 新建 window | Prefix+c | ⭐⭐⭐ | c = create |
| 下一个 window | Prefix+n | ⭐⭐ | n = next |
| 上一个 window | Prefix+p | ⭐⭐ | p = previous |
| 按编号跳转 | Prefix+0~9 | ⭐⭐⭐ | 直接跳到对应编号的 window |
| 重命名 window | Prefix+, | ⭐⭐ | 给 window 起个有意义的名字 |
| 关闭当前 window | Prefix+& | ⭐ | 会提示确认 |
| 列出所有 window | Prefix+w | ⭐⭐ | 弹出列表,可选择跳转 |
| 查找 window | Prefix+f | ⭐ | 按名称搜索 |
我自己习惯把 window 按用途命名:一个叫 "editor" 写代码,一个叫 "server" 跑服务,一个叫 "git" 做版本管理。这样 Prefix+0/1/2 切换起来非常快。
Pane(面板)快捷键(Shortcuts)
Pane 是 tmux 的分屏功能,一个 window 可以分成多个 pane。这也是 tmux shortcuts 中使用频率最高的一组。
分屏
| 操作 | 快捷键 / 命令 | 常用度 | 说明 |
|---|---|---|---|
| 水平分屏 | Prefix+" | ⭐⭐⭐ | 上下分成两半 |
| 垂直分屏 | Prefix+% | ⭐⭐⭐ | 左右分成两半 |
注意:tmux 里的"水平"和"垂直"说的是分割线的方向,不是新 pane 出现的位置。
"产生水平分割线(上下),%产生垂直分割线(左右)。这个定义跟很多人直觉相反,记住就好。
导航与切换
| 操作 | 快捷键 / 命令 | 常用度 | 说明 |
|---|---|---|---|
| 切换到上方 pane | Prefix+↑ | ⭐⭐⭐ | 方向键 |
| 切换到下方 pane | Prefix+↓ | ⭐⭐⭐ | |
| 切换到左方 pane | Prefix+← | ⭐⭐⭐ | |
| 切换到右方 pane | Prefix+→ | ⭐⭐⭐ | |
| 按编号切换 | Prefix+q 然后按数字 | ⭐⭐ | 先按 q 显示编号,快速按数字跳转 |
| 循环切换 | Prefix+o | ⭐⭐ | 按顺序轮流切换 |
调整大小
| 操作 | 快捷键 / 命令 | 常用度 | 说明 |
|---|---|---|---|
| 调整大小 | Prefix 然后按住 Ctrl+↑↓←→ | ⭐⭐ | 每次移动 1 格 |
| 快速调整 | Prefix + 连续按 ↑↓←→ | ⭐⭐ | 进入调整模式后连续按方向键 |
说实话调整 pane 大小这个快捷键确实不太方便。如果你会频繁调整,建议在配置文件里绑定更顺手的键,或者直接开启鼠标支持(见后面的配置部分)。
其他 pane 操作
| 操作 | 快捷键 / 命令 | 常用度 | 说明 |
|---|---|---|---|
| 关闭当前 pane | Prefix+x | ⭐⭐ | 会提示确认 |
| 关闭(直接关闭) | exit 或 Ctrl+d | ⭐⭐⭐ | 在 pane 里直接输入 |
| 将 pane 变成独立 window | Prefix+! | ⭐ | 当前 pane 拆出去单独成一个 window |
| 交换 pane 位置 | Prefix+{ / Prefix+} | ⭐ | 与前/后 pane 交换位置 |
| 显示 pane 编号 | Prefix+q | ⭐⭐ | 短暂显示每个 pane 的编号 |
| 切换布局 | Prefix+Space | ⭐ | 在几种预设布局间切换 |
Copy Mode(复制模式)
在 tmux 里直接用鼠标选文本然后复制?默认是不行的。你需要进入 Copy Mode,这是很多新手不知道的一个功能,但又是复制粘贴和翻页回看的必经之路。
进入 Copy Mode:Prefix+[
进入之后,你就可以用键盘上下翻页、搜索文本、选择并复制内容。
默认模式 vs vi 模式
tmux 有两套 Copy Mode 键绑定,默认是 emacs 风格。如果你在配置里设了 setw -g mode-keys vi,就会切换成 vi 风格。
| 操作 | 默认(emacs) | vi 模式 | 说明 |
|---|---|---|---|
| 上翻一页 | Ctrl+u | Ctrl+b 或 PgUp | |
| 下翻一页 | Ctrl+d | Ctrl+f 或 PgDn | |
| 上翻半页 | 无 | Ctrl+u | |
| 下翻半页 | 无 | Ctrl+d | |
| 移动光标 | 方向键 | h/j/k/l 或方向键 | |
| 开始选择 | Ctrl+Space | Space | |
| 复制选中内容 | Alt+w | Enter | |
| 粘贴 | Prefix+] | Prefix+] | 粘贴操作在两个模式下一样 |
| 搜索(向前) | Ctrl+s | / | |
| 搜索(向后) | Ctrl+r | ? | |
| 退出 Copy Mode | Ctrl+c / q | q / Esc |
提示:vi 模式的快捷键对 Vim/Neovim 用户更友好。如果你平时用 Vim,强烈建议在
~/.tmux.conf里加一行setw -g mode-keys vi。
在 Copy Mode 里翻页查看之前的终端输出,本质上也解决了"tmux 怎么滚动"这个问题。进入 Copy Mode 后用 Ctrl+b(vi 模式)或 Ctrl+u(默认模式)就能往上翻了。
滚动与翻页
很多刚用 tmux 的人第一反应就是"怎么滚不动?"——因为 tmux 默认不开启鼠标,鼠标滚轮 在 tmux 里是无效的。
有三种方式可以滚动回看:
| 方法 | 操作 | 推荐度 |
|---|---|---|
| Copy Mode | Prefix+[ 进入,然后用翻页键浏览 | ⭐⭐⭐ |
| 开启鼠标 | 配置里加 set -g mouse on | ⭐⭐⭐ |
| 终端原生滚动 | 部分终端模拟器支持 Shift+滚轮 | ⭐⭐ |
如果你只是想临时滚一下看看之前的输出,Prefix+[ 进 Copy Mode 最快。如果你希望完全像普通终端一样用鼠标操作,开鼠标模式更方便——代价是你需要按住 Shift 才能用鼠标选中文字复制到系统剪贴板。
tmux 常用配置命令
以下配置写在 ~/.tmux.conf 文件中,修改后需要重载配置才能生效:
tmux source-file ~/.tmux.conf
# 或者用快捷键(如果你绑定了的话)
Prefix + :source-file ~/.tmux.conf| 配置 | 命令 | 说明 |
|---|---|---|
| 修改前缀键 | set -g prefix C-a | 从 Ctrl+b 改为 Ctrl+a |
| 开启鼠标支持 | set -g mouse on | 允许鼠标点击切换 pane、滚动 |
| 使用 vi 键绑定 | setw -g mode-keys vi | Copy Mode 使用 vi 风格操作 |
| 窗口编号从 1 开始 | set -g base-index 1 | 默认从 0 开始,改为 1 更顺手 |
| pane 编号从 1 开始 | setw -g pane-base-index 1 | 同上 |
| 关闭窗口自动重编号 | set -g renumber-windows on | 关闭窗口后自动补位 |
| 增大历史记录 | set -g history-limit 10000 | 默认 2000 行,建议改大 |
| 减少 ESC 延迟 | set -sg escape-time 0 | 解决 Vim 中 ESC 延迟问题 |
| 状态栏刷新频率 | set -g status-interval 5 | 每 5 秒刷新一次状态栏 |
一份推荐的最小配置
如果你刚用 tmux 不想折腾,这份配置够用了:
# ~/.tmux.conf — 最小可用配置
set -g prefix C-a # 改前缀键
set -g mouse on # 开启鼠标
setw -g mode-keys vi # vi 风格
set -g base-index 1 # 窗口从 1 开始
set -g history-limit 10000 # 多记点历史
set -sg escape-time 0 # 去 ESC 延迟
# 快速重载配置
bind r source-file ~/.tmux.conf \; display-message "配置已重载 ✓"把这段内容保存到 ~/.tmux.conf,然后在 tmux 里按 Prefix+: 输入 source-file ~/.tmux.conf 就能生效。下次按 Prefix+r 就可以一键重载了。
命令行常用操作
除了在 tmux 内部用快捷键,下面这些 tmux常用命令 直接在命令行执行更方便:
| 命令 | 说明 |
|---|---|
tmux ls | 列出所有 session |
tmux kill-session -t 名称 | 杀死指定 session |
tmux kill-server | 杀死所有 session,退出 tmux |
tmux new -s 名称 -d "命令" | 后台创建并执行命令 |
tmux send-keys -t 名称 "命令" Enter | 向指定 session 发送命令 |
最后这条 send-keys 在写脚本自动化时特别好用。比如你可以写一个脚本,自动创建 tmux session,在各个 pane 里分别启动不同的服务。
实用技巧
快速恢复工作环境
有一个场景我经常遇到:服务器重启后需要重新搭环境。用 tmux 的 send-keys 可以自动化这个过程:
# 创建 session 并自动分屏布局
tmux new-session -s dev -d
tmux send-keys -t dev 'cd ~/project && vim' Enter
tmux split-window -h -t dev
tmux send-keys -t dev 'cd ~/project && npm run dev' Enter
tmux a -t dev同时操作多个 pane
有时候你想在几个 pane 里同时执行同一条命令(比如同时在多台服务器上查看负载)。按 Prefix+: 输入:
setw synchronize-panes on之后你在任意一个 pane 里输入的内容,会同步发送到所有 pane。再执行一次同样的命令可以关掉。
把 pane 布局保存下来
tmux 本身不保存 pane 布局,但你可以用 tmux-resurrect 插件来实现。安装后按 Prefix+Ctrl+s 保存,Prefix+Ctrl+r 恢复,非常省事。
FAQ:tmux 常见问题
tmux 怎么退出?
两种方式:
- detach(推荐):按
Prefix+d,session 继续在后台运行,下次可以重新连接 - 彻底退出:在 pane 里输入
exit或按Ctrl+d,所有 pane 都退出后 session 就消失了
tmux 怎么滚动?
默认不支持鼠标滚动。按 Prefix+[ 进入 Copy Mode,然后用方向键或翻页键浏览历史输出。或者开启鼠标支持:set -g mouse on。
怎么修改 tmux 的前缀键?
在 ~/.tmux.conf 中添加:
unbind C-b
set -g prefix C-a
bind C-a send-prefix然后重载配置。
tmux 里怎么用鼠标?
在 ~/.tmux.conf 中添加 set -g mouse on,然后重载。开启后可以用鼠标点击切换 pane、拖动分割线调整大小、滚动查看历史。需要用鼠标选中文字复制到系统剪贴板时,按住 Shift 再选择。
tmux 命令太多了记不住怎么办?
把这份 tmux命令速查表(cheat sheet)收藏起来就行。说实话日常用到的就是那几个标了 ⭐⭐⭐ 的:Prefix+d(断开)、Prefix+c(新窗口)、Prefix+%(分屏)、Prefix+[(翻页复制)。这几个记住,其他 tmux指令 需要时查一下就好。
如果你在找拼写为 "tmux cheet sheet" 的内容——你来对地方了,cheet 是 cheat 的常见拼写变体。无论你搜的是 cheat sheet 还是 cheatsheet,本页都能覆盖。
tmux 和 screen 有什么区别?
tmux 是 GNU screen 的现代替代品。tmux 支持更灵活的分屏、更好的脚本化能力、活跃的社区和插件生态。如果你在选择,建议直接用 tmux。
参考来源
- tmux Manual Page — tmux 官方手册,所有命令的权威说明
- tmux GitHub Repository — tmux 源码和版本更新信息
- tmux-resurrect Plugin — 会话持久化插件
- 更多开发者速查表(cheat sheet)与教程,见网站首页