作者: akuandev

  • Tmux-一个相见恨晚的终端工具

    Tmux-一个相见恨晚的终端工具

    凌晨两点,SSH连上服务器。Claude Code正在重构一个2000行的模块,进度条走到87%。

    网络抖了一下。

    终端关了。SSH断了。进程跟着一起消失。

    两个小时,从零开始。

    这种事经历过一次,就会去找解决方案。解决方案叫 tmux

    一个19年前的工具,为什么2026年还在用

    tmux 的全称是 Terminal Multiplexer,终端复用器。Nicholas Marriott 在2007年写了第一版,用 C 语言,ISC 开源协议。到2026年,GitHub 上 46,000 颗星,最新版本 3.6b,支持滚动条和 Mode 2031 主题。

    19年,一个终端工具能活这么久,靠的不是花哨功能,是一个朴素的设计:客户端-服务器架构

    普通终端里,你的 shell 进程直接挂在 SSH 连接上。SSH 断了,shell 死了,里面跑的所有东西一起完蛋。tmux 在中间加了一层——一个常驻后台的服务器进程,管理着所有会话。你的终端只是一个”客户端”,连上去看画面,断开了服务器照样跑。

    这个架构意味着三件事:

    会话不死。SSH 断线、笔记本合盖、WiFi 切换,tmux 里的进程都不受影响。跑3小时的模型训练,放心合上电脑走人,第二天打开还是那个进度条。

    多人共享。两个客户端可以 attach 到同一个会话。你在这头改代码,同事在那头看输出。debug 的时候不用截屏、不用描述”你看那个第三行”,直接共享同一个画面。

    完整 CLI API。每一个 tmux 操作都能通过命令行调用。tmux new-session -d -s dev 创建后台会话,tmux send-keys -t dev:0 'ls' Enter 往窗口里发命令。这意味着 tmux 可以被脚本化、自动化。

    5分钟能学会

    安装一行命令的事:

    # macOS
    brew install tmux
    
    # Ubuntu/Debian
    sudo apt install tmux
    
    # CentOS/RHEL
    sudo yum install tmux

    装完输入 tmux,进新会话。底部绿色状态栏告诉你当前在哪个窗口。

    tmux 的概念层级很简单:Session 包含 Window,Window 包含 Pane。Session 是一组工作区的集合,Window 类似浏览器的标签页,Pane 是窗口里的分屏。

    日常就这几个操作。Ctrl+b 是前缀键,按完松开再按下一个:

    Ctrl+b d — 脱离会话。后台继续跑,安全退出 SSH。

    Ctrl+b c — 新建窗口。

    Ctrl+b 0~9 — 切到第几个窗口。数字键直接按。

    Ctrl+b % — 左右分屏。

    Ctrl+b " — 上下分屏。

    Ctrl+b o — 在分屏之间切换。

    tmux attach — 重新连上之前的会话。

    够了。日常开发就这些。

    配置:改一次就行

    ~/.tmux.conf 里扔几行,体验好很多:

    # 前缀键改成 Ctrl+a,按起来顺手
    unbind C-b
    set -g prefix C-a
    bind C-a send-prefix
    
    # 鼠标支持(点击切换窗口、拖拽分屏边界)
    set -g mouse on
    
    # 256色 + 真彩色
    set -g default-terminal "tmux-256color"
    set -as terminal-overrides ",*:Tc"
    
    # 窗口从1开始编号
    set -g base-index 1
    
    # 历史记录增加到5万行(默认2000太少)
    set -g history-limit 50000
    
    # Escape 延迟设为0(vim用户必备)
    set -sg escape-time 0
    
    # 状态栏美化
    set -g status-bg colour235
    set -g status-fg colour136

    改完 tmux source ~/.tmux.conf 重新加载。

    插件生态:14000颗星的管理器

    tmux 的插件管理器叫 TPM(Tmux Plugin Manager),GitHub 上 14,000 颗星。安装后在配置文件里声明插件,prefix + I 一键安装。

    几个必装的:

    tmux-resurrect(12,000 星)— 保存和恢复整个 tmux 环境。窗口布局、运行中的命令、工作目录,全部持久化到文件。服务器重启后一条命令恢复所有会话。

    tmux-continuum(3,800 星)— 配合 resurrect,每15分钟自动保存。配合起来的效果是:你的 tmux 环境永远不会丢失。

    tmux-yank(3,000 星)— 把 tmux 的复制操作接入系统剪贴板。macOS 用 pbcopy,Linux 用 xclip,配一次就不用管了。

    tmux-copycat(1,200 星)— 增强复制模式的搜索。在历史输出里用正则搜 URL、Git hash、IP 地址,比默认搜索好用很多。

    安装 TPM 只需要在 .tmux.conf 末尾加三行:

    set -g @plugin 'tmux-plugins/tpm'
    set -g @plugin 'tmux-plugins/tmux-resurrect'
    set -g @plugin 'tmux-plugins/tmux-continuum'
    run '~/.tmux/plugins/tpm/tpm'

    复制模式:很多人不知道的功能

    tmux 里可以往上翻看之前的输出,这个功能叫复制模式(Copy Mode)。

    Ctrl+b 然后 [ 进入。进去之后可以用方向键翻页,或者配置 vi 模式用 h/j/k/l 移动、/ 搜索、v 选择、y 复制。

    # 在 .tmux.conf 里启用 vi 模式
    setw -g mode-keys vi
    bind-key -T copy-mode-vi v send-keys -X begin-selection
    bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -sel clip'
    # macOS 用户把 xclip 换成 pbcopy

    history-limit 控制每个窗格的回滚行数,默认2000行。跑 AI Agent 的时候输出量很大,建议设到 50000。

    会话管理器:一条命令拉起整个开发环境

    手动创建窗口、分屏、启动命令,做几次就烦了。会话管理器把这个过程变成配置文件。

    tmuxinator(Ruby,16,000 星)是最成熟的选择。YAML 配置,支持 ERB 模板:

    # ~/.config/tmuxinator/ai-dev.yml
    name: ai-dev
    root: ~/projects/myproject
    windows:
      - coding:
          layout: main-vertical
          panes:
            - claude --model ultimate --yolo
            - git log --oneline -20
      - review:
          panes:
            - qodercli "review the last 3 commits"
      - monitor:
          panes:
            - htop
            - tail -f /var/log/app.log

    tmuxinator start ai-dev 一条命令拉起三个窗口,每个窗口自动执行预设命令。关掉电脑,第二天同一条命令恢复一切。

    smug(Go 语言)更轻量,单个二进制文件,不需要 Ruby 环境。配置格式类似,还兼做任务运行器。

    搭配 AI 工具才是正菜

    到这里还是常规操作。tmux 真正有意思的用法,是和 Claude Code、Qoder 这类 AI 编程工具搭配。

    2026年的 AI 编程有一个明显趋势:Agent 的运行时间越来越长。一个 Claude Code 的 agentic loop 可以跑 20-30 分钟,中间不断迭代文件修改、跑测试、修 bug、提交代码。这种长时间任务直接扔 SSH 终端里跑,网络一抖全废。

    tmux 解决了这个问题。而且解决得很彻底——2026年2月,Claude Code 官方新增了 --tmux 参数,启动时自动创建 tmux 会话。这意味着 tmux 已经不是”可选搭配”,而是 AI 编程工具生态的一部分。

    场景一:fire-and-forget 模式

    在远程服务器上启动 Claude Code,detach,关掉电脑。几个小时后 SSH 回来,结果已经在那了。

    tmux new -s ai-work
    claude "refactor the auth module to use JWT"
    # Ctrl+b d 脱离
    # 几个小时后...
    tmux attach -t ai-work

    “tmux keeps my session alive even when I drop signal. I start a task on my laptop, fly to another city, open my phone, SSH in, and the agent is still working.”

    场景二:多 Agent 并行

    这是2026年最火的 tmux 用法。一个会话里开多个窗口,每个跑一个独立的 AI Agent,各自处理不同任务。

    GitHub 上有个项目叫 claude-squad(5,100 星),专门做这件事——用 tmux 管理多个 Claude Code 实例,每个实例在独立的 git worktree 里工作,互不干扰。

    还有 amux(Agent Multiplexer),更轻量,专注于”人+多个 Agent 协作”的场景。

    tmux new -s agents
    
    # 窗口0: Agent 1 做功能开发
    claude --worktree feat-1024-payments
    
    # Ctrl+b c → 窗口1: Agent 2 修 bug
    claude --worktree fix-987-auth-timeout
    
    # Ctrl+b c → 窗口2: Agent 3 做重构
    claude --worktree refactor-api-layer
    
    # Ctrl+b c → 窗口3: 自己看日志和测试结果
    watch -n 5 'go test ./... -count=1'

    “On a typical day, a dozen agents are working in parallel, each on a separate git worktree, each with its own tmux session.”

    一天同时跑十几个 Agent,每个在自己的 git worktree 和 tmux 会话里独立工作。

    场景三:tmux 状态栏监控 Agent 状态

    进阶玩法是把 AI Agent 的状态显示在 tmux 状态栏里。Claude Code 的 hooks 把状态写入文件,tmux 的 format string 读取并显示一个状态点——绿色在跑,黄色等输入,红色出错。一眼扫过去就知道哪个 Agent 需要关注。

    几个坑

    复制粘贴不通。tmux 有自己的剪贴板,和系统不互通。装 tmux-yank 插件一步解决。

    颜色不对。配置加 set -g default-terminal "tmux-256color"set -as terminal-overrides ",*:Tc"

    历史输出翻不到。Ctrl+b 然后 [ 进入复制模式,方向键翻页,q 退出。配合 history-limit 50000 使用。

    会话太多分不清。tmux ls 看所有会话和活跃时间。养成取名的习惯,tmux new -s project-alpha,别用默认的0、1、2。

    长时间会话变慢。每个窗格的回滚缓冲区占内存。10个窗格各5万行,内存消耗不小。不活跃的窗格用 tmux clear-history 清理。

    竞品对比:为什么还是 tmux

    2026年终端复用器有三个选择:tmux、GNU Screen、Zellij。

    Screen 最老(1987年),几乎预装在每台 Unix 服务器上。但功能停滞多年——没有插件系统,状态栏简陋,不支持鼠标。适合应急,不适合日常。

    Zellij(Rust 语言,33,000 星)是新生代。默认体验好,底部有帮助栏显示当前模式可用的快捷键。支持浮动窗格、WASM 插件系统。但生态小,服务器上需要手动安装,SSH 远程场景不如 tmux 方便。

    tmux 的优势在于生态和普及度。46,000 星,100+ 插件,几乎所有 Linux 发行版的默认仓库里都有。AI 编程工具的集成也最先支持 tmux——Claude Code 的 --tmux 参数、claude-squad、amux,都是围绕 tmux 构建的。

    一个工具活了19年还在被大量使用,靠的不是技术先进性,是生态壁垒和可靠性。

    写在最后

    SSH 会断,网络会抖,笔记本会没电。tmux 里的进程不会停。

    2026年,AI 编程工具让终端重新变得重要。以前终端只是跑命令的地方,现在是 AI Agent 的工作间。Agent 在里面写代码、跑测试、提交 PR,一跑就是几十分钟。你需要一个稳定的环境来承载它们。

    tmux 解决的就是这个问题。一个19年前的工具,在 AI 时代找到了新的位置。

    往期推荐

    MCP、A2A、ACP:Agent协议三国杀

    如果你也在关注AI行业的格局变化,欢迎关注我,持续追踪AI领域的深度分析。

  • 世界,您好!

    欢迎使用 WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!