1. tmux 是什么?

tmux 是一个终端复用工具,常用于 Linux 服务器、远程 SSH、深度学习训练、模型下载、长期脚本运行等场景。

它最大的作用是:

即使你断开 SSH、关闭终端,tmux 里的任务也会继续运行。

比如你在服务器上下载模型:

huggingface-cli download ...

如果直接在普通终端运行,SSH 一断,任务可能就停了。
但如果放在 tmux 里运行,你退出终端后任务仍然会继续。


2. 创建 tmux 会话

创建一个新的 tmux 会话:

tmux

更推荐给会话起名字:

tmux new -s clip_download

其中:

clip_download

是会话名,可以自己改,比如:

tmux new -s train
tmux new -s download
tmux new -s llava

3. 退出 tmux 但不中断任务

在 tmux 里面运行任务后,如果想退出当前界面,但让任务继续在后台跑:

Ctrl-b 然后按 d

注意不是同时按三个键。

操作顺序是:

  1. 按住 Ctrl,按一下 b
  2. 松开
  3. 再按一下 d

这叫 detach,意思是“断开当前连接,但不关闭会话”。


4. 查看已有 tmux 会话

tmux ls

示例输出:

clip_download: 1 windows (created Wed Jun 10 12:00:00 2026)
train: 1 windows (created Wed Jun 10 12:10:00 2026)

说明当前有两个会话:

clip_download
train

5. 重新进入 tmux 会话

如果只有一个会话,可以直接:

tmux attach

如果有多个会话,需要指定名称:

tmux attach -t clip_download

或者简写:

tmux a -t clip_download

6. 关闭 tmux 会话

进入会话后,如果任务已经结束,可以直接输入:

exit

或者按:

Ctrl-d

也可以在外面直接杀掉某个会话:

tmux kill-session -t clip_download

杀掉所有 tmux 会话:

tmux kill-server

这个命令要谨慎使用,因为它会关闭所有 tmux 里的任务。


7. tmux 窗口操作

一个 tmux 会话里可以有多个窗口,类似浏览器标签页。

新建窗口:

Ctrl-b 然后按 c

切换到下一个窗口:

Ctrl-b 然后按 n

切换到上一个窗口:

Ctrl-b 然后按 p

查看窗口列表:

Ctrl-b 然后按 w

关闭当前窗口:

exit

或者:

Ctrl-d

8. tmux 分屏操作

左右分屏:

Ctrl-b 然后按 %

上下分屏:

Ctrl-b 然后按 "

在不同分屏之间切换:

Ctrl-b 然后按方向键

关闭当前分屏:

exit

或者:

Ctrl-d

9. tmux 中滚动查看历史输出

进入复制/滚动模式:

Ctrl-b 然后按 [

然后可以使用方向键、PageUp、PageDown 滚动查看历史输出。

退出滚动模式:

q

10. 常见使用场景:后台下载模型

比如通过 Hugging Face 镜像下载模型:

tmux new -s clip_download

进入 tmux 后执行:

export HF_ENDPOINT=https://hf-mirror.com

huggingface-cli download openai/clip-vit-large-patch14-336 \
  --resume-download \
  --local-dir /mnt/kai_ckp/model/clip-vit-large-patch14-336 \
  2>&1 | tee -a /mnt/kai_ckp/model/clip_download.log

然后按:

Ctrl-b 然后按 d

任务就会在后台继续下载。

之后重新进入:

tmux attach -t clip_download

查看日志:

tail -f /mnt/kai_ckp/model/clip_download.log

11. tmux 和 screen 的区别

tmux 和 screen 功能类似,都可以让任务在后台继续运行。

常见区别:

工具 特点
tmux 更新、更常用,窗口和分屏管理更方便
screen 更老牌,很多旧服务器默认安装
两者共同点 都能防止 SSH 断开导致任务中断

如果服务器已经有 tmux,优先用 tmux 即可。


12. 常用命令速查表

功能 命令
创建会话 tmux new -s 会话名
查看会话 tmux ls
进入会话 tmux attach -t 会话名
退出但不中断 Ctrl-b d
关闭当前会话 exit
杀掉指定会话 tmux kill-session -t 会话名
新建窗口 Ctrl-b c
下一个窗口 Ctrl-b n
上一个窗口 Ctrl-b p
窗口列表 Ctrl-b w
左右分屏 Ctrl-b %
上下分屏 Ctrl-b "
分屏切换 Ctrl-b 方向键
滚动历史 Ctrl-b [
退出滚动 q

13. 总结

tmux 是服务器环境中非常实用的工具,尤其适合:

  • 下载大模型
  • 跑训练任务
  • 执行长时间脚本
  • 防止 SSH 断开导致任务中断
  • 同时管理多个终端窗口

最常用的三步是:

tmux new -s mytask

运行任务后:

Ctrl-b d

下次回来:

tmux attach -t mytask

掌握这几个命令,基本就能应付大多数服务器后台任务场景了。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