上一节课我们介绍了 Linux 桌面系统,其操作逻辑与 Windows 相近,上手较为轻松。Windows 可通过控制面板查看计算机硬件信息,Linux 桌面也具备类似的可视化功能,操作简单易懂,无需讲解大家就会使用。本节课我们将重点讲解:如何通过 Linux 命令行方式查看与获取硬件信息。
很多人觉得Linux命令晦涩难记,其实只要搞懂每个命令的含义,再加上命令参数,就能迅速获取CPU、内存、硬盘、显卡、网卡等硬件的详细信息。
一、进入命令行环境
启动Ubuntu操作系统,进入图形桌面环境。在桌面环境下打开命令行界面有两种方式:
1、打开图形终端:点击左侧启动栏左下角“显示应用”图标,打开应用列表,应用列表内会显示“终端”程序图标,若没有显示,在搜索框中输入终端或 Terminal,系统会自动匹配出终端程序,点击终端图标,即可打开终端窗口。也可直接使用快捷键 Ctrl + Alt + T 快速启动。
2、进入纯文本控制台:按下快捷键 Ctrl + Alt + F3~F6 中任意一组,即可切换到全屏纯字符控制台界面;如需返回图形桌面,按 Ctrl + Alt + F1 即可。
注意:大部分硬件查询命令需要管理员权限,普通用户需要在命令前面加sudo,用于提升执行权限,不需要管理员权限的命令就可以省略sudo。
需要管理员权限的命令,一般会显示“Permission denied”信息。参考下图:
二、硬件查询命令
Linux提供了方便实用的硬件查询命令,下表是常用的硬件查询命令。下面结合硬件查询对设备硬件做一些简单介绍,目的是让大家能看懂硬件信息。
表格1 常用硬件查询命令
查看对象 | 命令 | 作用说明 |
整机硬件概览 | lshw -short
| 精简显示所有硬件层级信息 |
| sudo lshw
| 输出完整详细硬件信息 |
CPU | lscpu
| 查看 CPU 架构、核心、线程数 |
内存 | free
| 查看内存总容量及使用情况 |
磁盘 | lsblk
| 查看磁盘、分区、挂载点 |
| df -h
| 查看磁盘挂载与使用率 |
| sudo fdisk -l
| 查看磁盘分区详细信息 |
显卡 | lspci | grep -i vga
| 查看显卡型号 |
网卡 / 网络 | ip addr
| 查看网卡名称、IP、MAC 地址 |
主板 / BIOS | sudo dmidecode -t baseboard
| 查看主板型号 |
三、 lshw命令
lshw是查询计算机所有硬件信息的命令,执行命令后会显示很多硬件信息内容,内容量较大,往往需要在命令行窗口滚动多屏进行内容查看,不便于快速定位目标硬件信息。
直接在终端或控制台输入下面的命令(自己输入命令,不要复制和粘贴):
回车执行该命令,您将看到一个长而详细的硬件信息。包括整机的基本身份信息、处理器的核心规格、内存的概况、显示和屏幕信息、磁盘信息等相关硬件内容。
lshw 输出信息非常,为了快速定位要查看的硬件信息,我们可以结合参数使用:
查看特定类型硬件:使用 -C 参数指定类别。
命令会输出每个 CPU 核心的详细独立信息,包括物理核心、逻辑核心(超线程)都会分别展示。若当前计算机 CPU 核心数为 12,核心编号依次为 cpu:0、cpu:1……,下图中第一张为 cpu:0 的信息,第二张为 cpu:1 和 cpu:2 的信息。
输出为简短摘要:使用 -short 参数,只显示核心型号和容量,一目了然。
执行命令后,输出信息如下图所示。

