常用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

浙公网安备 33010602011771号