tmux 终端复用器完全指南 - 从入门到精通
作者:小弟
发布时间:2026 年 3 月 25 日
标签:tmux, 终端,Linux, DevOps
📖 前言
tmux(Terminal Multiplexer)是一个优秀的终端复用器,由 Nicholas Marriott 开发。它允许你在单个屏幕上创建、访问和控制多个终端会话。最重要的是,tmux 会话可以在后台运行,即使你关闭了终端窗口,程序也会继续运行,下次可以随时恢复。
本文将带你从零开始学习 tmux,包括安装、基本使用、配置优化和高级技巧。
🎯 为什么需要 tmux?
核心功能
- 会话保持:程序在后台运行,关闭终端也不会中断
- 多窗口管理:一个会话中可以创建多个窗口
- 窗格分割:每个窗口可以分割成多个窗格
- 远程工作:SSH 连接断开后工作不中断
- 团队协作:多人可以同时访问同一个会话
使用场景
- 运行长时间任务(编译、训练模型、数据处理)
- 同时管理多个服务器连接
- 需要离开但程序不能中断的情况
- 组织复杂的工作流
📦 安装 tmux
Linux 系统
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install tmux
# CentOS/RHEL
sudo yum install tmux
# Fedora
sudo dnf install tmux
# Arch Linux
sudo pacman -S tmux
macOS
# 使用 Homebrew
brew install tmux
# 或使用 MacPorts
sudo port install tmux
从源码编译(获取最新版本)
tmux 依赖 libevent 2.x 和 ncurses。首先需要安装依赖:
# Ubuntu/Debian
sudo apt-get install libevent-dev libncurses5-dev pkg-config
# CentOS/RHEL
sudo yum install libevent-devel ncurses-devel
# macOS
brew install libevent ncurses pkg-config
然后从 GitHub 克隆并编译:
git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure && make
sudo make install
验证安装
tmux -V
# 输出示例:tmux 3.4
🚀 快速开始
启动 tmux
# 启动新的 tmux 会话
tmux
# 启动并命名会话
tmux new -s mysession
# 启动指定窗口名称
tmux new -s mysession -n mywindow
进入 tmux 后的界面
启动后,你会看到底部有一条绿色的状态栏,显示当前窗口信息。现在你已经在一个 tmux 会话中了!
⌨️ 核心快捷键
前缀键(Prefix Key)
tmux 的大多数命令都需要先按 前缀键,默认是 Ctrl+b。按下后松开,再按其他键执行命令。
提示:很多用户喜欢将前缀键改为 Ctrl+a,因为更符合习惯。后面会介绍如何配置。
会话管理
| 快捷键 | 功能 |
|---|---|
前缀 + d |
脱离(detach)当前会话,返回普通终端 |
前缀 + s |
显示会话列表,可选择切换 |
前缀 + $ |
重命名当前会话 |
窗口管理
| 快捷键 | 功能 |
|---|---|
前缀 + c |
创建新窗口 |
前缀 + n |
切换到下一个窗口 |
前缀 + p |
切换到上一个窗口 |
前缀 + , |
重命名当前窗口 |
前缀 + & |
关闭当前窗口 |
前缀 + w |
显示窗口列表,可选择切换 |
前缀 + 数字 |
切换到指定编号的窗口(如 0-9) |
窗格管理
| 快捷键 | 功能 |
|---|---|
前缀 + % |
垂直分割(左右分屏) |
前缀 + " |
水平分割(上下分屏) |
前缀 + 方向键 |
切换到相邻窗格 |
前缀 + x |
关闭当前窗格 |
前缀 + q |
显示窗格编号(短暂显示) |
前缀 + z |
最大化/恢复当前窗格 |
前缀 + { |
将当前窗格向前移动 |
前缀 + } |
将当前窗格向后移动 |
其他常用命令
| 快捷键 | 功能 |
|---|---|
前缀 + ? |
显示所有快捷键帮助 |
前缀 + : |
进入命令模式,可输入 tmux 命令 |
前缀 + [ |
进入复制/滚动模式 |
📝 命令行操作
在普通终端中管理 tmux
# 列出所有会话
tmux list-sessions
tmux ls
# 附加到现有会话
tmux attach -t mysession
tmux a -t mysession
# 附加到最近使用的会话
tmux attach
tmux a
# 创建新会话
tmux new -s newsession
# 终止会话
tmux kill-session -t mysession
# 终止所有会话
tmux kill-server
# 重命名会话
tmux rename-session -t oldname newname
# 列出窗口
tmux list-windows -t mysession
# 列出窗格
tmux list-panes -t mysession
🔧 配置文件详解
配置文件位置
tmux 的配置文件是 ~/.tmux.conf。创建或编辑这个文件来定制你的 tmux。
# 创建配置文件
touch ~/.tmux.conf
# 编辑配置文件
vim ~/.tmux.conf
基础配置示例
# ====================
# 基础设置
# ====================
# 设置前缀键为 Ctrl+a(更符合习惯)
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# 启用鼠标支持
set -g mouse on
# 设置默认终端为 tmux-256color
set -g default-terminal "tmux-256color"
# 启用 RGB 颜色支持
set-option -sa terminal-features ",xterm*:RGB"
# ====================
# 窗口和窗格设置
# ====================
# 窗口关闭后保持(可以查看历史输出)
set -g remain-on-exit on
# 设置窗口索引从 1 开始(而不是 0)
set -g base-index 1
setw -g pane-base-index 1
# 设置窗口标题格式
setw -g automatic-rename on
set -g set-titles on
# ====================
# 状态栏设置
# ====================
# 设置状态栏高度
set -g status-height 2
# 状态栏右侧显示时间
set -g status-right "%Y-%m-%d %H:%M"
# 状态栏左侧显示会话名
set -g status-left "[#S] "
# 当前窗口高亮显示
setw -g window-status-current-style "underscore"
# ====================
# 快捷键绑定
# ====================
# 快速重载配置文件
bind r source-file ~/.tmux.conf \; display "Config reloaded!"
# 使用 Alt+方向键切换窗格
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# 使用 Alt+hjkl 切换窗格(Vim 风格)
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R
# 使用 Alt+方向键调整窗格大小
bind -n M-S-Left resize-pane -L 5
bind -n M-S-Right resize-pane -R 5
bind -n M-S-Up resize-pane -U 5
bind -n M-S-Down resize-pane -D 5
# ====================
# 复制模式设置
# ====================
# 使用 Vim 风格的复制模式
setw -g mode-keys vi
# 复制模式快捷键
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
bind -T copy-mode-vi Escape send-keys -X cancel
应用配置
修改配置后,有两种方式应用:
# 方式 1:在 tmux 内重载(推荐)
# 按 前缀 + r(如果配置了)或 前缀 + : 然后输入:
source-file ~/.tmux.conf
# 方式 2:重启 tmux
tmux kill-server
tmux
🎓 实用技巧
1. 脱离和恢复会话
# 在 tmux 内按 前缀 + d 脱离
# 恢复会话
tmux attach -t mysession
# 查看有哪些会话
tmux list-sessions
2. 窗格同步
在多个窗格中同时输入相同的命令(适合多服务器操作):
# 在 tmux 内按 前缀 + : 输入:
set-window-option synchronize-panes on
# 或者使用快捷键(如果配置了)
# 前缀 + y
# 关闭同步
setw synchronize-panes off
3. 复制和粘贴
# 1. 进入复制模式:前缀 + [
# 2. 使用方向键或 Vim 键移动(如果配置了 vi 模式)
# 3. 按空格键开始选择
# 4. 移动选择区域
# 5. 按 Enter 复制
# 6. 在目标位置按 前缀 + ] 粘贴
4. 搜索历史
# 1. 进入复制模式:前缀 + [
# 2. 按 Ctrl+s 或 / 开始搜索
# 3. 输入搜索内容
# 4. 按 Enter 搜索
# 5. 按 n 查找下一个,N 查找上一个
5. 保存和恢复会话
使用 tmux-resurrect 插件可以保存和恢复会话:
# 安装 tmux plugin manager (TPM)
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# 在 ~/.tmux.conf 中添加:
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
# 按 前缀 + I 安装插件
# 保存会话:前缀 + Ctrl+s
# 恢复会话:前缀 + Ctrl+r
🔍 调试技巧
启用日志
# 启动 tmux 时启用详细日志
tmux -v # 记录服务器日志
tmux -vv # 记录更详细的日志
# 日志文件会生成在当前目录:
# - tmux-server-xxxx.log
# - tmux-client-xxxx.log
查看环境变量
# 在 tmux 内按 前缀 + : 输入:
show-environment
# 查看特定变量
show-environment -g TMUX
📚 完整配置模板
这是一个适合新手的完整配置模板,复制到 ~/.tmux.conf 即可使用:
# ~/.tmux.conf - Tmux 配置模板
# 作者:小弟
# 日期:2026 年 3 月 25 日
# ====================
# 基础设置
# ====================
# 前缀键改为 Ctrl+a
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# 启用鼠标
set -g mouse on
# 终端设置
set -g default-terminal "tmux-256color"
set-option -sa terminal-features ",xterm*:RGB"
# 窗口索引从 1 开始
set -g base-index 1
setw -g pane-base-index 1
# ====================
# 状态栏
# ====================
set -g status-height 2
set -g status-right "%Y-%m-%d %H:%M"
set -g status-left "[#S] "
setw -g window-status-current-style "underscore"
# ====================
# 快捷键
# ====================
# 重载配置
bind r source-file ~/.tmux.conf \; display "Config reloaded!"
# Vim 风格窗格切换
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R
# ====================
# 复制模式
# ====================
setw -g mode-keys vi
# ====================
# 插件(需要安装 TPM)
# ====================
# set -g @plugin 'tmux-plugins/tpm'
# set -g @plugin 'tmux-plugins/tmux-resurrect'
# 按 前缀 + I 安装插件
🎯 最佳实践
- 命名会话:为每个会话起有意义的名字,方便管理
- 合理分割:不要分割太多窗格,保持界面清晰
- 定期清理:删除不用的会话,释放资源
- 备份配置:将
.tmux.conf纳入版本控制 - 学习快捷键:肌肉记忆能大幅提升效率
📚 扩展资源
- 官方文档:
man tmux或tmux list-commands - GitHub 仓库:tmux/tmux
- 邮件列表:tmux-users
- 插件集合:tmux-plugins/list
💬 结语
tmux 是提升终端工作效率的神器。刚开始可能需要记忆一些快捷键,但一旦形成肌肉记忆,你的终端操作效率会有质的飞跃。无论是开发、运维还是日常使用,tmux 都是值得投资的工具。
你最喜欢 tmux 的哪个功能?欢迎在评论区分享你的使用心得!
本文基于 tmux 官方文档和示例配置编写,适用于 tmux 3.x 版本。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。







