Linux下收集系统和硬件信息的10个实用命令

【51CTO.com快译】知道Linux系统在什么样的硬件部件上运行始终是个好的做法,这可以帮助你在系统上安装程序包和驱动程序时,处理兼容问题。

1.如何查看Linux系统的信息

    如果仅仅想知道系统名称,你可以使用不带任何参数选项符的uname命令(会输出系统信息),或者使用uname -s命令(输出系统的内核名称)。

tecmint@tecmint ~ $ uname 
Linux

想查看网络主机名称,使用带“-n”参数选项符的uname命令,如下所示。

tecmint@tecmint ~ $ uname -n 
tecmint.com

想获得关于内核版本的信息,使用“-v”参数选项符。

tecmint@tecmint ~ $ uname -v  
#64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014

想获得关于内核发行版的信息,使用“-r”参数选项符。

tecmint@tecmint ~ $ uname -r  
3.13.0-37-generic

想输出你系统的硬件名称,使用“-m”参数选项符:

tecmint@tecmint ~ $ uname -m  
x86_64

只要运行“uname -a”命令,所有这些信息可以一下子输出,所下所示。

tecmint@tecmint ~ $ uname -a  
Linux tecmint.com 3.13.0-37-generic #64-Ubuntu SMP Mon  
Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

2.如何查看Linux系统的硬件信息

你在这里可以使用lshw工具,收集关于硬件部件(比如处理器、磁盘、内存和USB控制器等)的大量信息。

lshw是一个比较小巧的工具,你在获取信息时,没有几个选项需要结合使用。lshw提供的信息从不同的/proc文件收集而来。

请注意:务必要记住一点,lshw命令只能由超级用户(根用户)或sudo用户来执行。

想输出关于你Linux系统硬件的信息,运行这个命令。

tecmint@tecmint ~ $ sudo lshw  
tecmint.com          
          description: Notebook     
          product: 20354 (LENOVO_MT_20354_BU_idea_FM_Lenovo Z50-70)     
          vendor: LENOVO     
          version: Lenovo Z50-70     
          serial: 1037407803441     
          width: 64 bits     
          capabilities: smbios-2.7 dmi-2.7 vsyscall32     
          configuration: administrator_password=disabled boot=normal chassis=notebook family=IDEAPAD frontpanel_password=disabled keyboard_password=disabled power-on_password=disabled sku=LENOVO_MT_20354_BU_idea_FM_Lenovo Z50-70 uuid=E4B1D229-D237-E411-9F6E-28D244EBBD98 
      *-core        
            description: Motherboard        
            product: Lancer 5A5        
            vendor: LENOVO        
            physical id: 0        
            version: 31900059WIN        
            serial: YB06377069        
            slot: Type2 - Board Chassis Location      
      *-firmware           
            description: BIOS          
            vendor: LENOVO           
            physical id: 0           
            version: 9BCN26WW           
            date: 07/31/2014           
            size: 128KiB           
            capacity: 4032KiB           
            capabilities: pci upgrade shadowing cdboot bootselect edd int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int9keyboard int10video acpi usb biosbootspecification uefi
             ......

如果使用-short选项,可以输出硬件信息的摘要。

tecmint@tecmint ~ $ sudo lshw -short  
H/W path       Device      Class          Description 
=====================================================                            
                           system         20354 (LENOVO_MT_20354_BU_idea_FM_Lenovo Z50-70) 
/0                         bus            Lancer 5A5 
/0/0                       memory         128KiB BIOS 
/0/4                       processor      Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz 
/0/4/b                     memory         32KiB L1 cache 
/0/4/c                     memory         256KiB L2 cache 
/0/4/d                     memory         3MiB L3 cache 
/0/a                       memory         32KiB L1 cache 
/0/12                      memory         8GiB System Memory 
/0/12/0                    memory         DIMM [empty] 
/0/12/1                    memory         DIMM [empty] 
/0/12/2                    memory         8GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns) 
/0/12/3                    memory         DIMM [empty] 
/0/100                     bridge         Haswell-ULT DRAM Controller 
/0/100/2                   display        Haswell-ULT Integrated Graphics Controller 
/0/100/3                   multimedia     Haswell-ULT HD Audio Controller 
...

如果你想将输出生成为一个html文件,可以使用选项-html。

tecmint@tecmint ~ $ sudo lshw -html > lshw.html

图2:生成HTML格式的Linux硬件信息



3.如何查看Linux处理器的信息

想查看关于处理器的信息,可使用lscpu命令,因为它显示了来自sysfs和/proc/cpuinfo的关于处理器架构的信息,比如处理器数量、核心、处理器系列型号、处理器缓存和线程等。

