tmux 新手全指南:会话、窗口、分屏、复制、恢复一次搞定
tmux 新手全指南:会话、窗口、分屏、复制、恢复一次搞定
你读完这篇,会从“只会开终端”变成“能稳定管理一堆后台任务”的人。tmux 的本质就一句话:让你的终端永不下班。最大的坑只有一个:关窗口 != 退出会话,搞清楚“detach/attach”你就赢了一半。
这篇是完整教程,带你从 0 建起可长期常驻的终端工作台,包含配置、恢复、同步输入、排错,以及大量图示。
0. 准备:安装 tmux
目的: 在你的系统上安装 tmux,并确认版本。
操作:
macOS:
brew install tmux
Ubuntu/Debian:
sudo apt-get update && sudo apt-get install -y tmux
CentOS/Rocky:
sudo yum install -y tmux
Arch:
sudo pacman -S tmux
Windows(推荐 WSL2):
wsl --install
进入 WSL 后再用 apt 安装。
你应该看到:
tmux -V
输出类似 tmux 3.x。
失败怎么办:
command not found:确认包管理器是否存在,或在 WSL 内执行。
无权限:联系管理员或用有 sudo 的账户。
1. 先记住三件事:会话、窗口、窗格
目的: 知道 tmux 的三层结构,避免把“窗口”和“会话”混成一团。
Session(会话):最大的容器,一般一个项目一个会话。
Window(窗口):会话里的多个“标签页”。
Pane(窗格):窗口里的分屏区域。
2. 启动你的第一个会话
目的: 创建一个会话,把任务放进 tmux。
操作:
tmux new -s work
你应该看到:
进入一个新的终端界面
底部出现状态栏(默认绿色)
失败怎么办:
提示已存在:换一个名字,或用 tmux attach -t work 直接进入。
3. 学会“detach / attach”这两个动作
目的: 让会话在后台继续跑,你断网/关机也不影响。
操作:
退出但不中断:Ctrl+b 然后 d
查看会话列表:
tmux ls
重新进入:
tmux attach -t work
你应该看到:
detach 后提示:[detached (from session work)]
tmux ls 有一行 work: 1 windows (created ...)
失败怎么办:
no sessions:说明当前没有会话,重新 tmux new -s work。
4. 窗口操作:像浏览器标签一样切换
目的: 把不同任务拆成不同窗口。
操作:
新建窗口:C-b c
列出窗口:C-b w
切换窗口:C-b n / C-b p
重命名窗口:C-b ,
你也可以用命令:
tmux new-window -n editor
你应该看到:
状态栏里窗口列表发生变化
失败怎么办:
快捷键没反应:先按 C-b ? 查看当前键位,再试一次。
5. 窗格分屏:把一个窗口切成多个视角
目的: 一边跑服务,一边看日志/编辑。
操作:
垂直分屏:C-b %
水平分屏:C-b "
在窗格间切换:C-b o 或 C-b 方向键
关闭当前窗格:在窗格里执行 exit 或 C-d
你也可以命令方式分屏:
tmux split-window -h
你应该看到:
一个窗口被分成多个区域
光标只在一个窗格里活动
失败怎么办:
分屏后太小:在命令模式输入 C-b : resize-pane -L 10 之类进行调整。
6. 前缀键与快捷键的基本逻辑
目的: 理解为什么要先按 C-b,避免“按了没反应”。
tmux 的控制命令都需要先按 前缀键。默认前缀是 C-b(Ctrl + b)。按下前缀后,tmux 等待下一个键,决定执行哪个命令。
你可以用下面命令查看当前前缀表:
tmux lsk -Tprefix -N
7. 复制模式与滚屏
目的: 在 tmux 里像终端一样向上翻历史并复制。
操作:
进入复制模式:C-b [
移动光标:方向键 / PageUp / PageDown
开始选择:Space
复制并退出:Enter
粘贴:C-b ]
你应该看到:
进入复制模式后,光标可移动
选中区域高亮
失败怎么办:
选不中:你的键位可能是 vi 模式,执行 tmux list-keys -Tcopy-mode 查看当前绑定。
8. 鼠标与滚轮支持(推荐开启)
目的: 用鼠标滚轮滚屏、点击切换窗格。
操作: 在 ~/.tmux.conf 加一行:
set -g mouse on
然后重载配置:
tmux source-file ~/.tmux.conf
你应该看到:
鼠标滚轮可以滚历史
点击窗格即可切换
失败怎么办:
仍旧无效:确认你在 tmux 里([ -n "$TMUX" ] && echo inside tmux)。
9. 会话管理:用命令精准控制
目的: 管理多个会话,快速切换。
操作:
tmux ls
tmux attach -t work
tmux rename-session -t work ops
也可以用“存在即进入,不存在就创建”:
tmux new -As work
你应该看到:
tmux ls 显示所有会话
重命名后列表更新
失败怎么办:
名字冲突:先 tmux ls 确认名称。
10. 同步输入:一条命令发给所有窗格
目的: 适合同时执行多台机器或多进程命令。
操作:
开启同步:C-b : 然后输入 setw -g synchronize-panes on
关闭同步:C-b : 然后输入 setw -g synchronize-panes off
你应该看到:
输入的命令在多个窗格同时出现
失败怎么办:
没反应:确认当前窗口有多个窗格。
11. 配置文件:让 tmux 更顺手
目的: 固化你的常用习惯。
操作: 新建 ~/.tmux.conf,写入下面内容:
# 允许鼠标
set -g mouse on
# 更大的历史滚动
set -g history-limit 100000
# 把前缀从 C-b 改成 C-a(可选)
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# 复制模式用 vi 键位(可选)
setw -g mode-keys vi
# 快速重载配置
bind r source-file ~/.tmux.conf \; display-message "tmux reloaded"
重载配置:
tmux source-file ~/.tmux.conf
你应该看到:
状态栏弹出 “tmux reloaded”
失败怎么办:
没提示:手动执行 tmux show -g history-limit 看配置是否生效。
12. 进阶:多端同时连接同一会话
目的: 让两台设备同时看同一 session(适合远程协作或手机备份)。
操作: 在另一台机器上执行:
tmux attach -t work
你应该看到:
两个终端同步显示
在一个端输入,另一个端实时更新
失败怎么办:
连接后把别人踢下线:用 tmux attach -d -t work,确保你是主动接管。
13. 进阶:会话恢复(重启机器也能回来)
目的: 机器重启后恢复之前的 tmux 布局。
操作: 使用 TPM + tmux-resurrect/continuum。
安装 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'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
在 tmux 内按 C-b I 安装插件。
你应该看到:
底部出现安装提示
重启后会话可恢复(需手动或自动)
失败怎么办:
插件没装上:确认 ~/.tmux/plugins/tpm 目录存在。
14. 常用快捷键速查(够你一周内上手)
场景快捷键新建会话tmux new -s name退出但不中断C-b d新建窗口C-b c切换窗口C-b n / C-b p分屏(垂直/水平)C-b % / C-b "切换窗格C-b o 或方向键复制模式C-b [粘贴C-b ]查看快捷键C-b ?
15. 排错清单(最常见的 6 个坑)
快捷键没反应:确认先按 C-b,再按目标键。
复制模式不好用:检查是否启用了 mode-keys vi。
鼠标滚轮无效:确认 set -g mouse on 并重载。
分屏太小:用 resize-pane 调整,或把窗口拆成不同 window。
会话消失:确认是否误用了 kill-session 或 kill-server。
WSL 无法滚动:更新 Windows Terminal/WSL,或开启 mouse。
如果你只记住一句话:tmux 是“会话常驻器”。会话一旦建立,你的工作就不再依赖窗口是否开着。把它变成你的默认终端习惯,你就会自然进入长期高产的状态。