作为一名运维工程师,你是否遇到过这样的场景:接手一台陌生服务器,却不知道它是什么系统、什么配置?或者需要排查性能问题,却连CPU几核、内存多大都搞不清楚?
今天这篇文章,我将手把手教你查看Linux系统版本、内核信息、CPU、内存、磁盘、网卡等硬件参数,还能快速判断服务器是物理机还是虚拟机。掌握这些命令,让你在面对任何服务器时都能胸有成竹!
这是「Linux运维系列教程」的第6期,建议收藏备用,遇到问题随时查阅。
一、查看系统版本和内核版本
1.1 查看发行版信息
想知道服务器装的是CentOS、Ubuntu还是Debian?用下面这个命令就够了:
cat /etc/os-release
这个文件包含了系统的完整信息,包括发行版名称、版本号、ID等。重点看这几个字段:
• PRETTY_NAME:系统全称,如"Ubuntu 22.04.3 LTS"
• VERSION_ID:版本号,如"22.04"
• ID:发行版ID,如ubuntu、centos、debian
还有一个更简单的命令,直接告诉你系统版本:
hostnamectl
这个命令输出的信息非常全面,包括静态主机名、操作系统、内核版本、架构等,是我个人最常用的查看系统信息的命令。
1.2 查看内核版本
内核版本对于排查兼容性问题和驱动支持非常重要。查看内核版本最常用的命令是:
uname -a
输出示例:Linux web-server 5.15.0-91-generic #101-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux
这里包含了主机名(web-server)、内核版本(5.15.0-91-generic)、架构(x86_64)等信息。
如果只想看内核版本号,可以用:
uname -r
输出更简洁:5.15.0-91-generic
二、查看CPU详细信息
2.1 lscpu命令(推荐)
lscpu是查看CPU信息最全面的命令,它会从系统的各个数据源收集CPU相关信息,并以易读的格式展示。
lscpu
重点关注这些字段:
• Architecture:架构类型,x86_64表示64位
• CPU(s):逻辑CPU数量(包括超线程)
• Thread(s) per core:每个核心的线程数(2表示开启了超线程)
• Core(s) per socket:每个CPU插槽的核心数
• Socket(s):CPU插槽数量
• Model name:CPU型号名称
• CPU MHz:当前运行频率
• Cache L3:三级缓存大小
2.2 快速查看CPU核心数
如果只想快速知道有多少个逻辑CPU,用这个命令:
nproc
或者查看CPU型号:
cat /proc/cpuinfo | grep 'model name' | head -1
2.3 实时查看CPU使用率
查看当前CPU使用情况:
top
或者更友好的:
htop
htop提供了彩色界面和更直观的CPU、内存使用情况展示,强烈推荐安装使用。
三、查看内存详细信息
3.1 free命令(最常用)
查看内存使用情况的首选命令:
free -h
输出字段说明:
• total:物理内存总量
• used:已使用内存(包含缓存和缓冲区)
• free:完全未使用的内存
• shared:被tmpfs使用的内存
• buff/cache:缓存和缓冲区占用的内存
• available:真正可用的内存(包含可回收的缓存)
重要提示:判断内存是否紧张,应该看available而不是free。Linux会尽量使用空闲内存做缓存,所以free通常很小,但available才是应用程序真正能用的内存。
3.2 查看内存详细信息
如果想看更详细的内存参数:
cat /proc/meminfo
这个文件包含了内存的各种详细指标,包括MemTotal、MemFree、MemAvailable、Buffers、Cached、SwapTotal等。
3.3 查看物理内存条信息
想知道服务器插了几根内存条、每根多大容量?用dmidecode命令(需要root权限):
sudo dmidecode -t memory | grep Size
输出会显示每根内存条的容量,如"Size: 16384 MB"表示16GB内存条。
四、查看磁盘详细信息
4.1 df命令(查看磁盘使用情况)
查看磁盘空间使用情况:
df -h
输出说明:
• Filesystem:文件系统设备
• Size:总容量
• Used:已使用
• Avail:可用空间
• Use%:使用百分比
• Mounted on:挂载点
4.2 lsblk命令(查看块设备)
以树形结构展示块设备信息:
lsblk
可以清楚地看到磁盘(sda、sdb等)和分区(sda1、sdb1等)的层级关系,以及每个分区的挂载点。
4.3 fdisk命令(查看磁盘容量)
查看物理磁盘容量(需要root权限):
sudo fdisk -l | grep Disk
输出会显示每块物理磁盘的容量,如"Disk /dev/sda: 500 GiB"。
4.4 查看磁盘IO性能
查看磁盘读写速度:
iostat -x 1 3
需要安装sysstat包。这个命令可以实时监控磁盘的I/O性能,%util列接近100%说明磁盘I/O有瓶颈。
五、查看网卡详细信息
5.1 ip命令(推荐)
现代Linux系统推荐使用ip命令代替ifconfig:
ip addr
输出包含:
• 网卡名称(如eth0、ens33)
• MAC地址(link/ether后面的地址)
• IPv4地址(inet后面的地址)
• IPv6地址(inet6后面的地址)
• 网卡状态(UP/DOWN)
只查看特定网卡:
ip addr show eth0
5.2 ethtool命令(查看网卡速率)
查看网卡的硬件参数和连接状态(需要root权限):
sudo ethtool eth0
输出包含网卡速率(Speed)、双工模式(Duplex)、是否自动协商(Auto-negotiation)等信息。
快速查看网卡速度:
cat /sys/class/net/eth0/speed
输出1000表示千兆网卡,10000表示万兆网卡。
5.3 查看网卡流量统计
查看网卡收发的数据包和流量:
cat /proc/net/dev
或者使用更友好的sar命令:
sar -n DEV 1 5
实时显示网卡流量,rxKB/s是接收速率,txKB/s是发送速率。
六、判断服务器是物理机还是虚拟机
在运维工作中,经常需要判断一台服务器是物理机还是虚拟机。下面介绍几种可靠的判断方法。
6.1 systemd-detect-virt命令(最简单)
这是最简单直接的判断方法:
systemd-detect-virt
输出结果说明:
• none:物理机
• kvm:KVM虚拟机
• vmware:VMware虚拟机
• microsoft:Hyper-V虚拟机
• xen:Xen虚拟机
• oracle:VirtualBox虚拟机
6.2 dmidecode命令(最详细)
通过DMI信息查看系统产品名称:
sudo dmidecode -s system-product-name
物理机通常会显示具体的服务器型号,如"PowerEdge R740"、"ProLiant DL380"等。虚拟机则会显示"VMware Virtual Platform"、"OpenStack Nova"等。
6.3 通过硬件特征判断
查看磁盘设备:
ls /dev/disk/by-id/
物理机通常显示实际硬盘型号(如ata-HGST_HUS724040ALE640),虚拟机通常显示virtio或scsi设备。
查看CPU特征:
虚拟机通常缺少某些CPU特性,可以通过对比物理机和虚拟机的/proc/cpuinfo来判断。
查看主板信息:
sudo dmidecode -t baseboard
物理机会显示具体的主板型号和制造商,虚拟机通常显示"Intel Corporation 440BX Desktop Reference Platform"等虚拟主板。
总结一下
今天我们学习了Linux系统信息和硬件参数的查看方法,核心命令总结如下:
系统版本:
• cat /etc/os-release — 查看发行版信息
• uname -a — 查看内核版本
• hostnamectl — 查看系统综合信息
CPU信息:
• lscpu — 查看CPU详细信息
• nproc — 查看逻辑CPU数量
内存信息:
• free -h — 查看内存使用情况
• cat /proc/meminfo — 查看内存详情
磁盘信息:
• df -h — 查看磁盘使用情况
• lsblk — 查看块设备
网卡信息:
• ip addr — 查看网卡IP地址
• ethtool eth0 — 查看网卡硬件参数
物理机/虚拟机判断:
• systemd-detect-virt — 最简单直接的判断方法
• dmidecode -s system-product-name — 查看系统产品名称
如果这篇文章对你有帮助,欢迎点赞、在看、转发三连支持!有任何问题欢迎在评论区留言讨论。
关注「运维老司机」,每周分享实用的Linux运维技巧和实战经验,助你成为运维高手!