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 安装插件

🎯 最佳实践

  1. 命名会话:为每个会话起有意义的名字,方便管理
  2. 合理分割:不要分割太多窗格,保持界面清晰
  3. 定期清理:删除不用的会话,释放资源
  4. 备份配置:将 .tmux.conf 纳入版本控制
  5. 学习快捷键:肌肉记忆能大幅提升效率

📚 扩展资源


💬 结语

tmux 是提升终端工作效率的神器。刚开始可能需要记忆一些快捷键,但一旦形成肌肉记忆,你的终端操作效率会有质的飞跃。无论是开发、运维还是日常使用,tmux 都是值得投资的工具。

你最喜欢 tmux 的哪个功能?欢迎在评论区分享你的使用心得!


本文基于 tmux 官方文档和示例配置编写,适用于 tmux 3.x 版本。

发表回复

后才能评论