tmux 是终端复用器,本技能介绍其会话、窗口、窗格三层结构的管理与脚本化用法。会话为顶层,可在 SSH 断连后继续存活;窗口相当于会话内的标签页;窗格是窗口内的分屏。既可交互操作(默认前缀键 Ctrl-b),也可通过 tmux <command> 从外部非交互控制。
主要能力与用法:会话管理包括 tmux new-session -s work 创建命名会话、-d 后台创建、tmux attach -t work 接入、tmux ls 列出、tmux kill-session 结束,以及用 tmux has-session -t work 2>/dev/null 在脚本中判断会话是否存在。窗口管理包括 tmux new-window、select-window、rename-window、kill-window。窗格管理包括 tmux split-window -h 或 -v 分屏、resize-pane、swap-pane、kill-pane,前缀键组合如 Prefix + % 与 Prefix + " 也可分屏。
非交互自动化是核心:通过 tmux send-keys -t work:1.0 "ls -la" Enter 向指定窗格发送命令,用 tmux capture-pane -t work:1.0 -p 抓取窗格输出,可配合脚本创建完整多窗格工作区。配置文件 ~/.tmux.conf 可改前缀键、启用鼠标、调整滚动缓冲、设置 vi 键位与自定义分屏绑定。复制模式用 Prefix + [ 进入,粘贴用 Prefix + ]。远程场景常用 ssh user@host -t "tmux attach -t work || tmux new-session -s work",并支持只读接入 -r 实现共享会话。
限制与注意:send-keys 会在目标窗格直接执行命令且无确认,脚本中需核对 -t 目标;共享会话建议用只读接入;避免在窗格标题或环境变量中存放机密。常见问题包括脚本报 “no server running”(可先 tmux start-server 或创建后台会话)、后台会话窗格尺寸为 0x0(应显式传 -x 与 -y)、send-keys 未执行命令(需补 Enter)。本技能输出不能替代环境相关验证、测试或专家复核;若缺少必要输入、权限、安全边界或成功标准,应停下询问。相关技能包括 @bash-pro、@bash-linux、@ssh。