Linux查看硬件信息的常用命令

0 次阅读

一、查看CPU信息

Linux服务器出现性能瓶颈时,CPU通常是首先需要确认的硬件之一。lscpu可以直接查看处理器架构、核心数、线程数、主频以及虚拟化等信息。

Bash
lscpu

常见输出包括:

Architecture:        x86_64
CPU(s):              8
On-line CPU(s):      0-7
Thread(s) per core:  2
Core(s) per socket:  4
Socket(s):           1
Model name:          Intel(R) Core(TM) i5...

其中:

  • CPU(s):逻辑CPU数量

  • Core(s) per socket:每个CPU插槽包含的物理核心数

  • Thread(s) per core:每个物理核心对应的线程数

  • Socket(s):物理CPU数量

  • Model name:处理器具体型号

  • Architecture:CPU架构,例如x86_64aarch64

如果只想快速知道逻辑CPU数量,可以执行:

Bash
nproc

也可以从/proc/cpuinfo读取更加详细的处理器信息:

Bash
cat /proc/cpuinfo

查看处理器型号:

Bash
grep "model name" /proc/cpuinfo | head

ARM服务器上通常可以使用:

Bash
lscpu | grep -E "Architecture|Model name|CPU(s)"

二、查看内存信息

查看内存容量和当前使用情况,最常用的命令是free

Bash
free -h

典型结果:

               total        used        free      shared  buff/cache   available
Mem:            15Gi        3Gi         2Gi        100Mi       10Gi        11Gi
Swap:            2Gi        0Gi         2Gi

-h表示以人类易读的单位显示,例如KB、MB、GB。

需要注意的是,Linux中的free并不等于系统真正可以立即使用的全部内存。判断内存是否紧张时,更应该关注available

查看物理内存条信息,可以使用:

Bash
sudo dmidecode -t memory

只查看内存容量:

Bash
sudo dmidecode -t memory | grep -E "Size:|Type:|Speed:"

如果需要确认服务器安装了多少根内存、每根内存的容量、类型和频率,dmidecode会比free提供更多硬件层面的信息。

三、查看硬盘信息

Linux查看硬盘时,需要区分“磁盘空间使用情况”和“物理硬件信息”。

查看磁盘分区及容量:

Bash
lsblk

使用易读单位:

Bash
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS

示例:

NAME   SIZE TYPE FSTYPE MOUNTPOINTS
sda    500G disk
├─sda1 100G part ext4   /
└─sda2 400G part ext4   /data

查看磁盘空间使用率:

Bash
df -h

df -h主要用于判断文件系统空间是否不足,而lsblk更适合查看磁盘、分区以及挂载关系。

如果需要查看硬盘型号、序列号等信息,可以使用:

Bash
sudo fdisk -l

或者:

Bash
sudo lshw -class disk -class storage

对于SATA硬盘、SSD等设备,还可以使用:

Bash
sudo smartctl -a /dev/sda

该命令属于smartmontools工具包。如果系统没有安装,可以根据发行版安装对应软件包。

例如Debian/Ubuntu:

Bash
sudo apt install smartmontools

RHEL/CentOS/Fedora系列:

Bash
sudo dnf install smartmontools

NVMe设备则可以使用:

Bash
sudo nvme list

进一步查看某块NVMe设备:

Bash
sudo nvme smart-log /dev/nvme0

四、查看主板信息

想了解服务器使用的主板厂商、型号和版本,可以通过dmidecode查询:

Bash
sudo dmidecode -t baseboard

常见字段包括:

Manufacturer
Product Name
Version
Serial Number

也可以直接查看系统硬件摘要:

Bash
sudo dmidecode -t system

这对于服务器资产登记、硬件故障排查以及确认设备型号都比较实用。

五、查看PCI设备

显卡、网卡、声卡以及部分存储控制器通常会挂载在PCI总线上,可以使用lspci查看:

Bash
lspci

例如:

00:02.0 VGA compatible controller: ...
00:14.0 USB controller: ...
01:00.0 Ethernet controller: ...

只查看显卡:

Bash
lspci | grep -i -E "vga|3d|display"

查看网卡:

Bash
lspci | grep -i ethernet

查看存储控制器:

Bash
lspci | grep -i -E "storage|sata|nvme|raid"

如果需要查看设备更详细的信息,可以使用:

Bash
lspci -vv

六、查看网卡硬件信息

查看网络接口:

Bash
ip link

如果需要查看网卡对应的硬件型号,可以结合lspci

Bash
lspci | grep -i ethernet

查看网卡驱动、速率和链路状态,ethtool更加实用:

Bash
sudo ethtool eth0

现代Linux系统的网卡名称可能不是eth0,例如可能是ens33enp3s0等。可以先通过:

Bash
ip link

确定接口名称。

查看网卡驱动:

Bash
sudo ethtool -i eth0

常见结果包括:

driver: e1000e
version: ...
firmware-version: ...
bus-info: ...

这样可以快速判断网卡当前使用的驱动程序和固件版本。

七、查看显卡信息

查看显卡型号:

Bash
lspci | grep -i -E "vga|3d|display"

NVIDIA显卡通常还可以使用:

Bash
nvidia-smi

该命令可以查看GPU型号、显存使用量、温度、功耗以及正在使用GPU的进程。

如果安装了lshw,也可以执行:

Bash
sudo lshw -C display

对于没有桌面环境的Linux服务器,这些命令尤其适合快速确认GPU是否被系统正确识别。

八、使用lshw查看完整硬件信息

lshw是Linux中非常实用的硬件信息查看工具,可以从CPU、内存、磁盘、网卡到USB设备进行统一查询。

