news 2026/10/2 13:27:20

ClaudeComputerCommander 计算机健康检查:Linux 只读诊断命令集与解读指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ClaudeComputerCommander 计算机健康检查:Linux 只读诊断命令集与解读指南
  • 人工智能
  • MCP 服务
  • AI Agent
  • 开发工具

【免费下载链接】ClaudeComputerCommander

This is MCP server for Claude that gives it terminal control, file system search and diff file editing capabilities

项目地址:https://gitcode.com/GitHub_Trending/cl/ClaudeComputerCommander
点击查看免费下载

导读

本文讲解 ClaudeComputerCommander(Desktop Commander MCP)内置的computer-health-check技能在 Linux 平台上的完整实践:一套无需 sudo、只读的批量采集命令,覆盖系统信息、磁盘容量与健康、内存与 swap、CPU/内存热点进程、电池损耗、启动项、存储热点与待更新包等全部维度。读完本文,你将掌握如何用一条批量脚本采集 Linux 机器健康数据、逐字段解读输出含义、按风险等级打分,并在用户明确批准后安全地执行清理操作。

该技能是三平台对齐设计的:macOS、Windows、Linux 各有一份镜像同类的参考文档,本文聚焦 Linux 命令集,并引用仓库源码印证其底层实现。

技能定位:只读、无 sudo、可解释的健康巡检

computer-health-check是一个面向 Agent 的技能(定义见 SKILL.md),它通过 Desktop Commander 提供的本地持久化 shell(start_process/interact_with_process)运行批量诊断,然后在聊天中输出一份带评分的简明报告,并给出按收益排序的清理建议,每个清理动作都必须经用户明确批准后才执行。

它的安全契约是整份文档的基石:

  • 默认只读:采集阶段只观察(容量、计数、状态),不改变任何东西;
  • 绝不使用sudo或提权:Desktop Commander 会拦截sudo、shutdown、reboot、dd、mount、mkfs、diskpart等命令。下面每一条检查都设计为无需提权即可运行;若某项确实需要 root,就跳过并明说,而不是绕过拦截;
  • 清理必须显式批准:可以自由地建议清理,但只有用户明确批准某条具体动作后才执行,且执行前先展示精确命令;
  • 优先可逆、非破坏性动作:清空可再生缓存、清空包管理器下载缓存、清空回收站都是可以提供的;删除用户文档、卸载应用、修改系统文件则只能建议、由用户自己执行。

在 Linux 上,技能的工作流是:先通过get_config读取systemInfo.isLinux(实现见 system-info.ts)或运行uname确认平台,然后只读取匹配的参考文件(即本文所讲的 linux.md),把其中的批量采集脚本用start_process一次性跑完。

批量采集脚本:一条命令跑完所有只读检查

Linux 参考文档的核心是一条整体打包的 bash 脚本。把它作为一个批处理进程运行(而不是拆成几十次小调用),既快又让输出整洁。脚本按== 区块 ==分隔输出,逐个解读如下:

bash -c ' echo "== SYSTEM =="; (. /etc/os-release 2>/dev/null; echo "$PRETTY_NAME"); uname -r; uptime -p 2>/dev/null || uptime echo "== HARDWARE =="; echo "CPUs: $(nproc)"; grep -m1 "model name" /proc/cpuinfo | cut -d: -f2 | sed "s/^ //" echo "== DISK =="; df -h / /home 2>/dev/null | grep -v tmpfs echo "== DISK HEALTH =="; lsblk -d -o NAME,SIZE,ROTA,MODEL 2>/dev/null echo "== MEMORY =="; free -h echo "swap:"; swapon --show 2>/dev/null || echo "none" echo "== TOP CPU =="; ps -eo pid,pcpu,pmem,comm --sort=-pcpu | head -n 8 echo "== TOP MEM =="; ps -eo pid,pcpu,pmem,comm --sort=-rss | head -n 8 echo "== BATTERY =="; for b in /sys/class/power_supply/BAT*; do [ -d "$b" ] && { echo "capacity: $(cat $b/capacity 2>/dev/null)%"; echo "health: $(cat $b/health 2>/dev/null)"; cf=$(cat $b/charge_full 2>/dev/null); cd=$(cat $b/charge_full_design 2>/dev/null); [ -n "$cf" ] && [ -n "$cd" ] && echo "wear: $((100*cf/cd))% of design"; }; done echo "== STARTUP =="; echo "enabled user services: $(systemctl --user list-unit-files --state=enabled 2>/dev/null | grep -c enabled)"; ls -1 "$HOME/.config/autostart" 2>/dev/null echo "== STORAGE HOTSPOTS ==" for d in "$HOME/Downloads" "$HOME/.cache" "$HOME/.local/share/Trash"; do [ -d "$d" ] && printf "%s\t%s\n" "$(du -sh "$d" 2>/dev/null | cut -f1)" "${d/#$HOME/~}" done echo "== PACKAGES ==" if command -v apt >/dev/null 2>&1; then echo "apt upgradable: $(apt list --upgradable 2>/dev/null | grep -c upgradable)" elif command -v dnf >/dev/null 2>&1; then echo "dnf updates: $(dnf check-update -q 2>/dev/null | grep -c .)" elif command -v pacman >/dev/null 2>&1; then echo "pacman updates: $(checkupdates 2>/dev/null | wc -l)"; fi echo "== DONE =="'

