后端程序员必会的 Linux 基础命令:网络 / 进程 / 服务器资源管理
作为后端程序员,Linux 服务器运维和故障排查是日常工作中绕不开的部分。下面按网络、进程、资源管理三大类,整理出最实用、最常敲的命令清单(2025–2026 主流版本),附带常用参数、实际场景和技巧。
一、网络相关命令(排查连接、端口、流量、DNS 等)
| 命令 | 主要作用 | 常用参数 / 示例 | 典型场景 |
|---|---|---|---|
netstat / ss | 查看网络连接、监听端口 | ss -tuln(推荐)ss -tunlp(带进程)ss -s(统计) | 查看端口占用、连接状态、哪个进程在监听 8080 |
lsof | 列出打开的文件(含 socket) | lsof -i:8080(指定端口)lsof -iTCP:80 | 快速找到占用端口的进程 |
ip | 现代网络配置查看(替代 ifconfig) | ip addr / ip link / ip routeip neigh(ARP 表) | 查看 IP、网卡、路由表 |
ping | 测试网络连通性 | ping -c 4 baidu.comping -i 0.2(高频 ping) | 基础连通性测试 |
traceroute / mtr | 查看路由路径 | traceroute baidu.commtr -r -c 100 baidu.com(推荐) | 排查网络延迟、丢包、路由问题 |
curl / wget | 测试 HTTP 接口、下载文件 | curl -I https://api.example.com(只看 header)curl -v(详细) | 接口调试、抓取 header、测试超时 |
tcpdump | 抓包分析 | tcpdump -i eth0 port 80 -nn(抓 80 端口)tcpdump -i any host 8.8.8.8 | 抓取网络包、分析协议(HTTP、TCP 握手) |
nslookup / dig | DNS 解析 | dig +short baidu.comdig @8.8.8.8 www.example.com | 检查 DNS 解析是否正确 |
iftop / nload | 实时监控网卡流量 | iftop -i eth0nload eth0 | 查看哪个 IP 流量大 |
常用组合:
- 端口被占用?→
ss -tunlp | grep 8080→ 找到 PID →ps -ef | grep PID - 接口不通?→
ping 目标IP→traceroute 目标IP→tcpdump抓包
二、进程相关命令(查看、监控、杀进程、资源占用)
| 命令 | 主要作用 | 常用参数 / 示例 | 典型场景 |
|---|---|---|---|
ps | 查看进程 | ps aux(所有进程)ps -ef --sort=-%cpu(按 CPU 降序) | 快速查看所有进程信息 |
top / htop | 实时监控进程(推荐 htop) | top -c(显示完整命令)htop(更美观,支持鼠标) | 实时查看 CPU、内存、进程占用 |
pidstat | 进程级资源监控(sysstat 包) | pidstat 1(每秒刷新)pidstat -u 1(CPU)pidstat -r 1(内存) | 精确监控某个 PID 的 CPU/内存/IO 使用 |
pstree | 查看进程树 | pstree -p(带 PID)pstree -a -u -p | 查看进程父子关系(排查 zombie、孤儿进程) |
kill / pkill | 杀死进程 | kill -9 PIDpkill -9 java(杀所有 java 进程) | 强制杀死进程 |
lsof | 查看进程打开的文件/端口 | lsof -p PID(进程打开的所有文件)lsof -p PID | grep LISTEN | 排查端口、文件句柄泄漏 |
strace | 跟踪系统调用(神器) | strace -p PID(跟踪进程)strace -f -e trace=network java -jar xxx.jar | 排查卡死、IO 慢、系统调用异常 |
perf | 性能剖析(火焰图) | perf record -p PID -g -- sleep 10perf report | 定位 CPU 热点、锁竞争 |
常用组合:
- 进程 CPU 飙高?→
top找到 PID →pidstat -u 1 -p PID→strace -p PID或perf record - 端口被占用?→
ss -tunlp | grep 8080→ 拿到 PID →ps -ef | grep PID
三、服务器资源管理命令(内存、CPU、磁盘、IO)
| 命令 | 主要作用 | 常用参数 / 示例 | 典型场景 |
|---|---|---|---|
free | 查看内存使用 | free -h(人类可读)free -h -s 1(每秒刷新) | 快速看内存占用、swap 使用情况 |
vmstat | 虚拟内存、进程、CPU 统计 | vmstat 1(每秒刷新)vmstat 1 10(10 次) | 查看 CPU 等待队列、swap 换入换出 |
iostat | 磁盘 IO 统计(sysstat 包) | iostat -x 1(扩展统计)iostat -dx 1(按磁盘) | 排查磁盘 IO 高、慢查询 |
df | 磁盘空间使用 | df -h(人类可读)df -h /data | 查看磁盘使用率 |
du | 查看目录/文件大小 | du -sh /var/log/*(查看日志目录大小)du -h --max-depth=1 /data | 快速定位哪个目录占空间大 |
sar | 历史资源监控(sysstat 包) | sar -u 1 5(CPU)sar -r(内存)sar -d(磁盘) | 查看过去 1 分钟、5 分钟、15 分钟的资源使用 |
uptime / w | 查看系统负载 | uptime(负载平均值)w(当前登录用户) | 快速判断系统是否繁忙(负载 > 核数 × 2 就偏高) |
top / htop | 综合资源监控 | top → 按 Shift + P(CPU 排序)htop → 按 F6 排序 | 日常监控首选 |
常用组合:
- 内存不足?→
free -h→cat /proc/meminfo→vmstat 1(看 si/so 列) - 磁盘满?→
df -h→du -sh /*逐级定位 →du -sh /var/log/*(日志大户)
四、后端开发最常用 10 条组合命令(速记版)
- 查看端口占用:
ss -tunlp | grep 8080 - 查看进程 CPU/内存:
top→ 按Shift + P或Shift + M - 查看进程打开文件:
lsof -p PID - 查看进程网络连接:
ss -tunlp | grep PID - 查看系统负载:
uptime或w - 查看内存详细:
free -h+cat /proc/meminfo - 查看磁盘 IO:
iostat -x 1 - 定位大文件/目录:
du -sh /* | sort -hr - 抓包分析:
tcpdump -i eth0 port 8080 -nn -c 100 - 跟踪进程系统调用:
strace -p PID -f -tt
五、推荐工具(提升效率)
- htop(比 top 好用太多)
- glances(一屏看所有资源)
- btop(现代美观版 top)
- sysdig / bpftrace(高级 eBPF 工具)
- prometheus + node_exporter(长期监控)
掌握这些命令,你就能快速定位 90% 的线上问题。
如果你想深入某个命令的底层原理(例如 ss 怎么从内核读取 socket 信息、strace 如何 hook 系统调用等),或者需要完整的一套故障排查流程模板,随时告诉我,我继续展开。