tmux + Codex 终端会话管理实战
tmux + Codex 终端会话管理实战
Codex 很适合在终端里处理长任务,但如果直接跑在普通 shell 里,
终端关闭、SSH 断开、临时切换任务都会影响体验。tmux 的价值就是把
终端会话托管起来:任务可以留在后台,回来以后继续接着看。
一、为什么 Codex 适合搭配 tmux
使用 Codex 时,经常会遇到这些场景:
- 让 Codex 分析一个较大的仓库,需要等一段时间。
- 跑构建、测试、日志排查时,需要同时看多个终端。
- 通过 SSH 连服务器,网络一断,普通终端里的任务就中断了。
- 临时去处理别的事情,回来后希望会话还在原来的状态。
tmux 正好解决这些问题。
一句话概括:tmux 是终端里的会话管理器。
它提供的核心能力包括:
- 后台会话:命令继续留在服务器或本机终端环境里。
- 断开恢复:退出终端后,还可以重新 attach 回去。
- 多窗口:一个会话里管理多组任务。
- 多分屏:同一个屏幕里同时放 Codex、测试、日志、Git 命令。
对 Codex 这类终端 AI 工具来说,tmux 最大的意义不是炫技,而是稳定。
二、安装与验证
Ubuntu / Debian 系统可以直接安装:
sudo apt install tmux如果遇到软件源连接失败,尤其是阿里云源、公司内网源或临时网络问题,
可以先更新索引:
sudo apt update
sudo apt install tmux如果仍然失败,再检查当前源是否可用,必要时切换到更稳定的软件源。
安装完成后查看版本:
tmux -V能看到类似下面的输出,就说明安装成功:
tmux 3.4三、Codex 推荐启动方式
日常最推荐的方式是:一个项目一个 tmux 会话。
进入项目目录后创建名为 codex 的会话:
tmux new -s codex进入 tmux 后再启动 Codex:
codex需要临时离开时,不要直接关闭终端,而是 detach:
Ctrl+b 松开后按 d注意这里不是一直按住 Ctrl+b+d,而是先按 Ctrl+b,松开,再按 d。
回来时重新连接:
tmux attach -t codex查看当前有哪些会话:
tmux ls任务结束后关闭会话:
tmux kill-session -t codex这一套命令已经能覆盖大部分 Codex 使用场景。
四、常用快捷键
tmux 默认前缀键是 Ctrl+b。多数操作都遵循同一个节奏:
先按 Ctrl+b,松开,再按目标键常用快捷键如下:
| 操作 | 快捷键 |
|---|---|
| 新建窗口 | Ctrl+b c |
| 左右分屏 | Ctrl+b % |
| 上下分屏 | Ctrl+b " |
| 切换分屏 | Ctrl+b 方向键 |
| 轮流切换窗格 | Ctrl+b o |
| 关闭当前分屏 | Ctrl+b x |
| 离开当前会话 | Ctrl+b d |
其中有两个键容易误解:
%实际是Shift+5。"实际是Shift+'。
所以左右分屏不是按一个独立的百分号键,而是在 Ctrl+b 之后按Shift+5。
五、Codex 里的翻页和滚动问题
Codex TUI 会接管终端里的上下键、滚轮和部分显示区域,所以在普通终端里
习惯的滚动方式,进入 tmux + Codex 后可能会变得不顺手。
如果要查看 tmux 的历史输出,可以进入复制模式:
Ctrl+b [进入后可以使用:
PageUp/PageDown翻页。- 方向键上下移动。
q退出复制模式。
如果希望 Codex 的输出尽量保留在终端滚动历史里,可以考虑这样启动:
codex --no-alt-screen--no-alt-screen 的作用是避免使用独立的 alternate screen,更适合需要
保留历史输出、经常回看上下文的终端工作流。
我的建议是:
- 长任务、远程 SSH、需要恢复会话时,用
tmux + codex。 - 需要频繁回看大量历史输出时,优先尝试
codex --no-alt-screen。 - 如果已经在 tmux 里,掌握
Ctrl+b [是最关键的滚动技巧。
六、实际踩坑总结
1. Ctrl+b d 没反应
大多数时候是按法不对。
正确节奏是:
按 Ctrl+b
松开
再按 dtmux 的很多快捷键都不是三键同时按,而是“前缀键 + 指令键”。
2. 分屏快捷键按不出来
左右分屏:
Ctrl+b %这里的 % 是 Shift+5。
上下分屏:
Ctrl+b "这里的 " 是 Shift+'。
3. 后台会话太多
先查看:
tmux ls再按会话名清理:
tmux kill-session -t 会话名例如:
tmux kill-session -t codex4. 快捷键只有在 tmux 里才生效
tmux ls 能看到后台会话,不代表当前终端已经在 tmux 里。
判断方式很简单:如果底部有 tmux 状态栏,通常说明你正在 tmux 会话里;
如果没有状态栏,先执行:
tmux attach -t codex进入会话后再使用 Ctrl+b 系列快捷键。
七、推荐日常工作流
我的日常使用方式可以压缩成三条:
- 一个项目一个 tmux 会话。
- 左边跑 Codex,右边跑测试、日志、Git 命令。
- 长任务全部放进 tmux,避免终端关闭或 SSH 断开导致中断。
一个典型启动流程如下:
cd /path/to/project
tmux new -s codex
codex --no-alt-screen进入后可以左右分屏:
Ctrl+b %左侧保持 Codex 对话,右侧执行:
git status
npm run docs:build
tail -f app.log这样终端不再只是一个输入命令的地方,而是一个可恢复、可拆分、
可长期运行的工作台。
八、总结
tmux 本身并不复杂,真正需要记住的只有几件事:
tmux new -s codex:创建会话。Ctrl+b d:离开但不关闭。tmux attach -t codex:回到会话。Ctrl+b %/Ctrl+b ":左右或上下分屏。Ctrl+b [:查看历史输出。
如果你经常在终端里使用 Codex,尤其是在远程服务器或长任务场景下,
tmux 基本属于必备工具。它不改变 Codex 的能力,但能明显提升会话稳定性、
任务恢复能力和多终端协作效率。