硬件信息以表格的形式列出。
第1列(H/W)path:硬件路径
硬件路径(Hardware Path,也叫设备树路径)是 Linux 用树形结构描述硬件设备在系统中位置的唯一标识,就像给每个硬件设备分配了一个 “家庭住址”,用来清晰表达设备的层级关系。
Linux 把所有硬件设备组织成一棵设备树(Device Tree):
最顶层 / 代表整个计算机系统(根节点)
下一级节点代表主板、CPU、总线等核心组件
再往下是挂载在总线上的设备(如内存、磁盘、网卡)
路径中的每一段 / 都代表一层父子关系
以上图的/0/1/0为例:
l/0:系统根节点下的第 0 个设备(通常是主板 / 平台总线)
l/0/1:在第 0 个设备下的第 1 个子设备(这里是 CPU 处理器)
l/0/1/0:在 CPU 下的第 0 个子设备(这里是 CPU 的 L1 缓存)
第2列(Device):设备
Device 是设备的类型标签,它告诉你 “这是什么类型的设备”(比如是处理器、内存、磁盘还是网卡)。无Device名的是系统级/总线级的顶层设备,没有具体的 “设备名”,直接用 Class 来区分。
第3列(Class):类别
Class(类别)是 Linux 系统对硬件进行功能分类的通用标识,用来告诉系统这台设备是用来做什么的,无论设备的品牌、型号如何,只要功能一致,就会被打上同一个 Class 标签。
第4列(Description):描述
描述设备的型号、规格、版本或具体用途。
四、查看CPU命令
lscpu是专门查看CPU的命令,如果说lshw是综合查询命令,则lscpu是专业查询命令,它可以用来快速了解处理器的核心数、架构、主频、线程数等关键参数。
直接在终端或控制台输入下面的命令(自己输入命令,不要复制和粘贴):
执行命令后,会显示如下图所示的内容。

上图列出了CPU的主要信息。
CPU基础架构信息
该CPU是x86架构,普通家用计算机一般采用的都是x86架构。除了x86架构外,主流的CPU还有ARM架构,ARM架构多用于手机和嵌入式设备。
Address sizes CPU 所能寻址的最大物理地址位数,即 CPU 内存控制器最多能识别 2^45 字节的物理内存。为什么不是2^45 字节的物理内存呢?主要用于平衡成本与功耗,64 位物理地址需要更复杂的内存控制器、页表和缓存设计,会大幅增加芯片面积、功耗和成本,而消费级场景根本用不到这么大的内存。
字节序是字节在多字节数据在内存中存储的顺序,也就是当一个数据(比如 int、long 等)需要占用多个字节时,这些字节在内存地址里是怎么排列的。x86架构默认是小端字节顺序,低字节存放在低地址,高字节存放在高地址。
CPU核心与线程信息
CPU:2表示系统中可用的逻辑 CPU 总数为 2。逻辑CPU是操作系统可调度执行线程的最小 CPU 单元,也称为逻辑核心或线程。当无超线程时,逻辑CPU就等于物理核心数。一般情况下,逻辑 CPU 数 ≥ 物理核心数,它代表系统能同时并行执行的线程数量上限。
在线CPU列表:系统当前可用的逻辑 CPU 的编号清单。例如第0号、第1号。
CPU 型号与厂商
厂商ID:GenuineIntel是值英特尔(Intel)处理器。
型号:具体型号为 Intel Core Ultra 5 225H。
CPU系列:用于标识 CPU 微架构和生产版本的内部编号。
CPU还有其它参数,这里就不一一介绍了。
五、查看内存命令
当你需要关心计算机内存大小及内存使用情况时,就可以使用free命令。
直接在终端或控制台输入下面的命令(自己输入命令,不要复制和粘贴):
执行命令后,会显示如下图所示的内容。

