← 返回 Tony's Lab
jay@dev — tmux — 80×24

$ tmux 简单教程

终端复用器。断开 SSH 不怕掉线,一个窗口当十个用。
记住一个键就够了:Ctrl+b —— 后面所有操作都从它开始。

发布于 2026-10-08

01它是什么

SSH 连服务器时,网络一断,跑着的程序就跟着没了。tmux 把终端跑在一个常驻后台的进程里: 你断开、重连,甚至关掉电脑,里面的活儿照跑。

  • 远程跑长任务:断开连接,任务不停,回头 tmux attach 接着看。
  • 一个窗口切多屏:左边看日志、右边敲命令。
  • 临时开一堆终端,不怕把桌面塞满。

macOS: brew install tmux · Ubuntu/Debian: sudo apt install tmux · 已装可跳过。

02三个概念

session 会话最外层容器,后台常驻。一台机器可以有多个,比如 work、logs。
window 窗口会话里的一张“标签页”,占满整个屏幕。一个会话可有多个窗口。
pane 面板窗口里切出来的一块分屏,每个面板是独立终端。
层级关系:session ⊃ window ⊃ pane。日常最常用的其实只有前两层,面板是加分项。

03会话:最常用的四个动作

# 新建一个名为 work 的会话
tmux new -s work

# 看一眼有哪些会话在跑
tmux ls

# 从会话里“脱离”,它转后台继续跑(快捷键:Ctrl+b 然后 d)
# 重新接回来
tmux attach -t work      # 简写 tmux a -t work

# 彻底关掉某个会话(里面的程序也会停)
tmux kill-session -t work
核心心法:Ctrl+b 是“前缀键”,相当于 tmux 的领操员。 先按它,松开,再按下一个键,就是一条命令。例如 Ctrl+b 然后 d = 脱离会话。

04窗口:一个会话,多个标签页

Ctrl+b c新建窗口(create)
Ctrl+b n / p下一个 / 上一个窗口(next / previous)
Ctrl+b 0…9直接跳到第 N 个窗口
Ctrl+b ,给当前窗口改名(窗口多时很有用)
Ctrl+b w列出所有窗口,方向键选着跳
Ctrl+b &关闭当前窗口(会问 y/n)

05面板:窗口里切分屏

Ctrl+b %左右切一刀(竖分)
Ctrl+b "上下切一刀(横分)
Ctrl+b ← ↑ ↓ →在面板之间移动光标
Ctrl+b z当前面板全屏 / 还原(临时放大)
Ctrl+b 空格换个分屏布局
Ctrl+b x关闭当前面板(会问 y/n)
Ctrl+b } / {和相邻面板交换位置

06滚动与复制

tmux 里鼠标滚轮默认不管用,得进“复制模式”翻历史:

  • Ctrl+b [ 进入复制/滚动模式,用 ↑ ↓ PgUp PgDn 翻。
  • 按 q 或 Esc 退出,回到正常输入。
  • 想直接拖动选中、滚轮翻页?在配置文件里打开鼠标支持(见下一节)。

07配置文件:让 tmux 好用一个台阶

写进 ~/.tmux.conf,改完执行 tmux source-file ~/.tmux.conf 生效。

# 开鼠标:滚轮翻页、拖动选中、点击切面板
set -g mouse on

# 窗口编号从 1 开始(默认从 0,有点反直觉)
set -g base-index 1
setw -g pane-base-index 1

# 前缀键从 Ctrl+b 换成 Ctrl+a(少按一个键,tmux 老手常用)
# set -g prefix C-a
# unbind C-b
# bind C-a send-prefix

# 用 | 和 - 分屏,比 % 和 " 顺手
bind | split-window -h
bind - split-window -v

# 按 r 重载配置
bind r source-file ~/.tmux.conf \; display "已重载配置 ✓"
新手只加一句就够:set -g mouse on。滚轮和鼠标选择立刻可用,体验提升最大。

08一页速查表

命令(在 shell 里敲)

tmux new -s name
tmux ls
tmux a -t name
tmux kill-session -t name
tmux kill-server

最后一条:一键清掉所有会话。

快捷键(先按 Ctrl+b)

d   脱离会话
c   新窗口
n/p 下/上窗口
%   竖分屏
"   横分屏
z   面板全屏
[   滚动模式
?   查看全部快捷键
记不住?在 tmux 里按 Ctrl+b ?,它自己会把整张快捷键表列给你看。