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 -print 再 find -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 pattern比grep pattern $(cat file)更易读 - 明确指定 Shell 引擎 — 跨平台命令(
dirvsls)差异大,关键命令显式说用哪个引擎 - 长输出查文件,不看屏幕 — 超过 1000 行直接重定向到文件,再用文件读取工具看
- 超时任务后台化 — 跑超过 1 分钟的任务(打包 / 编译 / 测试)用
&后台跑 + 日志重定向 - 敏感值不写死 — 用
$VAR引用,不要api_key="glpat-xxx"明文写在命令中;YingClaw 自动过滤输出中的敏感值 - 批量操作先 dry-run —
find ... -delete/sed -i这类先不加-delete/-i跑一遍,确认会改哪些文件再真跑