上图列出了当前计算机的内存空间及使用情况。
total列:列出计算机的总物理内存,为3.96G,因为系统安装在虚拟机上,因此显示的是分配给虚拟机的总物理内存大小。交换内存是系统硬盘上划分出来的一块空间,当物理内存不够用时,系统会把暂时不用的数据挪到这里。
used列:当前系统实际占用的内存总量,已使用大约1.84G,交换内存仅使用124KB,说明当前物理内存完全够用,不需要使用硬盘交换空间,系统运行非常流畅。
free列:完全未被使用的纯空闲内存,大约0.11GB,数值很小是正常的,因为 Linux 会尽量利用空闲内存做缓存。交换内存大约3.76G,说明交换区还有很大的存储空间。
shared列:共享内存,通常是存储临时文件的内存。
buff/cache列:缓存大小,这是 Linux 为了提高文件读写效率,占用的空闲内存作为缓存。
available列:可用内存,大约2.3GB,它代表了系统真实认为还可以分配给新进程使用的内存。目前可用内存约 2GB,说明系统运行状态良好,内存空间充足。
磁盘命令
关于磁盘命令,我准备专门拿出一节课来讲解Linux 磁盘管理相关命令。磁盘作为系统存储核心,从分区、格式化、挂载到空间查看、磁盘检测,都是运维与日常使用的核心技能。
六、显卡命令
查看显卡配置,可以使用lspci命令,该命令会列出系统中所有 PCI/PCIe 总线设备(显卡、网卡、声卡、控制器等)。单独查看显卡设备时,需要用到管道符“|”,管道符会把前一个命令的输出交给后一个命令处理。
如命令:
该命令会把lspci输出的内容全部传输给grep命令,grep命令是一个【查找/过滤】命令,它会从接收的内容中找出需要的一行内容。
如命令:
该命令会从接收的内容中,忽略大小写,筛选出包含 vga 这三个字母连续出现的所有行。
直接在终端或控制台输入下面的命令(自己输入命令,不要复制和粘贴):
执行命令后,会显示如下图所示的内容。

因为这是在 VMware 虚拟机 中执行的命令,所以显卡是虚拟的 SVGA II,而非物理显卡。如果是物理机,这里会显示真实的显卡型号(如 NVIDIA、AMD 或 Intel 核显)。
七、网卡命令
ip addr 是一条容易记忆的 Linux 网卡查询命令:命令串为 ip,参数为 addr。执行后可显示当前设备的 IPv4/IPv6 地址、本机回环地址,同时还能查看网卡状态、MAC 地址等关键网络信息。
直接在终端或控制台输入下面的命令(自己输入命令,不要复制和粘贴):
执行命令后,会显示如下图所示的内容。
上图是在一台 Ubuntu 虚拟机中执行 ip addr 命令后的网络接口信息输出。
输出主要分为两部分:
第一部分是回环接口 lo,它是设备内部通信的虚拟接口,地址为 127.0.0.1(IPv4)和 ::1(IPv6),状态为 “已启用”,用于本机程序间的网络交互。
第二部分是物理网卡 ens33(也叫 enp2s1),这是虚拟机的真实网络接口,状态为 “已连接、可正常通信”。它的 MAC 地址是 00:0c:29:da:1b:e7,IPv4 地址为 192.168.80.129(通过 DHCP 动态获取,子网掩码 255.255.255.0),同时还有一个链路本地 IPv6 地址 fe80::20c:29ff:feda:1be7,说明这台设备已接入 192.168.80.x 网段,可以和同网段的其他设备通信。
八、查看主板信息
在日常使用或装机场景中,我们常常需要获取计算机的主板信息。如在核对新购电脑的实际硬件与商家宣传配置是否一致、排查硬件兼容性问题,或是为升级 CPU、内存等配件做准备时,清晰了解主板型号、芯片组等关键参数就显得非常重要。
查看主板信息要用到“dmidecode”命令,该命令是Linux 下读取硬件 DMI 信息的工具,需要管理员权限,DMI 全称 Desktop Management Interface(桌面管理接口),是计算机硬件与系统软件之间的一套标准化信息交互规范。主板、BIOS、CPU、内存、硬盘等硬件,会把自己的厂商、型号、序列号、配置参数等信息,预先存放在主板的 SMBIOS(System Management BIOS) 数据结构里。DMI 则定义了一套统一的读取规则,让操作系统(比如 Linux、Windows)可以通过标准接口读取这些信息。
我们现在主要通过该命令查看主板信息,因此在命令后面需要加“baseboard”参数,指示命令获取主板信息。
直接在终端或控制台输入下面的命令(自己输入命令,不要复制和粘贴):
sudo dmidecode -t baseboard
执行命令后,会显示如下图所示的内容。

本节总结
在 Linux 系统里想快速了解所有硬件信息,就用 lshw -short,硬件信息一目了然。查 CPU 就用 lscpu。看内存够不够用,就使用free命令。
网络与主板查询中,ip addr 直接展示网卡名称、IP 地址、MAC 地址等网络核心信息,是网络故障排查的关键工具。sudo dmidecode -t baseboard 用于获取主板厂商、型号等信息,需注意在虚拟机环境下,该命令返回的为虚拟硬件标识。