tmux 是什么?终端复用器入门介绍
一句话:tmux 是终端里的「工作现场保管员」——你的任务跑在服务器的会话里,SSH 断线、手滑关窗口都杀不死它,回来一条命令接上继续。
- 解决什么问题:SSH 一断,系统默认把你的任务全部杀掉(SIGHUP),几小时白干;tmux 把任务搬进服务器会话,断线照跑。
- 三步上手:
tmux new -s test进去干活 →Ctrl+b松开按d脱离 →tmux attach -t test随时接回。 - 三层结构:会话套窗口、窗口套窗格(分屏)。记住这句话,再看任何 tmux 教程都不迷路。
- 别混淆:Termux 是安卓上的终端 App,跟 tmux 只是撞名,毫无关系。
你大概率遇到过这个场景:SSH 连着远程服务器跑一个编译任务,网络一抖,连接断了,任务跟着死了,几个小时的进度清零。tmux 就是解决这个的。tmux 是什么?先给答案:一个终端复用器,一个开源小工具,它让终端会话活在运行它的那台机器上,你断开连接它照样跑。接上去干活,离开,回家换台电脑再接上去,一切都还在,跟你走时一模一样。
这就是它的全部卖点。这篇教程剩下的部分讲清楚三件事:这个"复用器"复用的到底是什么、断线不死的原理是什么(这部分是真正有意思的)、以及怎么在五分钟里跑起你的第一个会话。顺带回答两个高频搜索:什么是tmux、它和 Screen、Termux 又各自是什么关系。
tmux 是什么:一段话回答
官方 wiki 的定义就一句话:tmux 让你在一个终端里自由切换多个程序,可以脱离(detach)它们——程序在后台继续跑——再从另一个终端重新接回(attach)。名字本身就很直白,terminal multiplexer(终端复用器)的缩写。
基本信息先过一遍。tmux 是免费开源软件,2007 年 11 月 20 日首发,用 C 语言写的,作者是 Nicholas Marriott,出身 OpenBSD 项目,到今天还是 OpenBSD 基础系统的一部分。所有类 Unix 平台都能跑:Linux、macOS、BSD,Windows 走 WSL。项目活得很健康,当前稳定版是 2026 年 8 月发布的 3.7c。
"复用器"是什么意思?说白了:它是一个住在你终端里的窗口管理器。窗口管理器把一块物理屏幕变成很多虚拟工作区;tmux 把一条终端连接变成很多个终端,标签页、分屏,全都有。它还多给了一样窗口管理器没有的东西:你人走了,这些终端还在跑。
为什么 SSH 一断,进程就死
要明白 tmux 到底买到了什么,得先知道没有它的时候东西是怎么坏的。
你在终端里跑一条命令,这条命令是 shell 的子进程,而 shell 绑在终端会话上。Unix 里有个大多数人没人告诉过你的残酷设定:终端关闭的时候,不管是关窗口还是 SSH 断线,shell 会给所有子进程发一个 SIGHUP 信号。这名字直译过来就是"挂断",电话拨号时代留下的遗产,进程收到它的默认反应就是结束。你的编译任务不是崩了,它是被系统"礼貌地"通知退出了,因为系统默认认为连接断了等于工作不要了。
这种时候你可能用过 nohup。它确实管用,勉强算:nohup ./长任务 & 让进程忽略 SIGHUP,断开后还能活。我用这招用了很多年,直到实在受不了它的局限:进程一旦这么挂到后台,你没法再给它输入;输出全堆在 nohup.out 里,得另开终端去 tail;同时管三四个长任务的话,你就是在经营一座孤儿进程动物园,连个能并排看它们的地方都没有。
终端一死,带走你的全部工作。tmux 的解法就一句话:把你的程序从 SSH 会话底下整个挪出去。
tmux 怎么做到的:一个服务器,多个客户端
tmux 建立在客户端-服务器架构上,这是唯一值得记住的理论。
你第一次运行任何 tmux 命令时,一个叫 tmux server 的后台进程会自动启动。所有状态都存在这个 server 里:每一个会话、每一个窗口、每一个跑着的程序、每一字节还没显示的输出。你在终端里敲 tmux,实际上是启动了一个客户端,它通过 /tmp 下的一个 socket 文件连到 server,attach 到某个会话上。官方入门指南对这套架构有完整描述。
现在"断线不死"就说得通了。你的 SSH 连接只拥有那个客户端。连接断了,死的是客户端,server 和它管着的一切原地不动。重新连上、起新客户端、attach,你就回来了。同样的保护也覆盖手滑关错终端窗口的情况,这种事我干过的次数就不提了。
这套设计还顺带解释了几件事:
- 多个客户端可以同时 attach 到同一个会话,从不同电脑——这就是两人结对实时共享终端的原理。
- 最后一个会话结束时 server 自动退出,不会变成僵尸进程挂着;另有一个 kill-server 命令用来强制清理。
- 退出是一层一层级联的:关掉窗格里的 shell,窗格死;窗口最后一个窗格死了,窗口死;会话最后一个窗口死了,会话死;最后一个会话死了,server 关机。
会话、窗口、窗格
tmux 把所有东西组织成三层嵌套。会话、窗口、窗格这三个词是什么关系?分清它们,往后看任何教程和 man 手册都会轻松很多。
会话(session)是一个持久的、独立的工作区,可以当成一个项目来理解。会话里装着窗口(window),行为像浏览器的标签页:一次看一个,来回切换。每个窗口占满整个终端,可以再切成窗格(pane),就是那些矩形的分屏块,各自跑各自的程序。tmux 的入门知识最后就归到这个层级上:会话套窗口,窗口套窗格,窗格里跑你的程序。
屏幕底部那条绿 bar 是状态栏。左边显示会话名和窗口列表,编号、名字,还有一颗 * 标着当前活动窗口;右边一般是主机名、日期、时间。它可以完全定制,有人把它玩出花来。
会话默认按 0、1、2 编号,一两个够用,五个就开始遭罪。建的时候顺手起名(tmux new -s build),未来的你会感谢现在的你。
五分钟跑起第一个会话
理论够了,下面是从零到跑通的最短路径。
用系统包管理器装:macOS 是 brew install tmux,Ubuntu/Debian 是 sudo apt install tmux,Fedora/RHEL 是 sudo dnf install tmux。然后:
tmux new -s test你进去了。底部出现状态栏,你有一个叫 test 的会话,里面一个窗口一个窗格,跑着你的 shell。在里面跑个慢的东西:
while true; do date; sleep 1; done现在脱离:按 Ctrl+b,松开,再按 d。你被扔回原来的裸终端,会话从眼前消失了。确认它还活着:
tmux ls应该能看到 test: 1 windows (...)。那个时钟还在里面一秒一秒地走。接回去:
tmux attach -t test你的时钟回来了,一秒都没停过。整个魔术就是这一套。把终端窗口整个关掉,再开一个新的,重新 attach,结果一样。
趁热再玩两个键。Ctrl+b 是前缀键,概念上借的是 vim 的 leader key:先按它、松开、再按功能键。Ctrl+b 然后按 %,窗口切成左右两块;Ctrl+b 然后按 ",切成上下两块。这里提醒一句,网上教程对这两个键的说法很乱,有的把 % 叫"水平分屏"有的叫"垂直分屏",说的还是相反的东西。别管形容词,记结果:% 是左右并排," 是上下堆叠。
一句掏心窝的警告,我也是在这堵墙上撞过一阵的:tmux 默认带 85 个以上的快捷键,一开始就想全背下来,正是大多数人弃坑的方式。头一周你需要的其实就六个键:新建、脱离、接回、分屏、切窗格、切窗口。其余的,本站有一张单页速查表随查随用;想往深里走,tmux(1) man 手册是终局答案。
2026 年大家拿 tmux 干什么
经典用法没有变过。远程长任务——编译、模型训练、数据库迁移、备份——断一次线就亏几小时的那种。多机接续:公司起一个活,回家 attach 上同一个会话,从半截思路继续。还有纯本地的窗口管理,不涉及 SSH,这条被严重低估;tmux 在本地跑起来一模一样,"关错终端窗口"从此不再是事故。我自己日常就是这么用它的:早上在图书馆连上服务器写代码,中午吃饭合上电脑完全不管,下午 attach 回去,代码、日志、跑着的服务全在。
新东西是 AI 这条线。现在很多人在远程机器或专门的小机器上跑 AI 编程智能体,比如 Claude Code 这类,这些智能体的会话一跑就是几天几周,你只是定期回去看一眼进度。这简直是给 tmux 量身定做的场景:你连不连着,智能体都在干活,你随时回来看到它进展到哪了。如果你正打算搭这样的环境,我们的 Claude Code 使用教程讲了整套工作流。
再往外:系统管理员拿共享会话结对排障,团队在事故时一起盯同一份日志,家里有树莓派或自组服务器的人,靠 tmux 在不开终端窗口的情况下远程管它。
tmux 对比 screen(顺带说清 Termux)
两个对比高频出现,一次说清。
GNU Screen 是什么?tmux 最常被拿来比的老前辈。tmux 覆盖了它大部分功能,代码库更现代,Screen 在部分 Linux 发行版里已经被标记弃用。但它俩不是即插即换的关系:默认命令键不一样,肌肉记忆不通用(想要兼容的话,tmux 可以配置成 Screen 键位)。tmux 还缺 Screen 内置的串口和 telnet 支持,对绝大多数人无所谓,对少数人是决定性的。我的态度:2026 年从零开始学,没理由先选 Screen。
那 Termux 是什么? 一个安卓 App,手机上的终端模拟器,跟 tmux 除了名字长得像,毫无关系。俩名字像归像,搜索结果经常缠在一起,实际是两个不相干的东西。如果你是在应用商店里搜 "tmux",请冷静退出来。
常见问题
tmux 是什么?用来干什么? 三大件:让远程进程扛住 SSH 断线、在一个窗口里管多个终端程序(标签页和分屏)、从任何一台机器恢复工作现场。现在还多了一件:托管长时间运行的 AI 智能体会话。
tmux 在 Windows 上能用吗? 原生不行,tmux 面向类 Unix 系统。Windows 上走 WSL(Linux 子系统),里面跑起来和 Linux 上完全一样。macOS 上通过 Homebrew 装,一等公民待遇。
tmux 难学吗? 概念十分钟讲完,默认快捷键确实要适应一阵。前缀机制(按 Ctrl+b、松开、再按键)一开始会觉得别扭,但真正常用也就一小撮,而且所有键都能在 ~/.tmux.conf 里改。
2026 年了,tmux 还值得学吗? 两个问题都是"值得"。当前版本是 2026 年 8 月的 3.7c,18 年了开发依然活跃;而长时间运行的 AI 智能体工作流兴起,又给它续了一波新的用武之地。
知道 tmux 是什么只是入场券,肌肉记忆才是它真正给钱的地方。从 tmux 速查表开始,这篇教程里的每一条命令和快捷键都在那一页上,日常随查随用。