tmux 使用手册(Windows / Arch Linux / macOS)
- 版本:tmux 3.7c(2026-08,3.8 开发中)| herdr 0.9.0
- 平台:Windows 11、Arch Linux、macOS
- 整理日期:2026-09-14
- 来源:tmux 官方 Wiki / man page、herdr 官方文档(herdr.dev/docs)、Better Stack 指南等,见文末链接。
- 阅读提示:先看第 0 章的平台可用性总表——tmux 在 Windows 上没有原生版本,而 herdr 有原生 Windows 版(GA)但有若干限制,这两点决定了你的选型。
目录
- 平台可用性总表
- tmux 是什么
- tmux 安装(分平台)
- tmux 核心概念
- tmux 快速上手
- tmux 状态栏与 prefix
- tmux 键位大全
- tmux 命令与命令提示符
- tmux 复制粘贴与系统剪贴板(分平台)
- tmux 鼠标操作
- tmux 配置文件 .tmux.conf
- tmux 窗口布局与浮动窗格
- tmux 在 Windows 上的方案与限制
- tmux 进阶:control mode / formats / tmuxp
- 速查表
- 参考链接与视频
0. 平台可用性总表
一句话选型:
- Windows:要原生体验选 herdr;想用 tmux 必须进 WSL2。
- Arch / macOS:两者都原生,tmux 更轻更成熟,herdr 多了 Agent 状态感知。
三者定位对比(含 Zellij)
1. tmux 是什么
tmux 是一个终端复用器(terminal multiplexer):在一个终端窗口里运行多个终端程序,并允许你脱离(detach)再重新连接(attach)——程序在后台继续跑。
主要用途:
- 在远程服务器上跑长任务,防止 SSH 断线中断程序。
- 同一台机器上的程序,从多台电脑访问同一会话。
- 在一个终端里同时管理编辑器、编译、多个 shell,像窗口管理器一样。

核心优势:极其成熟稳定、几乎所有 Unix 系统都有包、脚本化能力强(control mode / 命令行控制)。主要门槛:默认 Ctrl b prefix + 大量组合键需要记忆。
2. tmux 安装(分平台)
2.1 Arch Linux
想要更新版本 / 开发版,可用 AUR:
yay -S tmux-git。
2.2 macOS
2.3 Windows
tmux 没有原生 Windows 版本(它依赖 Unix 的 pty)。三条路:
- WSL2(最推荐):在 WSL 发行版里
sudo apt install tmux,然后在 Windows Terminal 里wsl进去用。完整功能。 - MSYS2:在 MSYS2 的 MINGW/MSYS 环境里
pacman -S tmux。注意:只能在 mintty 终端里运行,无法在原生 cmd.exe / PowerShell 控制台正常使用。 - Cygwin:Cygwin 安装器里勾选
tmux,同样在 mintty 里运行。
参考:tmux 官方 issue #1954 明确说明——Cygwin/MSYS2 的 tmux 无法在原生 Windows 控制台使用。 详见第 12 章。
2.4 源码编译(通用)
3. tmux 核心概念
tmux 的层级是 server → session → window → pane。


关键点:
- 程序跑在 pane 里 → pane 属于 window → window 链接到 session。
- 一个 session 可以有多个 window;一个 window 可以有多个 pane。
- detach 不会杀掉程序,只是 client 断开;server 和程序继续运行。
4. tmux 快速上手
4.1 创建 / 命名会话
4.2 查看 / 连接 / 断开
在会话内:
- Detach:
Ctrl b然后d(回到 shell,程序继续跑) - Kill server:
Ctrl b然后:,输入kill-server
4.3 生命周期示意
5. tmux 状态栏与 prefix

底部状态栏默认显示:
- 左:session 名
[0] - 中:window 列表
0:ksh 1:vim(当前 window 后带*,上一个 window 带-) - 右:pane 标题、时间、日期
prefix 键
默认 Ctrl b。按下后松开,再按下一个键,tmux 才执行对应命令。
C-b表示Ctrl+b;M-表示 Meta(现代键盘通常是 Alt);S-表示 Shift。C-b c= 先按Ctrl+b,松开,再按c。- 连按两次
Ctrl b= 把Ctrl b本身发给窗格内程序。
查看所有键位:Ctrl b 然后 ?。

