Shell Commander 自动化指南
本文将介绍如何使用 OpenClaw 执行系统命令,实现自动化运维和日常任务。
什么是 Shell 自动化?
OpenClaw 可以通过自然语言执行系统命令,无需记忆复杂的命令语法。你只需描述想做什么,AI 会自动选择合适的命令执行。
能做什么?
- 文件管理 - 创建、删除、移动、搜索文件
- 系统监控 - 查看进程、内存、磁盘使用
- 网络操作 - 下载文件、测试连接
- Git 操作 - 提交代码、分支管理
- Docker 管理 - 容器、镜像操作
- 定时任务 - 设置自动化脚本
前置要求
- OpenClaw 已安装并运行
- Shell 技能已启用(默认启用)
- 了解基本的命令行概念
基础用法
1. 文件操作
用户:列出当前目录的所有文件
AI:[执行 ls -la] 当前目录包含...
用户:创建一个名为 my-project 的文件夹
AI:[执行 mkdir my-project] 已创建文件夹
用户:删除 test.txt 文件
AI:[执行 rm test.txt] 文件已删除2. 文件搜索
用户:搜索所有 .js 文件
AI:[执行 find . -name "*.js"] 找到以下文件...
用户:在所有 .py 文件中搜索 "import"
AI:[执行 grep -r "import" --include="*.py"] 找到以下匹配...3. 系统信息
用户:查看系统内存使用情况
AI:[执行 free -h] 内存使用情况...
用户:查看磁盘空间
AI:[执行 df -h] 磁盘空间...Git 自动化
1. 基础操作
用户:查看 git 状态
AI:[执行 git status] 当前状态...
用户:提交所有更改,消息是 "feat: add new feature"
AI:[执行 git add . && git commit -m "feat: add new feature"] 提交完成
用户:推送到远程仓库
AI:[执行 git push origin main] 推送完成2. 分支管理
用户:创建并切换到新分支 feature-login
AI:[执行 git checkout -b feature-login] 已创建并切换
用户:查看所有分支
AI:[执行 git branch -a] 分支列表...Docker 自动化
1. 容器管理
用户:列出所有运行中的容器
AI:[执行 docker ps] 运行中的容器...
用户:停止容器 my-app
AI:[执行 docker stop my-app] 容器已停止
用户:查看容器日志
AI:[执行 docker logs my-app] 日志内容...2. 镜像操作
用户:拉取 nginx 镜像
AI:[执行 docker pull nginx] 镜像已拉取
用户:构建镜像,标签为 myapp:v1
AI:[执行 docker build -t myapp:v1 .] 构建完成批量操作
1. 批量文件重命名
用户:把所有 .txt 文件改成 .md
AI:我来执行批量重命名...
[使用 rename 命令或循环重命名]2. 批量文件处理
用户:删除所有 node_modules 文件夹
AI:[执行 find . -name node_modules -type d -exec rm -rf {} +] 已清理安全设置
1. 限制允许的命令
编辑 ~/.openclaw/openclaw.json:
{
"skills": {
"entries": {
"shell": {
"enabled": true,
"config": {
"allowedCommands": ["git", "npm", "node", "docker", "ls", "cat"]
}
}
}
}
}2. 禁止危险命令
{
"skills": {
"entries": {
"shell": {
"config": {
"blockedCommands": ["rm -rf /", "mkfs", "dd"]
}
}
}
}
}3. 使用沙盒
在隔离环境中执行命令:
{
"agents": {
"defaults": {
"sandbox": {
"enabled": true
}
}
}
}自动化脚本示例
1. 日常备份
用户:创建一个脚本,每天备份 /data 目录到 /backup
AI:我来创建备份脚本...
[创建 backup.sh 并设置 cron 任务]2. 日志清理
用户:清理超过 7 天的日志文件
AI:[执行 find /var/log -name "*.log" -mtime +7 -delete] 已清理3. 系统监控
用户:当 CPU 使用率超过 80% 时发送通知
AI:我来设置监控脚本...常见问题
Q: 命令执行失败?
检查:
- 命令是否正确
- 是否有执行权限
- 所需工具是否已安装
Q: 如何执行需要 sudo 的命令?
OpenClaw 默认以当前用户执行命令。需要 sudo 权限的操作请手动执行。
Q: 命令输出太长怎么办?
用户:只显示前 20 行
用户:保存输出到文件Q: 如何撤销命令?
某些命令不可逆(如 rm)。建议使用版本控制,重要操作先确认。
最佳实践
- 先预览 - 让 AI 先显示要执行的命令,确认后再执行
- 使用版本控制 - 重要项目用 git 管理
- 定期备份 - 重要数据做好备份
- 限制权限 - 配置 allowedCommands 白名单
- 检查输出 - 执行后检查命令输出是否正常