后端程序员必会的Linux基础命令:网络/进程/服务器资源管理
☠博主专栏 :
文章目录
- 一、网络管理命令
- 1. `ping`:网络连通性测试
- 2. `netstat`:端口与连接监控
- 3. `curl`:HTTP请求测试
- 4. `traceroute`:网络路径分析
- 5. `ss`:现代网络连接查看(替代netstat)
- 二、进程管理命令
- 1. `ps`:进程状态快照
- 2. `top`:实时系统监控
- 3. `kill`:进程终止
- 4. `nohup` 和 `&`:后台运行命令
- 5. `jps`:Java进程管理
- 三、服务器资源管理命令
- 1. `df`:磁盘空间使用情况
- 2. `du`:目录大小查看
- 3. `free`:内存使用情况
- 4. `vmstat`:系统性能综合监控
- 5. `iostat`:I/O性能监控
- 6. `lsof`:查看被进程打开的文件
- 7. `systemctl`:服务管理
一、网络管理命令
1. ping:网络连通性测试
# 测试基本连通性(发送4个包)
ping -c 4 api.example.com
# 持续测试(每秒测试10次)
ping -i 0.1 -c 10 api.example.com
应用场景:使用ping确认网络连通性。ping不通说明是网络问题;能ping通但连接失败,可能是端口问题或应用配置问题。
2. netstat:端口与连接监控
# 查看所有监听端口
netstat -tuln
# 查看特定端口(如8080)
netstat -tuln | grep :8080
# 查看进程与端口关联(最常用!)
netstat -tulnp
应用场景:启动应用时提示"端口已被占用",使用netstat -tulnp快速找到占用端口的进程ID,决定是终止该进程还是修改应用配置。
3. curl:HTTP请求测试
# 发送GET请求
curl -v https://api.example.com/v1/data
# 发送POST请求(带JSON数据)
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com/v1/data
# 保存响应到文件
curl -o response.json https://api.example.com/v1/data
应用场景:在开发阶段验证API接口是否正常工作,或在生产环境排查第三方API调用问题。
4. traceroute:网络路径分析
traceroute api.example.com
应用场景:当访问某个服务响应缓慢时,使用traceroute找出网络路径中的瓶颈节点,判断是本地网络问题还是远程服务器问题。
5. ss:现代网络连接查看(替代netstat)
# 查看所有TCP连接
ss -tuln
# 查看特定端口
ss -tuln | grep :8080
应用场景:ss比netstat更快,提供更详细的TCP连接状态信息。
二、进程管理命令
1. ps:进程状态快照
# 查看所有进程(包括其他用户)
ps aux
# 查看特定进程
ps aux | grep java
# 以树状结构显示进程关系
ps axf
应用场景:确认某个服务是否正在运行,或查看进程之间的父子关系。
2. top:实时系统监控
top
# 在top界面中:
# P - 按CPU排序
# M - 按内存排序
# k - 终止进程(输入PID)
# q - 退出
应用场景:当服务器突然变慢,启动top查看CPU和内存使用情况,快速定位高负载进程。
3. kill:进程终止
# 终止特定进程(通过PID)
kill 12345
# 强制终止(如果普通kill无效)
kill -9 12345
# 按进程名终止(精确匹配)
pkill -f "java -jar myapp.jar"
应用场景:快速终止正在运行的测试服务,避免端口冲突。
4. nohup 和 &:后台运行命令
# 后台运行并忽略挂起信号
nohup java -jar myapp.jar &
# 查看后台进程
jobs
# 将后台进程调到前台
fg %1
应用场景:运行长时间任务时,使用nohup和&让任务在后台运行,即使关闭SSH连接也不会中断任务。
5. jps:Java进程管理
# 查看所有Java进程
jps
应用场景:确认Java进程是否正常运行。
三、服务器资源管理命令
1. df:磁盘空间使用情况
# 查看磁盘空间使用情况(人性化显示)
df -h
应用场景:服务器磁盘空间不足时,用df -h快速确认磁盘使用情况。
2. du:目录大小查看
# 查看目录大小(人性化显示)
du -sh /var/log
# 查找大文件(>100MB)
find / -type f -size +100M -exec ls -lh {} ;
应用场景:磁盘空间不足时,使用du -sh定位大目录,再用find查找具体大文件。
3. free:内存使用情况
# 查看内存使用情况(人性化显示)
free -h
# 查看内存详细使用情况
free -m
应用场景:Java应用内存泄漏时,使用free -h确认内存使用情况,判断是否需要调整JVM参数。
4. vmstat:系统性能综合监控
# 查看系统性能统计(每秒刷新)
vmstat 1
应用场景:当系统整体性能下降时,vmstat提供CPU、内存、I/O等综合信息,帮助判断是CPU瓶颈、内存瓶颈还是I/O瓶颈。
5. iostat:I/O性能监控
# 查看磁盘I/O统计
iostat -x 1 3
应用场景:当应用读写磁盘缓慢时,使用iostat查看磁盘I/O利用率,判断是否是磁盘性能瓶颈。
6. lsof:查看被进程打开的文件
# 查看占用端口的进程
lsof -i :8080
# 查看特定文件被哪些进程打开
lsof /var/log/app.log
应用场景:当需要删除正在被进程使用的文件时,先用lsof确认哪些进程在使用。
7. systemctl:服务管理
# 查看服务状态
systemctl status nginx
# 重启
systemctl restart nginx
# 启动
systemctl start nginx
应用场景:在Linux服务器上管理Nginx、MySQL等服务时,使用systemctl进行标准化操作。








