详解Linux中几个获取硬件详细信息的命令
在Linux系统特别是服务器系统中常常会需要查看设备的硬件信息,这时候使用命令查看就显得非常方便。本文介绍几个在Linux系统中查看硬件信息的命令,它们是lspci、lsblk、lscpu和lsusb。
lspci命令
从命令的名称ls+pci的组合上大致也能看出来,lspci用于显示有关系统中的PCI总线以及与其连接的设备的信息。默认情况下,它显示设备的简短列表,如果配合指定的选项使用可以显示输出更详细的信息。
语法格式:
lspci[参数]
常用参数:
选项 | 描述 |
---|---|
-n | 以数字方式显示PCI厂商和设备代码 |
-t | 以树状结构显示PCI设备的层次关系 |
-b | 以总线为中心的视图 |
-s | 仅显示指定总线插槽的设备和功能块信息 |
-i | 指定PCI编号列表文件,不使用默认文件 |
-m | 以机器可读方式显示PCI设备信息 |
使用示例:
默认情况下终端中直接输入该命令,显示当前主机的所有PCI总线信息:
lspci
输出类似如下:
00:00.0Hostbridge:IntelCorporationXeonE7v2/XeonE5v2/Corei7DMI2(rev04)
00:01.0PCIbridge:IntelCorporationXeonE7v2/XeonE5v2/Corei7PCIExpressRootPort1a(rev04)
00:02.0PCIbridge:IntelCorporationXeonE7v2/XeonE5v2/Corei7PCIExpressRootPort2a(rev04)
00:02.2PCIbridge:IntelCorporationXeonE7v2/XeonE5v2/Corei7PCIExpressRootPort2c(rev04)
00:03.0PCIbridge:IntelCorporationXeonE7v2/XeonE5v2/Corei7PCIExpressRootPort3a(rev04)
00:05.0Systemperipheral:IntelCorporationXeonE7v2/XeonE5v2/Corei7VTd/MemoryMap/Misc(rev04)
00:05.2Systemperipheral:IntelCorporationXeonE7v2/XeonE5v2/Corei7IIORAS(rev04)
00:05.4PIC:IntelCorporationXeonE7v2/XeonE5v2/Corei7IOAPIC(rev04)
.....
以树状结构显示PCI设备的层次关系:
lspci-t
输出:
-+-[0000:ff]-+-08.0
| +-09.0
| +-0a.0
| +-0a.1
| +-0a.2
| +-0a.3
| +-0b.0
| +-0b.3
| +-0c.0
| +-0c.1
| +-0c.2
| +-0c.3
| +-0d.0
| +-0d.1
| +-0d.2
| +-0d.3
| +-0e.0
| +-0e.1
| +-0f.0
| +-0f.1
| +-0f.2
| +-0f.3
| +-0f.4
| +-0f.5
| +-10.0
| +-10.1
| +-10.2
| +-10.3
| +-10.4
| +-10.5
| +-10.7
| +-13.0
| +-13.1
| +-13.4
| +-13.5
| +-16.0
| +-16.1
| \-16.2
+-[0000:80]-+-00.0-[81]--
| +-05.0
| +-05.2
| \-05.4
......
如果想得到更详细的信息,可以使用如下命令:
lspci-vvx
-vv:使得lspci以过冗余模式显示更详细的信息(事实上是PCI设备能给出的所有东西)。这些数据的确切意义没有在此手册页中解释,如果你想知道更多,请参照/usr/include/linux/pci.h或者PCI规范。
-x:以十六进制显示PCI配置空间(configurationspace)的前64个字节映象(标准头部信息)。此参数对调试驱动和lspci本身很有用。
更多关于lspci中说参数说明可以在终端中通过manlspci来查看。
lsblk命令
lsblk列出有关所有或指定块设备的信息,lsblk列出有关所有或指定块设备的信息。默认情况下,该命令以树状格式打印所有设备(RAM磁盘除外)。
语法格式:
lsblk[参数]
使用示例:
默认情况下直接输入命令,类似如下:
lsblk
输出:
NAME MAJ:MINRM SIZEROTYPEMOUNTPOINT
sda 8:0 0 1.1T 0disk
├─sda1 8:1 0 500M 0part/boot
├─sda2 8:2 031.3G 0part[SWAP]
└─sda3 8:3 0 1.1T 0part/
sr0 11:0 11024M 0rom
- NAME:这是块设备名。
- MAJ:MIN:本栏显示主要和次要设备号。
- RM:本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。
- SIZE:本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
- RO:该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。
- TYPE:本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。
- MOUNTPOINT:本栏指出设备挂载的挂载点。
也可以列出指定设备的信息:
lsblk/dev/sda
输出类似:
NAME MAJ:MINRM SIZEROTYPEMOUNTPOINT
sda 8:0 0 1.1T 0disk
├─sda1 8:1 0 500M 0part/boot
├─sda2 8:2 031.3G 0part[SWAP]
└─sda3 8:3 0 1.1T 0part/
lsblk命令也可以用于列出一个特定设备的拥有关系,同时也可以列出组和模式。可以通过以下命令来获取这些信息:
lsblk-m
输出:
NAME SIZEOWNERGROUPMODE
sda 1.1Troot disk brw-rw----
├─sda1 500Mroot disk brw-rw----
├─sda231.3Groot disk brw-rw----
└─sda3 1.1Troot disk brw-rw----
sr0 1024Mroot cdrombrw-rw----
更多信息可以在终端中输入manlsblk查看。
lscpu命令
此命令用来显示cpu的相关信息,lscpu从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令的输出比较易读。lscpu命令输出的信息包含cpu数量,线程,核数,套接字和Nom-UniformMemeorAccess(NUMA),缓存等,不是所有的列都支持所有的架构,如果指定了不支持的列,那么lscpu将打印列,但不显示数据。
语法格式:
lscpu[参数]
常用参数:
参数 | 说明 |
---|---|
-a | 打印在线和离线的CPU |
-b | 仅打印在线CPU |
-c | 仅打印离线CPU |
-h | 打印帮助并退出 |
-V | 打印当前版本号 |
默认情况下,终端中直接输入命令:
lscpu
输出内容类似如下:
Architecture: x86_64
CPUop-mode(s): 32-bit,64-bit
ByteOrder: LittleEndian
CPU(s): 32
On-lineCPU(s)list: 0-31
Thread(s)percore: 2
Core(s)persocket: 8
Socket(s): 2
NUMAnode(s): 2
VendorID: GenuineIntel
CPUfamily: 6
Model: 62
Modelname: Intel(R)Xeon(R)CPUE5-2650v2@2.60GHz
Stepping: 4
CPUMHz: 1200.000
BogoMIPS: 5187.29
Virtualization: VT-x
L1dcache: 32K
L1icache: 32K
L2cache: 256K
L3cache: 20480K
NUMAnode0CPU(s): 0-7,16-23
NUMAnode1CPU(s): 8-15,24-31
更多命令详细说明,可以在终端中输入manlscpu命令查看。
lsusb命令
lsusb命令用于显示本机的USB设备列表,以及USB设备的详细信息。lsusb命令显示的USB设备信息来自“/proc/bus/usb”目录下的对应文件。
语法格式:
lsusb[参数]
常用参数:
选项 | 描述 |
---|---|
-v | 显示USB设备的详细信息 |
-s<总线:设备号> | 仅显示指定的总线和(或)设备号的设备 |
-d<厂商:产品> | 仅显示指定厂商和产品编号的设备 |
-t | 以树状结构显示无理USB设备的层次 |
-V | 显示命令的版本信息 |
使用示例:
默认情况下,在终端中直接输入命令:
lsusb
显示USB设备列表:
Bus001Device001:ID1d6b:0002LinuxFoundation2.0roothub
Bus002Device001:ID1d6b:0002LinuxFoundation2.0roothub
Bus001Device002:ID8087:0024IntelCorp.IntegratedRateMatchingHub
Bus002Device002:ID8087:0024IntelCorp.IntegratedRateMatchingHub
Bus001Device003:ID046b:ff10AmericanMegatrends,Inc.VirtualKeyboardandMouse
Bus002Device003:ID0424:2513StandardMicrosystemsCorp.2.0Hub
以树状显示USB设备列表:
lsusb-t
输出:
/: Bus02.Port1:Dev1,Class=root_hub,Driver=ehci_hcd/2p,480M
|__Port1:Dev2,If0,Class=hub,Driver=hub/8p,480M
|__Port5:Dev3,If0,Class=hub,Driver=hub/3p,480M
/: Bus01.Port1:Dev1,Class=root_hub,Driver=ehci_hcd/2p,480M
|__Port1:Dev2,If0,Class=hub,Driver=hub/6p,480M
|__Port6:Dev3,If0,Class=HID,Driver=usbhid,12M
|__Port6:Dev3,If1,Class=HID,Driver=usbhid,12M
显示USB设备详细信息:
lsusb-v
输出类似:
Bus001Device001:ID1d6b:0002LinuxFoundation2.0roothub
DeviceDescriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9Hub
bDeviceSubClass 0Unused
bDeviceProtocol 0Fullspeed(orroot)hub
bMaxPacketSize0 64
idVendor 0x1d6bLinuxFoundation
idProduct 0x00022.0roothub
bcdDevice 2.06
iManufacturer 3Linux2.6.32-642.el6.x86_64ehci_hcd
iProduct 2EHCIHostController
iSerial 10000:00:1a.0
bNumConfigurations 1
ConfigurationDescriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
SelfPowered
RemoteWakeup
MaxPower 0mA
InterfaceDescriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9Hub
bInterfaceSubClass 0Unused
bInterfaceProtocol 0Fullspeed(orroot)hub
iInterface 0
EndpointDescriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP1IN
bmAttributes 3
TransferType Interrupt
SynchType None
UsageType Data
wMaxPacketSize 0x0004 1x4bytes
bInterval 12
HubDescriptor:
......
更多关于lsusb命令的详细描述可以在终端中输入manlsusb查看。
写在最后
本文主要讲解了lspci、lsblk、lscpu和lsusb在Linux中查看相关硬件信息的命令,希望通过本文让您对这些命令有一个初步了解,也能知道在Linux系统中查询信息信息的方式,希望读您有所帮助。也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。