lsof Cheatsheet - Linux Process & Port Diagnostics Reference

排查端口占用和文件锁必备的 lsof 命令都在这里了,从按进程查到按端口查,按场景分类整理,排障直接复制。

SysOps·35 commands·Last updated 2026-07-21
Back to SysOps

按进程查找 By Process 6

lsof -p 1234
查看指定 PID 打开的文件
lsof -c nginx
查看 nginx 进程打开的文件
lsof -c /^nginx/
正则匹配进程名
lsof -u tom
查看指定用户打开的文件
lsof -u ^root
排除 root 用户
lsof -p 1234,5678
查看多个进程打开的文件

按端口查找 By Port 6

lsof -i :80
查看占用 80 端口的进程
lsof -i :8080 -i :8443
查看多个端口
lsof -i tcp:80
只查看 TCP 80 端口
lsof -i udp:53
只查看 UDP 53 端口
lsof -i @192.168.1.1:80
查看指定 IP 和端口
lsof -i :1-1024
查看所有特权端口(1-1024)占用

按文件查找 By File 4

lsof /var/log/syslog
查看谁打开了指定文件
lsof +D /var/log/
查看目录下所有打开的文件
lsof +d /var/log/
只查看当前目录(不递归)
lsof /dev/sda1
查看谁在使用指定设备

网络连接 Network 8

lsof -i
查看所有网络连接
lsof -i -n
不解析域名(更快)
lsof -i -P
不解析端口名(显示数字端口)
lsof -i -n -P
组合使用(最快)
lsof -i tcp@192.168.1.1:22
查看到指定主机的 SSH 连接
lsof -i -sTCP:ESTABLISHED
只查看已建立的连接
lsof -i 4 -P -n
只查看 IPv4 连接(不解析加速)
lsof -i 6 -P -n
只查看 IPv6 连接

按文件类型 By Type 4

lsof -t
只输出 PID(方便管道处理)
lsof -F pfc
输出格式化的字段(PID/命令/用户)
lsof -a -p 1234 -c nginx
AND 组合条件
lsof -Or -p 1234 -p 5678
OR 组合条件

常见排障场景 Troubleshooting 7

lsof -i :80 | grep LISTEN
查看 80 端口监听进程
lsof +L1
查看已删除但仍被打开的文件(磁盘满时用)
lsof -nP -iTCP -sTCP:LISTEN
查看所有监听中的 TCP 端口
lsof -i :22 | grep ESTABLISHED
查看已建立的 SSH 连接
lsof -u tom | wc -l
统计用户打开的文件数
kill $(lsof -t -i :8080)
一键杀掉占用 8080 端口的进程
lsof -i :80 -r 5
每 5 秒重复监控 80 端口

💡 Tips

  • lsof 需要 root 权限才能查看所有用户的文件,普通用户只能看自己的。
  • 端口占用排查:先用 lsof -i :port 找到 PID,再用 kill 杀进程或改配置。
  • 磁盘满但找不到大文件时,用 lsof +L1 找已删除但仍被进程占用的文件。