跳到主要内容

lsof 文件描述符排查速查表

lsof(List Open Files)是 Linux/Unix 系统的必备诊断工具,用于列出当前系统打开的文件、管道、网络连接等资源。本速查表涵盖基础用法、网络排查、用户进程分析及高级技巧,还包括 fuser 和 /proc 文件系统的实用命令。

更新: 2026-07-17·27 条命令

概述

lsof(List Open Files)是一个列出进程打开文件的命令行工具。在 Unix/Linux 中一切皆文件,lsof 是排查问题的重要工具。

快速开始

``bash lsof -i :80 # 查找端口 80 的监听进程 lsof -u username # 列出用户打开的文件 lsof -p PID # 列出进程打开的文件 ``

详细用法请参阅下方命令表格。

基本用法(8)

命令难度
lsof
列出当前系统所有打开的文件
基础
lsof +D /path
递归列出目录下所有打开的文件
中级
lsof /path/to/file
查看哪些进程正在使用某个文件
基础
lsof -n -P
不解析 DNS 和端口名(加速输出)
中级
ls -la /proc/PID/fd/
通过 /proc 直接查看进程的文件描述符
中级
ls -la /proc/PID/cwd
查看进程的当前工作目录
中级
ls -la /proc/PID/exe
查看进程的可执行文件路径
中级
readlink /proc/PID/fd/N
查看特定文件描述符指向的目标
中级

网络排查(8)

命令难度
lsof -i
列出所有网络连接(IPv4/IPv6)
基础
lsof -i :port
查看特定端口的连接
基础
lsof -i :port1-port2
查看端口范围
中级
lsof -iTCP -sTCP:LISTEN
列出所有 TCP 监听中的连接
中级
lsof -iUDP
列出所有 UDP 连接
中级
lsof -i @host
按主机/IP 过滤网络连接
中级
lsof -i -sTCP:LISTEN -n -P
无 DNS/端口解析的监听列表(常用组合)
中级
lsof -iTCP -sTCP:ESTABLISHED -n -P
查看已建立的 TCP 连接
中级

用户进程(5)

命令难度
lsof -u user
列出指定用户的打开文件
基础
lsof -u ^user
排除指定用户的文件
中级
lsof -c process
按进程名前缀查找
基础
lsof -p PID
查看特定 PID 的打开文件
基础
lsof -p PID1,PID2
查看多个 PID 的打开文件
中级

高级排查(6)

命令难度
lsof -F
机器可解析的输出格式(用于脚本)
高级
lsof | grep DEL
查找已删除但仍占用磁盘的『幽灵文件』
高级
lsof -a -u user -i
AND 条件组合(同时匹配用户和网络)
高级
fuser /path/to/file
显示正在使用特定文件或套接字的进程 PID
中级
fuser -k /path
杀死使用特定文件/端口的进程
高级
fuser -v /path
详细模式显示使用文件的进程信息
中级

常见问题

本速查表数据整理自各工具官方文档。最后更新: 2026-07-17。