Skill: ljr287404428/system-cmd (version 1.0.0)

# system_cmd - 系统命令执行技能 ## 描述 执行常见的 Windows 系统命令并返回格式化的结果。支持的命令包括网络配置、进程管理、网络连接和系统信息查询。 ## 使用场景 当用户需要快速查看系统状态、网络配置、进程列表或系统信息时使用此技能。 ## 支持的命令 1. **ipconfig** - 查看网络接口配置和IP地址 2. **tasklist** - 查看当前运行的进程列表 3. **netstat -an** - 查看所有网络连接和监听端口 4. **systeminfo** - 查看详细的系统信息 ## 用法 ### 1. 预定义命令模式（安全命令） ``` /system_cmd <命令名> ``` **示例**: - `/system_cmd ipconfig` - 查看IP配置 - `/system_cmd tasklist` - 查看进程列表 - `/system_cmd netstat` - 查看网络连接（自动添加-an参数） - `/system_cmd systeminfo` - 查看系统信息 ### 2. 命令别名模式（快捷方式） ``` /system_cmd <别名> ``` **默认别名**: - `/system_cmd ip` → 等于 `/system_cmd ipconfig` - `/system_cmd 进程` → 等于 `/system_cmd tasklist` - `/system_cmd 网络` → 等于 `/system_cmd netstat` - `/system_cmd 系统` → 等于 `/system_cmd systeminfo` - `/system_cmd ping` → 等于 `/system_cmd exec ping 8.8.8.8` **自定义别名**: 在 `config.json` 中配置 ### 3. 自定义命令模式（普通命令） ``` /system_cmd exec <命令> ``` **示例**: - `/system_cmd exec ping google.com` - 自定义Ping目标 - `/system_cmd exec dir` - 查看当前目录 - `/system_cmd exec echo Hello World` - 输出文本 - `/system_cmd exec whoami` - 查看当前用户 - `/system_cmd exec date /t` - 查看当前日期 - `/system_cmd exec time /t` - 查看当前时间 - `/system_cmd exec hostname` - 查看主机名 - `/system_cmd exec ver` - 查看Windows版本 ### 4. 高危命令模式（需要确认） ``` /system_cmd exec <高危命令> --yes ``` **示例**: - `/system_cmd exec del temp.txt --yes` - 删除文件（需要确认） - `/system_cmd exec taskkill /f notepad.exe --yes` - 强制结束进程（需要确认） - `/system_cmd exec net stop wuauserv --yes` - 停止Windows更新服务（需要确认） - `/system_cmd exec sc delete MyService --yes` - 删除系统服务（需要确认） ## 实现细节 ### 命令映射 - `ipconfig` → 执行 `ipconfig /all` 获取详细信息 - `tasklist` → 执行 `tasklist` 获取进程列表 - `netstat` → 执行 `netstat -an` 获取网络连接 - `systeminfo` → 执行 `systeminfo` 获取系统信息 ### 输出处理 1. **中文支持**：所有输出都进行适当的编码处理，确保中文正确显示 2. **格式化**：根据命令类型进行适当的格式化（表格、列表等） 3. **错误处理**：捕获命令执行错误并提供友好的错误信息 4. **安全性**：只允许执行预定义的安全命令 ### 安全等级与权限控制 #### 1. 🟢 安全命令（直接执行） - 预定义命令：`ipconfig`, `tasklist`, `netstat`, `systeminfo` - 命令别名：`ip`, `进程`, `网络`, `系统`, `ping` - 安全只读命令：`ping`, `echo`, `whoami`, `hostname`, `ver` 等 #### 2. 🟡 普通命令（安全检查后执行） - 大多数自定义命令 - 经过安全检查：路径检查、字符过滤、长度限制 - 执行限制：15秒超时，5MB缓冲区 #### 3. 🔴 高危命令（需要用户确认） **高危命令列表**： - **文件操作**: `del`, `erase`, `rm`, `rmdir`, `rd` - **磁盘操作**: `format`, `chkdsk`, `diskpart` - **进程管理**: `taskkill /f`, `taskkill /im` - **服务管理**: `net stop`, `net start`, `sc delete`, `sc stop` - **注册表操作**: `reg delete`, `reg add` - **系统控制**: `shutdown`, `reboot` **确认机制**： - 首次执行高危命令：返回风险提示和确认要求 - 确认执行：添加 `--yes` 参数，如 `/system_cmd exec del file.txt --yes` - 执行限制：30秒超时，额外安全监控 #### 4. 🚫 完全禁止的命令 **绝对禁止执行的命令**： - `rm -rf` - 递归强制删除 - `del *.*` - 删除所有文件 - `format c:` - 格式化系统盘 - `reg delete HKLM` - 删除系统注册表 - `net user administrator` - 修改管理员账户 #### 5. 配置系统 **配置文件**: `config.json` - **pingDefaultTarget**: 默认Ping目标（默认: `8.8.8.8`） - **aliases**: 自定义别名映射 - **支持变量**: `${pingDefaultTarget}` 在别名中替换 **默认配置**: ```json { "pingDefaultTarget": "8.8.8.8", "aliases": { "ip": "ipconfig", "进程": "tasklist", "网络": "netstat", "系统": "systeminfo", "ping": "ping ${pingDefaultTarget}" } } ``` #### 6. 执行限制 - **命令长度**: 最大1000字符 - **执行时间**: 普通命令15秒，高危命令30秒 - **输出长度**: 最大4000字符（自动截断） - **缓冲区大小**: 5MB ### 错误处理 - 命令不存在时返回错误信息 - 命令执行失败时返回详细的错误原因 - 输出过长时进行适当的截断和分页 - 危险命令被阻止并返回安全警告 ## 技能文件结构 ``` system_cmd/ ├── SKILL.md # 本文件 ├── scripts/ │ └── system_cmd.js # 主要实现脚本 └── references/ └── commands.md # 命令参考文档 ``` ## 依赖 - Windows 操作系统 - PowerShell 或 CMD - OpenClaw 执行权限 ## 注意事项 1. 部分命令可能需要管理员权限才能获取完整信息 2. 系统信息命令可能执行较慢，请耐心等待 3. 网络连接信息可能包含大量数据，输出会进行适当截断 ## 技能特点 ### 🟢 安全命令模式 1. **简单易用**: 只需输入命令名称即可执行 2. **中文友好**: 自动处理编码问题，确保中文正常显示 3. **错误处理**: 完善的错误检测和友好的错误提示 4. **格式化输出**: 结果清晰易读，带有标题和分隔符 ### 🔄 命令别名模式（新增） 5. **快捷操作**: 使用简短别名代替完整命令 6. **中文支持**: 支持中文别名，如 `进程`、`网络`、`系统` 7. **配置灵活**: 可通过 `config.json` 自定义别名 8. **变量支持**: 别名中支持变量替换（如 `${pingDefaultTarget}`） ### 🟡 普通命令模式 9. **灵活扩展**: 支持执行大多数系统命令 10. **安全检查**: 路径检查、字符过滤、长度验证 11. **资源限制**: 执行时间、输出长度、命令长度限制 12. **友好提示**: 详细的错误信息和安全警告 ### 🔴 高危命令模式 13. **权限控制**: 高危命令需要用户明确确认 14. **风险提示**: 详细说明命令的风险和后果 15. **确认机制**: 使用 `--yes` 参数确认执行高危命令 16. **额外监控**: 高危命令有更长的超时时间和额外监控 ### 🚫 安全防护 17. **多层防护**: 黑名单 + 模式匹配 + 路径检查 + 字符过滤 18. **分级控制**: 安全命令/普通命令/高危命令/禁止命令四级控制 19. **完全禁止**: 绝对危险的命令被完全阻止 20. **向后兼容**: 原有功能完全保留，新增功能可选使用 ### ⚙️ 配置系统 21. **配置文件**: 支持 `config.json` 配置 22. **默认配置**: 提供合理的默认值和别名 23. **热加载**: 配置文件修改后自动生效 24. **用户定制**: 用户可自定义别名和配置 ## 技术实现 ### 编码处理 使用PowerShell执行命令并设置代码页为65001（UTF-8），确保中英文混合输出正常显示。CMD特有命令使用CMD执行。 ### 别名解析系统 1. **多层解析**: 配置文件别名 → 预定义命令别名 → 原始命令 2. **变量替换**: 支持 `${pingDefaultTarget}` 等变量在别名中替换 3. **热加载**: 配置文件修改后自动重新加载 4. **别名映射**: 显示别名到实际命令的映射关系 ### 安全机制（四级防护） 1. **完全禁止层**: 检测并阻止绝对危险的命令（如 `rm -rf`, `format c:`） 2. **高危确认层**: 识别高危命令，要求用户明确确认（`--yes` 参数） 3. **安全检查层**: 路径检查、字符过滤、模式匹配、长度验证 4. **资源限制层**: 限制命令长度、执行时间、输出大小、缓冲区 ### 权限控制机制 1. **命令分类**: 自动识别命令的安全等级（安全/普通/高危/禁止） 2. **风险评估**: 为高危命令提供详细的风险描述 3. **确认流程**: 高危命令首次执行返回确认提示，需要 `--yes` 确认 4. **执行监控**: 高危命令有更长的超时时间和额外监控 ### 配置管理系统 1. **默认配置**: 提供合理的默认值和别名 2. **用户配置**: 支持用户通过 `config.json` 自定义 3. **配置合并**: 用户配置与默认配置智能合并 4. **错误处理**: 配置文件错误时使用默认配置并提示 ### 错误处理机制 1. 命令验证：检查输入的命令是否在支持列表中 2. 别名解析：解析命令别名到实际命令 3. 安全分级：识别命令的安全等级和风险 4. 权限检查：验证用户是否有权限执行高危命令 5. 执行监控：捕获命令执行过程中的错误 6. 资源监控：监控执行时间和资源使用 7. 友好提示：将系统错误转换为用户友好的提示信息 ### 输出格式化 1. 添加标题和分隔符，提高可读性 2. 根据命令类型和安全等级使用不同图标 3. 清理多余的空格和换行符 4. 自动截断过长的输出 5. 显示原始命令和安全等级（自定义命令模式） 6. 显示别名映射信息（如果使用别名） 7. 高危命令执行结果有额外警告提示 ## 更新日志 ### v1.0 (2026-04-08) - 初始版本创建，支持4个基本系统命令 - 修复编码问题，确保中文正常显示 - 添加完整的错误处理和帮助系统 ### v2.0 (2026-04-08) - **新增自定义命令功能**: 支持 `/system_cmd exec <命令>` 格式 - **增强安全机制**: 危险命令检测和阻止 - **资源限制**: 命令长度、执行时间、输出大小限制 - **改进错误处理**: 更详细的错误信息和安全警告 - **保持向后兼容**: 原有功能完全保留 - **更新文档**: 完整的帮助和使用说明 ### v3.0 (2026-04-08) - **新增权限控制**: 高危命令需要用户确认 (`--yes`) - **四级安全防护**: 安全命令/普通命令/高危命令/禁止命令 - **风险评估**: 为高危命令提供详细风险描述 - **确认机制**: 高危命令首次执行返回确认提示 - **分级监控**: 不同安全等级有不同的执行限制 - **完全禁止**: 绝对危险的命令被完全阻止 - **改进帮助**: 更详细的帮助信息和示例 ### v4.0 (2026-04-08) - **新增命令别名功能**: 支持快捷别名，如 `ip`、`进程`、`网络`、`系统` - **配置文件系统**: 支持 `config.json` 配置别名和默认值 - **中文别名支持**: 支持中文别名，提高中文用户友好性 - **变量替换**: 别名中支持 `${pingDefaultTarget}` 等变量 - **热加载配置**: 配置文件修改后自动生效 - **别名映射显示**: 执行结果显示别名到实际命令的映射 - **扩展预定义命令**: 新增 `ping` 预定义命令（可配置默认目标） - **改进帮助系统**: 显示所有别名和配置信息


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)