Loading... # Tmux 终端复用器漫画入门指南 # 一、概述 ## 1. 简介 ### A. 是什么 Tmux 是一个终端复用器(Terminal Multiplexer),它允许用户在单个终端窗口中创建、访问和控制多个终端会话。简单来说,它让你的终端工作变成网络游戏服务器,即使断网断电,你的程序依然在服务器后台运行。 ### B. 为什么学 - 解决 SSH 断线导致程序中断的问题 - 在一个终端窗口中实现多任务并行 - 为不同项目创建独立的工作空间 - 提升远程服务器工作效率 ### C. 学完能做什么 - 创建持久化的终端会话,断线重连不丢失工作 - 在单个终端中分屏显示多个工作区 - 管理多个独立的会话,每个会话对应一个项目 - 使用鼠标和键盘快捷键高效操作 ## 2. 前置知识 ### A. 必备技能 - 基本命令行操作 - 了解 SSH 远程登录 ### B. 推荐知识 - Linux 系统基础 - Vim 或其他终端编辑器 # 二、环境准备 ## 1. 系统要求 - Linux:Ubuntu、Debian、CentOS、Fedora 等 - macOS:10.15+ - Windows:通过 WSL 或 Cygwin ## 2. 安装步骤 Debian/Ubuntu: ```bash sudo apt install tmux ``` CentOS/Fedora: ```bash sudo dnf install tmux ``` macOS: ```bash brew install tmux ``` ## 3. 验证安装 ```bash tmux -V ``` # 三、核心概念 ## 1. 基本术语 - **会话(Session)**:Tmux 的最高级别容器,可以包含多个窗口 - **窗口(Window)**:会话中的标签页,类似浏览器的标签 - **面板(Pane)**:窗口分割后的子区域 - **前缀键(Prefix)**:触发 Tmux 快捷键的组合键,默认为 Ctrl+b ## 2. 工作原理 普通 SSH 就像看现场直播,断网就断了。Tmux 把你的工作变成网络游戏服务器,即使你断网了,你的角色依然在服务器后台运行。 ```mermaid graph LR A[用户终端] -->|SSH 连接| B[远程服务器] B -->|启动| C[Tmux Server] C -->|包含| D[Session 1] C -->|包含| E[Session 2] D -->|包含| F[Window 1] D -->|包含| G[Window 2] F -->|分割| H[Pane 1] F -->|分割| I[Pane 2] style C fill:#e1f5ff style D fill:#fff4e1 style E fill:#fff4e1 ```  ## 3. 核心机制 Tmux 的核心逻辑分为两个操作: - **Detach(离场)**:人走了,戏继续演 - **Attach(返场)**:人回来,无缝接盘 ```mermaid sequenceDiagram participant U as 用户 participant T as 终端 participant S as Tmux Server participant P as 运行程序 U->>T: SSH 连接 U->>S: tmux attach U->>P: 启动程序 P-->>U: 程序运行中 U->>S: Ctrl+b d (Detach) U->>T: 断开 SSH Note over S,P: 程序继续运行 U->>T: SSH 重连 U->>S: tmux attach S-->>U: 恢复现场 P-->>U: 程序仍在运行 ```  # 四、快速上手 ## 1. Hello World 示例 ### A. 第一次存档 在终端输入以下命令: ```bash tmux ``` 屏幕闪了一下,底部多了一条绿色的状态栏。这意味着你已经进入了 Tmux 安全屋。 ### B. 测试持久化 运行一个长时间任务: ```bash top ``` 现在模拟灾难——直接关闭终端窗口! ### C. 时光回溯 重新打开终端,连上 SSH,输入复活咒语: ```bash tmux attach ``` 奇迹发生了,那个 top 界面还在跳动,就像你从未离开过一样。 ## 2. 核心功能演示 ### A. 会话管理 创建命名会话: ```bash tmux new -s my_project ``` 查看所有会话: ```bash tmux ls ``` 重新连接指定会话: ```bash tmux attach -t my_project ``` 万能启动(有则进入,无则创建): ```bash tmux new -A -s main ``` ### B. 窗口分屏 记住,所有快捷键都需要先按前缀键 Ctrl+b,松手后再按指令键。 **左右分屏**: 1. 按 Ctrl+b,松手 2. 按 %(Shift+5) **上下分屏**: 1. 按 Ctrl+b,松手 2. 按 "(Shift+') **切换面板**: Ctrl+b 然后按方向键 **全屏/还原**: Ctrl+b 然后按 z(Zoom) ### C. 离场与返场 优雅离场: ```bash Ctrl+b 然后按 d ``` 快速返场: ```bash tmux attach ``` # 五、进阶内容 ## 1. 常用功能 ### A. 会话操作 | 操作 | 命令 | |------|------| | 创建命名会话 | tmux new -s <名称> | | 查看会话列表 | tmux ls | | 连接指定会话 | tmux attach -t <名称> | | 杀死指定会话 | tmux kill-session -t <名称> | ### B. 窗口操作 | 操作 | 快捷键 | |------|--------| | 新建窗口 | Ctrl+b c | | 切换窗口 | Ctrl+b 数字 | | 重命名窗口 | Ctrl+b , | | 关闭窗口 | Ctrl+b & | ### C. 面板操作 | 操作 | 快捷键 | |------|--------| | 垂直分割 | Ctrl+b % | | 水平分割 | Ctrl+b " | | 切换面板 | Ctrl+b 方向键 | | 关闭面板 | Ctrl+b x | ## 2. 最佳实践 ### A. 配置文件 开启鼠标支持(强烈推荐): 编辑 ~/.tmux.conf,添加: ```bash set -g mouse on ``` 重新加载配置: ```bash tmux source ~/.tmux.conf ``` ### B. 工作流程 推荐的工作流程: 1. 登录服务器 2. 输入 tmux new -A -s main 3. 开始干活 4. 要下班了?直接关窗口或 Ctrl+b d 优雅离场 5. 回家路上想看一眼?SSH 连上去,tmux attach,还是那个现场 ### C. 会话命名规范 为不同项目创建独立会话: ```bash # 公司项目 tmux new -s work_project # 个人学习 tmux new -s study # 摸鱼脚本 tmux new -s scripts ``` # 六、实战案例 ## 1. 场景描述 你在远程服务器上训练一个机器学习模型,预计需要 6 小时。你担心网络不稳定导致训练中断。 ## 2. 实现步骤 创建专用会话: ```bash tmux new -s model_training ``` 启动训练: ```bash python train_model.py ``` 检查任务运行后,优雅离场: ```bash Ctrl+b d ``` 现在你可以安全地关闭电脑下班回家。回家后重新连接: ```bash ssh user@server tmux attach -t model_training ``` 你的模型训练还在继续,进度一切正常。 ## 3. 多项目管理 你同时在做三个项目:公司业务、个人博客、学习笔记。 创建三个独立会话: ```bash tmux new -s work tmux new -s blog tmux new -s study ``` 每个会话都有自己的窗口布局和运行程序,互不干扰。 切换工作场景: ```bash tmux attach -t work # 上班模式 tmux attach -t blog # 创作模式 tmux attach -t study # 学习模式 ``` # 七、常见问题 ## 1. 安装问题 Q:apt 找不到 tmux 包? A:更新软件源 sudo apt update Q:macOS 提示 command not found? A:先安装 Homebrew,然后 brew install tmux ## 2. 配置问题 Q:鼠标滚轮不工作? A:在 ~/.tmux.conf 中添加 set -g mouse on,然后重新加载配置 Q:快捷键不生效? A:确保先按 Ctrl+b,松开后再按指令键 ## 3. 运行问题 Q:无法连接到已有会话? A:使用 tmux ls 查看会话名称,然后用 tmux attach -t <名称> Q:会话无法关闭? A:使用 tmux kill-session -t <名称> 强制关闭 # 八、快捷速查表 ## 核心法则 所有快捷键必须先按 Ctrl+b,松手,再按指令。 ## 会话管理(Session) - 新建并命名:tmux new -s <名字> - 查看列表:tmux ls - 回家(Attach):tmux a -t <名字> - 万能启动:tmux new -A -s main ## 空间切割(Pane) - 左右分:% - 上下分:" - 切换焦点:方向键 - 全屏/还原:z(Zoom) ## 离场(Detach) - 挂机离开:d ## 鼠标支持 在 ~/.tmux.conf 中写入: ```bash set -g mouse on ``` 然后在 Tmux 内输入 Ctrl+b : source ~/.tmux.conf 生效。 *** ## 参考资料 1. [再见,断线!—— 用漫画学 Tmux:打造你永不掉线的时光屋](https://x.com/Tz_2022/status/2012624953053503541) 最后修改:2026 年 01 月 19 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