跳到主要内容

Shell 命令执行

📖 适合谁:开发者 / 运维 / 平台管理员 —— 想让 AI 在工作空间里直接执行 Shell 命令(查服务、打包、curl 测试、跑脚本),不用自己开终端的人

📖 阅读时长:4 分钟

📖 一句话:YingClaw 原生的 Shell 工具,让 AI 在工作空间里直接执行 Shell 命令,覆盖日常运维和开发操作。执行前自动安全策略检查(危险命令黑名单 + 风险分级确认),执行中提供超时保护(默认 5 分钟)和输出截断(1MB 上限),执行后敏感环境变量默认不暴露子进程。对话中随时调用,无独立菜单,全员可访问,支持 Windows / macOS / Linux · PowerShell / Git Bash / Bash。


一、核心价值

价值说明
跨平台一致同一句自然语言,Windows / macOS / Linux 都能跑,不用为不同系统学不同命令
安全优先内置黑名单自动拦截 rm -rf / format / mkfs / 注册表修改;中等风险命令弹窗确认
策略可配通过安全策略文件自定义命令黑白名单,企业可统一管控;敏感变量默认隔离,不暴露给子进程
可观测单条命令最长 5 分钟超时保护,1MB 输出截断 — 卡死 / 雪崩 / 泄露都有兜底

二、主要能力

1. 跨平台支持

  • Windows:PowerShell(默认) · Git Bash(YingClaw 自带运行时)
  • macOS / Linux:Bash(系统自带)
  • YingClaw 自动检测 OS 选合适的 Shell 引擎,无需手动指定

2. 危险命令黑名单(自动拦截)

  • 始终拦截:rm -rf / format / mkfs / reg add / reg delete 等破坏性操作;`...` / <(...) / >(...) 等 subshell 操作符
  • 被拦截会明确告知原因(哪条规则触发),不会静默失败
  • 用户可在策略文件中自定义黑名单

3. 风险分级确认

  • 低风险(ls / cat / grep / curl 测试):直接执行
  • 中等风险(写文件 / 装包 / 启服务 / 改配置):弹窗要求用户确认
  • 高风险(已在黑名单):直接拒绝
  • 完全自主模式下,中等风险命令免确认自动执行

4. 策略可配置

  • 通过安全策略配置文件自定义命令黑白名单:禁止 / 必确认 / 放行 三档
  • 企业可统一管控;配置变更即时生效,无需重启 YingClaw
  • 详细配置语法见 安全策略配置(即将推出)

5. 双 Shell 引擎

  • PowerShell:Windows 默认,适合 Windows 生态(Get-ChildItem / Test-Path / Get-Service)
  • Bash:macOS / Linux 默认,适合 Unix 工具链(grep / sed / awk / curl)
  • YingClaw 自动选最佳引擎,用户可用关键词提示(如 "用 PowerShell 跑这条")

6. 超时与输出控制

  • 超时保护:单条命令最长 5 分钟(300s),超时自动 kill 并返回原因
  • 输出截断:1MB 上限,超过会提示「输出过大,完整内容请查文件」
  • 后台执行:支持 & 后台跑长任务

7. 环境变量隔离

  • 敏感变量(GITLAB_TOKEN / AWS_SECRET_ACCESS_KEY 等)默认不暴露给子进程
  • 只传安全变量(PATH / HOME / USERPROFILE)
  • 命令输出也过滤敏感信息(Key / Token / 密码)
  • 用户可在对话中显式注入变量(如 "用环境变量 $MY_VAR 跑这条")

8. 复杂命令组合

  • 管道:cat file | grep pattern · 链式:cd /path && ./build.sh
  • 重定向:echo hello > file.txt · 后台:./long-task &
  • 变量展开:$HOME / ${USER} · Glob 展开:*.md / **/file

三、典型应用场景

场景 1:运维巡检 —「看看 nginx 服务在不在跑」

