外观
tmux 终端复用
tmux 是常用的终端复用工具。它可以在一个 SSH 连接中创建多个会话、窗口和窗格,并且在网络断开或本地终端关闭后继续保留远程会话。对于需要长时间编译、数据处理、提交作业或查看日志的任务,建议优先使用 tmux。
适用场景
- 网络不稳定,担心 SSH 断开后操作中断。
- 需要同时查看多个终端输出,例如编辑脚本、提交作业、查看日志。
- 需要把正在运行的终端会话临时放到后台,之后再重新接入。
使用建议
登录平台后,建议先按任务要求申请或进入计算节点,再在节点中启动 tmux。这样 tmux 会话和正在运行的命令都会保留在对应节点上。
常用命令
| 命令 | 说明 |
|---|---|
tmux | 启动一个默认会话 |
tmux new -s <会话名> | 新建并命名会话 |
tmux ls | 查看已有会话 |
tmux attach -t <会话名或编号> | 重新接入指定会话 |
tmux a -t <会话名或编号> | attach 的简写形式 |
tmux detach | 分离当前会话 |
tmux rename-session -t <旧名称> <新名称> | 重命名会话 |
tmux kill-session -t <会话名或编号> | 结束指定会话 |
常用快捷键
tmux 的快捷键通常先按 Ctrl+b,松开后再按第二个键。下面表格中的 Ctrl+b, d 表示先按 Ctrl+b,再按 d。
| 快捷键 | 说明 |
|---|---|
Ctrl+b, d | 分离当前会话,回到普通终端 |
Ctrl+b, % | 左右分屏 |
Ctrl+b, " | 上下分屏 |
Ctrl+b, 方向键 | 在窗格之间切换 |
Ctrl+b, c | 新建窗口 |
Ctrl+b, n | 切换到下一个窗口 |
Ctrl+b, p | 切换到上一个窗口 |
Ctrl+b, 0-9 | 切换到指定编号窗口 |
Ctrl+b, w | 从列表中选择窗口 |
Ctrl+b, , | 重命名当前窗口 |
Ctrl+b, & | 关闭当前窗口 |
Ctrl+b, x | 关闭当前窗格 |
基本流程
1. 启动 tmux
在登录节点或已申请的计算节点中执行:
bash
tmux也可以直接创建一个带名称的会话,便于之后重新接入:
bash
tmux new -s work启动后底部会出现绿色状态栏,表示已经进入 tmux 会话。

2. 按需要分屏
在 tmux 内可以使用命令或快捷键分屏。
bash
tmux split-window # 上下分屏
tmux split-window -h # 左右分屏也可以使用快捷键:
Ctrl+b, ":上下分屏Ctrl+b, %:左右分屏

3. 分离会话,让任务继续运行
在 tmux 中执行编译、脚本或作业监控时,如果需要暂时退出终端,可以按:
text
Ctrl+b, d分离后会回到普通 shell,但 tmux 会话仍在后台保留。只要节点和会话未被清理,tmux 中的命令不会因为本地终端关闭而立即中断。
4. 查看已有会话
重新登录后,可以查看当前用户已有的 tmux 会话:
bash
tmux ls输出中最左侧的 0、1 等是会话编号,也可以使用会话名称重新接入。

5. 重新接入会话
使用会话编号或名称重新进入:
bash
tmux attach -t 1简写形式:
bash
tmux a -t 1
推荐用法
为任务命名会话
建议给不同任务使用不同的会话名,方便区分:
bash
tmux new -s train
tmux new -s build
tmux new -s analysis重新接入时直接使用名称:
bash
tmux a -t train在 tmux 中查看作业日志
提交作业后,可以在 tmux 中持续查看日志:
bash
tail -f job.out需要离开时按 Ctrl+b, d 分离;下次登录后再用 tmux ls 和 tmux a -t <会话名> 找回。
常见问题
关闭本地终端后任务一定不会中断吗?
如果命令运行在 tmux 会话中,且远程节点没有重启、会话没有被清理,通常不会因为本地 SSH 断开而中断。若任务本身依赖调度系统,仍建议按平台要求通过调度器提交作业。
找不到之前的会话怎么办?
先确认是否登录到了同一台节点。tmux 会话保存在创建它的节点上,如果之前是在某个计算节点中启动的 tmux,重新登录到其他节点时可能看不到。
如何退出 tmux?
如果只是临时离开,用 Ctrl+b, d 分离。
如果确认不再需要当前会话,可以在 tmux 中输入:
bash
exit或在普通终端中结束指定会话:
bash
tmux kill-session -t <会话名或编号>