现在我有一个这样的使用场景:在远程服务器通过 VSCode 来编辑代码,然后需要长时间训练/数据处理。为了确保退出 VSCode 后这个处理进程能继续,通常需要使用 tmux 来管理。这里总结一下常用命令。
创建会话
创建一个新会话(建议命名):
| |
在里面直接运行你的任务:
| |
退出但不终止任务(detach):
| |
重新连接:
| |
结束会话(任务结束后):
| |
会话管理(多实验并行的关键)
查看所有 session:
| |
输出类似:
| |
连接某个 session:
| |
强制接管(比如之前断线没正常 detach):
| |
删除某个 session:
| |
窗口(window)管理(一个 session 多任务)
一个 session 可以开多个“窗口”(类似 tab)。
创建新窗口:
| |
切换窗口:
| |
查看窗口列表:
| |
关闭当前窗口:
| |
面板(pane)分屏(实用)
当需要:
- 一边跑训练
- 一边看日志 / nvidia-smi / htop
就用 pane。
水平分屏:
| |
垂直分屏:
| |
切换 pane:
| |
关闭 pane:
| |
滚动查看输出
默认鼠标滚轮是不能滚 tmux 的,需要:
进入滚动模式:
| |
然后:
- ↑ ↓ 滚动
- PgUp / PgDn
- q 退出
如果你经常看日志,这个比 tail -f 更直接。
复制粘贴
进入复制模式:
| |
开始选择:
| |
复制:
| |
粘贴:
| |