你有没有过这样的时刻——别人问你"你电脑什么配置",你愣了一下,然后默默打开系统设置翻了半天?

或者你想装个软件,它写着"至少需要 8GB 内存",你不确定自己够不够?

又或者你刚买了一台云服务器,想搞清楚商家到底给你分配了什么硬件?

在 Windows 上,你可以用"设备管理器"或"任务管理器"点几下鼠标搞定。但在 Linux 上,没有那些花花绿绿的窗口,你得靠命令

别怕。这些命令不需要你懂编程,每个都是一行文字,敲进去、回车,结果就出来了。

下面这 9 个命令,涵盖了系统、CPU、内存、硬盘、显卡、网络、实时监控——基本上你关心的硬件信息,它们全包了。


先从全局开始:我的电脑到底是什么?

uname -a —— 系统的身份证

这是最基础也最快速的一个命令。它会告诉你:内核名称、主机名、内核版本、系统架构、操作系统。

uname -a

输出大概是这个样子:

Linux myserver 5.15.0-91-generic #101-Ubuntu SMP x86_64 GNU/Linux

这些信息乍一看像天书,但其实拆开来很简单:

  • Linux —— 内核名称,说明你跑的是 Linux 系统
  • myserver —— 这台机器的主机名
  • 5.15.0-91-generic —— 内核版本号,就像软件的版本号一样
  • x86_64 —— 系统架构,说明你的是 64 位系统
  • GNU/Linux —— 完整的操作系统描述

什么时候用? 当你需要确认"这台机器跑的是什么系统、什么版本"的时候,比如安装驱动、排查兼容性问题,别人第一句话通常就是"先跑个 uname -a 看看"。

hostnamectl —— 系统的户口本

如果你觉得 uname -a 的输出太技术化了,hostnamectl 会让你舒服很多。它的输出更像是一份"人类可读"的系统档案:

hostnamectl
   Static hostname: myserver
         Icon name: computer-vm
           Chassis: vm
        Machine ID: abc123...
           Boot ID: def456...
    Virtualization: kvm
  Operating System: Ubuntu 22.04.3 LTS
            Kernel: Linux 5.15.0-91-generic
      Architecture: x86_64

这里你能一眼看出几件重要的事:

  • Operating System —— 具体是什么发行版(Ubuntu、CentOS、Debian……)
  • Virtualization —— 这台机器是物理机还是虚拟机(kvm、vmware、wsl 都会在这里显示)
  • Chassis —— 机器类型(desktop 台式机、laptop 笔记本、vm 虚拟机)

什么时候用? 刚登录一台陌生的服务器,先敲这个,30 秒内了解全局。


看看 CPU:你的大脑几核几线程?

lscpu —— CPU 的详细简历

CPU 是电脑的大脑,lscpu 会把它的一切都告诉你:

lscpu
Architecture:          x86_64
CPU(s):                4
Thread(s) per core:    2
Core(s) per socket:    2
Model name:            Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
CPU MHz:               768.000
L3 cache:              3072K

关键信息解读:

  • CPU(s): 4 —— 系统识别到 4 个逻辑 CPU(4 个线程)
  • Core(s) per socket: 2 —— 实际物理核心只有 2 个
  • Thread(s) per core: 2 —— 每个核心 2 个线程(这就是 Intel 的超线程技术)
  • Model name —— CPU 型号,决定性能天花板
  • CPU MHz —— 当前实际运行的频率

这里有个容易混淆的地方:4 个 CPU ≠ 4 个物理核心。上面这个例子实际上是 2 核心 4 线程,物理核心只有两个,但每个核心能同时处理两个线程,所以操作系统"看到"4 个 CPU。

打个比方:2 个厨师,每人有 2 只手,看起来像 4 个人在干活。

什么时候用? 编译代码、跑虚拟机、部署数据库之前,先看看 CPU 够不够用。


内存够不够用?

