1. 前言:为什么我们需要 Tmux?
在 Linux 服务器上跑代码时,你是否遇到过这种崩溃瞬间: 通过 SSH 连接服务器,刚把一段耗时极长的模型训练脚本(比如跑一个几十个 epoch 的 YOLO 模型)跑起来,结果网络突然波动,SSH 断开了连接,导致辛辛苦苦跑了一半的进程直接被系统杀掉,只能从头再来?
Tmux(Terminal Multiplexer,终端复用器) 就是为了解决这个问题而生的。它能够在服务器后台为你保留一个"持久化"的终端会话。哪怕你的电脑关机、断网,只要服务器没重启,你的程序就会在 Tmux 创造的平行空间里继续安稳地运行。等你重新连上 SSH,只需一行命令,就能瞬间回到之前的现场。
2. 核心概念:会话(Session)
Tmux 最核心的概念就是会话(Session)。你可以把一个 Session 理解为一个独立的虚拟显示器。你可以创建多个 Session,比如一个用来跑数据处理,一个用来跑模型训练。
3. 创建 Tmux 会话
tmux
直接输入 tmux 可以新建一个默认会话,但也可以给任务起个专属名字。
# 语法:tmux new -s <会话名称>
tmux new -s 会话名称
4. 核心诉求:如何找回之前的 Tmux 会话?
当你再次通过 SSH 连上服务器,想要查看之前的代码跑得怎么样了,只需两步:
第一步:查看当前有哪些后台会话
tmux ls
系统会返回类似这样的列表,展示当前存活的会话和它们的创建时间:
ODER_ablation: 1 windows (created Mon May 11 10:00:00 2026) data_process: 1 windows (created Mon May 11 11:30:00 2026)
第二步:重新连接(Attach)到目标会话
找到你想要的会话名称,使用以下命令重新"附着"上去:
# 语法:tmux a -t <会话名称> (这里的 a 是 attach 的简写)
tmux a -t 会话名称