终端利器 tmux 完全指南:从基础到精通
专栏:web开发笔记 Aug. 4, 2026, 9:52 a.m. 12 阅读
tmux 是一个终端复用器(Terminal Multiplexer)。简单来说,它是一个允许你在“一个终端窗口”中,创建并管理多个独立终端会话的工具。

你是否曾因远程连接中断而丢失正在进行的工作?是否羡慕过大神们在同一个终端窗口里分割出多个面板,操作行云流水?如果你有这样的困扰或向往,那么 tmux 就是你需要的终极神器。

本文将从一个初学者的视角,带你系统性地了解 tmux 的核心概念和常见用法。无论你是开发者、运维工程师,还是只是希望提高终端效率的爱好者,这篇文章都能让你有所收获。

什么是 tmux?

tmux 是一个终端复用器(Terminal Multiplexer)。简单来说,它是一个允许你在一个终端窗口中,创建并管理多个独立终端会话的工具。

它最核心的价值在于三点:

  1. 会话保持:你可以在服务器上开启一个 tmux 会话,然后放心地关掉电脑。当你重新连接时,所有工作现场(正在运行的程序、当前目录、输出历史)都完好无损。

  2. 窗口管理:在一个会话中,你可以像使用浏览器标签页一样,创建和管理多个窗口(Window),轻松在不同任务间切换。

  3. 布局灵活:你可以将一个窗口任意分割成多个窗格(Pane),同时查看或操作多个任务,无需在多个终端窗口间跳转。

安装与启动

tmux 通常可以通过系统的包管理器轻松安装:

  • Ubuntu/Debian: sudo apt install tmux

  • CentOS/RHEL: sudo yum install tmux

  • macOS (Homebrew): brew install tmux

安装完成后,在终端输入 tmux 即可启动一个新的会话,踏入 tmux 的世界。

核心概念:会话、窗口、窗格

tmux 的管理逻辑是一个清晰的树形结构:

  • 会话 (Session):最高层级,代表一个独立的工作环境。你可以为不同项目(如 blogproject)创建不同的会话。

  • 窗口 (Window):会话中的一个“标签页”。每个窗口都拥有一个独立的终端。

  • 窗格 (Pane):窗口中的分割区域。通过分割窗格,你可以在一个窗口内同时显示多个终端。

所有 tmux 操作都围绕这三个层级展开,而其快捷键都以 前缀键(Prefix Key) 开始。默认的前缀键是 Ctrl+b。这意味着你需要先同时按下 Ctrlb,松开后,再按下一个功能键。

💡 记住这个感觉Ctrl+b 就像是告诉 tmux “我要开始下指令了”,随后的按键才是具体的命令。

会话管理:你的工作空间

会话管理是使用 tmux 的第一步,也是保证任务持续运行的关键。

创建新会话

在普通终端中,使用以下命令创建会话:

# 创建一个名为 "my_project" 的会话
tmux new -s my_project

分离 (Detach) 与会话保持

当你想暂时离开,让任务(如编译代码、下载文件)在后台继续运行时,需要从会话中分离。

  • 快捷键:按下 Ctrl+b,然后按 d。你会瞬间退出 tmux 回到普通终端,但会话中的所有内容都在后台稳定运行。

查看已有会话

当你想重新连接时,首先需要查看有哪些会话在运行。

tmux ls
# 或使用全称
tmux list-sessions

重新连接 (Attach)

根据 tmux ls 输出的会话名,你可以选择性地进入会话。

# 连接到名为 "my_project" 的会话
tmux attach -t my_project

# 简写形式
tmux a -t my_project

其他会话操作

  • 重命名会话:在会话中,按 Ctrl+b,然后按 $

  • 切换会话:在会话中,按 Ctrl+b,然后按 s,会弹出一个会话列表,使用方向键选择并回车即可。

窗口管理:你的标签页

一个会话可以包含多个窗口,非常适合在同一个项目中按功能(如 editorserverlogs)进行分类。

