tmux 简明教程

tmux 简明教程

什么是 tmux?

tmux 是一个终端复用器(terminal multiplexer)。你可以把它看作终端窗口的“窗口管理器”,允许你在单个终端窗口中创建、访问和控制多个终端会话。

想象这样的场景:你在服务器上运行一个耗时很长的任务,突然网络断开,SSH 连接中断,任务也因此被终止。如果使用 tmux,即使连接断开,任务也会继续在后台运行,你可以随时重新连接查看结果——这就是 tmux 的核心价值。

核心概念

tmux 采用三层结构:

  • 会话(Session):独立的工作空间,可在后台运行
  • 窗口(Window): 会话中的单个视图(类似浏览器标签页)
  • 窗格(Pane): 窗口的分割区域(类似平铺窗口管理器)

安装与启动

# Ubuntu/Debian
sudo apt install tmux

# macOS
brew install tmux

# 启动
tmux

启动后,你会注意到屏幕底部出现状态栏,这表示你已进入 tmux 会话。

核心操作速查

所有 tmux 命令都需要先按下前缀键(默认 Ctrl+b),然后按命令键。

会话管理

操作 快捷键(前缀键后) 命令
新建会话 - tmux new -s <name>
分离会话 d -
列出会话 s tmux ls
接入会话 - tmux attach -t <name>
切换会话 s -
重命名会话 $ -
杀死会话 &x tmux kill-session -t <name>

窗口管理

操作 快捷键
新建窗口 c
关闭窗口 &
下一个窗口 n
上一个窗口 p
选择窗口(按编号) 0-9
重命名窗口 ,
窗口列表 w
查找窗口 f

窗格管理

操作 快捷键
水平分割 "
垂直分割 %
切换窗格 方向键o
关闭窗格 x
调整窗格大小 Ctrl+方向键
全屏当前窗格 z(再次按恢复)
显示窗格编号 q

实际工作流示例

1. 创建开发环境

# 创建命名会话
tmux new -s dev

# 水平分割窗格
Ctrl+b, "    # 现在有两个窗格

# 在左侧运行测试服务器
npm run dev

# 切换到右侧窗格
Ctrl+b, 右方向键

# 垂直分割右侧窗格
Ctrl+b, %    # 现在有三个窗格

# 在右上角编辑代码
vim app.js

# 在右下角运行测试
npm test

2. 持久化工作环境

# 工作中需要离开时
Ctrl+b, d    # 分离会话

# 查看所有会话
tmux ls
# 输出:dev: 3 windows

# 重新连接
tmux attach -t dev    # 所有工作状态都保留着

配置建议

创建 ~/.tmux.conf 文件自定义 tmux:

# 更改前缀键为 Ctrl+a(更容易按)
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# 设置更短的命令延迟
set -sg escape-time 1

# 启用鼠标支持(现代 tmux)
set -g mouse on

# 状态栏优化
set -g status-interval 1
set -g status-right "#{cpu_percentage} | %Y-%m-%d %H:%M"

重新加载配置(在 tmux 中):

Ctrl+b, :source-file ~/.tmux.conf

为什么使用 tmux?

  1. 会话持久化:网络中断不影响任务运行
  2. 多任务处理:单个终端内管理多个工作流
  3. 协作功能:多人可以连接到同一会话(结对编程)
  4. 自定义工作区:保存和恢复复杂布局
  5. 高效操作:完全键盘驱动,减少鼠标依赖

进阶技巧

  • 使用 tmuxinatortmuxp 管理复杂配置
  • 学习复制模式(Ctrl+b, [)进行文本选择和复制
  • 尝试绑定更多自定义快捷键到你的肌肉记忆键位
  • 结合 .bashrc/.zshrc 别名简化常用命令

结语

tmux 的学习曲线初期可能有些陡峭,但一旦掌握,你会发现自己再也离不开它。它不仅仅是防止 SSH 断开的小工具,更是一个完整的终端工作环境管理器。从今天开始,尝试在一个 tmux 会话中完成你所有的终端工作,几周后,你会惊讶于效率的提升。

记住:所有 tmux 操作都遵循“前缀键 + 命令键”的模式。开始时可能会觉得多按一个前缀键很麻烦,但这是为无限可能性付出的微小代价。熟练后,你的手指会在思考之前自动完成操作。

(完)

posted @ 2026-01-11 10:15  thxis0  阅读(576)  评论(0)    收藏  举报