# Linux 系统资源查看命令总结(附命令快查表)

本文为总结性内容,方便快速查找适用命令。

关于详细内容,请见:# Linux进阶Day01:程序与进程、进程前后台调度、进程查杀、日志管理、systemd服务管理

命令速查表

命令 用途 常用选项 示例
top 动态查看系统负载和进程 P(按CPU排序),M(按内存排序),1(看每核CPU) top
uptime 查看系统平均负载(1/5/15分钟) uptime
free 查看内存使用 -m(MB),-h(人类可读) free -h
df 查看磁盘剩余空间 -h(人类可读),-T(显示文件系统类型) df -hT
du 查看目录/文件磁盘占用大小 -sh(汇总人类可读),`-sh * sort -hr`(排序)
ps 静态查看进程快照 -efaux `ps -ef
systemctl 管理系统服务(启动/停止/状态) status(查看状态),stop(停止),start(启动),restart(重启) systemctl status nginx
ss 查看网络连接/端口(更快) -naltp(数字+所有+监听+TCP+进程) `ss -naltp
netstat 查看网络连接/端口 -tnlp(TCP+数字+监听+进程),-s(统计) `netstat -tnlp
ping 测试网络连通性 -c N(发包次数) ping -c 4 192.168.1.12
iptables 防火墙规则管理(查看/添加/删除) -L -n(查看规则),-I(插入规则),-D(删除规则) iptables -L -n
firewall-cmd firewalld 防火墙管理 --list-all(查看所有规则),--add-service=http(放行http) firewall-cmd --list-all
ip 查看/配置网卡IP和路由 a(查看IP),link set down/up(启用/禁用网卡) ip a
ifconfig 查看/配置网卡IP(传统工具) ifconfig
curl 测试 HTTP 服务连通性/接口 -v(详细输出),-I(只查看响应头),-o /dev/null -s -w(测试耗时) curl -v http://192.168.1.12:80
lscpu 查看 CPU 核数、架构信息 grep ^CPU\(s\)(只看总核数) `lscpu
lsblk 查看磁盘分区和挂载情况 lsblk
iotop 查看磁盘 I/O 占用最高的进程 -o(只显示有IO活动的进程) iotop -o
nload 实时查看网络带宽使用情况 指定网卡名 nload eth0
sar 查看网络流量统计(系统活动报告) -n DEV 1(每秒刷新网络流量) sar -n DEV 1 5
nethogs 按进程查看网络带宽占用 指定网卡名 nethogs eth0
iftop 按连接查看网络流量 -i(指定网卡) iftop -i eth0
journalctl 查看 systemd 管理的服务日志 -u 服务名 -f(实时查看) journalctl -u nginx -f
tail 查看文件末尾内容(实时日志) -f(实时跟踪),-n N(显示N行) tail -f /var/log/nginx/error.log
kill 按 PID 终止进程 -15(正常终止),-9(强制杀死) kill -9 1234
killall 按进程名终止进程 -9(强制杀死) killall -9 httpd
nginx -t 测试 Nginx 配置文件语法 -t(测试),-T(测试并输出完整配置) /usr/local/nginx/sbin/nginx -t
head 查看文件开头(前几行) -n N(指定行数) head -20 /var/log/nginx/error.log
grep 过滤文本内容 -v(反向过滤),-i(忽略大小写) `ps -ef

场景速查(快速对应命令)

场景 用什么查
CPU 谁占最多 top → 按 P
内存谁占最多 top → 按 M
磁盘谁在疯狂读写 iotop
带宽谁在占用 nethogs / nload
端口是否正常监听 `ss -naltp
服务有没有运行 systemctl status 服务名
Nginx 配置有没有错 nginx -t
Nginx 为什么报错 tail -f /var/log/nginx/error.log
网能不能通 ping IP
防火墙开没开 firewall-cmd --list-all / iptables -L -n
磁盘还剩多少 df -h
内存还剩多少 free -h
平均负载多少 uptime

一、进程与程序的关系

程序 是用户使用计算机语言编写的、可以实现特定目标或解决特定问题的代码集合。

进程 是正在执行的一个程序或命令,每个进程都是一个运行的实体,并占用一定的系统资源。

简单理解: 程序是人写的代码,进程是正在运行的程序。当程序被执行时,程序的代码会被加载入内存,操作系统给这个进程分配一个 ID,称为 PID(Process ID,进程编号)。打开多个程序实例(如多个浏览器窗口),会产生多个进程,但它们使用的是同一个程序文件。

PID = Process ID = 进程编号

二、top:动态查看系统负载与进程信息

基本语法

bash 复制代码
top

top 命令属于动态命令,默认每 3 秒刷新一次,动态显示系统整体负载和各个进程的资源占用情况。

第一行:系统负载信息

复制代码
top - 10:12:28 up 13:05, 3 users, load average: 0.00, 0.01, 0.05
内容 说明
10:12:28 系统当前时间
up 13:05 系统已运行时间(13小时5分钟)
3 users 当前登录用户数
load average: 0.00, 0.01, 0.05 系统在 1分钟、5分钟、15分钟 的平均负载。核心判断标准: 如果负载值超过 CPU 总核心数,说明系统处于高负载状态

