硬件信息
在linux系统中,有很多命令可以用于查询主机的硬件信息,有些命令仅仅针对于特定的硬件部件,比如cpu,内存等,而有些命令可以查询很多的硬件信息。
这篇帖子简单地带大家了解一下最常用的查询各种硬件信息的命令,其中包括lscpu,hwinfo,lshw,dmidecode,lspci等等。
1. lscpu
lscpu命令可以用来查询处理器cpu的详细信息,只需要简单地输入lscpu即可,如下所示,它本身也没有提供更多选项和功能可供选择。
$ lscpu
Architecture: x86_64
CPU op-mode(s):32-bit,64-bit
ByteOrder:LittleEndian
CPU(s):4
On-line CPU(s) list:0-3
Thread(s) per core:1
Core(s) per socket:4
Socket(s):1
NUMA node(s):1
Vendor ID:GenuineIntel
CPU family:6
Model:23
Stepping:10
CPU MHz:1998.000
BogoMIPS:5302.48
Virtualization: VT-x
L1d cache:32K
L1i cache:32K
L2 cache:2048K
NUMA node0 CPU(s):0-3
2. lshw - 显示硬件信息列表
这个命令用途广泛,它可以根据你的需求以详细或概要的形式列出许多个不同硬件的参数信息,其中包括cpu,内存,磁盘,usb控制器,网卡等等,lshw实质上是从/proc文件目录下的不同文件中提取对应的硬件信息。
$ sudo lshw -short
H/W path DeviceClassDescription
===================================================
system ()
/0 bus DG35EC
/0/0 processor Intel(R)Core(TM)2Quad CPU Q8400 @2.66GHz
/0/0/1 memory 2MiB L2 cache
/0/0/3 memory 32KiB L1 cache
/0/2 memory 32KiB L1 cache
/0/4 memory 64KiB BIOS
/0/14 memory 8GiBSystemMemory
/0/14/0 memory 2GiB DIMM DDR2 Synchronous667MHz(1.5 ns)
/0/14/1 memory 2GiB DIMM DDR2 Synchronous667MHz(1.5 ns)
/0/14/2 memory 2GiB DIMM DDR2 Synchronous667MHz(1.5 ns)
/0/14/3 memory 2GiB DIMM DDR2 Synchronous667MHz(1.5 ns)
/0/100 bridge 82G35Express DRAM Controller
/0/100/2 display 82G35ExpressIntegratedGraphicsController
/0/100/2.1 display 82G35ExpressIntegratedGraphicsController
/0/100/19 eth0 network 82566DCGigabitNetworkConnection
/0/100/1a bus 82801H(ICH8 Family) USB UHCI Controller#4
/0/100/1a.1 bus 82801H(ICH8 Family) USB UHCI Controller#5
/0/100/1a.7 bus 82801H(ICH8 Family) USB2 EHCI Controller#2
/0/100/1b multimedia 82801H(ICH8 Family) HD AudioController
/0/100/1c bridge 82801H(ICH8 Family) PCI ExpressPort1
/0/100/1c.1 bridge 82801H(ICH8 Family) PCI ExpressPort2
/0/100/1c.2 bridge 82801H(ICH8 Family) PCI ExpressPort3
/0/100/1c.2/0 storage JMB368 IDE controller
/0/100/1d bus 82801H(ICH8 Family) USB UHCI Controller#1
/0/100/1d.1 bus 82801H(ICH8 Family) USB UHCI Controller#2
/0/100/1d.2 bus 82801H(ICH8 Family) USB UHCI Controller#3
/0/100/1d.7 bus 82801H(ICH8 Family) USB2 EHCI Controller#1
/0/100/1e bridge 82801 PCI Bridge
/0/100/1e/5 bus FW322/323[TrueFire]1394aController
/0/100/1f bridge 82801HB/HR (ICH8/R) LPC InterfaceController
/0/100/1f.2 storage 82801H(ICH8 Family)4 port SATA Controller[IDE mode]
/0/100/1f.3 bus 82801H(ICH8 Family)SMBusController
/0/100/1f.5 storage 82801HR/HO/HH (ICH8R/DO/DH)2 port SATA Controller[IDE m
/0/1 scsi3 storage
/0/1/0.0.0/dev/sda disk 500GB ST3500418AS
/0/1/0.0.0/1/dev/sda1 volume 70GiBWindows NTFS volume
/0/1/0.0.0/2/dev/sda2 volume 395GiBExtended partition
/0/1/0.0.0/2/5/dev/sda5 volume 97GiB HPFS/NTFS partition
/0/1/0.0.0/2/6/dev/sda6 volume 97GiBLinux filesystem partition
/0/1/0.0.0/2/7/dev/sda7 volume 1952MiBLinux swap /Solaris partition
/0/1/0.0.0/2/8/dev/sda8 volume 198GiBLinux filesystem partition
/0/3 scsi4 storage
/0/3/0.0.0/dev/cdrom disk DVD RW DRU-190A
点击下面的帖子,可以对lshw有更多的了解。
在Linux上使用lshw命令获取硬件信息
3. hwinfo - Hardware Information
hwinfo同样是一个使用非常广泛的硬件信息查询命令,类似于lshw,它同样可以详细或概要地报告多个部件的硬件信息,但不同的是,它有时可以给出比lshw更多的信息。
$ hwinfo --short
cpu:
Intel(R)Core(TM)2Quad CPU Q8400 @2.66GHz,2000MHz
Intel(R)Core(TM)2Quad CPU Q8400 @2.66GHz,2000MHz
Intel(R)Core(TM)2Quad CPU Q8400 @2.66GHz,2666MHz
Intel(R)Core(TM)2Quad CPU Q8400 @2.66GHz,2666MHz
keyboard:
/dev/input/event2 AT TranslatedSet2 keyboard
mouse:
/dev/input/mice MicrosoftBasicOpticalMouse v2.0
graphics card:
Intel965G-1
Intel82G35ExpressIntegratedGraphicsController
sound:
Intel82801H(ICH8 Family) HD AudioController
storage:
Intel82801H(ICH8 Family)4 port SATA IDE Controller
Intel82801H(ICH8 Family)2 port SATA IDE Controller
JMicron JMB368 IDE controller
network:
eth0 Intel82566DCGigabitNetworkConnection
network interface:
eth0 Ethernet network interface
lo Loopback network interface
disk:
/dev/sda ST3500418AS
partition:
/dev/sda1 Partition
/dev/sda2 Partition
/dev/sda5 Partition
/dev/sda6 Partition
/dev/sda7 Partition
/dev/sda8 Partition
cdrom:
/dev/sr0 SONY DVD RW DRU-190A
usb controller:
Intel82801H(ICH8 Family) USB UHCI Controller#4
Intel82801H(ICH8 Family) USB UHCI Controller#5
Intel82801H(ICH8 Family) USB2 EHCI Controller#2
Intel82801H(ICH8 Family) USB UHCI Controller#1
Intel82801H(ICH8 Family) USB UHCI Controller#2
Intel82801H(ICH8 Family) USB UHCI Controller#3
Intel82801H(ICH8 Family) USB2 EHCI Controller#1
bios:
BIOS
... TRUNCATED ...
点击下面的链接可以查看更多关于hwinfo的信息。
在Linux上使用hwinfo命令获取硬件信息
4. lspci - 显示pci总线相关信息
lscpi命令可以列出pci总线上信息,以及所有连接到pci总线上的设备信息,比如VGA适配器,显卡,网卡,usb端口,sata控制器等等。
$ lspci
00:00.0Host bridge:IntelCorporation82G35Express DRAM Controller(rev 03)
00:02.0 VGA compatible controller:IntelCorporation82G35ExpressIntegratedGraphicsController(rev 03)
00:02.1Display controller:IntelCorporation82G35ExpressIntegratedGraphicsController(rev 03)
00:19.0Ethernet controller:IntelCorporation82566DCGigabitNetworkConnection(rev 02)
00:1a.0 USB controller:IntelCorporation82801H(ICH8 Family) USB UHCI Controller#4 (rev 02)
00:1a.1 USB controller:IntelCorporation82801H(ICH8 Family) USB UHCI Controller#5 (rev 02)
00:1a.7 USB controller:IntelCorporation82801H(ICH8 Family) USB2 EHCI Controller#2 (rev 02)
00:1b.0Audio device:IntelCorporation82801H(ICH8 Family) HD AudioController(rev 02)
00:1c.0 PCI bridge:IntelCorporation82801H(ICH8 Family) PCI ExpressPort1(rev 02)
00:1c.1 PCI bridge:IntelCorporation82801H(ICH8 Family) PCI ExpressPort2(rev 02)
00:1c.2 PCI bridge:IntelCorporation82801H(ICH8 Family) PCI ExpressPort3(rev 02)
00:1d.0 USB controller:IntelCorporation82801H(ICH8 Family) USB UHCI Controller#1 (rev 02)
00:1d.1 USB controller:IntelCorporation82801H(ICH8 Family) USB UHCI Controller#2 (rev 02)
00:1d.2 USB controller:IntelCorporation82801H(ICH8 Family) USB UHCI Controller#3 (rev 02)
00:1d.7 USB controller:IntelCorporation82801H(ICH8 Family) USB2 EHCI Controller#1 (rev 02)
00:1e.0 PCI bridge:IntelCorporation82801 PCI Bridge(rev f2)
00:1f.0 ISA bridge:IntelCorporation82801HB/HR (ICH8/R) LPC InterfaceController(rev 02)
00:1f.2 IDE interface:IntelCorporation82801H(ICH8 Family)4 port SATA Controller[IDE mode](rev 02)
00:1f.3SMBus:IntelCorporation82801H(ICH8 Family)SMBusController(rev 02)
00:1f.5 IDE interface:IntelCorporation82801HR/HO/HH (ICH8R/DO/DH)2 port SATA Controller[IDE mode](rev 02)
03:00.0 IDE interface:JMicronTechnologyCorp. JMB368 IDE controller
04:05.0FireWire(IEEE 1394): LSI Corporation FW322/323[TrueFire]1394aController(rev 70)
可以使用grep命令筛选出特定的设备信息。
$ lspci -v | grep "VGA"-A 12
5. lsscsi - 列出scsi设备信息
列出scsi/sata设备信息,比如硬盘驱动器,光盘驱动器。
$ lsscsi
[3:0:0:0] disk ATA ST3500418AS CC38 /dev/sda
[4:0:0:0] cd/dvd SONY DVD RW DRU-190A1.63/dev/sr0
6. lsusb - 列出usb总线信息,及设备信息
该命令可以显示USB控制器及连接到控制的设备信息。默认情况下,只显示概要信息,可以通过-v选项指示其显示更多的硬件信息。
$ lsusb
Bus002Device001: ID 1d6b:0002LinuxFoundation2.0 root hub
Bus007Device001: ID 1d6b:0001LinuxFoundation1.1 root hub
Bus006Device001: ID 1d6b:0001LinuxFoundation1.1 root hub
Bus005Device002: ID 045e:00cbMicrosoftCorp.BasicOpticalMouse v2.0
Bus005Device001: ID 1d6b:0001LinuxFoundation1.1 root hub
Bus001Device001: ID 1d6b:0002LinuxFoundation2.0 root hub
Bus004Device001: ID 1d6b:0001LinuxFoundation1.1 root hub
Bus003Device001: ID 1d6b:0001LinuxFoundation1.1 root hub
上面信息显示,在该系统中,有一个usb端口正被鼠标占用。
7. Inxi
inxi命令是一个大的bash脚本文件,其通过从不同的信息来源和命令中获取硬件信息,最后能给出一个颜色高亮的,适合于非专业人员阅读的硬件信息报告。
$ inxi -Fx
8. lsblk - 列出块设备信息
列出所有块设备信息,其中包括硬盘分区信息,以及其他存储设备,如光盘,闪存等。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:00465.8G0 disk
├─sda1 8:1070G0 part
├─sda2 8:201K0 part
├─sda5 8:5097.7G0 part /media/4668484A68483B47
├─sda6 8:6097.7G0 part /
├─sda7 8:701.9G0 part [SWAP]
└─sda8 8:80198.5G0 part /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
sr0 11:011024M0 rom
9. df - 显示文件系统的磁盘空间信息
报告各种挂载的文件系统信息,其中包括挂载点,已用的,可用的磁盘空间。
$ df -H
FilesystemSizeUsedAvailUse%Mounted on
/dev/sda6 104G26G73G26%/
none 4.1k04.1k0%/sys/fs/cgroup
udev 4.2G4.1k4.2G1%/dev
tmpfs 837M1.6M835M1%/run
none 5.3M05.3M0%/run/lock
none 4.2G13M4.2G1%/run/shm
none 105M21k105M1%/run/user
/dev/sda8 210G149G51G75%/media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5 105G31G75G30%/media/4668484A68483B47
10. pydf - python版本的df
一个增强型的python版的df命令,可以以不同的颜色显示所查询的信息,看起来比df更好看。
$ pydf
FilesystemSizeUsedAvailUse%Mounted on
/dev/sda6 96G23G68G24.4[#.....]/
/dev/sda8 195G138G47G70.6[####..]/media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5 98G28G69G29.2[##....]/media/4668484A68483B47
11. fdisk
fdisk命令可以用来修改硬盘分区表信息,也可以用来显示硬盘分区表信息
$ sudo fdisk -l
Disk/dev/sda:500.1 GB,500107862016 bytes
255 heads,63 sectors/track,60801 cylinders, total 976773168 sectors
Units= sectors of 1*512=512 bytes
Sector size (logical/physical):512 bytes /512 bytes
I/O size (minimum/optimal):512 bytes /512 bytes
Disk identifier:0x30093008
DeviceBootStartEndBlocksIdSystem
/dev/sda1 *6314680196973400953+7 HPFS/NTFS/exFAT
/dev/sda2 146802031976771071414984520+ f W95 Ext'd (LBA)
/dev/sda5 146802033 351614654 102406311 7 HPFS/NTFS/exFAT
/dev/sda6 351614718 556427339 102406311 83 Linux
/dev/sda7 556429312 560427007 1998848 82 Linux swap / Solaris
/dev/sda8 560429056 976771071 208171008 83 Linux
12. mount
mount命令可以用来挂载设备,当然也可以用来查看系统中设备的挂载情况。
$ mount | column -t
/dev/sda6 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda8 on /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1 type ext4 (rw,nosuid,nodev,errors=remount-ro)
/dev/sda5 on /media/4668484A68483B47 type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=enlightened)
同样,可以使用grep命令来筛选出想看的文件系统信息。
$ mount | column -t | grep ext
13. free - 查看RAM信息
查看系统中RAM的使用情况,包括已使用空间,未使用空间,以及总空间。
$ free -m
total used free shared buffers cached
Mem:797558652110024622
-/+ buffers/cache:52182757
Swap:19519211030
14. dmidecode
dmidecode命令不同于其他的命令,它是通过读取SMBOIS数据结构(也称为DMI表)中数据来提取硬件信息。
# 显示处理器信息
$ sudo dmidecode -t processor
# 显示内存信息
$ sudo dmidecode -t memory
# 显示bios信息
$ sudo dmidecode -t bios
查看man手册获取更多信息。
15. /proc 文件系统
在/proc目录下的许多虚拟文件包含了很多有关硬件参数及配置的信息。
CPU、内存信息
# cpu信息
$ cat /proc/cpuinfo
# 内存信息
$ cat /proc/meminfo
Linux内核信息
$ cat /proc/version
Linux version 3.11.0-12-generic(buildd@allspice)(gcc version 4.8.1(Ubuntu/Linaro4.8.1-10ubuntu7))#19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013
SCSI/Sata设备信息
$ cat /proc/scsi/scsi
Attached devices:
Host: scsi3 Channel:00Id:00Lun:00
Vendor: ATA Model: ST3500418AS Rev: CC38
Type:Direct-Access ANSI SCSI revision:05
Host: scsi4 Channel:00Id:00Lun:00
Vendor: SONY Model: DVD RW DRU-190ARev:1.63
Type: CD-ROM ANSI SCSI revision:05
分区信息
$ cat /proc/partitions
major minor #blocks name
80488386584 sda
8173400953 sda1
821 sda2
85102406311 sda5
86102406311 sda6
871998848 sda7
88208171008 sda8
1101048575 sr0
16. hdparm
hdparm命令可以获取sata设备如硬盘等设备信息。
$ sudo hdparm -i /dev/sda
/dev/sda:
Model=ST3500418AS,FwRev=CC38,SerialNo=9VMJXV1N
Config={HardSectNotMFMHdSw>15uSecFixed DTR>10MbsRotSpdTol>.5%}
RawCHS=16383/16/63,TrkSize=0,SectSize=0,ECCbytes=4
BuffType=unknown,BuffSize=16384kB,MaxMultSect=16,MultSect=16
CurCHS=16383/16/63,CurSects=16514064, LBA=yes,LBAsects=976773168
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=noWriteCache=enabled
Drive conforms to: unknown: ATA/ATAPI-4,5,6,7
* signifies the current active mode
总结
每一个命令在获取信息的方式会稍微有些不同,在查询某一设备时,你也有可能要结合多个命令才能获取你想要的硬件信息。不过,这些命令都可以在大多数的linux发行版中找到,可以很容易地从默认的仓库中获取安装。
在桌面版系统中,还有一个便于使用的图形界面的工具,比如Hardinfo、I-nex就是其中非常流行的工具,他们可以提供多个硬件部件的详细信息。
来源:linux.cn