Linux基础命令---lspci

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

lspci 
    lspci是一种实用程序,用于在系统中显示有关pci总线的信息以及连接到它们的设备。
    默认情况下,它显示了一个简单的设备列表。使用下面描述的选项可以请求更详细的输出或其他程序用于解析的输出。
    如果要报告PCI设备驱动程序或lspci本身中的bug,请使用选项“lspci-vvx”或更好的“lspci-vvxxx”的输出(不过,可能会有警告)。
    输出的某些部分,特别是在高度冗长的模式下,只有经验丰富的PCI黑客才能理解Proba-Bly。有关字段的确切定义,请参阅PCI规范或head er.h和/usr/include/linux/pci.h文件。
    在许多操作系统上,对PCI配置空间的某些部分的访问仅限于root用户,因此对于普通用户来说,lspci的功能是有限的。然而,lspci尽力显示尽可能多的可用信息,并将所有其他信息标记为<访问拒绝>文本
    该命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
    lspci  [选项]
    lspci命令中,我们经常会看到一些“[]:[].[]”这样格式的数字,例如“00:01.0”,这一个参数是总线编号,第二个是插槽编号,第三个是功能编号,它们都是十六进制的数字。

2、选项列表
    1)基础显示模式
    -m
        以向后兼容并且机器可读的方式转储设备信息
    -mm
        以机器可读的方式转储设备信息,以便脚本解析
    -t
        以树形结构显示pci设备的层次关系,包含所有总线、桥梁、设备和它们之间的连接
    2)显示选项
    -n
        显示pci设备的厂商和设备代码
    -v
        显示所有设备的详细信息
    -vv
        以更加详细的方式显示设备信息
    -k
        显示处理每个设备的内核驱动程序以及能够处理该设备的内核模块。默认情况下,当-v以正常的输出模式打开时。(目前只在内核2.6或更高版本的Linux上工作。)
    -x
        显示配置空间标准部分的十六进制转储(CardBus桥的前64字节或128字节)。
    -xxx
        显示整个PCI配置空间的十六进制转储。当您试图读取配置空间的某些部分时,只有当几个PCI设备崩溃时,它才可用,而且只适合root用户。(这种行为可能没有违反PCI标准,但至少非常愚蠢)。然而,这样的设备很少见,所以您不必太担心
    -xxxx
        显示扩展(4096字节)PCI配置空间在PCI-X2.0和PCIExpress总线上可用的十六进制转储
    -b
        以总线为中心的视图。显示由pci总线上的卡看到的所有irq编号和地址。注意,不是有内核看到的
    -D
        始终显示PCI域号。默认情况下,lspci在只有域0的机器上略过它们。
     3)解析ID为名称的选项
    -n
        将PCI供应商和设备代码显示为编号,而不是在PCI ID列表中查找它们。
    -nn
        显示pci供应商和设备的代码和名字
    -q
        如果在本地pci.id文件中找不到设备,则使用DNS查询中央PCI ID数据库。如果DNS查询成功,结果将缓存在~/.pciids-cache中,即使-q不再给出,也会在后续运行中识别。请在自动脚本中使用此开关时要小心,以避免数据库服务器超载。
    -qq
        和“-q”一样,但是本地缓存被重置
    -Q
        查询中央数据库,即使是本地也有缓存数据可查。如果您怀疑显示的条目是错误的,请使用此方法。
    4)选择设备的选项
    -s [域]:[总线]:[插槽].[功能]
        只显示指定域中的设备(如果您的计算机有几个主机桥接器,它们可以共享公共总线编号空间,或者每个设备可以自己寻址PCI域;域编号为0到ffff)、总线编号(0到ff)、插槽编号(0至1f)、函数编号(0至7)。地址可以省略或设置为“*”,这两者都意味着“任何值”。所有数字都是十六进制的。例如,“0:”表示总线0上的所有设备,“0”表示设备0在任何总线上的所有功能,“0.3”在所有总线上选择设备0的第三功能,“4”仅显示每个设备的第四个功能。
    -d [厂商:设备]
        显示指定厂商和设备的信息,厂商号和设备号都是十六进制。
    5)其他选项
    -i 
        指定pci设备编号文件,默认文件是/usr/share/hwdata/pci.ids
    -p 
        使用指定文件作为PCI ID的映射文件,默认使用/lib/Module/kernel_version/Modes.pcimap
    -M
        调用总线映射模式,它对所有pci设备,包括配置错误的桥后面的设备进行彻底扫描。此选项只在直接硬件访问模式下提供有意义的结果,通常需要根权限。请注意,总线映射程序只扫描pci域0。
    6)PCI设备访问选项
    -A 
        库支持多种方法来访问PCI硬件。默认情况下,它使用第一个可用的访问方法,但您可以使用此选项覆盖此决定。你可以使用“-A help”来先看可用的方法
    -O =
        库的行为由多个命名参数控制。此选项允许设置任何参数的值。使用“-Ohelp“获取已知参数及其默认值的列表。
    -H1
        通过Intel配置机制1直接访问硬件
    -H2
        通过Intel配置机制2直接访问硬件
    -F 
        与其访问真正的硬件,不如从先前运行的lspci-x生成的给定文件中读取设备及其配置寄存器的值列表,这对于分析用户提供的错误报告非常有用,因为您可以任何方式显示硬件配置,而不需要使用更多转储请求来干扰用户。
    -G
        提高库的调试级别

