tmux 终端复用器入门
tmux (Terminal Multiplexer) 是后端开发、运维和 Linux 爱好者的必备神器。简单来说,它能让你的终端拥有分屏、多标签页以及**后台挂起(防断线)**的能力。
想象一下:你在远程服务器上跑代码,突然网断了,或者你不小心关掉了终端窗口。如果没有 tmux,你的程序就挂了;有了 tmux,程序还在后台跑,你连回去还能接着刚才的地方继续。
0. 安装 tmux
Linux (Debian/Ubuntu)
apt install tmux
macOS
brew install tmux
1. 核心概念:套娃结构
理解这三个概念,你就懂了 tmux 的逻辑:
- Session (会话):最外层的容器。就像一个"工作区"。你可以为一个项目建一个 Session。
- Window (窗口):Session 里的"标签页"。就像浏览器的 Tab,全屏显示。
- Pane (窗格):Window 里的切分块。把一个屏幕切成几块,同时看日志、敲代码、监控资源。
2. 最重要的按键:前缀键 (Prefix)
Tmux 的所有快捷键都需要先按一个"前缀键"来唤醒。
默认是 Ctrl + b (同时按住 Ctrl 和 b,然后松开)。
- 下文中提到
Prefix时,指的就是按一下Ctrl + b。
3. 常用操作速查表
A. 会话管理 (在普通终端里敲命令)
| 目标 | 命令 | 说明 |
|---|---|---|
| 新建会话 | tmux | 新建一个无名会话 |
| 命名会话 | tmux new -s mywork | 新建叫 "mywork" 的会话 (推荐) |
| 列出会话 | tmux ls | 查看后台有哪些会话 |
| 进入会话 | tmux a -t mywork | 重新连回 (attach) 到 "mywork" |
| 杀掉会话 | tmux kill-session -t mywork | 彻底关闭某个会话 |
B. 窗格控制 (Pane) - 最常用的功能
先按 Prefix,松开后按下列键:
| 快捷键 | 功能 | 记忆法 |
|---|---|---|
% | 左右分屏 (垂直切分) | Shift + 5 |
" | 上下分屏 (水平切分) | Shift + ' |
| 方向键 | 在不同窗格间切换光标 | 上下左右 |
x | 关闭当前窗格 | 会提示确认 (y/n) |
z | 最大化/恢复当前窗格 | Zoom (临时全屏看日志很有用) |
C. 窗口控制 (Window)
先按 Prefix,松开后按下列键:
| 快捷键 | 功能 |
|---|---|
c | 创建新窗口 (Create) |
w | 列表选择窗口 (可视化菜单) |
n | 切换到下一个窗口 (Next) |
p | 切换到上一个窗口 (Previous) |
, | 重命名当前窗口 (方便记忆) |
D. 挂起与离开 (关键!)
Prefix+d:Detach (分离)。- 这会让你回到普通终端,但 tmux 里的所有程序都在后台继续跑,不会断开。这是 tmux 的灵魂功能。
4. 实战示例:模拟一次开发流程
假设你要在服务器上运行一个 Python 脚本,同时监控系统 CPU。
第一步:创建会话 在终端输入:
tmux new -s demo
(你现在进入了 tmux 界面)
第二步:分屏
- 按
Ctrl+b,松开,按%。屏幕变成了左右两半。 - 按
Ctrl+b,松开,按"。右半部分又切成了上下两半。
现在你的屏幕布局是:左边一大块,右边分上下。
第三步:运行任务
- 左边窗格:输入
vim main.py开始写代码。 - 按
Ctrl+b然后按右方向键,光标跳到右侧。 - 右上窗格:输入
htop监控 CPU。 - 按
Ctrl+b然后按下方向键。 - 右下窗格:输入
python main.py运行程序看输出。
第四步:下班挂起 你要下班了,但想让程序一直跑。
- 按
Ctrl+b,松开,按d。 - 界面显示
[detached],你回到了普通终端。 - 你可以安全地关闭 SSH 连接,程序依然在后台运行。
第五步:第二天恢复 第二天上班,连上服务器:
- 输入
tmux ls,看到demo: 1 windows...。 - 输入
tmux a -t demo。 - Boom! 昨天的三个分屏、运行的代码、光标位置,全部原封不动地回来了。
5. 新手必装配置 (开启鼠标支持)
默认的 tmux 不支持鼠标点击切换窗格,新手会很痛苦。建议开启鼠标支持。
- 在用户目录下新建/编辑配置文件:
nano ~/.tmux.conf - 在里面粘贴这一行:
set -g mouse on - 保存退出。然后重新加载配置(在终端执行):
tmux source-file ~/.tmux.conf
效果:现在你可以直接用鼠标点击来切换窗格,或者拖动分割线来调整大小了!