单键说明:Ctrl b 然后 /,再按任意键,会在底部显示其说明。
6. tmux 键位大全
格式:
C-b=Ctrl+b;M-= Alt;S-= Shift。所有键位前都要先按 prefix(默认Ctrl b)。
6.1 会话(Session)

6.2 窗口(Window)



6.3 窗格(Pane)



6.4 复制 / 粘贴(copy mode)


6.5 其它
6.6 树形选择(tree mode)

C-b s(只显示 session)或 C-b w(展开 window)。进入后不需要 prefix:

7. tmux 命令与命令提示符
每个键位背后都是一条 tmux 命令,命令也可以在 shell 里直接用。

tmux 的权威参考是 man page:
man 1 tmux(含每条命令、每个选项、每个 flag 的完整说明)。官方在线版:https://man.openbsd.org/tmux

常用命令与别名:
命令提示符:C-b :,可输入任意命令。多个命令用 ; 分隔(command sequence)。
在 shell 里查键位说明:
8. tmux 复制粘贴与系统剪贴板(分平台)
tmux 有自己的 buffer 系统(最多保留 50 个自动 buffer),默认不进系统剪贴板。要让 C-b [ 复制的内容进入系统剪贴板,需要按平台配置。
8.1 macOS(pbcopy)
8.2 Arch Linux
X11:
Wayland:
8.3 Windows(在 WSL 内)
WSL 里可以调用 Windows 的 clip.exe:
若设置了
set -g mouse on,鼠标拖动选择在 tmux 里进行;按住Shift拖动可用终端原生选择。
9. tmux 鼠标操作
开启鼠标:

开启后:
- 左键点 pane → 设为 active pane;点状态栏窗口名 → 切换窗口。
- 拖动 pane 边框 → 调整大小。
- 在 pane 内拖动 → 选中文本,松开即复制。
- 右键 pane / 窗口 / 会话 → 弹出命令菜单(每项都标注了快捷键)。
- 拖动浮动窗格边框 → 移动/缩放;按住
Ctrl拖动 → 新建浮动窗格。
10. tmux 配置文件 .tmux.conf
10.1 位置
tmux 按以下顺序查找(依据 man 1 tmux 的 FILES 段):
~/.tmux.conf(经典,最常用)$XDG_CONFIG_HOME/tmux/tmux.conf,即~/.config/tmux/tmux.conf(tmux 3.2a+)/etc/tmux.conf(系统级,即@SYSCONFDIR@/tmux.conf)
重要:
.tmux.conf只在 server 启动时读取一次,不是每次新建会话都读。改完要让运行中的 server 重新加载:
Windows 上:配置文件在你用的那套环境里——WSL 的 ~/.tmux.conf,或 MSYS2/Cygwin 的 home 目录。
10.2 语法
- 每行一条命令,
#开头是注释。 - 参数可用
'或"包裹,或转义空格。 ~会展开;环境变量会展开(但'内不展开)。- 不是 shell 脚本,不能用
$()等 shell 构造。
10.3 常用配置片段
10.4 插件(TPM)
社区常用插件管理器 TPM:
安装插件:C-b I;更新:C-b U。
11. tmux 窗口布局与浮动窗格
11.1 预定义布局

C-b Space 在这些布局间轮换。
11.2 浮动窗格(tmux 3.8+)


3.8 目前处于 rc 阶段;稳定版是 3.7c,浮动窗格在 3.7c 里不可用。安装 3.8-rc 或用开发版才能体验。
11.3 标记与交换

C-b m 标记一个 pane(全局唯一),C-b M 清除。之后可用 swap-pane / swap-window 与当前项交换。
11.4 重命名

