← Electerm 博客

快速命令:一个按钮,四个步骤

2026-10-21
快速命令自动化终端ssh提效录制

快速命令:一个按钮,四个步骤

每次部署都是同一套动作。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 秒 脚本自己的成功标志

点下去之后你会看到:

  1. 半秒后底部出现状态条:deploy web 1/4。
  2. 命令出现在提示符那一行,跟你亲手打的一样。
  3. [sudo] password for zxd: 出现,状态条变成 2/4,并写着 等待文本 "password"——这一步匹配到了,流程继续。
  4. 弹框打开:问题、所在终端标签名、一个密码框。你输入时状态条显示 3/4 请求输入。
  5. 点确定。脚本继续,打印 Pulling latest… building…,状态条在 4/4、等待文本 "deployed"。
  6. deployed 2 services in 41s 出现,状态条消失,提示符又归你了。

关键不在于它替你打字——剪贴板也能做到。关键在第二步和第四步:这次运行不会和 shell 抢时间。它读输出流,输出说可以走了它才走。

运行

操作 结果
单击一条快速命令 在当前标签里运行
右键 → 在终端中运行… 挑任意多个标签,同一套步骤在每个标签里各跑一遍
状态条 → 停止 停掉该标签里所有正在跑的快速命令
右键正在运行的标签 也会有停止快速命令
  • 运行绑定在发起它的标签上。切标签不会跟过去,关掉标签就结束。
  • 只有运行超过 500 ms 才显示状态条,所以瞬间跑完的命令不会闪一下。状态条上有名称、步骤进度 3/7、正在等待的文本或请求输入,同一标签里有多个运行时显示 +N。
  • 停止快速命令在设置 → 快捷键里,默认没有绑定。经常中断长流程就绑一个。
  • 给快速命令本身设了快捷键,就能不打开面板、直接在当前终端触发。它的优先级高于内置快捷键,会盖掉用同一组键的内置项——快捷键编辑器在键已被占用时会提示。

录制:让步骤自己长出来

先做一遍,步骤就有了:

  1. 打开面板,点红点。悬浮框会收起,免得挡住终端。
  2. 在那个标签里正常操作。手打的文本、粘贴的文本、按键都会被记下来。
  3. 回车结束一个命令步骤。打几个字符再按 Tab,会存成"不带回车的命令步骤 + 一个按键步骤"。连续按同一个键会合并成一个带重复次数的按键步骤。Backspace 编辑还没发出去的文本;已经发过命令之后再按 Backspace,就是一个按键步骤。
  4. 认不出来的转义序列会被丢弃,所以光标位置报告之类终端自己发的回复不会被回放。
  5. 保存会打开快速命令表单,步骤已填好,标签是 recorded。× 丢掉这次录制。

你输入的所有内容都会被记录,包括密码,而且会存进你的数据(开了同步还会同步走)。electerm 在开始录制时专门提醒过这一点。录制出来的步骤延迟都是 0。

标签、分组与搜索

  • 一条快速命令可以有多个标签,每个标签分组里都会出现;没有标签的排在最后,归在默认里。
  • 分组是面板上的开关,默认关闭。分组标题按名称排序,可以逐个折叠,折叠状态会被记住。
  • 搜索框里有内容时所有分组都会展开,命中项不会被折叠藏起来。搜索同时匹配名称和每一步的内容。
  • 标签下拉框只筛一个标签,可以和搜索框叠加使用。
  • 按频率排序按运行次数排序。排序或分组时拖拽会失效,因为屏幕上的顺序不是存储顺序。

配好 AI 之后表单里还有一个 AI 标签页:描述你要什么,生成的名称、步骤和标签会写回手动表单,你确认后再保存。

老版本的快速命令照样能跑

在"步骤"出现之前保存的快速命令只有一条命令字符串。它照常工作:字符串变成一个命令步骤,原来的仅输入变成这一步不勾 Enter。打开就是普通的步骤行,不需要手动迁移。

等待文本还是触发器

两者都盯着输出,很容易混。但它们回答的是不同的问题。

等待文本(步骤) 触发器
属于 某一次快速命令运行 整个会话,一直生效
阻塞后续 会 不会
匹配方式 纯文本、忽略大小写 文本或正则表达式
动作 什么都不做,只控制流程 发送文本,或者只通知
重复 每个步骤一次 每次匹配、带冷却的每次匹配、或每会话一次
超时 有 没有
配置位置 命令内部 设置 → 触发器里的规则

流程是写死的、只在你要的时候跑一次,就用等待步骤;同一段文字每次出现都该有同样的反应、不需要任何人点任何东西,就用触发器。

值得记住的几个数字

  • 状态条在 500 ms 后才出现;200 ms 内的两次点击算一次运行(调用做了防抖)。
  • 默认步骤延迟 100 ms;默认等待超时 10 秒;0 表示一直等。
  • 名称最长 60 字符;按键步骤最多重复 100 次。
  • 值为空的等待步骤会被跳过,表单也不允许保存这样的步骤。

试试看

挑一条你重复最多的命令——部署、跳板、看日志——写成三到四个步骤,中间放一个等待。第一次它真的等密码提示出现、而不是对着空气打字的时候,你能感觉到区别。

每个字段和边界的完整说明见快速命令 wiki。想让每个会话里遇到的提示都自动应答,看终端触发器。