常用Linux命令(三)

1、top 命令
top 是最常用、最经典‌的实时性能监控工具。它类似于 Windows 的“任务管理器”,能够动态显示系统中各个进程的资源占用状况(CPU、内存等)。

运行 top 后,界面分为两部分:‌上半部分为系统统计信息汇总‌,‌下半部分为进程列表‌。

top - 14:30:05 up 10 days,  3:22,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 150 total,   1 running, 149 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.1 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7820.0 total,   1200.0 free,   3500.0 used,   3120.0 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4000.0 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
   1234 root      20   0  500000  50000  10000 S   0.3   0.6   1:20.50 nginx
   5678 mysql     20   0 1000000 200000  20000 S   0.1   2.5  10:05.30 mysqld
   ...

实际使用举例

# 1. 指定刷新间隔为 2 秒(默认 3 秒)
top -d 2

# 2. 只监控特定 PID 的进程
top -p 1234

# 3. 只监控特定用户的进程
top -u root

# 4. 批量模式(非交互),常用于脚本采集数据
# 显示 5 次后退出,结果重定向到文件
top -b -n 5 > top_log.txt

2、ps 命令
ps(Process Status)是用于‌查看当前进程快照‌的命令。

与 top 不同,top 是动态实时监控,而 ps 显示的是‌执行命令那一刻‌的进程静态列表。它常用于查找特定进程的 PID、检查进程状态、分析进程树或配合 kill 命令结束进程。

参数说明

参数 风格 说明 典型用法
‌-e‌ / ‌-A‌ UNIX 显示‌所有‌进程 (Every) ps -e
‌-f‌ UNIX ‌全格式‌显示 (Full),包含 UID, PPID, C, STIME 等 ps -ef
‌a‌ BSD 显示‌所有用户‌的进程,包括其他终端的 ps a
‌u‌ BSD 以‌用户为主‌的格式显示,包含 CPU/MEM 占比 ps u
‌x‌ BSD 显示‌没有控制终端‌的进程(如后台守护进程) ps x
‌-p‌ UNIX 指定 ‌PID‌ 查看特定进程 ps -p 1234
‌-C‌ UNIX 指定‌命令名‌查看进程 ps -C nginx
‌--forest‌ GNU 以‌树状结构‌显示进程层级关系 ps -ef --forest

实际使用举例


# 方式1:UNIX 风格(推荐,信息更全,包含父进程ID)
ps -ef

# 方式2:BSD 风格(推荐,直观显示资源占用)
ps aux

# 查找 nginx 相关进程
ps -ef | grep nginx

# 查找 java 进程,并排除 grep 自身
ps -ef | grep java | grep -v grep

# 查找所有 python 进程的 PID 并杀死
kill -9 $(ps -ef | grep python | grep -v grep | awk '{print $2}')

3、df 命令
df(Disk Free)是用于‌查看文件系统磁盘空间使用情况‌的命令。它主要显示已挂载文件系统的总容量、已用空间、剩余空间以及使用率百分比。

基本语法

df [选项] [文件...]

参数说明

参数 长选项 说明 示例
‌-h‌ --human-readable ‌人性化显示‌(自动转换为 K, M, G, T)🔥 最常用 df -h
‌-T‌ --print-type 显示文件系统‌类型‌(如 ext4, xfs, tmpfs) df -Th
‌-i‌ --inodes 显示 ‌inode‌ 使用情况而非块使用率 df -i
‌-l‌ --local 只显示‌本地‌文件系统(排除 NFS 等网络挂载) df -lh
‌-P‌ --portability 使用 POSIX 输出格式(单行显示,方便脚本处理) df -P
‌-x‌ --exclude-type 排除特定类型的文件系统 df -x tmpfs

实际使用举例

#快速查看磁盘剩余空间(最常用)
df -h

#查看特定目录所在的磁盘分区
df -h /var/log/nginx/access.log
# 输出:
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1        50G   20G   30G  40% /

4、du 命令
du(Disk Usage)是用于‌估算文件和目录磁盘空间占用‌的命令。