free -h —— 一眼看清内存使用情况

内存(RAM)决定了你的系统能同时处理多少事情。free -h 的输出非常直观:

free -h
              total        used        free      shared  buff/cache   available
Mem:           7.7Gi       2.1Gi       3.5Gi       128Mi       2.1Gi       5.2Gi
Swap:          8.0Gi          0B       8.0Gi

这里最需要关注的就两行:

  • Mem 那一行:物理内存的情况
  • Swap 那一行:交换空间(相当于内存不够时借用的硬盘空间)

很多人看到 free 很小、used 很大就慌了,觉得内存快用完了。其实不用慌,关键看 available 这一列——它才是系统真正还能用的内存。Linux 会把空闲内存拿去做缓存(buff/cache),加速系统运行,但这些内存随时可以回收。

所以在这个例子里:总共 7.7G,看起来只"剩" 5.2G 可用,其实完全不用担心。

-h 这个参数的意思是"human-readable"(人类可读),把字节数自动换算成 KB、MB、GB。没有它你会看到一堆裸数字,比如 8091236 而不是 7.7Gi

什么时候用? 程序跑起来卡了、报内存错误了,或者部署新服务之前评估剩余空间。


硬盘还剩多少空间?

df -h —— 磁盘空间的仪表盘

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda2       328G   16G  298G   6% /
/dev/vda1       511M  6.2M  505M   2% /boot/efi

每一行代表一个分区(或者叫"挂载点"),关键看这些:

  • Size —— 总大小
  • Used —— 已用
  • Avail —— 还剩多少
  • Use% —— 使用百分比
  • Mounted on —— 挂载路径(/ 是根目录,/boot/efi 是启动分区)

一个实用的小经验:当 Use% 超过 85%,你就该注意了;超过 95%,系统可能会出问题,因为很多程序需要临时写文件才能正常工作。

df 的名字来自 “disk free”(磁盘剩余空间)。它只显示已挂载的文件系统——如果一块硬盘插上了但没有挂载,df 是看不到的。

什么时候用? 系统报 “No space left on device” 错误、定时检查服务器健康状态、上传大文件之前。


显卡什么情况?

nvidia-smi —— NVIDIA 显卡的监控台

如果你有 NVIDIA 显卡(大多数 AI 开发者、游戏玩家、挖矿的人都用),这个命令就是你的好朋友:

nvidia-smi

它会输出一个相当漂亮的表格,包含:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.05    Driver Version: 525.85.05    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:01:00.0  On |                  N/A |
| 45%   62C    P0    55W / 170W |    512MiB /  8192MiB |     12%      Default |
+-------------------------------+----------------------+----------------------+

关键信息:

  • GPU Name —— 显卡型号
  • Driver Version —— 驱动版本
  • CUDA Version —— 支持的 CUDA 版本(跑 AI 模型一定要看这个)
  • Temp —— 显卡温度(长期超过 85°C 要小心)
  • Memory-Usage —— 显存使用情况(512MiB / 8192MiB = 用了 512M,总共 8G)
  • GPU-Util —— GPU 利用率(12% 说明基本在摸鱼)

如果你用的是 AMD 显卡或者没有独立显卡,这个命令会报错,那没关系,你可以用 lspci | grep -i vga 来查看基本显卡信息。

什么时候用? 跑 AI 模型训练、挖矿、玩游戏之前;排查显卡驱动问题;监控训练过程中的显存占用。


网络连上了没?

ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT
    link/ether 56:00:05:ba:75:dd brd ff:ff:ff:ff:ff:ff

你会看到每个网络接口的信息:

  • lo —— 回环接口(loopback),指向自己(127.0.0.1),每个系统都有,不用管它
  • eth0 —— 这才是真正的网卡(有些系统叫 ens33enp0s3 等名字,原理一样)
  • state UP —— 网卡已启用且连接正常
  • state DOWN —— 网卡没启用或没插网线