3、关于选项的说明
    1)关于“–m”选项
    如果您打算自动处理lspci的输出,请使用本节中描述的机器可读的输出格式之一(-m、-vm、-vmm)。所有其他格式都可能在lspci的不同版本之间发生变化。所有的数字都是以十六进制打印的。如果要处理数字ID而不是名称,请添加-n开关.
在简单格式中,每个设备都在一行上进行描述,这些参数被格式化为适合传递给shell脚本的参数,即由空格分隔的值,必要时引用和转义。其中一些参数是位置:槽、类、供应商名称、设备名称、子系统名称和子系统名称(如果设备没有子系统,最后两个参数是空的);其余的参数是选项
    2)关于“-vmm”选项
    详细的输出是由空行分隔的记录序列,每条记录用一行来描述一个设备,每一行包含一个‘tag:value’对。标记和值由单个制表符分隔。记录或记录中的行都不按任何特定顺序排列。标记区分大小写。下面是已经定义的tag:
    Slot,设备所在的插槽名称
    Class,类名
    Vendor,厂商名
    Device,设备名
    SVendor,子系统供应商名字
    SDevice,子设备名字
    PhySlot,设备所在的物理插槽
    Rev,修序号
    ProgIf,编程接口
    Driver,当前正在处理设备的内核驱动程序
    Module,内核模块的报告

4、实例
    1)以机器可读的方式显示

  • [root@localhost ntop-4.0.1]# lspci -m
  • 00:00."Host bridge" "Intel Corporation" "440FX - 82441FX PMC [Natoma]" -r02 "" ""
  • 00:01."ISA bridge" "Intel Corporation" "82371SB PIIX3 ISA [Natoma/Triton II]" "" ""
  • 00:01."IDE interface" "Intel Corporation" "82371AB/EB/MB PIIX4 IDE" -r01 -p8a "" ""
  • 00:02."VGA compatible controller" "InnoTek Systemberatung GmbH" "VirtualBox Graphics Adapter" "" ""


    2)显示设备代码和名字

  • [root@localhost ntop-4.0.1]# lspci –nn
  • //设备代码0600, 厂商代码8086:1237
  • 00:00.0 Host bridge [0600: Intel Corporation 440FX - 82441FX PMC [Natoma [8086:1237 (rev 02)
  • 00:01.0 ISA bridge [0601: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II [8086:7000
  • 00:01.1 IDE interface [0101: Intel Corporation 82371AB/EB/MB PIIX4 IDE [8086:7111 (rev 01)


    3)以树形结构显示

  • [root@localhost ntop-4.0.1]# lspci –t
  • //总线编号,插槽,功能编号
  • -[0000:00-+-00.0
  •            +-01.0
  •            +-01.1
  •            +-02.0


    4)显示指定位置的设备信息

  • [root@localhost ntop-4.0.1]# lspci -s 0000:01.0
  • 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II


    5)显示指定厂商和设备号的设备信息

  • [root@localhost ntop-4.0.1]# lspci -d 8086:1237
  • 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma (rev 02)

相关文章
|
24天前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
53 8
|
24天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
150 6
|
25天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
65 3
|
6天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
32 14
Linux 10 个“who”命令示例
|
15天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
30 9
|
13天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
19天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
61 3
|
24天前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
40 4
|
24天前
|
运维 监控 Linux
别再只会使用简单的 ping 命令了,Linux 中这些高级 ping 命令可以提高工作效率!
在 Linux 系统中,ping 命令不仅用于检测网络连通性和延迟,还拥有多种高级选项和技巧,如定制数据包大小、获取详细统计信息、持续 ping、指定源地址和多目标 ping。本文详细介绍这些高级命令及其在性能测试、故障排查和网络监控中的实际应用,帮助你提升网络管理效率。
88 3
|
22天前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
25 1