lsof 命令速查表

把 lsof 命令最常用的查找条件整理成速查表,排查端口占用和文件锁时对照查。

系统与运维·共 29 条命令·最后更新 2026-07-19
返回 系统与运维

按进程查找 By Process 5

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

按端口查找 By Port 5

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 和端口

按文件查找 By File 4

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

网络连接 Network 6

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
只查看已建立的连接

按文件类型 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 5

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
统计用户打开的文件数

💡 提示

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