【51CTO.com快译】知道Linux系统在什么样的硬件部件上运行始终是个好的做法,这可以帮助你在系统上安装程序包和驱动程序时,处理兼容问题。
图1:Linux下检查硬件和系统信息的10个命令
因此在这篇技巧文章中,我们将介绍几个实用命令,它们可以帮助你获取关于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硬件信息
#p#
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
- .....
#p#
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】