与 df(查看整个文件系统的剩余空间)不同,du 专注于‌具体文件或目录‌的大小统计。它是排查“磁盘空间被谁占用了”的核心工具。

基本语法

du [选项] [文件或目录...]

参数说明

参数 长选项 说明 示例
‌-h‌ --human-readable ‌人性化显示‌(K, M, G)🔥 最常用 du -sh /var
‌-s‌ --summarize ‌只显示总计‌,不列出每个子目录 du -sh .
‌-a‌ --all 显示‌所有文件‌和目录(默认只显示目录) du -ah
‌-d‌ / ‌--max-depth‌ N ‌指定递归深度‌为 N 层 du -h --max-depth=1
‌-c‌ --total 最后显示一个‌总合计‌行 du -ch *.log
‌--exclude‌ - ‌排除‌特定模式的文件/目录 du -h --exclude="*.tmp"
‌-k‌ / ‌-m‌ - 以 KB 或 MB 为单位显示 du -k folder

实际使用举例

# 查看当前文件夹总共占用了多少空间
du -sh .

# 查看指定目录总大小
du -sh /var/log

5、free 命令
free 是用于‌查看内存(RAM)和交换空间(Swap)使用情况‌的命令。

基本语法

free [选项]

参数说明

参数 说明 示例
‌-h‌ ‌人性化显示‌(自动转换为 MB/GB)🔥 最推荐 free -h
‌-m‌ 以 ‌MB‌ 为单位显示 free -m
‌-g‌ 以 ‌GB‌ 为单位显示 free -g
‌-s N‌ ‌每隔 N 秒刷新一次‌(动态监控) free -s 2
‌-t‌ 显示‌总计行‌(Total = Mem + Swap) free -ht
‌-w‌ ‌宽模式‌:将 buff/cache 拆分为 buffers 和 cache 两列 free -hw

实际使用举例

free -h
              total        used        free      shared  buff/cache   available
Mem:           7.8Gi       2.1Gi       100Mi       50Mi       5.6Gi       5.4Gi
Swap:          2.0Gi       0Ki         2.0Gi

6、curl 命令
curl(Client URL)是 Linux 中最强大的‌命令行数据传输工具‌。它支持 HTTP、HTTPS、FTP、SMTP 等几十种协议,主要用于‌测试 API 接口、下载文件、查看网页响应头‌以及‌模拟各种网络请求‌。

基本语法

curl [选项] [URL]

参数说明

参数 长选项 说明 示例
‌-o‌ --output 将输出‌保存为文件‌ curl -o page.html https://baidu.com
‌-O‌ --remote-name 使用远程文件名保存 curl -O https://example.com/file.zip
‌-s‌ --silent ‌静默模式‌(不显示进度条) curl -s https://api.com
‌-S‌ --show-error 配合 -s 使用,出错时显示错误信息 curl -sS https://api.com
‌-v‌ --verbose ‌详细模式‌(显示请求/响应头、握手过程)🔥 调试必备 curl -v https://baidu.com
‌-I‌ --head 只获取‌响应头‌(HEAD 请求) curl -I https://baidu.com
参数 长选项 说明 示例
‌-X‌ --request 指定 HTTP 方法 (GET/POST/PUT/DELETE) curl -X POST https://api.com
‌-d‌ --data 发送 ‌POST 数据‌(默认 Content-Type: application/x-www-form-urlencoded) curl -d "user=admin&pass=123" https://api.com/login
‌-H‌ --header 添加‌自定义请求头‌ curl -H "Content-Type: application/json" ...
‌-F‌ --form 模拟‌表单上传文件‌ curl -F "file=@photo.jpg" https://api.com/upload

实际使用举例

#快速测试 API 接口(POST JSON)
curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -d '{"name": "Alice", "age": 25}'

#下载文件
# 方式1:指定文件名
curl -o myimage.jpg https://example.com/image.jpg

# 方式2:保持原文件名
curl -O https://example.com/archive.tar.gz

posted @ 2026-05-29 13:57  alex_lau  阅读(16)  评论(0)    收藏  举报