tmux终端控制技能Skill tmux-terminal

这个技能是关于使用tmux工具来控制交互式终端会话,用于测试TUI应用、自动化CLI工作流、捕获屏幕输出用于QA报告,以及管理长运行进程。关键词:tmux、终端控制、TUI应用、自动化测试、QA测试、CLI工作流。

测试 0 次安装 0 次浏览 更新于 3/14/2026

名称: tmux-terminal 描述: 通过tmux进行交互式终端控制,用于TUI应用、提示和长运行CLI工作流。 角色: [开发者, QA测试员]

tmux-terminal

概述

使用tmux驱动交互式终端会话,包括像ralph-tui这样的TUI工作流。tmux允许您发送按键、捕获屏幕输出,并在步骤间保持进程运行。

何时使用

  • 测试ralph-tui或任何交互式CLI提示
  • 管理长运行进程(web服务器、循环、监视模式)
  • 捕获实时终端输出用于QA报告
  • 与重绘屏幕的应用程序交互

前提条件

  • 安装tmux(macOS上预安装)

验证:

tmux -V

核心命令

创建分离会话:

tmux new-session -d -s <名称>

发送命令(附加Enter以执行):

tmux send-keys -t <名称> "<命令>" Enter

捕获屏幕输出:

tmux capture-pane -t <名称> -p

完成后终止会话:

tmux kill-session -t <名称>

特殊按键

使用send-keys与按键名称:

  • Enter
  • C-c (Ctrl-C)
  • C-d (Ctrl-D)
  • Tab
  • Escape
  • Up, Down, Left, Right

示例:

tmux send-keys -t <名称> Up
tmux send-keys -t <名称> C-c

TUI交互模式

启动ralph-tui

tmux new-session -d -s ralph-tui
tmux send-keys -t ralph-tui "cargo run -p ralph-tui" Enter

在TUI中导航

tmux send-keys -t ralph-tui Down
tmux send-keys -t ralph-tui Enter

捕获和解析屏幕

tmux capture-pane -t ralph-tui -p -S -200

使用-S -200在屏幕嘈杂时捕获最后200行。

长运行进程管理

  • 在tmux会话中启动服务器或循环以保持其活动。
  • 使用capture-pane确认健康状态(查找"listening"或"ready"文本)。
  • C-c然后kill-session干净地停止。

示例:

tmux new-session -d -s ralph-web
tmux send-keys -t ralph-web "cargo run -p ralph-cli -- web" Enter
tmux capture-pane -t ralph-web -p | rg -n "listening|ready"
tmux send-keys -t ralph-web C-c
tmux kill-session -t ralph-web

注意事项

  • 保持会话名称简短且唯一。
  • 始终清理会话以避免泄漏后台进程。
  • 如果输出看起来为空,稍等片刻并再次捕获。