第二行:进程总数统计

复制代码
Tasks: 230 total, 1 running, 229 sleeping, 0 stopped, 0 zombie
内容 说明
total 进程总数
running 正在运行的进程数
sleeping 睡眠进程数
stopped 停止的进程数
zombie 僵尸进程数。如果不是 0,需要手工检查并清理僵尸进程

第三行:CPU 使用情况

复制代码
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.7%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st
字段 说明
%us 用户态 CPU 占用(User space)
%sy 内核态 CPU 占用(System space)
%ni 改变过优先级的进程占用的 CPU 百分比
%id 空闲 CPU 百分比(idle)
%wa I/O 等待占用的 CPU 百分比(磁盘 I/O、网络 I/O 等待)
%hi 硬中断占用的 CPU 百分比
%si 软中断占用的 CPU 百分比
%st 虚拟化中虚拟 CPU 等待实际 CPU 的时间百分比(Steal Time)

判断 CPU 压力的方法:

  • %id 持续过低(< 20%)→ CPU 繁忙
  • %wa 持续过高 → 磁盘或网络 I/O 存在瓶颈
  • %us + %sy 持续 > 80% → CPU 资源紧张

问题:多核 CPU 如何查看每一核的负载?

在 top 界面按快捷键 1,可展开显示每个 CPU 核心的单独负载。

第四行:物理内存使用情况

复制代码
Mem: 1863252 total, 829960 used, 68352 free, 96490 buff/cache
字段 说明
total 物理内存总量(KB)
used 已使用的物理内存
free 空闲物理内存
buff/cache 用于缓冲和缓存的内存

真正剩余内存 = free + buff/cache (因为 buff/cache 在需要时可被回收)

真正使用内存 = used - buff/cache

第五行:交换分区(Swap)信息

复制代码
Swap: 2097148 total, 3336 used, 2093812 free, 622420 avail Mem
字段 说明
total 交换分区总大小
used 已使用的交换分区
free 空闲交换分区
avail Mem 可用内存(推荐关注此值,无需计算 buff/cache)

Swap 分区说明: 当物理内存不足时,系统自动从硬盘划出一块区域充当内存使用。Swap 使用率过高说明物理内存严重不足,需要扩容或优化应用。

进程列表字段说明

字段 说明
PID 进程 ID
USER 进程所属用户
PR 优先级,数值越小优先级越高
NI NICE 优先级,取值范围 -20 到 19,默认 0
VIRT 虚拟内存大小(KB)
RES 物理内存大小(KB)
SHR 共享内存大小(KB)。进程实际内存 = RES - SHR
S 进程状态:S=睡眠,R=运行,Z=僵尸
%CPU CPU 占用百分比
%MEM 内存占用百分比
TIME+ 累计占用 CPU 时间
COMMAND 进程名

top 交互快捷键

快捷键 作用
P(大写) 按 CPU 使用率从高到低排序
M(大写) 按内存使用率从高到低排序
1 展开/合并多核 CPU 的负载显示
q 或 Ctrl + C 退出 top

CPU 负载压测命令

bash 复制代码
# 利用 /dev/urandom 生成随机数据并用 md5sum 计算,消耗 CPU 资源
cat /dev/urandom | md5sum

三、free:查看内存使用情况

基本语法

bash 复制代码
free [选项]
选项 说明
-m 以 MB 为单位显示内存大小
-h 以人类可读格式显示(GB/MB/KB)

1GB = 1024MB 1MB = 1024KB

示例

available 列 是系统真正可用的内存,用户无需手动计算 buffer/cache,直接查看此列即可。

四、df:查看磁盘剩余空间

本命令既能查看磁盘剩余空间,又能查看挂载情况和文件系统

基本语法

bash 复制代码
df [选项]
选项 说明
-h 以人类可读格式显示(GB/MB)
-T 显示文件系统类型(如 xfs、ext4)

df = Disk Free,即磁盘剩余空间

示例

字段 说明
Filesystem 文件系统名称/磁盘分区
Size 总大小
Used 已使用大小
Avail 剩余可用大小
Use% 使用百分比
Mounted on 挂载路径(相当于 Windows 的盘符)

关注点: Use% 超过 85%-90% 时,需要清理磁盘或扩容。

五、ps:静态查看系统进程信息

top 是动态查看(每 3 秒刷新),ps 是静态查看(仅查询执行瞬间的快照)。

基本语法

bash 复制代码
ps [选项]
选项 说明
-e-A 列出全部进程
-f 显示完整字段(full)
-l 长格式输出
aux 以 BSD 格式显示所有进程(无 - 前缀)

示例 1:ps -ef(System V 风格)

字段 说明
UID 进程所属用户 ID
PID 进程 ID
PPID 父进程 ID。如果父进程已终止,子进程找不到父进程,则成为僵尸进程
C CPU 占用率(百分比形式)
STIME 进程启动时间
TTY 终端设备。? 表示非终端发起的后台进程
TIME 进程实际使用的 CPU 时间
CMD 进程名或路径

