Tmux 使用指南
Tmux 是一个终端多路复用器(terminal multiplexer),可以在一个终端连接中管理多个独立的终端环境。它最常用来做分屏、后台运行任务、断线重连和远程服务器长期会话管理。
适用场景
- 在一个 SSH 连接里同时查看日志、运行服务、执行命令。
- 让构建、部署、数据处理等长任务在后台继续运行。
- 网络断开后重新连接服务器,继续回到之前的工作现场。
- 把一个工作区拆成多个窗口和窗格,减少频繁开关终端。
安装
Ubuntu / Debian:
1 | sudo apt update |
macOS:
1 | brew install tmux |
安装后查看版本:
1 | tmux -V |
核心结构
Tmux 的层级结构是:
1 | tmux |
session:一次独立工作会话,例如dev、log、deploy。window:会话里的一个工作窗口,类似浏览器标签页。pane:窗口里的分屏区域。
可以简单理解为:
1 | session = 项目工作区 |
Prefix 前缀键
Tmux 的快捷键通常由两步组成:
- 先按 Prefix。
- 再按具体操作键。
默认 Prefix 是:
1 | Ctrl + b |
很多人会改成更顺手的:
1 | Ctrl + a |
下文统一使用 Prefix 表示你配置的前缀键。
常用命令
配置加载
1 | tmux source-file ~/.tmux.conf |
修改 ~/.tmux.conf 后,可以用这个命令重新加载配置。
会话操作
新建会话
1 | tmux |
新建一个默认会话,里面包含一个 window 和一个 pane。
1 | tmux new -s dev |
新建一个名为 dev 的会话。管理多个会话时,建议总是命名,例如 dev、log、deploy。
查看会话
1 | tmux ls |
查看当前所有 tmux 会话。
进入会话
1 | tmux a |
进入最近一次挂起的会话。
1 | tmux a -t dev |
进入指定名称的会话。
挂起会话
1 | Prefix + d |
挂起当前 session。挂起后,里面的进程仍会继续运行。
重命名会话
1 | Prefix + $ |
重命名当前 session。
选择会话
1 | Prefix + s |
打开 session 列表。
列表中常用按键:
ArrowUp:选择上一项。ArrowDown:选择下一项。ArrowRight:展开当前 session/window。ArrowLeft:折叠当前 session/window。
窗口操作
新建窗口
1 | Prefix + c |
在当前 session 中新建一个 window。
关闭窗口
1 | Prefix + & |
关闭当前 window,会弹出确认。
选择窗口
1 | Prefix + w |
打开 window 列表。
重命名窗口
1 | Prefix + , |
重命名当前 window。
查找窗口
1 | Prefix + f |
按名称查找 window。
窗格操作
垂直分屏
1 | Prefix + % |
将当前 pane 左右分成两个 pane。
水平分屏
1 | Prefix + " |
将当前 pane 上下分成两个 pane。
关闭窗格
1 | Ctrl + d |
也可以在 pane 中执行:
1 | exit |
关闭规则:
- 当前 window 的所有 pane 都关闭后,window 会关闭。
- 当前 session 的所有 window 都关闭后,session 会关闭。
全屏窗格
1 | Prefix + z |
将当前 pane 全屏或取消全屏。查看日志、复制长文本时很常用。
切换窗格
1 | Prefix + ArrowKeys |
切换到相邻 pane。
如果开启鼠标支持,也可以直接点击 pane。
调整窗格大小
按住 Prefix 的同时按方向键,可以调整 pane 分割线位置。
如果开启鼠标支持,也可以拖动 pane 之间的分割线。
移动窗格位置
1 | Prefix + } |
将当前 pane 向右移动。
1 | Prefix + { |
将当前 pane 向左移动。
复制模式
进入复制模式
1 | Prefix + [ |
进入当前 pane 的复制模式。
1 | Prefix + PgUp |
进入复制模式,并向上翻阅当前 pane 的历史内容。
如果开启鼠标支持,滚轮通常也会进入复制模式并翻阅历史内容。
复制与粘贴
用鼠标选中文本后,被选中的内容会复制到 tmux 的剪贴板。
1 | Prefix + ] |
将 tmux 剪贴板中的内容粘贴到当前光标位置。
在 tmux 中使用终端自身的选择复制时,通常需要按住 Shift 再选中文本。这个行为在 Windows 和 Linux 终端中比较常见,macOS 终端行为可能不同。
命令行模式
1 | Prefix + : |
进入 tmux 命令行模式。
常用命令:
1 | clear-history |
清除当前 pane 的历史缓存。
推荐配置
可以在 ~/.tmux.conf 中加入下面配置:
1 | # 将 Prefix 从 Ctrl+b 改为 Ctrl+a |
配置完成后执行:
1 | tmux source-file ~/.tmux.conf |
常见工作流
远程服务器开发
1 | tmux new -s dev |
建议窗口组织:
editor:编辑代码。server:启动服务。log:查看日志。shell:临时命令。
后台运行长任务
1 | tmux new -s deploy |
在 tmux 中执行部署或构建命令后,使用:
1 | Prefix + d |
挂起会话。之后重新连接:
1 | tmux a -t deploy |
查看日志
1 | tmux new -s log |
常见组合:
- 一个 pane 执行
tail -f app.log。 - 一个 pane 执行
tail -f error.log。 - 一个 pane 执行排查命令。
排查清单
- 找不到会话:先执行
tmux ls。 - 不知道当前在哪个会话:看 tmux 状态栏左侧 session/window 名称。
- 鼠标滚轮不好用:确认
set -g mouse on已加载。 - 修改配置不生效:执行
tmux source-file ~/.tmux.conf。 - 会话误关闭:tmux 无法恢复已关闭 session,重要任务建议先挂起,不要随手
exit。
速查表
| 操作 | 快捷键 / 命令 |
|---|---|
| 新建会话 | tmux new -s <session> |
| 查看会话 | tmux ls |
| 进入会话 | tmux a -t <session> |
| 挂起会话 | Prefix + d |
| 新建窗口 | Prefix + c |
| 窗口列表 | Prefix + w |
| 关闭窗口 | Prefix + & |
| 垂直分屏 | Prefix + % |
| 水平分屏 | Prefix + " |
| 切换窗格 | Prefix + ArrowKeys |
| 全屏窗格 | Prefix + z |
| 关闭窗格 | Ctrl + d 或 Prefix + x |
| 进入复制模式 | Prefix + [ |
| 粘贴 tmux 剪贴板 | Prefix + ] |
| 命令行模式 | Prefix + : |
| 加载配置 | tmux source-file ~/.tmux.conf |