逐区块字段说明

区块命令采集内容与要点
SYSTEM/etc/os-release、uname -r、uptime发行版名称(如PRETTY_NAME)、内核版本、运行时长。uptime -p优雅格式失败时回退到uptime
HARDWAREnproc、/proc/cpuinfoCPU 逻辑核数与型号(model name去掉前导空格)
DISKdf -h / /home根分区与家目录分区容量;grep -v tmpfs剔除 tmpfs 干扰
DISK HEALTHlsblk -d设备名、容量、是否旋转介质(ROTA)、型号。确认设备存在即可,完整 SMART 需要 root,见下文
MEMORYfree -h、swapon --show内存总量/已用/可用;swap 使用情况(无 swap 时输出none)
TOP CPU / TOP MEMps -eo pid,pcpu,pmem,comm排序截断分别按 CPU% 与 RSS(内存驻留集)排序取前 8 个进程
BATTERY/sys/class/power_supply/BAT*电量百分比、健康状态、charge_full/charge_full_design计算的损耗比;无BAT*则跳过(台式机/虚拟机)
STARTUPsystemctl --user、~/.config/autostart已启用的用户级 systemd 单元数 + 第三方自启动.desktop文件
STORAGE HOTSPOTSdu -shDownloads /.cache/ Trash 三大常见占空间目录,路径显示时将$HOME缩写为~
PACKAGESapt/dnf/pacman分支按检测到的包管理器统计待升级包数量,只走命中分支

注意该脚本的“优雅降级”设计:smartctl、upower等工具可能未安装,或需要 root 才能拿到完整细节——此时跳过该项并如实说明,而不是猜测。每条命令都做了2>/dev/null静默与存在性判断(如[ -d "$b" ]、[ -n "$cf" ]),单条命令失败不影响整体采集,这正是 SKILL.md 中“partial data is fine”的落地写法。

如何解读采集结果

Linux 参考文档给出了四个最关键的判读口径:

  • 内存:看free -h的available列(真实可用余量),以及 swap 的used是否在爬升。高 swap 占用 + 低 available = 🟡/🔴,说明物理内存吃紧、系统正在换页。
  • 磁盘健康:lsblk用于确认设备存在;完整 SMART 检测需要sudo smartctl -H /dev/sdX(跳过——需要 root)。对 SMART 状态应如实报告为“未提权时不可用”,而不是猜一个结论。
  • 电池:charge_full / charge_full_design的比值就是损耗百分比;无BAT*设备(台式机、虚拟机、容器)直接跳过此项。
  • 启动项:~/.config/autostart下的.desktop文件和已启用的--usersystemd 单元,是用户可自主处置的第三方项目,也是清理建议的主要来源。

结合 SKILL.md 的评分细则,各领域按 🟢/🟡/🔴 评级:磁盘可用空间 >20% 为 🟢、10–20% 为 🟡、<10% 为 🔴;电池最大容量 ≥80% 为 🟢、70–80% 为 🟡、<70% 或出现 “Service/Replace” 为 🔴;维护维度看 uptime(<7 天 🟢、7–30 天 🟡、>30 天或待安全更新 🔴)。总分从 100 起算,每个 🟡 减 8 分、每个 🔴 减 18 分,下限为 0;90+ Excellent、75–89 Good、60–74 Fair、<60 Needs attention。电池仅对笔记本计分。

可选深度检查(仅在用户要求时运行)

第一遍巡检默认跳过慢速/联网检查,以下项目按需运行:

journalctl -p 3 -b --no-pager | tail -n 30 # 本次启动以来的错误日志(可能需要相应组权限) du -xh "$HOME" 2>/dev/null | sort -rh | head -n 15 # 家目录下最大的 15 个子目录 ping -c 4 8.8.8.8 # 连通性

这些深度检查包括:整机启动错误日志、家目录全盘逐目录扫描、网络连通性,以及 SKILL.md 中提到的网速测试、完整更新列表、崩溃报告趋势分析。它们或慢、或需要网络、或需要额外权限,因此只在用户明确要求时才跑,并如实标注权限限制。

清理命令:只建议、经批准后执行

