命令简介
lshw
(list hardware)是一款用于提取机器硬件配置详细信息的工具,支持报告内存配置、固件版本、主板信息、CPU 参数、缓存结构、总线速度及各类外设(如 PCI、USB、SCSI 设备)等。它通过读取系统文件(如 /proc
、/sys
)和硬件接口(如 DMI、PCI 配置空间)收集数据,适用于系统硬件 Inventory、硬件诊断和配置核查,需以超级用户(root) 运行以获取完整信息(普通用户仅能查看部分数据)。
其核心功能是:
- 硬件信息提取:显示内存配置、固件版本、主板信息、CPU规格、缓存、总线速度等。
- 多格式输出:支持 HTML、XML、JSON、精简格式(
-short
)和总线信息格式(-businfo
)。 - 硬件分类过滤:按硬件类别(如磁盘、网络)筛选输出。
- 动态测试控制:启用或禁用特定硬件检测模块(如 DMI、PCI、USB)。
适用于:
- 系统管理员排查硬件兼容性问题。
- 开发人员调试设备驱动或硬件相关功能。
- 生成硬件清单用于库存管理或故障报告。
命令语法
lshw [选项] [硬件类别...]
核心功能
1. 硬件信息全面提取
- 主板与固件:BIOS/UEFI 版本、主板型号。
- CPU 信息:型号、核心数、频率、缓存。
- 内存:容量、类型(DDR4/DDR5)、序列号。
- 存储设备:磁盘型号、接口(SATA/NVMe)、RAID 控制器。
- 网络与总线:网卡、PCI/USB 设备、SCSI 设备。
- 虚拟化支持:检测虚拟化平台(如 KVM、VMware)。
2. 多格式输出
- HTML/XML/JSON:结构化数据输出,适合自动化处理。
- 精简格式(
-short
):类似 HP-UX 的ioscan
,显示硬件路径。 - 总线信息(
-businfo
):显示设备的总线地址(如 PCI、USB 路径)。
3. 硬件分类过滤
- 通过
-class
或-C
按类别筛选输出,如:disk
:磁盘设备。network
:网络接口。storage
:存储控制器。
4. 动态测试控制
- 启用/禁用检测模块:如
-enable dmi
启用 DMI 检测,-disable usb
禁用 USB 检测。 - 敏感信息过滤:
-sanitize
移除序列号、IP 地址等隐私数据。
参数详解
选项 | 功能 |
---|---|
-version | 显示版本并退出。 |
-help | 显示帮助信息并退出。 |
-X | 启动图形界面(GUI,若可用)。 |
-html | 以 HTML 格式输出硬件树。 |
-xml | 以 XML 格式输出硬件树。 |
-json | 以 JSON 格式输出硬件树。 |
-short | 显示精简硬件路径列表。 |
-businfo | 显示设备的总线信息(如 PCI、USB 地址)。 |
-dump filename | 将信息导出为 SQLite 数据库文件。 |
-class class | 仅显示指定类别的硬件(支持多个 -class )。 |
-C class | class 的别名(简化写法)。 |
-enable test | 启用指定检测模块(如 dmi , pci , usb )。 |
-disable test | 禁用指定检测模块(如 network )。 |
-sanitize | 移除敏感信息(IP、序列号等)。 |
-numeric | 显示 PCI/USB 设备的数字 ID。 |
-quiet | 不显示状态信息。 |
使用示例
示例 1:默认输出(完整硬件树)
sudo lshw
- 输出类似:
H/W path Device Class Description ================================================= /0 system To Be Filled By O.E.M. /0/0 memory 64KiB BIOS /0/1 processor Intel(R) Core(TM) i7-9750H /0/100 memory 16GiB DIMM DDR4 2400 MHz /0/100/0 disk 512GB Samsung SSD 970 EVO
示例 2:精简格式输出
sudo lshw -short
- 输出类似:
H/W path Device Class Description /0 system To Be Filled By O.E.M. /0/0 memory BIOS /0/1 processor Intel(R) Core(TM) i7-9750H /0/100/0 disk Samsung SSD 970 EVO
示例 3:按类别过滤硬件
sudo lshw -class disk -class network
- 仅显示磁盘和网络接口信息。
示例 4:生成 HTML 报告
sudo lshw -html -dump hardware_report.html
- 生成包含硬件信息的 HTML 文件。
示例 5:禁用 DMI 检测
sudo lshw -disable dmi
- 不使用 DMI/SMBIOS 数据检测硬件。
注意事项
-
权限要求
- 需 root 权限(通过
sudo
)才能获取完整硬件信息,否则部分数据缺失。
- 需 root 权限(通过
-
BUG 与已知问题
- 不支持 Firewire(IEEE1394)设备检测。
- 部分架构(如 ARM)的 CPU 检测不完全。
- IDE 接口模拟的 SCSI 设备可能报告错误。
-
输出稳定性
- XML/JSON 格式可能随版本变化,脚本中需谨慎依赖。
-
敏感信息保护
- 使用
-sanitize
避免泄露 IP 地址、序列号等隐私数据。
- 使用
-
硬件兼容性
- 支持 DMI-capable x86/IA-64、部分 PowerPC(如 PowerMac G4),其他架构支持有限。
退出状态码
状态码 | 含义 |
---|---|
0 | 成功 |
1 | 权限不足或无法访问硬件信息 |
2 | 无效选项或参数错误 |
>2 | 其他错误(如内存不足) |
典型应用场景
-
硬件审计
- 生成 HTML/XML 报告,记录服务器或工作站的硬件配置。
-
故障排查
- 检查内存、存储控制器或网卡型号是否兼容驱动。
-
虚拟化环境验证
- 确认虚拟机是否识别到虚拟化平台(如 KVM、VMware)的硬件模拟。
-
自动化脚本
- 使用 JSON/XML 格式解析硬件信息,实现自动化配置(如生成资产清单)。
-
敏感数据清理
- 通过
-sanitize
导出无隐私信息的硬件报告供共享。
- 通过