用途:lsof 用于列出系统上所有打开的文件描述符,包括普通文件、套接字、管道和设备,是排查端口占用、进程持有文件、磁盘空间未释放等问题的标准工具。
主要能力:可查看系统全部打开文件、按用户或 PID 过滤、递归查看目录下打开的文件、查看网络连接与监听端口、按协议或主机过滤、查找已被删除但仍被进程持有的文件、按进程名过滤,并支持排除用户、定时重复输出、显示文件描述符编号。
常用用法:lsof;lsof -u username;lsof -p 1234;lsof +D /var/log;lsof -i;lsof -i -sTCP:LISTEN;lsof -i :80;lsof -i tcp;lsof -i @10.0.0.1;lsof +L1;lsof -c nginx;lsof -u ^root;lsof -r 1 -i :80;lsof -d 1-10。安装:apt install lsof / dnf install lsof。无持久配置与日志,输出到终端。
限制与注意:非 root 只能看到当前用户的打开文件,完整输出需 sudo;FUSE 或网络文件系统可能产生 stat 警告,可用 -w 抑制;默认会做主机名与端口名解析,繁忙服务器上建议加 -n 和 -P 提速;+D 递归遍历较慢,可用 -D 非递归或缩小路径;lsof 单线程遍历 /proc,大系统上全量运行可能需 5-10 秒,应尽量缩小查询范围;NFS 文件锁在服务端,本地不报告。
适用场景:端口占用排查、磁盘空间未释放定位、进程文件句柄审计、网络连接检查。