运维接手新机器,先把 CPU、内存、磁盘和内核版本摸清楚。所有命令在 Ubuntu 24.04 上实测通过。
1. CPU 与内核信息
lscpu 从 sysfs、/proc/cpuinfo 和架构库汇总 CPU 架构信息,输出字段包括核心数、线程、Socket、NUMA 节点和缓存 [1]。uname -a 则输出内核版本、架构和主机名,适合快速确认系统身份 [5]。
lscpu
uname -a
# 只看型号与核心数
lscpu | grep -E "Model name|CPU\(s\)|Core"
2. 内存、磁盘与文件系统
free -h 以人类可读单位显示物理内存与 Swap,available 列才是应用能实际使用的内存,比 free 列更准确 [4]。lsblk 读取 sysfs 和 udev 数据库列出块设备树,加 -d 只看整盘、不看分区 [3]。
free -h
lsblk -d -o NAME,SIZE,TYPE,MOUNTPOINT
df -h /
3. 完整硬件树
lshw -short 输出精简硬件清单,包括内存、处理器、磁盘和网卡 [2]。
lshw -short
在 WSL2 里可以看到虚拟磁盘和 Virtio 网卡;dmidecode 需要真实 SMBIOS 表,WSL 与多数云虚拟机无此接口,会报错。
4. 原始 proc 文件
/proc/cpuinfo 和 /proc/meminfo 是内核直接暴露的原始数据,适合脚本解析 [6]。
grep "model name" /proc/cpuinfo | head -1
head -5 /proc/meminfo
5. 排错速查、回滚与局限性
| 现象 | 原因 | 处理 |
|---|---|---|
| lshw 输出只有 system | 缺少 pciutils 或 udev | apt-get install pciutils usbutils |
| lsblk 无 TYPE 列 | udev 数据库缺失 | 重新加载 udev 或重启 |
| free 显示 available 很低 | 内存耗尽且缓存未回收 | sync; echo 3 > /proc/sys/vm/drop_caches(会丢缓存,短时性能下降) |
| dmidecode 报 no entry point | 运行在容器/WSL/云虚拟机 | 用 lscpu + lshw 替代 |
所有命令均为只读,无副作用,无需回滚。
- WSL2 中
dmidecode无法读取 SMBIOS,DMI 表相关命令失效。 - 部分云服务器会屏蔽 /proc/cpuinfo 部分字段,
lscpu仍是更稳定的选择。 - NVMe 健康状态需
nvme-cli,不在本文范围内。
6. 实测记录
- 机器:WSL2 Ubuntu-24.04
- 内核:6.6.114.1-microsoft-standard-WSL2
- CPU:12th Gen Intel Core i7-12700H
- 内存:7.6 GiB
- 日期:2026-11-01
- 结果:lscpu / uname / lsblk / free / lshw / df 均正常输出,dmidecode 报 no entry point
参考资料
- [1] lscpu(1) – Linux manual page(lscpu-man)
- [2] lshw(1) – Debian bookworm manual page (Ubuntu 无同名 man7 页)(lshw-man)
- [3] lsblk(8) – Linux manual page(lsblk-man)
- [4] free(1) – Linux manual page(free-man)
- [5] uname(1) – Linux manual page(uname-man)
- [6] proc_cpuinfo(5) – Linux manual page(proc-cpuinfo)
文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。