tecmint@tecmint ~ $ lscpu  
Architecture:          x86_64 
CPU op-mode(s):        32-bit, 64-bit 
Byte Order:            Little Endian 
CPU(s):                4 
On-line CPU(s) list:   0-3 
Thread(s) per core:    2 
Core(s) per socket:    2 
Socket(s):             1 
NUMA node(s):          1 
Vendor ID:             GenuineIntel 
CPU family:            6 
Model:                 69 
Stepping:              1 
CPU MHz:               768.000 
BogoMIPS:              4788.72 
Virtualization:        VT-x 
L1d cache:             32K 
L1i cache:             32K 
L2 cache:              256K
L3 cache:              3072K 
NUMA node0 CPU(s):     0-3


4.如何收集Linux块设备的信息

块设备是硬盘和闪驱等之类的存储设备。lsblk命令可以用来报告关于块设备的信息,如下所示。

tecmint@tecmint ~ $ lsblk  
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT 
sda       8:0    0 931.5G  0 disk  
├─sda1    8:1    0  1000M  0 part  
├─sda2    8:2    0   260M  0 part /boot/efi 
├─sda3    8:3    0  1000M  0 part  
├─sda4    8:4    0   128M  0 part  
├─sda5    8:5    0 557.1G  0 part  
├─sda6    8:6    0    25G  0 part  
├─sda7    8:7    0  14.7G  0 part  
├─sda8    8:8    0     1M  0 part  
├─sda9    8:9    0 324.5G  0 part / 
└─sda10   8:10   0   7.9G  0 part [SWAP] 
sr0      11:0    1  1024M  0 rom

如果你想查看系统上的所有块设备,那么加上-a选项。

tecmint@tecmint ~ $ lsblk -a  
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT 
sda       8:0    0 931.5G  0 disk  
├─sda1    8:1    0  1000M  0 part  
├─sda2    8:2    0   260M  0 part /boot/efi 
├─sda3    8:3    0  1000M  0 part  
├─sda4    8:4    0   128M  0 part  
├─sda5    8:5    0 557.1G  0 part  
├─sda6    8:6    0    25G  0 part  
├─sda7    8:7    0  14.7G  0 part  
├─sda8    8:8    0     1M  0 part  
├─sda9    8:9    0 324.5G  0 part / 
└─sda10   8:10   0   7.9G  0 part [SWAP] 
sdb       8:16   1         0 disk  
sr0      11:0    1  1024M  0 rom   
ram0      1:0    0    64M  0 disk  
ram1      1:1    0    64M  0 disk  
ram2      1:2    0    64M  0 disk  
ram3      1:3    0    64M  0 disk  
ram4      1:4    0    64M  0 disk  
ram5      1:5    0    64M  0 disk  
ram6      1:6    0    64M  0 disk  
ram7      1:7    0    64M  0 disk 
ram8      1:8    0    64M  0 disk  
ram9      1:9    0    64M  0 disk  
loop0     7:0    0         0 loop  
loop1     7:1    0         0 loop  
loop2     7:2    0         0 loop  
loop3     7:3    0         0 loop  
loop4     7:4    0         0 loop  
loop5     7:5    0         0 loop  
loop6     7:6    0         0 loop  
loop7     7:7    0         0 loop  
ram10     1:10   0    64M  0 disk  
ram11     1:11   0    64M  0 disk  
ram12     1:12   0    64M  0 disk  
ram13     1:13   0    64M  0 disk  
ram14     1:14   0    64M  0 disk  
ram15     1:15   0    64M  0 disk


5.如何输出USB控制器的信息

lsusb命令可用于报告关于USB控制器及与之相连的所有设备的信息。

tecmint@tecmint ~ $ lsusb 
Bus 001 Device 002: ID 8087:8000 Intel Corp.  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub 
Bus 002 Device 005: ID 0bda:b728 Realtek Semiconductor Corp.  
Bus 002 Device 004: ID 5986:0249 Acer, Inc  
Bus 002 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller 
Bus 002 Device 002: ID 045e:00cb Microsoft Corp. Basic Optical Mouse v2.0 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

你可以使用-v选项,生成关于每个USB设备的详细信息。

tecmint@tecmint ~ $ lsusb -v


6.如何输出PCI设备的信息

PCI设备可能包括USB端口、显卡和网络适配器等。lspci工具用来生成关于你系统上所有PCI控制器以及与之相连的设备的信息。

想输出关于PCI设备的信息,可运行下面这个命令。

