Tmux
本文最后更新于:2026年7月23日 下午
Tmux
tmux 是一个终端复用器,允许你在单个终端窗口中运行多个终端会话,并在它们之间切换。它非常适合长时间运行的任务、远程开发和多任务处理。
Github项目链接: https://github.com/tmux/tmux
官方文档: https://github.com/tmux/tmux/wiki
tmux在工作中的作用
- 单个窗口中多个终端
不再需要开启多个不同的终端窗口切换来切换去。在一个屏幕里,可以:- 水平/垂直无限切分面板(Pane)。比如左边写代码,右上看日志,右下用 top 监测系统资源。
- 创建多个独立标签页(Window),在不同的项目或目录之间快速跳转。
- 会话保持
在没有 tmux 之前,你用 SSH 连上服务器跑一个训练模型或编译任务,一旦网线断开、VPN 掉线或者关闭终端窗口,前台任务就会跟着被杀掉。- 使用 tmux 后:所有程序其实是运行在后台的 tmux server 里,而不是当前窗口。
- 会话挂起(Detach): 即使直接关掉电脑,服务器上的任务依然在后台疯狂跑。
- 随时恢复(Attach): 重新登录服务器后,敲一条命令就能瞬间回到原来的工作现场,连历史滚动输出都一模一样。
- 协同操作
不同用户可以控制同一个 session, 同一个window
快速开始
创建session
1
2# 创建 一个 名为 example 的 session
tmux new -s example名字叫什么都可以, 一般偷懒都用自己名字首字母
如果创建成功, 会直接进入到新创建的 tmux session 中水平切割, 新建pane
键盘按下
Ctrl+b, 松开键盘按下
", 松开操作完成后, window会有上下两个panel
panel 切换
键盘按下
Ctrl+b, 松开键盘按下
↓, 松开此时光标会从上方的panel移动到下方
开启一个新的连接, 重新连接上已有的 tmux session
1
tmux a -t example重新连接 名为example的session
tmux常用用法
查看命令说明 man 1 tmux
查看快捷键说明文档 ctrl+b ?
常用Session操作
| bash基础命令 | 意义 |
|---|---|
| tmux new -s session的名字 | 创建一个session |
| tmux a -t session的名字 | 连接上一个session |
| tmux ls | 查看所有的session |
常用window操作
| 类型 | 快捷键 | 意义 |
| 新建窗口 | Ctrl+b + c |
在当前session创建一个新的窗口 |
| 查询所有窗口 | Ctrl+b + w |
查看所有窗口, 可在此处进行切换 |
| 窗口间移动 | Ctrl+b + w |
进入下一个窗口 |
Ctrl+b + w |
进入上一个窗口 | |
| 关闭窗口 | Ctrl+b + & |
关闭当前窗口 |
| 重命名当前窗口 | Ctrl+b + , |
重命名当前窗口 |
常用Panel操作
| 类型 | 快捷键 | 意义 |
| 新建面板 | Ctrl+b + " |
当前面板上下一分为二,下侧新建面板 |
Ctrl+b + % |
当前面板左右一分为二,右侧新建面板 | |
| 面板间移动 | Ctrl+b + 方向键 |
移动光标切换面板 |
Ctrl+b + ; |
切换到上次使用的面板 | |
Ctrl+b + q |
显示面板编号在编号消失前输入对应的数字可切换到相应的面板 | |
| 关闭面板 | Ctrl+b + x |
关闭当前面板, 需要确认 |
| 样式改变 | Ctrl+b + z |
最大化当前面板,再重复一次按键后恢复正常 |
Ctrl+b + 空格键 |
水平<->垂直 | |
Ctrl+b + Alt+方向键 |
调整当前面板边缘 5pix/次 | |
Ctrl+b + Ctrl+方向键 |
调整当前面板边缘 1pix/次 | |
| 特殊 | Ctrl+b + ! |
将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效) |
| 类型 | 快捷键 | 信息 |
| 进入翻屏模式 | Ctrl+b + [ |
进入翻屏模式后,面板右上角会显示页码 |
| 向上翻页 | PageUp |
翻屏模式下才能使用 |
| 向下翻页 | PageDown |
翻屏模式下才能使用 |
| 退出翻屏模式 | q |
翻屏模式下才能使用 |
Tmux 的 session 持久化
tmux 本身默认是“内存级”保存的,如果电脑重启,所有的 session(窗口、面板布局、历史记录)都会丢失
但通过安装社区最成熟的插件 tmux-resurrect 和 tmux-continuum,可以实现:自动定时保存(比如每 15 分钟后台保存一次当前所有 session)
电脑重启后自动恢复(开机重新打开终端,所有的终端窗口和历史界面瞬间原样重现)
配置
最简单的配置方案(通过 TPM 插件管理器)
安装 TPM(tmux 插件管理器)
如果你的电脑(Linux/Mac/WSL)还没有安装 TPM,在终端运行以下命令:
1
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm修改
~/.tmux.conf配置文件编辑你的
~/.tmux.conf文件(没有就创建一个),在底部加上以下配置:1
2
3
4
5
6
7
8
9
10
11
12
13
14# 1. 声明插件
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
# 2. 开启自动恢复和自动保存功能
set -g @continuum-restore 'on' # 每次启动 tmux 自动恢复上次保存的状态
set -g @continuum-save-interval '15' # 每 15 分钟自动后台保存一次状态
# 3. (可选)保存面板里的终端屏幕内容/历史记录
set -g @resurrect-capture-pane-contents 'on'
# 初始化 TPM(这行必须放在配置文件的最底部!)
run '~/.tmux/plugins/tpm/tpm'第三步:加载配置并安装插件
打开一个新的 tmux session, 在 tmux 内部,按快捷键: Ctrl + b,然后按大写的 I(即 Shift + i)
此时底栏会显示正在下载并安装插件,几秒钟后提示 Success 即可
使用方法
配置好后,大部分时候你什么都不用管:
自动模式:
tmux-continuum 会在后台默默地每 15 分钟帮你的所有窗口存一次快照
电脑重启后,你只要重新在终端里敲 tmux,它就会自动恢复之前的所有 session手动保命快捷键(随时触发):
手动保存当前状态:Ctrl + b,然后按 Ctrl + s(底栏会提示 Saving…)
手动强制恢复上次状态:Ctrl + b,然后按 Ctrl + r(底栏会提示 Restoring…)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!