ip 命令是现代 Linux 的网络管理工具,用来替代老旧的 ifconfiglink 子命令只显示链路层信息(网卡状态、MAC 地址),不涉及 IP 地址。想看 IP 地址的话,用 ip addr

什么时候用? 网络连不上、配置网卡、排查网络故障。


一键看全貌:所有硬件总览

lshw -short —— 硬件的完整清单

前面每个命令各管一块,如果你想要一份完整的硬件清单,lshw -short 一次搞定:

sudo lshw -short
H/W path       Device      Class          Description
=====================================================
                           system         20354 (LENOVO)
/0                         bus            Lancer 5A5
/0/0                       memory         128KiB BIOS
/0/4                       processor      Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
/0/12                      memory         8GiB System Memory
/0/100/2                   display        Haswell-ULT Integrated Graphics Controller
/0/100/3                   multimedia     Haswell-ULT HD Audio Controller
/1                         bus            Realtek RTS5129 Card Reader Controller

这就像拿到了一张电脑的"配件清单"——CPU 什么型号、内存多大、显卡是什么、声卡是什么,一目了然。

注意这个命令需要 sudo(管理员权限),因为它要读取底层的硬件信息。如果不加 sudo,部分信息可能显示不全。

lshw 的名字来自 “list hardware”(列出硬件)。它不加 -short 时会输出极其详细的信息(多到可以滚动好几屏),加上 -short 就是精简版,适合快速浏览。

什么时候用? 你想快速了解一台机器的全部硬件配置,或者给技术支持提供硬件信息。


系统正在干什么?

top —— 实时监控台

前面那些命令都是"拍一张照片",给你看某一时刻的硬件信息。而 top 是"直播"——它实时刷新,让你看到系统此刻正在干什么:

top
top - 15:30:01 up 42 days,  3:21,  2 users,  load average: 0.52, 0.38, 0.29
Tasks: 156 total,   2 running, 154 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.2 us,  1.3 sy,  0.0 ni, 93.1 id,  0.2 wa,  0.0 hi,  0.2 si
MiB Mem :   7879.9 total,    3122.0 free,   3122.0 used,   1635.9 buff/cache
MiB Swap:   8192.0 total,   8192.0 free,      0.0 used.   4557.9 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 mysql     20   0  1256724 285620  19876 S  12.5   3.5   1234:56 mysqld
 5678 www-data  20   0   456788  98760  12345 S   5.3   1.2    456:78 nginx
 9012 root      20   0        0      0      0 I   2.1   0.0     12:34 kworker/0:1

上半部分是系统概况,下半部分是按 CPU 使用率排序的进程列表。

重点关注:

  • load average —— 系统负载,三个数字分别是过去 1 分钟、5 分钟、15 分钟的平均值。简单理解:数值小于你的 CPU 核心数就正常(4 核 CPU,负载 3 以下没问题)
  • %Cpu(s) —— CPU 使用率分布,id(idle)是空闲百分比,93.1% id 说明 CPU 基本在休息
  • %MEM —— 进程占用的内存比例
  • COMMAND —— 进程名,帮你定位是哪个程序在吃资源

退出 topq 键。

什么时候用? 服务器变慢了、风扇突然转得飞快、想看看哪个进程在捣乱。


速查表

把 9 个命令放在一起,方便你以后查阅:

命令查什么需要 root 权限?
uname -a内核版本、系统架构
hostnamectl操作系统、主机名、是否虚拟机
lscpuCPU 型号、核心数、线程数
free -h内存总量、已用、可用
df -h磁盘分区、使用率
nvidia-smiNVIDIA 显卡信息、显存、温度
ip link网卡状态、MAC 地址
lshw -short全部硬件总览是(建议加 sudo)
top实时 CPU、内存、进程监控

每个命令都可以加 --help 查看更多参数,比如 free --helplscpu --help


参考资料