快速命令:一个按钮,四个步骤
每次部署都是同一套动作。cd /srv/app,sudo ./deploy.sh,等密码提示,输密码,然后等——真的等,别 Ctrl+C——直到脚本说它完了。四步,每次都是这个顺序,而第三步正是前两步存在的理由。
快速命令以前就是一行文本:点一下,把这一行发出去。现在它是一串步骤,每一步能做四件事之一:输入文本、按键、等终端打印出某段文字,或者停下来问你要一个值。这就足够把上面那次部署变成一个按钮,而且这个按钮还知道什么时候才可以继续。
一个快速命令由什么组成
| 字段 | 含义 |
|---|---|
| 名称 | 按钮上显示的字,最多 60 字符 |
| 步骤 | 从上到下依次执行的内容 |
| 标签 | 0 个或多个;一条命令可以同时出现在几个分组里 |
| 快捷键 | 可选,在当前终端里直接触发 |
面板本身不是新东西。终端底部的 Q 按钮把它作为悬浮框打开;图钉让它一直开着,箭头把它停靠到右侧面板,铅笔跳到设置 → 快速命令——完整列表在那里,可以新建、复制、删除、拖动排序、导入导出 JSON。在面板里右键一条快速命令,菜单是执行、在终端中运行…、编辑。
步骤列表下面有四个 + 按钮用来加步骤,每行左侧有拖动柄,右侧是"在上方插入""在下方插入""删除"。# 那一列就是执行顺序。
四种步骤
| 类型 | 发送什么 | 选项列 | 用在什么场景 |
|---|---|---|---|
| 命令 | 值里的文本,加不加 Enter 看你勾不勾 | Enter | 任何你会手打并回车的命令 |
| 按键 | 一个具名按键 | 重复 ×1–100 | Ctrl+C、Tab、方向键、F5 |
| 等待文本 | 什么都不发,只让流程暂停 | 超时秒数 | 必须等 shell 打印出某段文字才能走下一步 |
| 请求输入 | 你在弹框里输入的内容,加不加 Enter 看你勾不勾 | Enter | 密码、主机名、工单号 |
命令
原样发送,所以支持多行:一个命令步骤可以粘一整个 here-document。Windows 上换行按 \n\r 发出。下一步要接着同一行写、或者这段文本只是交互回答的一部分时,把 Enter 去掉。
{{time}}、{{date}}、{{clipboard}} 是在发送时展开的,不是保存时——毫秒时间戳、本地日期,以及那一刻剪贴板里的内容。
按键
值是按键名:Enter、Tab、Esc、Space、Backspace、Delete、Insert、四个方向键、Home、End、PageUp、PageDown、F1–F12,以及 Ctrl+A … Ctrl+Z。方向键和 Home/End 会跟随该终端的光标键模式,所以在 vi、less 里也对。
这一步是 Ctrl+C 不被搞错的关键。把 Ctrl+C 写进命令步骤,发出去的是这六个字符;写进按键步骤,才是真的中断。重复会把同一个键连发多次,翻 --More-- 这类分页就靠它。
等待文本
流程停在这一步,直到该终端打印出这段文字,然后继续。
- 匹配是纯文本、忽略大小写,不是正则。要正则请改用触发器。
- 匹配前会去掉颜色等转义序列,包括 ssh 把一整个转义序列拆成两个数据块发过来的情况。
- 只有上一步发送之后到达的输出才算,所以等待永远不会匹配到点击之前就已经在屏幕上的提示符。
- 一次匹配会消耗到匹配结尾为止的输出:连着两个等待步骤,需要两次独立的匹配,而不是一行里同时出现两段文字。
- 超时单位是秒,留空等于 10,
0表示一直等。超时后这次运行以等待超时 "…"结束,剩下的步骤不再发送。
请求输入
值是弹框里显示的问题。答案会在这一步直接输入到终端,跟你自己手打一样:不会存进快速命令,后面的步骤也拿不到它。隐藏(眼睛按钮)把它变成密码框,再点一次眼睛可以看清自己输了什么。
Enter 决定答案之后要不要回车。取消弹框会以"已取消"结束这次运行,这一步之后的步骤都不再发送。允许空答案——勾着 Enter 时就发一个纯回车。
同一条命令在多个终端里运行时,默认只弹一个框,对所有终端生效,并勾着将输入镜像到所有终端。去掉勾,每个终端各弹一个框,按顺序一个一个问。再勾回去,待回答的问题会重新合并成一个。
延迟在步骤之前,不是在之后
每一行都有一个毫秒级延迟,执行时机是该步骤之前。留空等于 100 ms,可以填 0。这是给慢 shell 准备的手柄:一大串 ls 之后,或者命令发出后提示符要等一会儿才出现的时候。
一次部署,四个步骤
把开头那套动作写成步骤:
| # | 类型 | 值 | 选项 | 为什么 |
|---|---|---|---|---|
| 1 | 命令 | cd /srv/app && sudo ./deploy.sh |
Enter | 启动脚本 |
| 2 | 等待文本 | password |
20 秒 | sudo 马上要问密码,别对着空气打字 |
| 3 | 请求输入 | sudo password |
隐藏、Enter | 密钥只问一次,不落盘 |
| 4 | 等待文本 | deployed |
120 秒 | 脚本自己的成功标志 |
点下去之后你会看到:
- 半秒后底部出现状态条:
deploy web 1/4。 - 命令出现在提示符那一行,跟你亲手打的一样。
[sudo] password for zxd:出现,状态条变成2/4,并写着等待文本 "password"——这一步匹配到了,流程继续。- 弹框打开:问题、所在终端标签名、一个密码框。你输入时状态条显示
3/4 请求输入。 - 点确定。脚本继续,打印
Pulling latest… building…,状态条在4/4、等待文本 "deployed"。 deployed 2 services in 41s出现,状态条消失,提示符又归你了。
关键不在于它替你打字——剪贴板也能做到。关键在第二步和第四步:这次运行不会和 shell 抢时间。它读输出流,输出说可以走了它才走。
运行
| 操作 | 结果 |
|---|---|
| 单击一条快速命令 | 在当前标签里运行 |
| 右键 → 在终端中运行… | 挑任意多个标签,同一套步骤在每个标签里各跑一遍 |
| 状态条 → 停止 | 停掉该标签里所有正在跑的快速命令 |
| 右键正在运行的标签 | 也会有停止快速命令 |
- 运行绑定在发起它的标签上。切标签不会跟过去,关掉标签就结束。
- 只有运行超过 500 ms 才显示状态条,所以瞬间跑完的命令不会闪一下。状态条上有名称、步骤进度
3/7、正在等待的文本或请求输入,同一标签里有多个运行时显示+N。 - 停止快速命令在设置 → 快捷键里,默认没有绑定。经常中断长流程就绑一个。
- 给快速命令本身设了快捷键,就能不打开面板、直接在当前终端触发。它的优先级高于内置快捷键,会盖掉用同一组键的内置项——快捷键编辑器在键已被占用时会提示。
录制:让步骤自己长出来
先做一遍,步骤就有了:
- 打开面板,点红点。悬浮框会收起,免得挡住终端。
- 在那个标签里正常操作。手打的文本、粘贴的文本、按键都会被记下来。
- 回车结束一个命令步骤。打几个字符再按 Tab,会存成"不带回车的命令步骤 + 一个按键步骤"。连续按同一个键会合并成一个带重复次数的按键步骤。Backspace 编辑还没发出去的文本;已经发过命令之后再按 Backspace,就是一个按键步骤。
- 认不出来的转义序列会被丢弃,所以光标位置报告之类终端自己发的回复不会被回放。
- 保存会打开快速命令表单,步骤已填好,标签是
recorded。× 丢掉这次录制。
你输入的所有内容都会被记录,包括密码,而且会存进你的数据(开了同步还会同步走)。electerm 在开始录制时专门提醒过这一点。录制出来的步骤延迟都是 0。
标签、分组与搜索
- 一条快速命令可以有多个标签,每个标签分组里都会出现;没有标签的排在最后,归在默认里。
- 分组是面板上的开关,默认关闭。分组标题按名称排序,可以逐个折叠,折叠状态会被记住。
- 搜索框里有内容时所有分组都会展开,命中项不会被折叠藏起来。搜索同时匹配名称和每一步的内容。
- 标签下拉框只筛一个标签,可以和搜索框叠加使用。
- 按频率排序按运行次数排序。排序或分组时拖拽会失效,因为屏幕上的顺序不是存储顺序。
配好 AI 之后表单里还有一个 AI 标签页:描述你要什么,生成的名称、步骤和标签会写回手动表单,你确认后再保存。
老版本的快速命令照样能跑
在"步骤"出现之前保存的快速命令只有一条命令字符串。它照常工作:字符串变成一个命令步骤,原来的仅输入变成这一步不勾 Enter。打开就是普通的步骤行,不需要手动迁移。
等待文本还是触发器
两者都盯着输出,很容易混。但它们回答的是不同的问题。
| 等待文本(步骤) | 触发器 | |
|---|---|---|
| 属于 | 某一次快速命令运行 | 整个会话,一直生效 |
| 阻塞后续 | 会 | 不会 |
| 匹配方式 | 纯文本、忽略大小写 | 文本或正则表达式 |
| 动作 | 什么都不做,只控制流程 | 发送文本,或者只通知 |
| 重复 | 每个步骤一次 | 每次匹配、带冷却的每次匹配、或每会话一次 |
| 超时 | 有 | 没有 |
| 配置位置 | 命令内部 | 设置 → 触发器里的规则 |
流程是写死的、只在你要的时候跑一次,就用等待步骤;同一段文字每次出现都该有同样的反应、不需要任何人点任何东西,就用触发器。
值得记住的几个数字
- 状态条在 500 ms 后才出现;200 ms 内的两次点击算一次运行(调用做了防抖)。
- 默认步骤延迟 100 ms;默认等待超时 10 秒;
0表示一直等。 - 名称最长 60 字符;按键步骤最多重复 100 次。
- 值为空的等待步骤会被跳过,表单也不允许保存这样的步骤。
试试看
挑一条你重复最多的命令——部署、跳板、看日志——写成三到四个步骤,中间放一个等待。第一次它真的等密码提示出现、而不是对着空气打字的时候,你能感觉到区别。