Linux 文档明确区分“安全可逆”与“需用户自行决定”两类:

  • 清空回收站(安全):rm -rf "$HOME/.local/share/Trash/"*。注意:Desktop Commander 的技能流程要求先展示精确命令、等用户说“是”再执行。
  • 用户缓存(安全、可再生):先du -sh ~/.cache/* | sort -rh | head复核,再清理其中体积异常大的特定条目,避免整目录一刀切删除。
  • 包管理器缓存(通常需 sudo,建议而非代跑):apt-get clean、dnf clean all、pacman -Sc——这些命令通常需要 root,属于“suggest, don't auto-run”一类,SKILL.md 在 Step 5 明确将 Linux 上的apt-get clean/dnf clean归入需要 root 的“建议”清单。
  • 系统更新(用户动作、需 sudo):apt upgrade/dnf upgrade/pacman -Syu。
  • 启动项(用户动作):从~/.config/autostart移除.desktop文件,或systemctl --user disable <unit>。

清理完成后,建议重跑一遍 Step 2 的存储检查来确认实际释放了多少空间——这是文档推荐的收尾验证。

源码级印证:脚本背后的实现机制

这套命令集之所以能安全运行,依赖 Desktop Commander 的几处底层实现:

  • 平台识别:system-info.ts 通过os.platform()判定isLinux,并给出 Linux 下defaultShell = 'bash'、路径分隔符/、家目录示例/home/username,这与 linux.md 面向 bash 的脚本风格一致;容器环境下还会在platformName中追加 “Docker/Podman/Kubernetes” 等标签,便于技能跳过不适用的检查(如电池)。
  • 进程与命令执行:批量脚本经start_process启动,其实现位于 improved-process-tools.ts,执行前会经过 command-manager.ts 的blockedCommands校验(内置sudo、shutdown、reboot、dd、mkfs、diskpart等黑名单)。这与 SKILL.md 反复强调的“绝不使用 sudo、绝不绕过拦截”完全对应——即使脚本里写了apt upgrade,Agent 也只建议不执行,提权类命令根本过不了校验层。
  • 进程列表解析:process.ts 的parsePsAux解析ps aux输出(11 列、COMMAND 从第 10 列起可能含空格需重连),而采集脚本用的是ps -eo pid,pcpu,pmem,comm --sort=...的列式输出——两者互补:脚本用于快速巡检热点进程,list_processes工具则提供结构化的全量进程视图供后续定位。

输出与落地:报告格式与推荐规则

最终交付物是聊天中的一份紧凑报告(SKILL.md Step 4 给出了模板:机型/OS 版本、总分与评定、Storage/Memory/Battery/Maintenance/Startup/Right now 六行 🟢🟡🔴 摘要,再加 3–5 条按收益排序的 Top recommendations)。Linux 上的典型映射包括:uptime 超过 30 天 → 建议重启(最高性价比);磁盘可用低于 15% → 优先列出实测到的最大可回收桶;有大量待升级包 → 升级 + 缓存清理;电池最大容量低于 80% → 说明损耗属正常现象、影响续航时考虑电池服务。

贯穿始终的原则是 SKILL.md 的“Don't assume — measure”:每次都必须真实运行命令并报告真实数字,绝不虚构容量、循环次数或状态;输出要限界(head等);隐私上只读本地系统元数据,不外传。Linux 参考文档与 macOS、Windows 两份姊妹文档保持同构,因此无论宿主是什么系统,最终报告结构都完全一致。

使用前提与限制

  • 本命令集面向常见发行版(Debian/Ubuntu、Fedora、Arch)的 bash 环境;包管理器检测按apt → dnf → pacman分支,其他发行版(如 openSUSE 的 zypper)不会被统计。
  • 部分工具(smartctl、upower)可能缺失或需要 root,采集时会优雅跳过并如实标注“未提权不可用”。
  • 清理动作中所有需要 root 的命令(包缓存清理、系统升级)都只能建议,由用户在终端自行执行。
  • 技能依赖 Desktop Commander 的本地持久化 shell;其安装与配置方式见仓库 README.md 与 插件目录。
  • 人工智能
  • MCP 服务
  • AI Agent
  • 开发工具

【免费下载链接】ClaudeComputerCommander

This is MCP server for Claude that gives it terminal control, file system search and diff file editing capabilities

项目地址:https://gitcode.com/GitHub_Trending/cl/ClaudeComputerCommander
点击查看免费下载

相关推荐

上一篇:使用 Rube MCP 自动化 Wachete 网页监控:awesome-codex-skills 实战指南
下一篇:GetQzonehistory:免费完整备份QQ空间历史说说

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 13:26:06

OSI会话层到底管什么?与TCP的边界及抓包实战解析

学网络的人几乎都背过那句口诀&#xff1a;“物理链路网络传输&#xff0c;会话表示应用”&#xff0c;但大多数人背到“会话”这一层就卡住了。前四层好理解&#xff0c;网线、交换机、IP地址、TCP重传&#xff0c;都有实打实的现象可以抓&#xff1b;后两层也不难&#xff0c…

作者头像 李华
网站建设 2026/10/2 13:24:27

OPCUA与OPCServer通讯测试客户端:从连不上到跑通

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/2 13:24:16

批处理脚本实战指南:从变量循环到计划任务的自动化技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/2 13:24:15

系统错误代码别硬背:从Win32到HRESULT,掌握排查链路才是关键

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/2 13:24:14

低成本搭建GB28181监控平台:海康设备接入实战与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华