tmux最实用的作用是:SSH 断开后,远程终端中的任务仍能继续运行,下次登录还能回到原来的界面。前提是服务器没重启、会话没有被清理。
Termius 负责连接服务器,tmux 运行在服务器上,两者可以配合使用。
1. 创建会话
tmux new-swork创建一个名为work的会话。进入后,像普通终端一样执行命令:
./your_program2. 暂时离开,保持任务运行
按:
Ctrl+b,然后松开,再按 d这叫“分离会话”。之后可以退出 SSH,任务仍在运行。
tmux 大多数快捷键都是先按Ctrl+b,松开后再按另一个键。
3. 重新进入会话
下次 SSH 登录后:
# 查看有哪些会话tmuxls# 回到 work 会话tmux attach-twork简写:
tmux a-twork4. 分屏
在 tmux 内使用:
| 快捷键 | 作用 |
|---|---|
Ctrl+b,再按% | 左右分屏 |
Ctrl+b,再按" | 上下分屏 |
Ctrl+b,再按方向键 | 切换到对应窗格 |
Ctrl+b,再按o | 切换到下一个窗格 |
Ctrl+b,再按z | 当前窗格最大化/恢复 |
Ctrl+b,再按x | 关闭当前窗格,需要确认 |
例如:左侧编辑代码,右侧编译,下方看日志。
5. 多窗口
一个会话可以有多个窗口,每个窗口又可以分屏。
| 快捷键 | 作用 |
|---|---|
Ctrl+b,再按c | 新建窗口 |
Ctrl+b,再按n | 下一个窗口 |
Ctrl+b,再按p | 上一个窗口 |
Ctrl+b,再按0~9 | 切换到指定编号窗口 |
Ctrl+b,再按, | 重命名当前窗口 |
Ctrl+b,再按w | 显示窗口列表,选择切换 |
你可以分别创建code、build、log三个窗口。
6. 查看历史输出
Ctrl+b,然后按 [进入滚动模式:
- 方向键、PageUp、PageDown:滚动查看。
q:退出滚动模式。
开启鼠标支持后,也可以用滚轮查看:
tmuxset-gmouse on7. 关闭会话
在窗格里执行:
exit关闭当前终端;最后一个窗口关闭后,会话结束。
也可以从外部关闭整个会话:
tmux kill-session-twork这会关闭会话中的终端,可能导致其中的任务终止。
8. 你的集群使用方式
# 1. SSH 登录集群sshuser@login01# 2. 创建会话tmux new-skir# 3. 在会话内申请计算资源salloc-p分区名-N1-n4--gres=dcu:4# 4. 按集群要求启动程序mpirun-np4./kir_mig_cuda config.yaml想离开时按Ctrl+b→d;回来后:
tmux a-tkirtmux 不会延长 Slurm 的资源申请时限。正式长时间计算更适合用sbatch提交,tmux 适合交互调试、编译和查看日志。
最先记住这三个操作就够用:
tmux new-swork# 创建# Ctrl+b → d # 离开tmux a-twork# 回来