商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Linux怎么查看系统硬件信息_Linux lshw和dmidecode命令教程【技巧】

Linux怎么查看系统硬件信息_Linux lshw和dmidecode命令教程【技巧】

  发布于2026-05-24 阅读(0)

扫一扫,手机访问

想在Linux系统里摸清硬件的“家底”,却发现命令要么权限不够,要么信息不全?这确实是不少运维和开发者会遇到的小麻烦。其实,获取一份全面、准确的硬件配置清单,关键在于组合使用特权与非特权命令,让它们各司其职。

Linux怎么查看系统硬件信息_Linux lshw和dmidecode命令教程【技巧】

简单来说,一个高效的排查流程可以这样展开:先用sudo lshw查看完整的硬件拓扑;再用sudo dmidecode读取BIOS/UEFI的底层数据;接着用lscpu快速掌握CPU架构细节;之后用lsblklsscsi配合识别存储路径;最后,通过udevadmsmartctl精准获取硬盘序列号。下面我们就来拆解每一步。

一、使用lshw查看完整硬件拓扑

lshw这个工具非常强大,它通过读取/sys/proc等内核接口来收集设备信息。但这里有个关键点:它必须以root权限运行。如果不用sudo,很多关键数据,比如内存插槽的实际容量、CPU的序列号、磁盘的WWN(全球名称)以及固件版本,都会直接“隐身”。它的输出是树状结构,设备之间的层级关系一目了然。

1. 如果你的系统还没安装lshw,可以先装上:在Debian或Ubuntu上,用sudo apt install lshw;在RHEL或CentOS上,则是sudo yum install lshw

2. 想快速浏览所有硬件的概要信息?试试sudo lshw -short,输出简洁明了。

3. 如果只关心CPU信息,可以指定类别并精简输出:sudo lshw -class cpu -short

4. 需要生成一份报告存档或分享给同事?导出为HTML格式是个好主意:sudo lshw -html > hardware.html

二、使用dmidecode读取BIOS/UEFI固件层硬件数据

如果说lshw是从内核的视角看硬件,那么dmidecode就是直接“问询”BIOS/UEFI固件。它绕过内核驱动,直接解析SMBIOS表,能挖出主板序列号、OEM厂商信息、内存条的SPD参数以及处理器插槽类型等底层物理属性。不过要注意,这个工具主要适用于x86/x64架构,在ARM平台上通常不可用

1. 查看整机系统信息,包括制造商、型号和序列号:sudo dmidecode -t system

2. 提取主板的关键字段,比如制造商和型号:sudo dmidecode -t baseboard | grep -E "Manufacturer|Product Name"

3. 列出每一根内存条的位置、标称容量和速度:sudo dmidecode -t memory | grep -E "Size|Speed|Locator"

4. 确认BIOS版本和发布日期:sudo dmidecode -t bios | grep -E "Version|Release Date"

三、使用lscpu快速获取CPU架构细节

对于CPU信息,lscpu是个专精且高效的工具。它无需特权即可运行,输出内容精炼,非常适合快速确认逻辑核心数、线程分布、缓存层级以及超线程是否启用。当然,它的局限在于不提供物理插槽位置或序列号这类底层信息。

1. 显示CPU的全部属性,直接运行lscpu即可。

2. 只想提取物理CPU数量、每颗CPU的核心数和线程数?用这个命令:lscpu | grep -E "Socket|Core|Thread"

3. 检查超线程是否启用:lscpu | grep "Thread(s) per core"。如果输出是“1”,那就没启用;如果是“2”或更高,说明已经启用了。

四、组合lsblk与lsscsi识别存储设备物理连接路径

存储设备的管理有时会让人困惑,特别是当你想知道某个分区到底对应哪块物理硬盘时。lsblk擅长展示块设备的挂载关系和分区结构,而lsscsi则能提供SCSI、SATA、NVMe设备的总线地址、厂商型号及控制器标识。两者一结合,定位问题就清晰多了。

1. 列出所有块设备,并显示文件系统类型和挂载点:lsblk -f

2. 显示NVMe与SATA设备的SCSI总线地址及厂商型号:sudo lsscsi -v

3. 查询指定分区(例如/dev/sda1)对应的物理磁盘型号与序列号(这需要udev支持):lsblk -o NAME,TRAN,MODEL,SERIAL /dev/sda1

五、使用udevadm与smartctl精准获取硬盘序列号

硬盘序列号的获取有时会是个小坑。在虚拟化环境或部分SATA硬盘上,/sys/block/*/device/serial这个路径常常是空的。而对于NVMe硬盘,序列号压根就不在块设备节点里。这时候,就需要更可靠的工具出马了。

1. 通过udev系统获取设备的唯一标识,这包含了厂商、型号和序列号:sudo udevadm info --name=/dev/sda | grep ID_SERIAL

2. 对于NVMe设备,使用smartctl直接读取控制器级别的序列号(需要提前安装smartmontools包):sudo smartctl -i /dev/nvme0n1 | grep "Serial Number"

3. 顺带验证磁盘的健康状态,同时也能看到序列号信息:sudo smartctl -a /dev/sdb | head -20

这样一来,从整体拓扑到最底层的序列号,一套组合拳下来,Linux系统的硬件配置也就基本了然于胸了。记住,没有哪个命令是万能的,但把它们搭配起来用,效率就会高得多。

本文转载于:https://www.php.cn/faq/2376267.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注