lspci

列出所有PCI设备.

语法

  lspci [options] 

选项



   基本显示模式:

   -m   以向后兼容的机器可读形式转储PCI设备数据
   -mm  以机器可读的形式转储PCI设备数据,以便通过脚本轻松解析
   -t   显示包含所有总线,网桥,设备和它们之间连接的树状图

   显示选项:

   -v   显示有关所有设备的详细信息
   -vv  非常详细并显示更多细节。此级别包括一切有用的内容。
   -vvv 显示我们能够解析的所有内容,即使它没有
        看起来很有趣(例如,未定义的内存区域)
   -k   显示处理每个设备的内核驱动程序以及能够处理它的内核模块。
        默认情况下,在正常输出模式下给出-v时打开。
        (目前仅适用于内核2.6或更高版本的Linux。)
   -x  显示配置空间标准部分的十六进制转储
        (CardBus网桥的前64个字节或128个字节)。
   -xxx 显示整个PCI配置空间的十六进制转储。
        它只适用于root,因为当您尝试读取某些部件时,多个PCI设备会崩溃
        配置空间(这种行为可能不违反PCI标准,但它是至少非常愚蠢)。
        但是,这种设备很少见,所以你不必担心。
   -xxxx 显示可用的扩展(4096字节)PCI配置空间的十六进制转储
         在PCI-X 2.0和PCI Express总线上。
   -b    以总线为中心的视图。在PCI总线上显示所有的IRQ号和地址,而不是内核。
   -D    始终显示PCI域号。默认情况下,lspci会在只有域0的计算机上禁止它们

   用于控制将ID解析为名称的选项:

   -n   将PCI供应商和设备代码显示为数字,而不是在PCI ID列表中查找它们.
   -nn  将PCI供应商和设备代码显示为数字和名称
   -q   如果在本地pci.ids文件中找不到设备,请使用DNS查询中央PCI ID数据库.
        如果DNS查询成功,则结果缓存在〜/.pciids-cache中,并在其中进行识别
        即使不再给出-q,也会进行后续运行。请在自动脚本中使用此开关
        只是要小心避免数据库服务器过载。
   -qq  与-q相同,但重置本地缓存
   -Q   查询中央数据库,即使是本地识别的条目也是如此。
        如果您怀疑显示的条目错误,请使用此选项。

    选择设备的选项:

   -s [[[[domain]:]bus]:][slot][.[func]]
           仅显示指定域中的设备(如果您的计算机有多个主机桥,
           它们可以共享一个公共总线号码空间,也可以分别对应PCI域
           它自己的; 域编号从0到ffff),总线(0到ff),槽(0到1f)和功能(0到7)。
           可以省略设备地址的每个组件或将其设置为“*”,两者都表示“任何值”。
           所有数字都是十六进制的。例如,“0:”表示总线0上的所有设备,“0”表示全部
           任何总线上的设备0的功能,“0.3”在所有总线上选择设备0的第三功能
           和“.4”仅显示每个设备的第四个功能。 
   -d [vendor]:[device]
           仅显示具有指定供应商和设备ID的设备。两个ID都以十六进制和
           可以省略或给出“*”,两者都表示“任何值”。 
   

 其他选择:

   -i file
           使用文件作为PCI ID列表而不是 /usr/share/hwdata/pci.ids. 
   -p file
           使用文件作为内核模块处理的PCI ID映射。
           默认情况下,lspci使用 /lib/modules/kernel_version/modules.pcimap.
           仅适用于具有最新模块工具的Linux系统。

   -M   调用总线映射模式,对所有PCI设备(包括后面的设备)进行彻底扫描
        错误配置的网桥等。此选项仅在直接硬件访问时才提供有意义的结果
        模式,通常需要root权限。请注意,总线映射器仅扫描PCI域0。

   --version
        显示lspci版本。此选项应单独使用。

  PCI访问选项:

        PCI实用程序使用PCI库与PCI设备通信
        您可以使用以下选项来影响其行为:
   -A method
        该库支持多种访问PCI硬件的方法。
        默认情况下,它使用第一种可用的访问方法,但您可以使用此选项覆盖
        这个决定。有关可用方法及其说明的列表,请参阅-A help。
   -O param=value
        库的行为由几个命名参数控制。
        此选项允许设置任何参数的值。
        使用-O help可以获取已知参数及其默认值的列表。

   -H1  通过Intel配置机制1使用直接硬件访问。(这是-A intel-conf1的简写。)

   -H2  通过Intel配置机制2使用直接硬件访问。(这是-A intel-conf2的简写。)

   -F file
        与其访问真正的硬件,不如读取设备的列表和它们的值
        配置寄存器来自以前运行的lspci -x生成的给定文件。
        这对于分析用户提供的bug报告非常有用,因为您可以以任何您想要的方式显示硬件配置,
        而无需通过请求更多转储来干扰用户。

   -G   提高库的调试级别。


