以文本或 JSON 汇总硬件、系统、存储、显示和外设信息。
system_profiler 是“系统信息”App 的命令行版本。传入数据类型名只采集对应部分,例如 SPHardwareDataType、SPSoftwareDataType、SPStorageDataType、SPDisplaysDataType、SPUSBDataType;不带参数会扫描全部,速度很慢。-json 输出机器可读结果,-detailLevel mini 降低细节,-timeout 防止个别外设拖住整次采集。
边界:它依赖 IOKit 驱动和系统服务,SSH、Recovery 或外设休眠时部分字段会缺失;某些网络和存储详情还受权限限制。要实时排查硬件报错,ioreg、log show 更直接;system_profiler 更适合资产盘点、写脚本和给支持人员收集信息。
# 1. 机型、芯片、内存和序列号
% system_profiler SPHardwareDataType
# 2. 系统版本、内核版本、启动模式和计算机名
% system_profiler SPSoftwareDataType
# 3. 磁盘容量、文件系统和 APFS 容器
% system_profiler SPStorageDataType
# 4. 转成 JSON 再用 jq 取字段,避免解析本地化文本(jq 需另行安装)
% system_profiler -json SPHardwareDataType | jq '.SPHardwareDataType[0]'
# 5. 快速列出 USB 设备,降低细节以加快速度
% system_profiler -detailLevel mini SPUSBDataType
# 6. 查看有哪些数据类型可采,避免无参数全量扫描
% system_profiler -listDataTypes | head -30
system_profiler 会扫描所有类型,可能要几十秒;脚本里始终指定数据类型。-json 配合 jq。processor_name,后者是 chip;脚本要兼容缺失字段。-timeout。sw_vers — 只取 macOS 版本,轻量。sysctl — 读取 CPU、内存等内核参数。lscpu、lsblk — 对照硬件与块设备查询。systeminfo — 对照系统信息命令。合上页面,先回答,再展开对照。
system_profiler?SPHardwareDataType 等类型。-json;文本输出的字段顺序、本地化文案和空白都可能变化,JSON 结构更稳定。processor_name,Apple Silicon 用 chip;脚本按字段是否存在做回退,不要硬编码单一键。
小程序版
微信扫码,随时查命令