# 派活 · 运维、文件、数据、系统各跑通一件 · Warp · 一台终端形状的元工具

**作者** Aklman · **章节** 05 / 12 · **首发** 2026.08 · **语言** 中文为主, 中英双语
**原文** https://library.aklman.com/books/warp/05-beyond-code
**全书 markdown** https://library.aklman.com/books/warp/llms.md
**上一章** https://library.aklman.com/books/warp/04-agent-mode/llms.md
**下一章** https://library.aklman.com/books/warp/06-drive/llms.md

> 本章来自 Aklman · Library, 完整免费阅读。允许 AI 摘读、引用、问答; 转载请保留作者署名与原文链接 (CC BY-NC-ND 4.0, https://library.aklman.com/license)。

---

> 发动机不挑活。这章把不同形状的手动活跑通:300 张图批量转格式(含 dry-run 和回滚)是主线,运维、文件、数据、系统四个域各一条可抄的紧凑变体,外加进数据库只读核数的一幕。最后划清:什么时候该切回脚本、cron 和专用工具。

这是全书论点落地的一章。官网把 Agent Mode 演示成改 bug、提 PR,于是你默认它是给写代码的人的。但发动机不挑活:运维、文件、数据、系统的手工活,剥开底下都是命令行和脚本,照样能一件件交办。这章主线跑通一件真实的批处理 —— 300 张图转 webp,含 dry-run 和回滚;然后四个域各给你一条可抄的紧凑变体;最后划清什么时候该切回脚本、cron 和专用工具。

### I · 主线:300 张图转 webp,带 dry-run 和回滚

场景:设计给了你一个 `./assets/raw/` 目录,300 张 PNG 要统一转成 80% 质量的 webp 上网。手动路径是找在线转换工具、分批上传、等、下载、改名 —— 或者自己拼一条 `find` 加 `cwebp` 的参数,拼错一次就得重来。这次交办,但守一条纪律:**批量写入的活,先 dry-run 再真跑**。[^2]

- **交办时就写死 dry-run 纪律**:
 ⌘↩ 开会话,贴上下面 PromptBox 示例 tab 那段话。注意它没让 agent 直接转换 —— 它先要求列出前 20 个会被处理的文件和源 → 目标路径,声明会不会覆盖。这一步是整件事的保险丝。

- **审 dry-run 输出,而不是审它的信心**:
 它跑完只读分析,给你:300 个文件匹配、目标目录 ./assets/webp/、不覆盖原图、预计总大小。你抽查三条路径映射对不对 —— 对,才说「跑」。它怎么说不重要,那张清单对不对才重要。

- **真跑,盯着计数器**:
 转换是批量写,但写进的是新目录,原图还在 —— 这就是为什么这个任务敢让它自动跑完。几分钟后它报:成功 298、失败 2,两个失败的是带特殊字符的文件名,它已经单独列出来等你处理。

- **验收 + 确认回滚路径**:
 验收三条:输出目录文件数对得上、抽查一张图能正常打开、总大小从 1.2G 降到 90M。回滚路径也在交办时就想好了 —— 原图未动,删掉 `./assets/webp/` 就回到起点。批量活敢交办的前提,从来不是信它,是回滚成本够低。

**提示词 · 文件批处理 dry-run 模板(主线同款)**

```text
目标:批量处理 <目录/文件模式>,但先不要改任何文件。
要求:
1. 先列出会被处理的前 20 个文件;
2. 给出 dry-run 命令或只打印源路径 -> 目标路径;
3. 说明是否会覆盖、删除、移动;
4. 我确认后才执行真实写入;
5. 执行后给出处理数量、失败数量、可回滚方式。
```

**示例**

```text
目标:批量处理 ./assets/raw/*.png,统一转成 80% 质量的 .webp,输出到 ./assets/webp/,但先不要改任何文件。
要求:
1. 先列出会被处理的前 20 个文件;
2. 给出 dry-run 命令或只打印源路径 -> 目标路径;
3. 说明是否会覆盖、删除、移动;
4. 我确认后才执行真实写入;
5. 执行后给出处理数量、失败数量、可回滚方式。
```

#### 手动路径的那个下午

在线转换工具一次限 20 张,你分了 15 批;第三批传完发现免费版加水印;换工具,重来;下载回来的文件名全被改了,再写个脚本对应回去。或者你自己拼 find + cwebp,第一次参数错了覆盖了三张原图 —— 没有 dry-run 的习惯,批量活每一步都在赌。

#### 刚才这十五分钟

一段话交办,一张清单审过,一次真跑,三条验收。失败的两张它单独列出来了,原图一张没动。你做的唯一判断是抽查路径映射 —— 剩下的时间你回了三封邮件。

---

### II · 四个域,各一条可抄的

一件事适不适合 Warp,先看它能不能被命令、文件、脚本、日志、环境变量表达。四个域各一条紧凑交办词 —— 抄走,改尖括号里的部分就能用:

#### 运维 · 日志

**提示词 · 从日志里捞统计(只读)**

```text
从 <日志路径> 里统计 <时间范围> 每小时的 5xx 请求数,
按「小时 → 次数」输出,顺带列出 5xx 最多的前 5 个路径。
先把你打算跑的命令给我看,确认后再跑,别写任何文件。
```

**示例**

```text
从 ./logs/nginx/access.log 里统计昨天每小时的 5xx 请求数,
按「小时 → 次数」输出,顺带列出 5xx 最多的前 5 个路径。
先把你打算跑的命令给我看,确认后再跑,别写任何文件。
```

适合:日志、服务状态、端口、进程、磁盘、deploy 前检查。切走:正式告警、SLO、长期趋势 —— 那是监控平台的活。

#### 文件 · 整理

**提示词 · 批量重命名 + 归类(dry-run 先行)**

```text
把 <目录> 里的文件按 <规则> 重命名并归入子目录。
先只打印「现名 → 新名/去向」的前 20 条,不改任何文件;
说明冲突怎么处理(重名、非法字符);
我确认后再动;动完给成功/失败计数和回滚方式。
```

**示例**

```text
把 ~/Downloads 里的截图按「2026-08-06_项目名_序号」重命名,按月份归入子目录。
先只打印「现名 → 新名/去向」的前 20 条,不改任何文件;
说明冲突怎么处理(重名、非法字符);
我确认后再动;动完给成功/失败计数和回滚方式。
```

适合:重命名、搜索、压缩、转换、diff,可 dry-run 的。切走:视觉整理、靠人眼分类、不可恢复的删除。

#### 数据 · 清洗

**提示词 · CSV 清洗(不覆盖原文件)**

```text
读取 <input.csv>。
先做只读分析:行数 / 字段名 / 缺失值统计;抽样 10 行;你建议的清洗规则。
然后给一个可复现脚本,输出写到 <output.tmp>,不要覆盖原文件。
最后用 diff / head / wc 验收。
```

**示例**

```text
读取 ./data/subscribers.csv。
先做只读分析:行数 / 字段名 / 缺失值统计;抽样 10 行;你建议的清洗规则。
然后给一个可复现脚本,把去掉重复邮箱、统一小写后的结果写到 ./data/subscribers.clean.tmp,不要覆盖原文件。
最后用 diff / head / wc 验收。
```

适合:CSV/JSON 抽样、jq/sed/awk/Python 小脚本。切走:正经 ETL、BI、Notebook 探索、生产写库。

#### 系统 · 诊断

**提示词 · 环境诊断(只读)**

```text
只读诊断这台机器的 <某方面> 环境:
版本、路径、环境变量、端口、进程、磁盘、权限。
每条命令只读,先给我看我确认再跑;
最后给一段「正常 / 异常 / 建议」的结论。
```

**示例**

```text
只读诊断这台机器的 Node 开发环境:
版本、路径、环境变量、端口、进程、磁盘、权限。
每条命令只读,先给我看我确认再跑;
最后给一段「正常 / 异常 / 建议」的结论。
```

适合:环境诊断、依赖检查、权限排查、配置 diff。切走:内核、权限、安全策略变更 —— 那要专用工具和人工流程。

---

### III · 一幕:进数据库,只读核数

agent 不止能跑一次性命令 —— Full Terminal Use 让它看到实时终端缓冲、向 PTY 写入、应答提示,于是它能开 `psql` 进去待着、来回试。[^1]很多数据活不是「跑一条命令」,是「进去看一眼再决定」。看这一幕:

_agent 进 psql 核一段数据(只读,先看再动)_
```text

```text
# agent 开了一个 psql 会话,先只读地确认范围
psql "$DATABASE_URL"
=> SELECT count(*) FROM orders WHERE status IS NULL;
 count
-------
 1843
=> SELECT id, created_at FROM orders WHERE status IS NULL
 ORDER BY created_at DESC LIMIT 5;
-- 1843 行待回填,样本看过了,现在它把打算跑的 UPDATE 摆出来等你点头
```

```

注意纪律没变:它进得去,不代表它该闭眼改。先只读会话核范围、样本、行数,`UPDATE` 摆出来你点头才执行。两个开关值得知道:全局 FTU 权限默认「首次写入询问」,跑着的交互命令(比如你手开的 psql)可以按 `⌘I` 或点底部 Use Agent 把 agent 拉进来接管。[^1]

---

### IV · 什么时候别派给它

稳定重复的活该沉淀:一件事每周都做且步骤固定,让 agent 每次现编就是浪费 —— 让它做一次,存成 Workflow 或写成脚本挂上 cron,下次直接跑。[^3]还有一类该交给专用工具:正经 ETL、备份、监控有成熟的东西,比 agent 每次重搭更稳。元工具的价值是覆盖那条长长的杂活尾巴,不是取代那几件值得专门工具的事。再往外,要去点别的 GUI app,那已经出了边界 —— 第十章的事。

> 可截图判断:**Warp 最适合的不是「所有工作」,而是所有能被命令、文件、脚本、日志和环境变量表达的工作。**

| 切到 | 信号 |
| :-- | :-- |
| 普通终端 | 只跑一两条你已经懂的命令、远程服务器默认环境、离线容器 |
| 脚本 / cron / CI | 流程稳定、重复、需要审计和失败重试 |
| ETL / BI / Notebook | 数据量大、需要可视化探索、统计假设要反复验证 |
| 专用运维工具 | SLO、告警、长期趋势、权限审计 |
| 浏览器 / GUI agent | 核心动作是点击网页或桌面软件 |

验收这一章 —— 主线你自己也要能复现:

- 我把一件真实的批量活交办出去了,交办词里写死了 dry-run 先行。

- 我审的是 dry-run 清单(路径映射、覆盖声明),不是它的信心。

- 验收时我核了计数、抽查了产物,并确认回滚路径还在。

- 四个域里至少一条交办词我抄走并跑通了一件自己的活。

- 碰数据库我先让它只读核范围,UPDATE 摆出来我点头才跑。

- 我写下一件该沉淀成脚本 / cron 的重复活,留给第六章。

> 它不在乎是不是代码,
> 它在乎是不是命令

## 引用与参考

01 · Warp Docs · Full Terminal Use —— 截至 2026-08-06:agent 能看到实时终端缓冲、向 PTY 写入、应答提示,在运行中的进程里继续工作(psql / mysql、gdb、vim、Python REPL、dev server);跑着的交互命令可以用底部 Use Agent 按钮或 ⌘I 把 agent 拉进来;全局 FTU 权限默认三档:首次写入询问 / 总是询问 / 总是允许;Secret Redaction 仍然生效;FTU 交互消耗 credits。  (Warp Docs · Full Terminal Use)
02 · Warp Docs · Warp Agents overview —— 本地 agent 嵌在终端里,能写代码、debug、运行命令、自动化开发任务,并使用代码库、Warp Drive 与连接工具上下文;本地 agent 交互运行,云端 agent 后台运行。  (Warp Docs · Agents overview)
03 · Warp Docs · Workflows —— 把一条参数化命令命名保存,带描述与参数默认值,从命令面板、⌃⇧R 或 Warp Drive 调用,免得重复手敲;Block Actions 和 agent 结果里都有 Save as Workflow。  (Warp Docs · Workflows)

---

*派活 · 运维、文件、数据、系统各跑通一件 · Warp · 一台终端形状的元工具 · Aklman 著 · CC BY-NC-ND 4.0 · https://library.aklman.com/books/warp/05-beyond-code*
