🤖 OpenClaw Shell命令执行完全指南
📖 功能介绍
OpenClaw的Shell命令执行功能是其核心能力之一,允许AI Agent在受控环境下执行系统命令。这个功能让AI不仅仅是"会说话",还能"会干活"。
想象一下:你告诉AI "帮我部署这个项目",它不仅能告诉你步骤,还能真的帮你执行部署命令——这就是Shell执行的力量。
🚀 使用方法
基础语法
// 使用exec工具执行Shell命令
exec({
command: "ls -la /var/www/",
timeout: 30,
workdir: "/root"
})
参数说明
- command: 要执行的命令(必填)
- workdir: 工作目录(可选)
- timeout: 超时时间,单位秒(可选,默认30)
- elevated: 是否使用管理员权限(可选)
✨ 最佳实践
- 安全优先:永远不要直接执行用户输入的原始命令,使用白名单机制
- 超时控制: 合理设置超时时间,避免命令卡死
- 错误处理: 检查命令返回码,做好异常捕获
- 日志记录: 重要操作一定要记录日志,便于排查问题
💻 代码示例
示例1:文件操作
// 列出目录内容
exec({ command: "ls -la" })
// 创建目录
exec({ command: "mkdir -p /path/to/dir" })
// 读取文件
exec({ command: "cat /etc/config.json" })
示例2:Git操作
// 克隆仓库
exec({ command: "git clone https://github.com/user/repo.git" })
// 提交代码
exec({ command: "git add . && git commit -m 'update' && git push" })
示例3:服务管理
// 重启服务
exec({ command: "systemctl restart nginx" })
// 检查状态
exec({ command: "systemctl status nginx" })
🎯 妙趣实测技巧
我发现用exec执行长时间任务时(比如训练模型),一定要设置
background: true让它后台运行,否则真的会等到天荒地老...