C-b $ 重命名会话,C-b , 重命名窗口。
12. tmux 在 Windows 上的方案与限制
结论:Windows 上没有原生 tmux。 tmux 依赖 Unix 的 pty 与 fork/exec 模型,官方不支持 Windows 控制台。
12.1 方案对比
12.2 为什么原生不行
- tmux 通过
forkpty(3)创建伪终端(pty)并运行程序,Windows 控制台模型不同(ConPTY 是另一套)。 - 官方 issue #1954「running natively on Windows 10」 的答复即:Cygwin/MSYS2 有 tmux,但无法在原生控制台使用。
12.3 WSL2 落地建议
- 安装 WSL2 + 一个发行版(Ubuntu 等)。
- 在发行版内
sudo apt update && sudo apt install tmux。 - 用 Windows Terminal 新建 WSL profile,设为默认,直接进入 tmux。
- 剪贴板:
copy-pipe-and-cancel "clip.exe";粘贴用终端原生Ctrl+Shift+V。 - 想开机即进 tmux:在 WSL 的
~/.bashrc末尾加
如果你想要原生 Windows 的 tmux 式体验,直接用 herdr(见另一本《herdr 使用手册》)或 Zellij。
13. tmux 进阶:control mode / formats / tmuxp
前面是日常操作;本章是 tmux 真正「强于」多数复用器的三块进阶能力:脚本化控制、格式串、声明式会话管理。
13.1 Control mode(-C / -CC):用文本协议控制 tmux
Control mode 让 tmux 不画终端,改用纯文本协议通信——因此极易解析,也能跨 ssh 使用。它最初是为 iTerm2 原生集成设计的(iTerm2 用它的 UI 显示 tmux 窗格)。
- 发送:直接写 tmux 命令(
new-window、list-panes、show-options…),每行一条。 - 接收:命令输出包在
%begin/%end(成功)或%begin/%error(失败)之间;异步通知以%开头,如%output %1 ...、%window-add @1、%session-changed $1 name。 - 空行 = detach。
取信息优先用 -F 指定格式,配合 q 修饰符转义:
实用场景:iTerm2 的 tmux 集成、把 tmux 嵌进 GUI/编辑器、写自动化脚本(比反复 send-keys 更可靠)。iTerm2 用户直接 tmux -CC 就能获得原生分屏体验。
完整通知表、flow control、format subscriptions 见官方 Wiki:Control Mode。
13.2 Formats(#{}):状态栏与脚本的通用取值语法
Format 用 #{} 展开会话/窗口/窗格/服务器属性,可用于 status-left、status-right、list-* 的 -F、display-message -p、if-shell 等。
常用字段:
常用技巧:
在新窗格/分屏里沿用当前目录(高频需求):
完整字段表见官方 Wiki:Formats。
13.3 tmuxp / tmuxinator:用 YAML 声明会话
手写一长串 new-window / split-window 很痛苦,用声明式会话管理器更省事。
tmuxp(Python):
tmuxinator(Ruby)类似:gem install tmuxinator,配置放 ~/.config/tmuxinator/*.yml,用 mux start myproject。
二者都是「把常用工作区变成一条命令」。若想用 tmux 原生能力,也可
.tmux.conf+source-file;或直接参考 Zellij / herdr 的 layout 思路。
13.4 其它进阶点
23. 速查表
23.1 tmux(prefix = Ctrl b)
23.3 平台可用性(再强调一次)
24. 参考链接与视频
tmux
- 官方 Wiki(Getting Started):https://github.com/tmux/tmux/wiki/Getting-Started
- 安装文档:https://github.com/tmux/tmux/wiki/Installing
- 剪贴板配置:https://github.com/tmux/tmux/wiki/Clipboard
- man page:https://man.openbsd.org/tmux
- GitHub:https://github.com/tmux/tmux
- 预编译静态二进制:https://github.com/tmux/tmux-builds
- Windows 原生 issue #1954:https://github.com/tmux/tmux/issues/1954
- 插件管理器 TPM:https://github.com/tmux-plugins/tpm
相关文件位置
图片版权归 tmux 项目(Wiki)与 herdr 项目所有,来源分别为 https://github.com/tmux/tmux/wiki 与 https://herdr.dev、Better Stack。本手册仅供个人学习使用。