如何使用lshw查看Linux設備信息
Linux 系統(tǒng)上的 lshw 命令提供的系統(tǒng)設備信息比我們大多數(shù)人想象的要多得多。
雖然 lshw 命令(列出硬件,讀作 “ls hardware”)遠不是每個人最先學會的 50 個 Linux 命令之一,但它可以提供很多系統(tǒng)硬件的有用信息。
它以一種相當易于理解的格式提取出可能比你知道的更多的信息。在看到描述、(設備)邏輯名稱、大小等以后,你可能會理解到自己能獲得多少信息。
這篇文章會研究 lshw 給出的信息,但側(cè)重于磁盤及相關(guān)硬件。下面是 lshw 的輸出示例:
$ sudo lshw -C disk*-disk:0description: SCSI Diskproduct: Card Reader-1vendor: JIE LIphysical id: 0.0.0bus info: scsi@4:0.0.0logical name: /dev/sdcversion: 1.00capabilities: removableconfiguration: logicalsectorsize=512 sectorsize=512*-mediumphysical id: 0logical name: /dev/sdc
請注意,你需要使用 sudo 運行 lshw 命令以確保能得到所有可用的信息。
雖然我們在上面的命令中要求了輸出“磁盤(disk)”(上面只包含了原始輸出里五個條目中的一個),這里的輸出卻不是一個硬盤,而是讀卡器——磁盤的一種。注意系統(tǒng)將這個設備命名為了 /dev/sdc。
系統(tǒng)的主磁盤上也有相似的信息:
*-diskdescription: ATA Diskproduct: SSD2SC120G1CS175physical id: 0bus info: scsi@0:0.0.0logical name: /dev/sda <==這里version: 1101serial: PNY20150000778410606size: 111GiB (120GB)capabilities: partitioned partitioned:dosconfiguration: ansiversion=5 logicalsectorsize=512 sectorsize=512 signature=f63b5929
這塊硬盤是 /dev/sda。這個系統(tǒng)上的硬盤都顯示為 ATA 磁盤,ATA 是一種把控制器與盤體集成在一起的磁盤驅(qū)動器實現(xiàn)。
要獲得“磁盤”類設備的簡略列表,可以運行下面這條命令。注意其中有兩個設備被列出了兩次,所以我們看到的仍然是五個磁盤設備。
$ sudo lshw -short -C diskH/W path Device Class Description=============================================================/0/100/1d/1/1/0.0.0 /dev/sdc disk Card Reader-1/0/100/1d/1/1/0.0.0/0 /dev/sdc disk/0/100/1d/1/1/0.0.1 /dev/sdd disk 2/0/100/1d/1/1/0.0.1/0 /dev/sdd disk/0/100/1f.2/0 /dev/sda disk 120GB SSD2SC120G1CS175/0/100/1f.2/1 /dev/cdrom disk DVD+-RW GSA-H73N/0/100/1f.5/0.0.0 /dev/sdb disk 500GB SAMSUNG HE502HJ
如果你決定要查看系統(tǒng)上的 所有 設備,請坐穩(wěn)了;你會得到一個包含的東西比你通常認為的“設備”要多得多的列表,下面是一個例子,這是一個“簡短(short)”(信息很少)的列表:
$ sudo lshw -short[sudo] password for shs:H/W path Device Class Description=============================================================system Inspiron 530s/0 bus 0RY007/0/0 memory 128KiB BIOS/0/4 processor Intel(R) Core(TM)2 Duo CPU/0/4/a memory 32KiB L1 cache/0/4/b memory 6MiB L2 cache/0/24 memory 6GiB System Memory/0/24/0 memory 2GiB DIMM DDR2 Synchronous 667/0/24/1 memory 1GiB DIMM DDR2 Synchronous 667/0/24/2 memory 2GiB DIMM DDR2 Synchronous 667/0/24/3 memory 1GiB DIMM DDR2 Synchronous 667/0/1 generic/0/10 generic/0/11 generic/0/12 generic/0/13 generic/0/14 generic/0/15 generic/0/17 generic/0/18 generic/0/19 generic/0/2 generic/0/20 generic/0/100 bridge 82G33/G31/P35/P31 Express DRAM/0/100/1 bridge 82G33/G31/P35/P31 Express PCI/0/100/1/0 display Caicos [Radeon HD 6450/7450/84/0/100/1/0.1 multimedia Caicos HDMI Audio [Radeon HD 6/0/100/19 enp0s25 network 82562V-2 10/100 Network Connec/0/100/1a bus 82801I (ICH9 Family) USB UHCI/0/100/1a/1 usb3 bus UHCI Host Controller/0/100/1a.1 bus 82801I (ICH9 Family) USB UHCI/0/100/1a.1/1 usb4 bus UHCI Host Controller/0/100/1a.1/1/2 input Rock Candy Wireless Keyboard/0/100/1a.2 bus 82801I (ICH9 Family) USB UHCI/0/100/1a.2/1 usb5 bus UHCI Host Controller/0/100/1a.2/1/2 input USB OPTICAL MOUSE/0/100/1a.7 bus 82801I (ICH9 Family) USB2 EHCI/0/100/1a.7/1 usb1 bus EHCI Host Controller/0/100/1b multimedia 82801I (ICH9 Family) HD Audio/0/100/1d bus 82801I (ICH9 Family) USB UHCI/0/100/1d/1 usb6 bus UHCI Host Controller/0/100/1d/1/1 scsi4 storage CD04/0/100/1d/1/1/0.0.0 /dev/sdc disk Card Reader-1/0/100/1d/1/1/0.0.0/0 /dev/sdc disk/0/100/1d/1/1/0.0.1 /dev/sdd disk 2/0/100/1d/1/1/0.0.1/0 /dev/sdd disk/0/100/1d.1 bus 82801I (ICH9 Family) USB UHCI/0/100/1d.1/1 usb7 bus UHCI Host Controller/0/100/1d.2 bus 82801I (ICH9 Family) USB UHCI/0/100/1d.2/1 usb8 bus UHCI Host Controller/0/100/1d.7 bus 82801I (ICH9 Family) USB2 EHCI/0/100/1d.7/1 usb2 bus EHCI Host Controller/0/100/1d.7/1/2 multimedia USB Live camera/0/100/1e bridge 82801 PCI Bridge/0/100/1e/1 communication HSF 56k Data/Fax Modem/0/100/1f bridge 82801IR (ICH9R) LPC Interface/0/100/1f.2 scsi0 storage 82801IR/IO/IH (ICH9R/DO/DH) 4/0/100/1f.2/0 /dev/sda disk 120GB SSD2SC120G1CS175/0/100/1f.2/0/1 /dev/sda1 volume 111GiB EXT4 volume/0/100/1f.2/1 /dev/cdrom disk DVD+-RW GSA-H73N/0/100/1f.3 bus 82801I (ICH9 Family) SMBus Con/0/100/1f.5 scsi3 storage 82801I (ICH9 Family) 2 port SA/0/100/1f.5/0.0.0 /dev/sdb disk 500GB SAMSUNG HE502HJ/0/100/1f.5/0.0.0/1 /dev/sdb1 volume 433GiB EXT4 volume/0/3 system PnP device PNP0c02/0/5 system PnP device PNP0b00/0/6 storage PnP device PNP0700/0/7 system PnP device PNP0c02/0/8 system PnP device PNP0c02/0/9 system PnP device PNP0c01
運行下面的命令來列出設備類別,并統(tǒng)計每個類別中的設備數(shù)量。
$ sudo lshw -short | awk ‘{print substr($0,36,13)}’ | tail -n +3 | sort | uniq -c4 bridge18 bus1 communication7 disk1 display12 generic2 input8 memory3 multimedia1 network1 processor4 storage6 system2 volume
注意: 上面使用 awk 命令從 lshw 的輸出中選擇 Class(類別)欄是這樣實現(xiàn)的:使用 $0(選取完整行),但只取從正確位置(第 36 個字符)開始的子串,而因為“類別”中并沒有條目的長度超過 13 個字符,所以子串就在那里結(jié)束。命令中 tail -n +3 的部分移除了標題和下面的=====,所以最終的列表中只包含了那 14 種設備類型。
(LCTT 譯注:上面的命令中 awk 的部分在選取子串時是從第 36 個字符開始的,這個數(shù)字基本上取決于最長的設備邏輯名稱的長度,因而在不同的系統(tǒng)環(huán)境中可能有所不同,一個例子是,當你的系統(tǒng)上有 NVMe SSD 時,可能需要將其改為 41。)
你會發(fā)現(xiàn)在沒有使用 -short 選項的時候,每一個磁盤類設備都會有大約 12 行的輸出,包括像是 /dev/sda 這樣的邏輯名稱,磁盤大小和種類等等。
$ sudo lshw -C disk[sudo] password for shs:*-disk:0description: SCSI Diskproduct: Card Reader-1 <== 讀卡器?vendor: JIE LIphysical id: 0.0.0bus info: scsi@4:0.0.0logical name: /dev/sdcversion: 1.00capabilities: removableconfiguration: logicalsectorsize=512 sectorsize=512*-mediumphysical id: 0logical name: /dev/sdc*-disk:1description: SCSI Diskproduct: 2vendor: AC4100 -physical id: 0.0.1bus info: scsi@4:0.0.1logical name: /dev/sddcapabilities: removableconfiguration: logicalsectorsize=512 sectorsize=512*-mediumphysical id: 0logical name: /dev/sdd*-diskdescription: ATA Diskproduct: SSD2SC120G1CS175physical id: 0bus info: scsi@0:0.0.0logical name: /dev/sda <== 主要磁盤version: 1101serial: PNY20150000778410606size: 111GiB (120GB)capabilities: partitioned partitioned:dosconfiguration: ansiversion=5 logicalsectorsize=512 sectorsize=512 signature=f63b5929*-cdrom <== 也叫 /dev/sr0description: DVD writerproduct: DVD+-RW GSA-H73Nvendor: HL-DT-STphysical id: 1bus info: scsi@1:0.0.0logical name: /dev/cdromlogical name: /dev/cdrwlogical name: /dev/dvdlogical name: /dev/dvdrwlogical name: /dev/sr0version: B103serial: [capabilities: removable audio cd-r cd-rw dvd dvd-rconfiguration: ansiversion=5 status=nodisc*-diskdescription: ATA Diskproduct: SAMSUNG HE502HJphysical id: 0.0.0bus info: scsi@3:0.0.0logical name: /dev/sdb <== 次要磁盤version: 0002serial: S2B6J90B501053size: 465GiB (500GB)capabilities: partitioned partitioned:dosconfiguration: ansiversion=5 logicalsectorsize=512 sectorsize=512 signature=7e67ccf3
總結(jié)
lshw 命令提供了一些我們許多人通常不會處理的信息,不過即使你只用了其中的一部分,知道有多少信息可用還是很不錯的。

























