在 Linux 系统里,有一句话非常经典:一切皆文件。
进程、端口、网络连接、设备……本质上都可以看作文件。
而有一个命令,专门用来回答一个问题:“这个文件是谁在用?”
它就是——lsof。
今天这篇文章,我们从实际使用场景出发,系统讲清 lsof 的用法和价值。一、lsof 是干什么的?
lsof 全称:List Open Files(列出打开的文件)哪个进程打开了某个文件
哪个进程占用了某个端口
某个用户正在运行什么文件
二、安装与验证
apt install lsof -y # Ubuntu / Debianyum install lsof -y # CentOS / Redhat
三、最常用场景一:查端口被谁占用(高频)
nginx 1234 root 6u IPv4 12345 TCP *:80 (LISTEN)
含义:
四、最常用场景二:查文件被谁占用
报错:Device or resource busy五、最常用场景三:查某个进程打开了什么
打开的文件
使用的端口
访问的设备
六、按用户查看资源占用
审计
资源使用分析
七、一个真实排障案例
八、lsof 与 netstat / ss 的区别
简单理解:ss 看“连接状态”,lsof 看“谁在用”。九、新手常见误区
真正理解 lsof 的前提是:在 Linux 中,端口也是文件。十、总结
lsof -i:端口 查端口占用
lsof 文件名 查文件占用
lsof -p PID 查进程资源
lsof -u 用户名 查用户占用
在Linux基础命令体系中,lsof是:定位资源冲突与异常占用的核心工具。如果你经常做运维或服务部署, lsof一定会成为你排障时的“第一反应命令”。如果这篇文章对你有帮助,欢迎点赞、收藏、转发,我们下篇继续聊 Linux 基础。