lsof(List Open Files)是 Linux 下用于排查文件、网络资源占用的实用命令,系统中 “一切皆文件”(普通文件、目录、套接字等 ),它能快速定位资源关联关系。
lsof [选项] [目标]lsof 查看系统中所有进程打开的文件详情,含进程名、PID、用户、文件路径等。
lsof /path/to/file 例:lsof /var/log/syslog ,解决文件占用无法删除 / 修改问题。
lsof -p 12345 # 替换实际 PID 结合 ps 用:lsof -p (ps -ef | grep nginx | awk 'NR==1{print 2}') ,分析进程依赖文件。
lsof -u username # 替换实际用户名 例:lsof -u www-data ,查看 Web 服务用户资源占用。
lsof -i :8080 # 替换实际端口 秒查 “端口被占用” 问题,直接找占用进程(含 PID、进程名 )。
lsof -i 输出系统网络相关文件(套接字、TCP/UDP 连接等 ),排查服务监听、异常连接问题。
lsof -i tcp # 仅显 TCP 连接
lsof -i udp # 仅显 UDP 连接 lsof -c nginx # 替换实际程序名 模糊匹配进程名,快速分析服务(如 Nginx、MySQL )资源占用。
lsof | grep deleted 解决 “日志被删但磁盘空间未释放” 问题,找到占用进程后,重启进程释放空间。
列名 | 含义 | 示例值 |
|---|---|---|
COMMAND | 打开文件的进程名 | nginx python |
PID | 进程 ID | 1234 |
USER | 进程所属用户 | root www-data |
NAME | 文件名 / 路径(网络显 IP: 端口 ) | /var/log/syslog 192.168.1.1:80 |
sudo:sudo lsof [选项]遇到端口占用、文件删不掉等问题,直接套对应命令就能快速定位!
#Linux #lsof