Files
/usr/share/hwdata/pci.ids 所有已知PCI ID(供应商,设备,类和子类)的列表。维护在http://pciids.sourceforge.net/,使用update-pciids实用程序下载最新版本。
/usr/share/hwdata/pci.ids.gz 如果编译lspci支持压缩,则在pci.ids之前尝试此文件
~/.pciids-cache 在DNS查询模式中找到的所有ID都缓存在此文件中。

lspci 命令实例:

linux命令:lspci -v -v lspci lspci -vrootopen.com
linux命令:lspci -v -v lspci lspci -vrootopen.com
2018-08-29 21:52:41

linux命令:lspci lspci lspcirootopen.com
linux命令:lspci lspci lspcirootopen.com
2018-08-29 21:51:51

linux命令:lspci -vv -vv lspci lspci -vvrootopen.com
linux命令:lspci -vv -vv lspci lspci -vvrootopen.com
2018-01-27 01:05:48

linux命令:lspci | grep Ether | awk '{ VAR=$1; split(VAR,ARR,"."); count[ARR[1]]++; LINE=$0; split(LINE,LINEARR,":"); LINECOUNT[ARR[1]]=LINEARR[3]; } END { for(i in count) { printf("PCI address: %s\nPorts: %d\nCard Type: %s\n", i, count[i], LINECOUNT[i]) } }' }' } LINECOUNT[i]) count[i], i, %s\n", Type: %d\nCard %s\nPorts: address: printf("PCI { count) in for(i { END } LINECOUNT[ARR[1]]=LINEARR[3]; split(LINE,LINEARR,":"); LINE=$0; count[ARR[1]]++; split(VAR,ARR,"."); VAR=$1; '{ awk | Ether grep | lspci lspci | grep Ether | awk '{ VAR=$1; split(VAR,ARR,"."); count[ARR[1]]++; LINE=$0; split(LINE,LINEARR,":"); LINECOUNT[ARR[1]]=LINEARR[3]; } END { for(i in count) { printf("PCI address: %s\nPorts: %d\nCard Type: %s\n", i, count[i], LINECOUNT[i]) } }'rootopen.com
linux命令:lspci | grep Ether | awk '{ VAR=$1; split(VAR,ARR,"."); count[ARR[1]]++; LINE=$0; split(LINE,LINEARR,":"); LINECOUNT[ARR[1]]=LINEARR[3]; } END { for(i in count) { printf("PCI address: %s\nPorts: %d\nCard Type: %s\n", i, count[i], LINECOUNT[i]) } }' }' } LINECOUNT[i]) count[i], i, %s\n", Type: %d\nCard %s\nPorts: address: printf("PCI { count) in for(i { END } LINECOUNT[ARR[1]]=LINEARR[3]; split(LINE,LINEARR,":"); LINE=$0; count[ARR[1]]++; split(VAR,ARR,"."); VAR=$1; '{ awk | Ether grep | lspci lspci | grep Ether | awk '{ VAR=$1; split(VAR,ARR,"."); count[ARR[1]]++; LINE=$0; split(LINE,LINEARR,":"); LINECOUNT[ARR[1]]=LINEARR[3]; } END { for(i in count) { printf("PCI address: %s\nPorts: %d\nCard Type: %s\n", i, count[i], LINECOUNT[i]) } }'rootopen.com
2018-06-03 03:22:48

linux命令:lspci |grep VGA VGA |grep lspci lspci |grep VGArootopen.com
linux命令:lspci |grep VGA VGA |grep lspci lspci |grep VGArootopen.com
2018-04-14 04:06:48

linux命令:lspci lspci lspcirootopen.com
linux命令:lspci lspci lspcirootopen.com
2018-05-27 02:01:48

linux命令:lspci -v | perl -ne '/VGA/../^$/ and /VGA|Kern/ and print' print' and /VGA|Kern/ and '/VGA/../^$/ -ne perl | -v lspci lspci -v | perl -ne '/VGA/../^$/ and /VGA|Kern/ and print'rootopen.com
linux命令:lspci -v | perl -ne '/VGA/../^$/ and /VGA|Kern/ and print' print' and /VGA|Kern/ and '/VGA/../^$/ -ne perl | -v lspci lspci -v | perl -ne '/VGA/../^$/ and /VGA|Kern/ and print'rootopen.com
2018-05-27 06:21:48

linux命令:lspci -v -s `lspci | awk '/VGA/{print $1}'` $1}'` '/VGA/{print awk | `lspci -s -v lspci lspci -v -s `lspci | awk '/VGA/{print $1}'`rootopen.com
linux命令:lspci -v -s `lspci | awk '/VGA/{print $1}'` $1}'` '/VGA/{print awk | `lspci -s -v lspci lspci -v -s `lspci | awk '/VGA/{print $1}'`rootopen.com
2018-03-17 17:07:48

linux命令:lspci | grep -i pci pci -i grep | lspci lspci | grep -i pcirootopen.com
linux命令:lspci | grep -i pci pci -i grep | lspci lspci | grep -i pcirootopen.com
2018-03-27 20:32:48

linux命令:lspci -vv | grep 'Ethernet\|Serial' | awk 'NR == 1{ printf $1 } NR == 2 { print " mac " $7 }' | sed ?e 's/-/:/g' -e 's/:f[ef]:f[ef]//g' -e 's/01:00.0/eth0/g' -e 's/01:00.1/eth1/g' -e 's/01:00.2/eth2/g' -e 's/01:00.3/eth3/g' > /etc/iftab && ifrename ifrename && /etc/iftab > 's/01:00.3/eth3/g' -e 's/01:00.2/eth2/g' -e 's/01:00.1/eth1/g' -e 's/01:00.0/eth0/g' -e 's/:f[ef]:f[ef]//g' -e 's/-/:/g' ?e sed | }' $7 " mac " print { 2 == NR } $1 printf 1{ == 'NR awk | 'Ethernet\|Serial' grep | -vv lspci lspci -vv | grep 'Ethernet\|Serial' | awk 'NR == 1{ printf $1 } NR == 2 { print " mac " $7 }' | sed ?e 's/-/:/g' -e 's/:f[ef]:f[ef]//g' -e 's/01:00.0/eth0/g' -e 's/01:00.1/eth1/g' -e 's/01:00.2/eth2/g' -e 's/01:00.3/eth3/g' > /etc/iftab && ifrenamerootopen.com
linux命令:lspci -vv | grep 'Ethernet\|Serial' | awk 'NR == 1{ printf $1 } NR == 2 { print " mac " $7 }' | sed ?e 's/-/:/g' -e 's/:f[ef]:f[ef]//g' -e 's/01:00.0/eth0/g' -e 's/01:00.1/eth1/g' -e 's/01:00.2/eth2/g' -e 's/01:00.3/eth3/g' > /etc/iftab && ifrename ifrename && /etc/iftab > 's/01:00.3/eth3/g' -e 's/01:00.2/eth2/g' -e 's/01:00.1/eth1/g' -e 's/01:00.0/eth0/g' -e 's/:f[ef]:f[ef]//g' -e 's/-/:/g' ?e sed | }' $7 " mac " print { 2 == NR } $1 printf 1{ == 'NR awk | 'Ethernet\|Serial' grep | -vv lspci lspci -vv | grep 'Ethernet\|Serial' | awk 'NR == 1{ printf $1 } NR == 2 { print " mac " $7 }' | sed ?e 's/-/:/g' -e 's/:f[ef]:f[ef]//g' -e 's/01:00.0/eth0/g' -e 's/01:00.1/eth1/g' -e 's/01:00.2/eth2/g' -e 's/01:00.3/eth3/g' > /etc/iftab && ifrenamerootopen.com
2018-02-19 08:39:48

Linux的Bash命令行(A-Z排序)