注:本文为“Linux lshw ”相关合辑。
略作重排,如有内容异常,请看原文。
lshw 命令:Linux 系统硬件信息查询
一、lshw 命令概述
lshw(List Hardware 的缩写)是 Linux 系统中用于提取硬件配置详细信息的强大工具。它能够全面展示计算机的硬件组成,包括内存配置、固件版本、主板信息、CPU 规格、缓存参数、总线速度等关键硬件参数,并且支持将结果输出为 HTML、XML、JSON 等多种格式,便于用户查看和分析。
1.1 工作原理
lshw 工具的核心原理是读取 /proc
目录下的系统文件来获取硬件信息。以下是一些关键的信息源文件:
/proc/cpuinfo
:存储 CPU 详细信息/proc/bus/pci
:记录 PCI 设备信息/proc/scsi
:包含 SCSI 设备信息/proc/net/dev
:存储网络设备信息/proc/memoryinfo
:记录内存状态信息
1.2 适用范围
lshw 适用于所有主流 Linux 发行版,包括但不限于:
- RedHat/CentOS
- Ubuntu/Debian
- Arch Linux
- Fedora
- openSUSE
二、安装 lshw 命令
如果系统中未预装 lshw 命令,可根据不同的 Linux 发行版使用以下命令安装:
2.1 基于 Debian/Ubuntu 的系统
sudo apt install lshw -y
2.2 基于 CentOS/RHEL 的系统
sudo yum install lshw -y
2.3 基于 Fedora 的系统
sudo dnf install lshw
2.4 基于 Arch Linux 的系统
sudo pacman -S lshw
三、lshw 命令语法与选项
3.1 基本语法
lshw [选项] [参数]
注意:执行 lshw 命令时,建议使用 root 权限以获取完整的硬件信息。
3.2 输出格式选项
选项 | 说明 |
---|---|
-html | 以 HTML 格式输出硬件信息 |
-xml | 以 XML 格式输出硬件信息 |
-json | 以 JSON 格式输出硬件信息 |
-short | 输出简洁的硬件路径信息 |
-businfo | 显示总线信息(如 SCSI、USB 等) |
3.3 功能控制选项
选项 | 说明 |
---|---|
-class CLASS | 仅显示指定类型的硬件(如 memory 、processor 、network 等) |
-C CLASS | 等同于 -class CLASS |
-c CLASS | 等同于 -class CLASS |
-enable TEST | 启用特定测试项(如 dmi 、pci 、usb 等) |
-disable TEST | 禁用特定测试项 |
-quiet | 静默模式,不显示状态信息 |
-sanitize | 移除敏感信息(如 IP 地址、序列号等) |
-numeric | 显示 PCI/USB 设备的数字 ID |
-notime | 从输出中排除时间戳等易变属性 |
3.4 高级功能选项
选项 | 说明 |
---|---|
-dump filename | 将硬件信息存入 SQLite 数据库 |
-version | 显示 lshw 命令版本信息 |
四、lshw 命令使用实例
4.1 以 HTML 格式输出完整硬件信息
[root@localhost ~]# lshw -html
输出示例(部分内容):
<div class="indented">
<table width="100%" class="node" summary="attributes of input:4">
<thead><tr><td class="first">id:</td><td class="second"><div class="id">input:4</div></td></tr></thead>
<tbody>
<tr><td class="first">product: </td><td class="second">spice vdagent tablet</td></tr>
<tr><td class="first">physical id: </td><td class="second"><div class="id">5</div></td></tr>
<tr><td class="first">logical name: </td><td class="second"><div class="id">/dev/input/event5</div></td></tr>
</tbody>
</table>
</div>
4.2 显示硬件设备的总线信息
[root@localhost ~]# lshw -businfo
输出示例:
Bus info Device Class Description
========================================================
system Standard PC (Q35 + ICH9, 2009)
bus Motherboard
cpu@0 processor Intel Xeon Processor (Cooperlake)
pci@0000:00:01.0 /dev/fb0 display QXL paravirtual graphic card
pci@0000:01:00.0 network Virtio network device
virtio@0 enp1s0 network Ethernet interface
4.3 查看内存硬件详细信息
[root@localhost ~]# lshw -c memory
输出示例:
*-firmware
description: BIOS
vendor: SeaBIOS
physical id: 0
version: 1.14.0-2
size: 96KiB
*-memory
description: System Memory
physical id: 1000
size: 1536MiB
capacity: 1536MiB
capabilities: ecc
*-bank
description: DIMM RAM [empty]
vendor: QEMU
slot: DIMM 0
4.4 查看网络硬件并清理敏感信息
[root@localhost ~]# lshw -c network -sanitize
该命令会显示网络设备信息,并将序列号、IP 地址等敏感信息替换为 REMOVED
。
五、lshw 与其他硬件查询命令的对比
在 Linux 系统中,常用的硬件查询命令还包括 lspci
、lsusb
、lsblk
等,它们与 lshw 的区别如下:
命令 | 功能特点 |
---|---|
lshw | 全面获取系统所有硬件信息,支持多种格式输出,功能最全面 |
lspci | 专用于查询 PCI/PCIe 设备信息 |
lsusb | 专用于查询 USB 设备信息 |
lsblk | 专用于查询块设备(如硬盘、分区)信息 |
dmidecode | 用于读取 DMI(桌面管理接口)获取主板、BIOS 等信息 |
六、高级应用场景
6.1 硬件性能基准测试
lshw 不仅可以查询硬件信息,还能通过特定选项进行简单的硬件基准测试(benchmark),例如:
lshw -enable memory -enable cpuinfo
该命令会启用内存和 CPU 信息的详细测试,输出包括缓存性能、内存带宽等基准数据。
6.2 硬件信息归档
将硬件信息保存为数据库或文件,便于系统维护和故障排查:
# 保存为 SQLite 数据库
lshw -dump hardware.db
# 保存为 HTML 文件
lshw -html > hardware_report.html
6.3 脚本自动化获取硬件信息
在 shell 脚本中使用 lshw 命令获取硬件信息,例如提取 CPU 型号:
#!/bin/bash
cpu_model=$(lshw -class processor 2>/dev/null | grep "product" | awk '{print $2}')
echo "CPU 型号: $cpu_model"
七、注意事项
- 权限问题:部分硬件信息需要 root 权限才能完整获取,普通用户执行时可能会看到"WARNING: you should run this program as root"的提示。
- 输出格式选择:若需要机器可读的格式,建议使用 XML 或 JSON;若需要可视化展示,HTML 格式更为合适。
- 敏感信息处理:在公开硬件报告前,建议使用
-sanitize
选项移除序列号、MAC 地址等敏感信息。 - 性能影响:执行 lshw 命令时会遍历系统硬件,在大型服务器上可能需要几秒到几十秒的时间。
八、总结
lshw 作为 Linux 系统中功能最全面的硬件信息查询工具,能够帮助系统管理员和开发者快速获取完整的硬件配置信息。通过灵活运用其选项和参数,不仅可以查看基础硬件信息,还能实现敏感信息清理、特定硬件筛选、测试数据收集等高级功能。在系统部署、故障诊断、性能优化等场景中,lshw 都是不可或缺的实用工具。
如需获取更多帮助,可通过以下命令查看官方文档:
man lshw # 查看详细手册
lshw -h # 查看简要帮助
via:
-
lshw 命令详解-优快云博客
https://blog.youkuaiyun.com/weixin_45067241/article/details/127528677-
lshw 命令详解-优快云博客
https://blog.youkuaiyun.com/phmatthaus/article/details/109443056 -
lshw命令 - Linux命令大全 | linux教程
https://linux265.com/course/linux-command-lshw.html
-
-
Linux lshw 命令(lshw 指令)(List Hardware,获取底层硬件信息)(查询硬件信息)-优快云博客
https://blog.youkuaiyun.com/Dontla/article/details/134782032