tecmint@tecmint ~ $ lspci  
00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 0b) 
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b) 
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 0b) 
00:14.0 USB controller: Intel Corporation Lynx Point-LP USB xHCI HC (rev 04) 
00:16.0 Communication controller: Intel Corporation Lynx Point-LP HECI #0 (rev 04) 
00:1b.0 Audio device: Intel Corporation Lynx Point-LP HD Audio Controller (rev 04) 
00:1c.0 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 3 (rev e4) 
00:1c.3 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 4 (rev e4) 
00:1c.4 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 5 (rev e4) 
00:1d.0 USB controller: Intel Corporation Lynx Point-LP USB EHCI #1 (rev 04) 
00:1f.0 ISA bridge: Intel Corporation Lynx Point-LP LPC Controller (rev 04) 
00:1f.2 SATA controller: Intel Corporation Lynx Point-LP SATA Controller 1 [AHCI mode] (rev 04) 
00:1f.3 SMBus: Intel Corporation Lynx Point-LP SMBus Controller (rev 04) 
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10) 
02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter 
03:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 840M] (rev a2)

使用-t选项,生成树状格式的输出。

tecmint@tecmint ~ $ lspci -t  
-[0000:00]-+-00.0           
           +-02.0            
           +-03.0            
           +-14.0            
           +-16.0            
           +-1b.0           
           +-1c.0-[01]----00.0            
           +-1c.3-[02]----00.0            
           +-1c.4-[03]----00.0            
           +-1d.0            
           +-1f.0            
           +-1f.2            
           \-1f.3

使用-v选项,生成关于每个所连接设备的详细信息。

tecmint@tecmint ~ $ lspci -v  
00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 0b)    
     Subsystem: Lenovo Device 3978     
     Flags: bus master, fast devsel, latency 0    
     Capabilities:  
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b) (prog-if 00 [VGA controller])     
     Subsystem: Lenovo Device 380d    
     Flags: bus master, fast devsel, latency 0, IRQ 62     
     Memory at c3000000 (64-bit, non-prefetchable) [size=4M]    
     Memory at d0000000 (64-bit, prefetchable) [size=256M]     
     I/O ports at 6000 [size=64]    
     Expansion ROM at  [disabled]    
     Capabilities:      Kernel driver in use: i915 .....


7.如何输出SCSI设备的信息

想查看你的所有SCSI/SATA设备,使用lsscsi命令,如下所示。如果你没有安装lsscsi工具,运行下面这个命令即可安装它。

 $ sudo apt-get install lsscsi        [on Debian derivatives]
 # yum install lsscsi                 [On RedHat based systems] 
 # dnf install lsscsi                 [On Fedora 21+ Onwards]

安装完毕后,运行lsscsi命令,如下所示:

tecmint@tecmint ~ $ lsscsi  
[0:0:0:0]    disk    ATA      ST1000LM024 HN-M 2BA3  /dev/sda  
[1:0:0:0]    cd/dvd  PLDS     DVD-RW DA8A5SH   RL61  /dev/sr0  
[4:0:0:0]    disk    Generic- xD/SD/M.S.       1.00  /dev/sdb

使用-s选项,显示设备的大小。

tecmint@tecmint ~ $ lsscsi -s  
[0:0:0:0]    disk    ATA      ST1000LM024 HN-M 2BA3  /dev/sda   1.00TB 
[1:0:0:0]    cd/dvd  PLDS     DVD-RW DA8A5SH   RL61  /dev/sr0        - 
[4:0:0:0]    disk    Generic- xD/SD/M.S.       1.00  /dev/sdb        -


8.如何输出关于SATA设备的信息

你可以使用hdparm实用工具,找到关于系统上SATA设备的一些信息,如下所示。在下面这个例子中,我使用了实为系统上硬盘的块设备/dev/sda1。

tecmint@tecmint ~ $ sudo hdparm /dev/sda1  
/dev/sda1: 
 multcount     =  0 (off)  
 IO_support    =  1 (32-bit)  
 readonly      =  0 (off) 
 readahead     = 256 (on)  
 geometry      = 56065/255/63, sectors = 2048000, start = 2048

想输出关于设备结构在柱面、磁头、扇区、大小和起始偏移量等方面的信息,使用-g选项。

tecmint@tecmint ~ $ sudo hdparm -g /dev/sda1  
/dev/sda1:  
    geometry      = 56065/255/63, sectors = 2048000, start = 2048


9.如何输出Linux文件系统的信息

想收集关于文件系统分区的信息,可以使用fdisk命令。虽然fdisk命令的主要功能是改动文件系统分区,但是它也可以用来查看关于文件系统上不同分区的信息。

你可以输出分区信息,如下所示。记得以超级用户的身份运行该命令,否则你看不到任何输出。

