tmux 使用指南

技术 · 2026-09-24

核心用途:让程序在 SSH 断开后继续运行。tmux 会话由服务器托管,与本地电脑和 SSH 连接完全解耦——断网、合上笔记本、直接关掉终端窗口,任务都不受影响。

一、会话管理(最常用)

命令作用
tmux new -s 名字新建一个命名会话
tmux ls列出所有会话
tmux attach -t 名字接入指定会话(回到现场)
tmux attach接入最近使用的会话
tmux kill-session -t 名字关闭指定会话
tmux kill-server关闭所有会话

离开会话的两种方式:

操作效果
按 Ctrl+B 再按 D(detach)正常退出,会话和里面的程序继续在后台跑
直接断开 SSH / 关终端效果同上,无需任何操作

第二天回来:

tmux attach -t overnight   # 接回会话,一切原样

二、快捷键速查

所有快捷键都要先按前缀键 Ctrl+B,松开后再按后续键。

会话

按键作用
Ctrl+B D分离(detach),回到终端但保留会话
Ctrl+B S交互式列出并切换会话
Ctrl+B $重命名当前会话

窗口(一个会话里的多个"标签页")

按键作用
Ctrl+B C新建窗口
Ctrl+B 数字切换到第 N 个窗口
Ctrl+B N / P下一个 / 上一个窗口
Ctrl+B ,重命名当前窗口
Ctrl+B &关闭当前窗口

面板(一个窗口内分屏)

按键作用
Ctrl+B %左右分屏
Ctrl+B "上下分屏
Ctrl+B 方向键在面板间移动光标
Ctrl+B X关闭当前面板(需确认按 Y)
Ctrl+B Z当前面板全屏 / 恢复(适合看长日志)
Ctrl+B 空格切换面板布局

三、查看历史输出(滚动)

终端里鼠标滚轮默认不能回看 tmux 的历史输出,需要进入复制模式:

  1. 按 Ctrl+B [ 进入复制模式(左上角出现 [0/xxx] 字样)
  2. 用 ↑ ↓ 或 PgUp PgDn 翻页查看历史
  3. 按 Q 退出复制模式

一劳永逸的办法:开启鼠标支持(见第五节配置),之后可直接用滚轮翻页、点击切换面板。

四、配合 Claude Code 跑夜间任务

标准流程:

tmux new -s overnight          # 1. 新建会话
claude                          # 2. 在 tmux 里启动 Claude Code
# 3. 一次性把任务交代清楚,然后 Ctrl+B D 离开(或直接断开 SSH)
# 4. 睡觉 💤
tmux attach -t overnight       # 5. 第二天回来验收

夜间无人值守的三个要点:

  1. 权限确认会卡住任务——启动时用 claude --dangerously-skip-permissions 全程放行(适合干净环境),或提前用 /permissions 配置好允许列表;文件编辑可按 Shift+Tab 切到 auto-accept
  2. 任务描述一次写全——目标、约束、验收标准说清楚,并注明「拿不准的地方记录下来继续推进,不要停下来等待」
  3. 要求写进度日志——比如「每完成一步追加到 progress.md」,早上看一眼就知道夜里发生了什么

五、推荐配置(可选)

写入 ~/.tmux.conf(没有就新建),对现有会话执行 Ctrl+B : 输入 source-file ~/.tmux.conf 生效:

# 开启鼠标:滚轮翻历史、点击切面板、拖拽调分屏
set -g mouse on

# 历史回滚行数调大(默认 2000 太少)
set -g history-limit 50000

# 从第 1 个窗口开始编号(默认从 0)
set -g base-index 1
setw -g pane-base-index 1

# 256 色支持
set -g default-terminal "tmux-256color"

六、常见问题

Q:怎么判断我现在是不是在 tmux 里?

终端底部有一条绿色状态栏就是;或者执行 echo $TMUX,有输出即在 tmux 中。

Q:attach 时报错 no session?

执行 tmux ls 看看有没有存活会话。服务器重启后 tmux 会话会全部丢失(tmux 不持久化,重启后需要重新开会话、重新跑任务)。

Q:会话里的任务到底还在跑吗?

tmux ls 能看到会话就还在。attach 回去直接看现场最直观。

Q:不小心把整个会话关了,任务还能找回吗?

不能。kill-session / exit 会终止里面的所有程序。离开时请用 detach(Ctrl+B D)而不是关掉窗口里的 shell。

沪ICP备2026050609号-1 | 沪公网安备31011202023653号