最可靠方式是结合系统日志数据库和诊断报告目录:运行log show --predicate 'eventMessage contains "Previous shutdown cause"'查崩溃标记,再用ls -t /Library/Logs/DiagnosticReports/*.{panic,diag}列出所有内核崩溃报告。
直接用终端命令查所有历史内核崩溃记录,最可靠的方式是结合系统日志数据库和诊断报告目录,而不是依赖单一命令——因为 macos 的崩溃信息分散在不同位置,需分层提取。
查系统日志中所有关机与崩溃诱因
内核崩溃(Kernel Panic)发生后,系统会在日志中留下“Previous shutdown cause”字段,这是最直接的崩溃标记:
- 运行:log show --predicate 'eventMessage contains "Previous shutdown cause"' --info --debug,可拉取全部历史记录(不限时间)
- 若只想看最近7天:加参数 --last 7d;想看具体某天:用 --start "2026-04-20" --end "2026-04-21"
- 结果中每条都含十六进制关机代码(如 5 表示过热关机,3 表示内核不可恢复错误),这就是崩溃证据
定位并列出所有已生成的 Kernel Panic 报告文件
每次内核崩溃,系统都会自动生成一个 .panic 或 .diag 格式的诊断报告,统一存放在系统报告目录:
- 执行:ls -t /Library/Logs/DiagnosticReports/*.{panic,diag} 2>/dev/null,列出所有内核级崩溃报告
- 加上 | head -n 10 可只看最新的10个;加 | wc -l 能统计总数
- 注意:这些文件需要管理员权限才能访问,若提示 Permission denied,请在命令前加 sudo
快速查看某次崩溃报告的核心内容
不用打开完整文件,用命令提取关键段落即可判断是否为内核崩溃:
- 例如查看最新一个 .panic 文件的摘要:tail -n +10 /Library/Logs/DiagnosticReports/*.panic | head -n 50
- 更精准地搜索崩溃触发点:grep -A 5 -B 5 "panic\|kernel panic\|backtrace" /Library/Logs/DiagnosticReports/*.panic 2>/dev/null
- 若看到 Machine Check Architecture、IORegistry 或大量 kernel_task 调用栈,基本可确认是内核级问题
不需要手动翻找图形界面,这几条命令组合起来就能把所有内核崩溃痕迹一次性捞出来。重点盯住 shutdown cause 值和 .panic 文件名里的日期,比看日志流更省力。


















