Linux lshw 命令 | 硬件信息查询 / 应用

注:本文为“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仅显示指定类型的硬件(如 memoryprocessornetwork 等)
-C CLASS等同于 -class CLASS
-c CLASS等同于 -class CLASS
-enable TEST启用特定测试项(如 dmipciusb 等)
-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 系统中,常用的硬件查询命令还包括 lspcilsusblsblk 等,它们与 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"

七、注意事项

  1. 权限问题:部分硬件信息需要 root 权限才能完整获取,普通用户执行时可能会看到"WARNING: you should run this program as root"的提示。
  2. 输出格式选择:若需要机器可读的格式,建议使用 XML 或 JSON;若需要可视化展示,HTML 格式更为合适。
  3. 敏感信息处理:在公开硬件报告前,建议使用 -sanitize 选项移除序列号、MAC 地址等敏感信息。
  4. 性能影响:执行 lshw 命令时会遍历系统硬件,在大型服务器上可能需要几秒到几十秒的时间。

八、总结

lshw 作为 Linux 系统中功能最全面的硬件信息查询工具,能够帮助系统管理员和开发者快速获取完整的硬件配置信息。通过灵活运用其选项和参数,不仅可以查看基础硬件信息,还能实现敏感信息清理、特定硬件筛选、测试数据收集等高级功能。在系统部署、故障诊断、性能优化等场景中,lshw 都是不可或缺的实用工具。

如需获取更多帮助,可通过以下命令查看官方文档:

man lshw  # 查看详细手册
lshw -h    # 查看简要帮助

via:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值