示例 2:ps aux(BSD 风格)

字段 说明
USER 进程所属用户
PID 进程 ID
%CPU CPU 占用百分比
%MEM 内存占用百分比
VSZ 虚拟内存大小(KB)
RSS 固定物理内存大小(KB)
TTY 终端:tty1-tty6 为本地终端,pts/0 为远程连接
STAT 进程状态:R=运行,S=睡眠,T=停止,Z=僵尸
START 启动时间
TIME 累计 CPU 时间
COMMAND 实际执行指令

实际工作场景:过滤指定进程

bash 复制代码
# 基本过滤
ps -ef | grep crond

# 去掉 grep 自身的匹配行
ps -ef | grep crond | grep -v "grep"

# 只显示需要的进程信息
root       7102      1  0 Mar23 ?        00:00:04 /usr/sbin/crond -n

grep -v 用于去除包含指定关键词的那一行。

六、netstat / ss:查询网络端口与连接信息

netstat 基本语法

bash 复制代码
netstat [选项] | grep 进程名
选项 说明
-t 只列出 TCP 协议的连接
-u 只列出 UDP 协议的连接
-n 将地址和端口以数字形式显示(不解析域名)
-l 只过滤出状态为 LISTEN(监听中)的连接
-p 显示发起连接的进程 PID 和进程名称
-s 统计各类连接信息

常用组合: -ntulp = tcp + 数字 + 监听 + 进程

只需记住常用一个组合即可

示例

bash 复制代码
# 查询 httpd 服务的端口信息
netstat -ntulp | grep httpd

# 查询 22 号端口(SSH)的连接情况
netstat -napt | grep :22

# 查看网络连接统计
netstat -s

ss 基本语法

bash 复制代码
ss -naltp | grep 进程名

参数说明:

  • -n:数字显示
  • -a:显示所有 socket
  • -l:只显示监听中的端口
  • -t:只显示 TCP
  • -p:显示进程信息

示例

bash 复制代码
# 查询 sshd 服务的端口信息
ss -naltp | grep sshd

netstat 与 ss 的区别:

① netstat 信息简洁,ss 信息更丰富;② ss 执行效率比 netstat 高(ss 直接读取内核数据,netstat 遍历 /proc 文件系统)

七、kill / killall:终止进程

kill:根据 PID 终止进程

bash 复制代码
kill [信号] PID

原理: kill 命令向进程发送信号,系统内核根据信号类型对进程进行相应操作。

信号 说明
-15(默认) 正常终止进程(SIGTERM),给进程清理资源的机会
-9 强制杀死进程(SIGKILL),立即结束,不进行清理

kill -9 是互联网中最常用的强制杀进程方式,但应优先使用 kill -15,给进程正常退出的机会。

示例

bash 复制代码
# 查找 crond 进程的 PID
ps -ef | grep crond | grep -v grep
# 输出:root 7102 1 0 Mar23 ? 00:00:04 /usr/sbin/crond -n

# 正常终止进程
kill 7102

# 强制杀死进程
kill -9 7102

killall:根据进程名批量终止

bash 复制代码
killall [信号] 进程名

示例

bash 复制代码
# 杀死所有 crond 进程
killall crond

# 强制杀死所有 httpd 进程
killall -9 httpd

八、查看硬件资源信息

查看 CPU 信息

bash 复制代码
cat /proc/cpuinfo

包含 CPU 型号、物理核心数、逻辑核心数、频率等。

查看内存信息

bash 复制代码
cat /proc/meminfo

包含物理内存总量、空闲内存、缓存、交换分区等详细信息。

九、总结

  • top:动态监控,适合实时查看系统负载和找出高 CPU/内存的进程
  • free :快速查看内存剩余,关注 available
  • df :快速查看磁盘空间,关注 Use%
  • ps :静态快照,适合结合 grep 精确查找某个进程的 PID/PPID
  • netstat/ss :查看端口监听和网络连接状态,ss 效率更高
  • kill/killall :终止异常进程,优先使用 kill -15,无效时再使用 kill -9
相关推荐
Acrellea1 小时前
固态变压器(SST)热管理破局:安科瑞交直流专属测温方案护航无人值守运维
运维·网络
寒冰碧海1 小时前
大模型部署从0到1(一):通用环境全流程准备|NVIDIA驱动+Docker+NVIDIA Container Toolkit
运维·docker·容器
硬核子牙2 小时前
代码展示大模型的智能
linux·chatgpt·agent
清水白石0082 小时前
Python 类定义阶段自动注册子类:从 `__init_subclass__` 到插件系统实战
linux·前端·python
蝶恋舞者2 小时前
DNS 服务器(后续持续更新)
运维·服务器
jiang_changsheng3 小时前
Conda 的默认环境创建优先级。
linux·windows·python
smallerxuan3 小时前
Linux 设备树(Device Tree)概览
linux·设备树·dts
Mortalbreeze3 小时前
深入理解 Linux 线程机制(四):线程同步——条件变量与信号量
linux·运维·服务器·开发语言·c++
Huangjin007_3 小时前
【Linux 系统篇(一)】入门基础指令详解(一)
linux·服务器