tecmint@tecmint ~ $ sudo fdisk -l  
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.   
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes 255 heads, 63 sectors/track, 121601 cylinders, 
total 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size 
(logical/physical): 512 bytes / 4096 bytes 
I/O size (minimum/optimal): 4096 bytes / 4096 bytes 
Disk identifier: 0xcee8ad92     
Device Boot      Start         End      Blocks     Id  System 
/dev/sda1        1         1953525167   976762583+  ee  GPT 
Partition 1 does not start on physical sector boundary.


10.如何获取关于硬件部件的信息

你还可以使用dmidecode实用工具来获取硬件信息,只要从DMI表读取数据。

想输出关于内存的信息,以超级用户的身份运行该命令。

tecmint@tecmint ~ $ sudo dmidecode -t memory  
# dmidecode 2.12 # SMBIOS entry point at 0xaaebef98 SMBIOS 2.7 present.  
Handle 0x0005, DMI type 5, 24 bytes Memory Controller Information     
Error Detecting Method: None    
 Error Correcting Capabilities:         None     
 Supported Interleave: One-way Interleave     
 Current Interleave: One-way Interleave     
 Maximum Memory Module Size: 8192 MB     
 Maximum Total Memory Size: 32768 MB     
 Supported Speeds:         Other     
 Supported Memory Types:         Other     
 Memory Module Voltage: Unknown     
 Associated Memory Slots: 4         0x0006         0x0007         0x0008         0x0009     Enabled Error Correcting Capabilities:         None ...

想输出关于系统的信息,运行该命令。

tecmint@tecmint ~ $ sudo dmidecode -t system  
# dmidecode 2.12 # SMBIOS entry point at 0xaaebef98 SMBIOS 2.7 present. 
Handle 0x0001, DMI type 1, 27 bytes System Information     
Manufacturer: LENOVO     
Product Name: 20354     
Version: Lenovo Z50-70     
Serial Number: 1037407803441     
UUID: 29D2B1E4-37D2-11E4-9F6E-28D244EBBD98     
Wake-up Type: Power Switch     
SKU Number: LENOVO_MT_20354_BU_idea_FM_Lenovo Z50-70     
Family: IDEAPAD ...

想输出关于BIOS的信息,运行该命令。

tecmint@tecmint ~ $ sudo dmidecode -t bios  
# dmidecode 2.12 # SMBIOS entry point at 0xaaebef98 SMBIOS 2.7 present.  
Handle 0x0000, DMI type 0, 24 bytes BIOS Information     
Vendor: LENOVO     Version: 9BCN26WW     
Release Date: 07/31/2014     
Address: 0xE0000     
Runtime Size: 128 kB     
ROM Size: 4096 kB     
Characteristics:        
     PCI is supported         
     BIOS is upgradeable         
     BIOS shadowing is allowed         
     Boot from CD is supported         
     Selectable boot is supported         
     EDD is supported         
     Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)         
     Japanese floppy for Toshiba 1.2 MB is supported (int 13h)         
     5.25"/360 kB floppy services are supported (int 13h)         
     5.25"/1.2 MB floppy services are supported (int 13h)         
     3.5"/720 kB floppy services are supported (int 13h)         
     3.5"/2.88 MB floppy services are supported (int 13h)         
     8042 keyboard services are supported (int 9h)         
     CGA/mono video services are supported (int 10h)         
     ACPI is supported         
     USB legacy is supported         
     BIOS boot specification is supported         
     Targeted content distribution is supported         
     UEFI is supported     
     BIOS Revision: 0.26     
     Firmware Revision: 0.26 
     ...

想输出关于处理器的信息,运行该命令。

tecmint@tecmint ~ $ sudo dmidecode -t processor  
# dmidecode 2.12 # SMBIOS entry point at 0xaaebef98 SMBIOS 2.7 present.  
Handle 0x0004, DMI type 4, 42 bytes Processor Information     
Socket Designation: U3E1     
Type: Central Processor     
Family: Core i5    
Manufacturer: Intel(R) Corporation     
ID: 51 06 04 00 FF FB EB BF     
Signature: Type 0, Family 6, Model 69, Stepping 1     
Flags: ...

结束语

你可以使用另外许多方法来获取关于系统硬件部件的信息。这些命令大都使用/proc目录中的文件来获取系统信息。

但愿你觉得本文很实用,如果你想添加更多的信息,或者在使用上述命令中遇到了什么困难,欢迎留言交流。

原文标题:10 Useful Commands to Collect System and Hardware Information in Linux,作者:Aaron Kili

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】


你可能感兴趣的:(Linux下收集系统和硬件信息的10个实用命令)