在 CentOS 系统中,lspci 是一个功能强大且常用的命令行工具,用于列出系统上所有 PCI(外围组件互连)总线上的设备信息,这对于硬件诊断、驱动程序安装和系统配置至关重要,通常情况下,lspci 作为 pciutils 软件包的一部分,在标准的 CentOS 安装中是默认包含的,在某些最小化安装或特殊定制版本中,它可能未被预装,本文将详细介绍如何在 CentOS 上检查并安装 lspci,以及其基本使用方法。

检查 lspci 是否已安装
在尝试安装之前,最稳妥的第一步是验证 lspci 是否已经存在于您的系统中,您可以通过以下两种简单方式进行:
-
直接执行命令 在终端中直接输入
lspci并按回车键。lspci
如果命令已安装,您将看到一个或多个设备的列表,例如显卡、网卡、USB 控制器等,每行代表一个设备及其相关信息。
-
使用
which命令which命令可以定位一个可执行文件的具体路径。which lspci
lspci已安装,终端会输出其路径,通常是/usr/sbin/lspci,如果系统找不到该命令,则会提示类似which: no lspci in (...)的信息。
如果以上两种方法都表明 lspci 未安装,那么您就需要手动进行安装。
安装 pciutils 软件包
lspci 命令包含在 pciutils(PCI Utilities)软件包中,在 CentOS 上安装软件包主要使用 yum 或 dnf 包管理器,具体取决于您的系统版本。

-
对于 CentOS 7 / RHEL 7: 系统默认使用
yum作为包管理器,请使用以下命令进行安装:sudo yum install pciutils
执行后,
yum会检查依赖项,提示您确认下载和安装,输入y并回车即可。 -
对于 CentOS 8 / RHEL 8 / AlmaLinux / Rocky Linux: 这些较新的系统版本使用
dnf作为默认的包管理器(yum通常是dnf的一个符号链接,但推荐使用dnf)。sudo dnf install pciutils
同样,系统会请求您确认,输入
y继续安装。
安装过程非常迅速,完成后,您可以再次使用 lspci 或 which lspci 命令来验证是否安装成功。
lspci 基本用法与常用选项
成功安装后,lspci 的真正威力在于其丰富的命令行选项,可以帮助您获取更详细、更有针对性的硬件信息。
| 命令/选项 | 功能描述 |
|---|---|
lspci |
以简洁的列表形式显示所有 PCI 设备。 |
lspci -v |
显示更详细的信息,包括设备驱动、内存地址、中断号等。 |
lspci -vv |
显示极为详尽的设备信息,通常用于深度硬件调试。 |
lspci -nn |
在设备名称旁同时显示其厂商和设备的十六进制 ID。 |
lspci -t |
以树状结构显示 PCI 设备的层级关系,非常直观。 |
lspci -s [地址] |
只显示指定总线/插槽地址的设备信息。lspci -s 01:00.0。 |
lspci -d [厂商:设备] |
根据厂商和设备 ID 显示匹配的设备。lspci -d 10de: 会列出所有 NVIDIA 的设备。 |
lspci \| grep -i vga |
结合 grep 命令,过滤出显卡相关的设备信息。 |
通过组合使用这些选项,系统管理员可以快速定位问题硬件、确认驱动程序是否正确加载,或在进行虚拟化配置时检查 PCI 设备的 Passthrough 支持。

在 CentOS 上获取 lspci 工具是一个简单直接的过程,首先应检查其是否已存在,对于大多数标准安装而言,它通常是可用的,如果缺失,只需根据您的系统版本,使用 sudo yum install pciutils 或 sudo dnf install pciutils 命令即可轻松完成安装,掌握 lspci 及其常用选项,是每一位 Linux 系统管理员和用户进行硬件管理和故障排查的基本功。
相关问答 FAQs
问题 1:我已经安装了 pciutils,但输入 lspci 仍然提示 "command not found",这是为什么?
解答: 这种情况比较少见,但通常是由以下几个原因造成的:
- 环境变量
PATH问题:/usr/sbin目录(lspci的默认位置)可能不在您当前用户的PATH环境变量中,您可以尝试使用完整路径执行:/usr/sbin/lspci,如果这样可以执行,说明是PATH问题,通常注销并重新登录,或者重启终端即可解决。 - Shell 未刷新:在安装新软件后,某些 Shell 可能需要手动刷新其内部缓存,可以尝试执行
hash -r或直接重启一个新的终端窗口。 - 安装失败:虽然提示安装成功,但过程中可能发生了错误,您可以尝试重新安装一次:
sudo dnf reinstall pciutils。
问题 2:lspci 和 lsusb 有什么区别?
解答: lspci 和 lsusb 是两个功能类似但作用范围完全不同的工具。
lspci:用于扫描和显示连接到 PCI 总线 上的设备,这主要包括主板集成的核心设备,如显卡(GPU)、声卡、以太网卡、SATA/NVMe 控制器、USB 主控制器等。lsusb:用于扫描和显示连接到 USB 总线 上的设备,这包括所有通过 USB 接口连接的外部设备,如键盘、鼠标、U盘、摄像头、打印机、USB 网卡等。
lspci 管理的是“内部”或“板载”的高速设备,而 lsusb 管理的是“外部”的 USB 设备,它们分别属于 pciutils 和 usbutils 软件包。