掌握终端复用神器:Tmux完全指北

Tmux多窗格操作示意图

初识Tmux:终端管理利器

Tmux(Terminal Multiplexer)是终端工作者的瑞士军刀,它能让你:

  • ✅ 保持会话持久化(不怕断网)
  • ✅ 高效管理多个终端任务
  • ✅ 自由分割屏幕工作区
  • ✅ 跨平台一致体验(Win/macOS/Linux)

一、快速安装指南

二、核心概念图解

1. 会话-窗口-窗格关系

2. 会话管理基础指令

创建新会话

1
2
tmux new -s 会话名称  # 创建一个命名会话
tmux new # 创建匿名会话

查看会话列表

1
2
3
4
tmux ls               # 显示所有会话
# 显示示例:
# dev: 1 windows (created Tue Oct 3 14:00:00 2023)
# work: 2 windows (created Tue Oct 3 09:00:00 2023)

重新连接会话

1
2
tmux attach -t 会话名称  # 连接指定会话
tmux a -t 会话名称 # 简写形式

退出会话(不断开程序)

1
2
1. 按下前缀键 Ctrl+b
2. 再按 d 键

3. 窗口操作详细说明

窗口操作指令表

操作 快捷键 说明
新建窗口 Ctrl+b c 创建后自动切换到新窗口
关闭当前窗口 Ctrl+b & 需要确认(y/n)
重命名当前窗口 Ctrl+b , 方便识别窗口用途
窗口列表 Ctrl+b w 可视化选择窗口
切换上一个窗口 Ctrl+b p p=previous
切换下一个窗口 Ctrl+b n n=next
按编号切换窗口 Ctrl+b 数字键 直接跳转到指定编号窗口

4. 窗格操作完整指南

窗格分割操作

1
2
Ctrl+b "   # 水平分割(上下分屏)
Ctrl+b % # 垂直分割(左右分屏)

窗格切换方法

1
2
3
Ctrl+b 方向键  # 按方向切换到相邻窗格
Ctrl+b ; # 切换到上一个使用的窗格
Ctrl+b o # 依次切换窗格

窗格调整大小

1
2
Ctrl+b Alt+方向键  # 微调窗格大小(按住Alt持续调整)
Ctrl+b Ctrl+方向键 # 快速调整(部分终端需要配置)

窗格布局切换

1
2
Ctrl+b Space      # 循环切换预设布局
Ctrl+b ! # 将当前窗格转为独立窗口

三、实战操作演示

1. 典型开发环境布局

2. 服务器管理示例

1
2
3
4
5
# 创建管理会话
tmux new -s server_monitor

# 分割窗格(实际操作截图示意)
[图示:左侧top命令,右侧journalctl -f]

四、跨平台配置技巧

通用配置(~/.tmux.conf)

1
2
3
4
5
6
7
8
9
10
# 启用鼠标支持(所有平台通用)
set -g mouse on

# 设置更友好的前缀键
set -g prefix C-a
unbind C-b

# 状态栏美化
set -g status-bg colour234
set -g status-interval 1

平台特殊配置

Windows/WSL特别提示

  1. 需要先启用WSL2
  2. 建议使用Windows Terminal
  3. 复制粘贴需用右键菜单

五、高效工作流示例

1. 一键创建开发环境

1
2
3
4
5
6
#!/bin/bash
tmux new -s dev -d
tmux send-keys -t dev:1 "vim" C-m
tmux split-window -h -t dev
tmux send-keys -t dev:1.1 "npm run dev" C-m
tmux attach -t dev

2. 会话保存与恢复

六、常见问题排雷

Q:为什么我的快捷键不生效?
A:检查是否与其他软件冲突,特别是:

  • Windows:WSL终端设置
  • macOS:Mission Control快捷键
  • Linux:桌面环境快捷键

Q:如何在不同窗格间同步输入?

1
2
# 进入同步模式(适合教学演示)
Ctrl+b :setw synchronize-panes

七、学习路径推荐

资源推荐

  1. 官方文档
  2. 交互式学习网站
  3. 推荐书籍:《Tmux 2》 by Brian P. Hogan

小贴士:建议每天练习3个快捷键,两周后你会发现自己已经离不开Tmux了!


版本说明

  • 适用版本:Tmux 3.0+
  • 更新日期:2025年04月
  • 测试环境:Ubuntu 22.04/macOS Sequoia/WSL2