# Linux / macOS
systemctl status nginx
# Windows
Get-Service nginx

YingClaw 自动选对系统并跑对应命令,把结果以「服务名 / 状态 / PID / 监听端口」表格呈现。30 秒搞定一次巡检。

场景 2:部署与备份 —「把这个目录打包成 tar.gz」

tar -czvf myapp-2026-08-27.tar.gz ./myapp/
# 或 zip(Windows 友好):zip -r myapp.zip ./myapp/

打包完成后返回 包大小、文件数、压缩比,以及「传 S3 / 拷远程 / 入 Git」的下一步建议。

场景 3:接口测试 —「用 curl 测试一下这个 API」

curl -i https://api.example.com/v1/users
# 带认证
curl -H "Authorization: Bearer YOUR_KEY" https://api.example.com/v1/me

YingClaw 会格式化 JSON 响应(高亮 + 折叠)、解析 HTTP 头判断 2xx/4xx/5xx 给诊断建议,比手敲 curl 直观。

场景 4:容器与进程管理

# 端口占用
lsof -i :8080 # macOS / Linux
Get-NetTCPConnection -LocalPort 8080 # Windows
# 容器
docker ps && docker logs <id>

复杂场景如「看占用 8080 端口的进程」,YingClaw 会自动跨命令组合:lsof 找 PID → ps 看详情 → kill 终止,一条指令走完。

场景 5:批量文件处理

# 找 7 天前的日志并压缩
find /var/log -name "*.log" -mtime +7 -exec gzip {} \;
# 批量搜索
grep -rn "TODO" src/ | wc -l

YingClaw 会优先建议安全方案(trash 代替 rm、先 find -printfind -delete 两步走),降低误操作风险。

四、使用指南

第 1 步:用自然语言发起命令 — 直接在对话中描述,如 "看看 nginx 在不在跑","把 docs 打包成 tar.gz",YingClaw 自动翻译成对应命令并执行。

第 2 步:查看执行结果 — 小输出直接显示;大输出(> 1MB)自动截断并告诉你文件路径;长任务支持进度反馈,完成后统一返回。

第 3 步:处理确认弹窗 — 仔细阅读命令内容,确认无误后选「确认」;取消时直接说 "不" / "取消"。完全自主模式下中等风险命令免确认。

第 4 步:处理超时 / 截断 — 超时:把任务拆小后台跑(./long-task &);截断:用 grep / head 过滤,或重定向到文件(command > out.txt)再用文件读取工具查阅。

第 5 步:切换 Shell 引擎 — 默认自动选,需强制时显式说 "用 PowerShell 跑这条:Get-ChildItem" 或 "用 Bash 跑这条:find . -name '*.md'"。

第 6 步:复杂任务委派 — 跨多步任务 YingClaw 自动用 todo 列表拆解,逐步执行并汇报进度,随时可打断调整。

五、最佳实践

  • 危险命令预览再执行 — 读一遍生成的命令,特别留意 rm / mv / chmod / chown 这类「改状态」命令
  • trash 代替 rm — 误删可恢复胜过彻底丢失;YingClaw 会优先建议 trash
  • 管道优先于临时文件cat file | grep patterngrep pattern $(cat file) 更易读
  • 明确指定 Shell 引擎 — 跨平台命令(dir vs ls)差异大,关键命令显式说用哪个引擎
  • 长输出查文件,不看屏幕 — 超过 1000 行直接重定向到文件,再用文件读取工具看
  • 超时任务后台化 — 跑超过 1 分钟的任务(打包 / 编译 / 测试)用 & 后台跑 + 日志重定向
  • 敏感值不写死 — 用 $VAR 引用,不要 api_key="glpat-xxx" 明文写在命令中;YingClaw 自动过滤输出中的敏感值
  • 批量操作先 dry-runfind ... -delete / sed -i 这类先不加 -delete / -i 跑一遍,确认会改哪些文件再真跑