快捷键功能
Ctrl+b c创建一个新窗口
Ctrl+b ,重命名当前窗口
Ctrl+b p / n切换到上一个 / 下一个窗口
Ctrl+b 0-9直接跳转到对应编号的窗口
Ctrl+b w从窗口列表中选择一个窗口
Ctrl+b &关闭当前窗口(会提示确认)

窗格管理:你的分屏利器

窗格是 tmux 最常用的功能,它能最大化地利用屏幕空间。

分割窗格

  • Ctrl+b %:在当前窗格的右侧,垂直(左右)分割出一个新窗格。

  • Ctrl+b ":在当前窗格的下方,水平(上下)分割出一个新窗格。

切换与调整窗格

  • Ctrl+b 方向键:在相邻的窗格间移动光标。

  • Ctrl+b Ctrl+方向键:以 1 个单元格为单位,调整当前窗格的大小。

  • Ctrl+b Alt+方向键:以 5 个单元格为单位,调整当前窗格的大小(macOS 可能需调整终端设置)。

窗格布局与操作

  • Ctrl+b Space:在 tmux 预设的几种布局(如平均分布、主区域最大化等)间循环切换。

  • Ctrl+b z:将当前窗格最大化(全屏),再次按下则恢复,非常适合临时聚焦某个窗格。

  • Ctrl+b x:关闭当前窗格(会提示确认)。

  • Ctrl+b !:将当前窗格拆分成一个独立的窗口。

  • Ctrl+b q:短暂显示每个窗格的数字编号,便于快速跳转。

复制模式:轻松滚动与复制

在终端中滚动和复制文本有时不太方便。tmux 提供了“复制模式”来解决这个问题。

  • Ctrl+b [:进入复制模式,此时你可以自由滚动历史输出。

  • 在复制模式中

    • Space 开始选择文本。

    • Enter 复制选中的文本并退出复制模式。

    • /? 可以向下或向上搜索关键词。

  • Ctrl+b ]:粘贴最近复制的文本。

进阶技巧与个性化配置

1. 后台创建与执行任务

无需进入会话,即可创建一个后台会话并直接运行命令:

# 创建一个名为 "backup" 的后台会话,并运行备份脚本
tmux new -d -s backup './backup_script.sh'

2. 修改前缀键 (Customize Prefix)

默认的 Ctrl+b 与终端内许多快捷键(如向后删除字符)冲突,容易误触。你可以通过编辑 ~/.tmux.conf 配置文件,将前缀键改为更顺手的 Ctrl+a

  1. 使用 vim ~/.tmux.confnano ~/.tmux.conf 打开配置文件。

  2. 添加以下三行:

    # 将前缀键设置为 Ctrl+a
    set -g prefix C-a
    # 解除 Ctrl+b 的绑定
    unbind C-b
    # 绑定 Ctrl+a 为发送前缀键(用于在 tmux 内输入 Ctrl+a)
    bind C-a send-prefix

  3. 保存文件后,重新加载配置或在 tmux 中执行 Ctrl+b : 然后输入 source-file ~/.tmux.conf

3. 快速求助

万一忘记快捷键,tmux 内置了完整的帮助列表。按下 Ctrl+b ?,即可看到所有快捷键的说明,按 q 退出。

总结

tmux 的学习曲线或许有些陡峭,但其带来的效率提升是无可比拟的。我们快速回顾一下本文的核心内容:

  1. 核心三要素:会话(Session)、窗口(Window)、窗格(Pane)。

  2. 生命线操作

    • 开启tmux new -s <name>

    • 脱离Ctrl+b d

    • 恢复tmux a -t <name>

  3. 分屏快捷键% 垂直分割," 水平分割,方向键切换。

  4. 常用辅助Ctrl+b z 全屏,Ctrl+b [ 滚动与复制。

掌握了这些,你已经可以自信地使用 tmux 来管理你的终端工作了。在实践中多多使用,很快你会发现,你已经离不开这个强大的工具了。祝你使用愉快!

感谢阅读,更多文章点击这里:【专栏:web开发笔记】
最新20篇