直接执行:

Bash
sudo lshw

信息较多时,可以使用简洁模式:

Bash
sudo lshw -short

示例:

H/W path       Device      Class          Description
=====================================================
/0                         system         Computer
/0/0                       memory         16GiB System memory
/0/1                       processor      CPU
/0/100                     bridge         Host bridge
/0/100/1                    display        VGA compatible controller

针对具体硬件类型,可以使用:

Bash
sudo lshw -class processor
sudo lshw -class memory
sudo lshw -class disk
sudo lshw -class network
sudo lshw -class display

如果希望保存硬件清单,可以将结果导出:

Bash
sudo lshw -html > hardware.html

或者:

Bash
sudo lshw -json > hardware.json

九、查看USB设备

USB设备可以通过lsusb查看:

Bash
lsusb

示例:

Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 003: ID 046d:c52b Logitech, Inc.

查看USB设备详细信息:

Bash
sudo lsusb -v

如果只想确认某类设备是否被识别,可以配合grep

Bash
lsusb | grep -i storage

排查USB键盘、鼠标、U盘等设备无法识别的问题时,lsusb非常方便。

十、查看服务器风扇、温度和传感器

部分硬件温度信息可以通过lm-sensors获取。

安装后执行:

Bash
sensors

可能看到:

Package id 0:  +45.0°C
Core 0:        +42.0°C
Core 1:        +43.0°C

Ubuntu/Debian通常可以安装:

Bash
sudo apt install lm-sensors

然后执行:

Bash
sudo sensors-detect

完成检测后,再运行:

Bash
sensors

需要注意,能否读取CPU温度、主板温度和风扇转速取决于硬件、内核驱动以及服务器厂商提供的传感器支持。

十一、查看BIOS与系统固件信息

查看BIOS版本:

Bash
sudo dmidecode -t bios

也可以查询系统产品信息:

Bash
sudo dmidecode -s system-product-name
sudo dmidecode -s system-manufacturer

这些命令适合在服务器升级固件、排查兼容性问题或者进行设备资产盘点时使用。

十二、查看硬件信息的常用命令对比

命令主要用途
lscpu查看CPU架构、核心、线程等信息
nproc查看逻辑CPU数量
free -h查看内存使用情况
lsblk查看磁盘、分区和挂载关系
df -h查看文件系统空间使用情况
fdisk -l查看磁盘和分区信息
lspci查看PCI设备
lsusb查看USB设备
lshw查看完整硬件信息
dmidecode查看主板、内存、BIOS等DMI信息
ethtool查看网卡速率、驱动和链路信息
smartctl查看硬盘SMART健康信息
nvme查看NVMe设备信息
sensors查看温度、电压、风扇等传感器信息

十三、排查硬件问题时如何组合使用

单独使用一个命令通常只能看到硬件的某一方面信息。实际排查服务器问题时,可以根据故障类型组合命令。

CPU性能异常:

Bash
lscpu
nproc
cat /proc/cpuinfo

再结合:

Bash
top

或者:

Bash
htop

判断CPU实际负载。

内存不足:

Bash
free -h
sudo dmidecode -t memory

前者查看当前资源使用情况,后者确认实际安装的物理内存。

磁盘空间不足:

Bash
df -h
lsblk

如果怀疑硬盘本身存在故障:

Bash
sudo smartctl -a /dev/sda

网卡异常:

Bash
ip link
lspci | grep -i ethernet
sudo ethtool eth0

可以依次确认网卡是否存在、硬件型号以及链路和驱动状态。

GPU无法使用:

Bash
lspci | grep -i -E "vga|3d|display"
nvidia-smi

前一个命令确认PCI层面是否识别显卡,后一个命令进一步确认NVIDIA驱动和GPU运行状态。

十四、没有安装额外工具时优先使用哪些命令

Linux系统并不一定默认安装lshwsmartctlethtool等工具。遇到精简版服务器系统时,可以优先使用系统自带接口:

Bash
lscpu
free -h
lsblk
df -h
lspci
lsusb
ip link
cat /proc/cpuinfo
cat /proc/meminfo

其中/proc/sys目录也是Linux获取硬件及内核设备信息的重要来源。例如:

Bash
cat /proc/meminfo

可以获取更详细的内存统计数据。

查看系统识别的块设备:

Bash
ls /sys/class/block/

查看网卡设备:

Bash
ls /sys/class/net/

这些接口特别适合编写Shell脚本,对服务器硬件进行自动化检测。

十五、查看硬件信息时的几个注意事项

首先,df -hlsblk解决的是不同问题。df关注文件系统空间,lsblk关注块设备结构,两者不能互相替代。

其次,free -h显示的是操作系统层面的内存状态,而dmidecode -t memory更偏向物理内存条信息。如果需要确认服务器究竟安装了几根内存以及每根内存的规格,应优先使用dmidecode

另外,lspci显示的是PCI设备识别结果,并不代表对应设备驱动一定正常。比如显卡能够出现在lspci中,但驱动没有正确加载,此时仍然无法正常使用GPU。

对于生产服务器,执行dmidecodesmartctl等命令通常需要root权限。使用sudo执行时,应注意账号是否具有相应权限。

掌握lscpufreelsblklspcilshwdmidecodeethtool等Linux硬件信息查看命令后,可以快速建立从CPU、内存、磁盘到网络设备的完整硬件检查流程。日常运维不必记住所有参数,根据“查看什么硬件、需要什么信息”选择对应命令,通常能够更高效地定位服务器配置和硬件故障。