文章

lsof命令

lsof 用于列出当前系统上被进程打开的文件。

lsof命令

简介

lsof(list open files)命令,用于列出当前系统上被进程打开的文件,查看打开文件的进程和相关信息。

lsof部分命令要sudo才会显示结果。

lsof的输出字段

字段说明
COMMAND打开文件的进程名
PID进程ID
USER运行进程的用户
FD文件描述符,表示进程使用的文件标识符
(如cwd 当前工作目录, txt 程序执行文件, etc.)
TYPE文件类型,如REG(普通文件)、DIR(目录)、CHR(字符设备)
DEVICE设备标识(设备号),显示该文件所在的设备
SIZE/OFF文件大小/偏移量
NODEinode节点号
NAME文件名

分页显示命令输出结果

1
lsof | more

列出打开的网络文件

1
2
3
4
5
6
7
8
9
10
# 获得所有在指定端口号上打开的文件
lsof -i:端口号
# 列出使用了TCP 或 UDP 协议的文件
lsof -i TCP/UDP
# 列出使用了TCP 协议并且端口为3333的文件
lsof -i TCP:3333
# 列出使用了TCP协议并且端口范围为 1 到 1024 的文件
lsof -i TCP:1-1024

# lsof部分命令要sudo才会显示结果。

列出指定用户的进程打开的文件

1
lsof -u username

列出指定PID的进程打开的文件

1
lsof -p PID

列出指定命令名的进程打开的文件

1
lsof -c nginx   # 会列出所有由nginx进程打开的文件。
本文由作者按照 CC BY 4.0 进行授权