使用 tmux 实现终端多路复用与远程工作流自动化
解决远程开发中 SSH 断连导致任务中断的痛点,通过 tmux 实现会话持久化,并利用其脚本化能力一键构建包含编辑器、日志和 Shell 的多窗格开发环境。
为什么需要这个技能
在远程服务器上工作时,网络波动导致的 SSH 断连往往会导致正在运行的进程(如模型训练、大型编译)直接崩溃。
tmux 作为终端复用器,允许会话在后台持续运行。即使你关闭了本地终端,服务器上的进程依然在运行。此外,它能将一个屏幕切割成多个窗格(Panes),让你无需在多个终端窗口间来回切换即可同时监控日志、编写代码和执行命令。最强大之处在于,tmux 的所有操作都可以通过命令行触发,这意味着你可以用脚本定义一套完整的“开发工作空间”布局。
适用场景
- 持久化远程会话:在远程服务器运行长时间任务,无需担心网络中断。
- 复杂布局管理:创建“左侧代码 + 右侧测试 + 下方日志”的固定分屏布局。
- 工作流自动化:编写 Bash 脚本,一键启动多个窗口并自动执行初始化命令。
- 协作编程:通过多人同时 attach 到同一个会话实现实时同步的远程协作。
核心工作流
1. 会话与窗格基础管理
tmux 采用 Session (会话) -> Window (窗口) -> Pane (窗格) 的三级结构。
- 创建并进入会话:
tmux new-session -s work - 分离会话(后台运行):按下
Ctrl-b然后按d - 重新连接会话:
tmux attach -t work - 水平/垂直分屏:在会话内使用
Prefix + %或Prefix + "
2. 非交互式自动化控制
利用 send-keys 命令,可以让 AI 或脚本在无需人为干预的情况下向特定窗格发送指令:
# 向名为 work 会话的第 1 个窗口的第 0 个窗格发送指令并回车
tmux send-keys -t work:1.0 "ls -la" Enter
3. 一键构建工作空间
最核心的自动化模式是编写一个启动脚本。通过组合 new-session、split-window 和 send-keys,可以实现如下流程:
- 检查会话是否已存在
创建后台会话 切分窗格 在各窗格启动特定程序(如 Vim, Docker logs) 最后 attach 进入。
下载和安装
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