lsof 是 linux 下的一个非常实用的系统级的监控、诊断工具。它是 List Open Files的缩写。

使用 lsof,你可以获取任何被打开文件的各种信息,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

快速上手lsof命令(快速上手lsof命令)(1)

-c选项 命令名称,使用这个选项可以查找指定命令所使用的文件

例1:查看sftp使用的文件

lsof -c sftp

快速上手lsof命令(快速上手lsof命令)(2)

如图所示,sftp正在下载文件。因为没有使用root帐户执行,所以很多行提示权限拒绝。

例2:查看使用文件的进程

lsof DB02-20220520.xb.rar

快速上手lsof命令(快速上手lsof命令)(3)

-i选项,查看网络ipv4、ipv6打开的文件

例3:列出所有打开了的网络文件

lsof -i

快速上手lsof命令(快速上手lsof命令)(4)

例4:列出打开的ipv4网络文件

lsof -i 4

快速上手lsof命令(快速上手lsof命令)(5)

例5:列出打开的端口号22网络文件

lsof -i:22

快速上手lsof命令(快速上手lsof命令)(6)

类似的还可以按网络协议:

lsof -i TCP:22

按协议并且使一段端口号:

lsof -i TCP:1-1024

D选项,列出指定目录下打开的文件

例6:列出当前目录下打开的文件

lsof D ./

快速上手lsof命令(快速上手lsof命令)(7)

-p选项,查看指定pid进程打开的文件

例7:查看838进程打开的文件

lsof -p 838

快速上手lsof命令(快速上手lsof命令)(8)

-u选项,查看指定用户打开的文件

例8:查看allenle用户打开的文件

lsof -u allenle

快速上手lsof命令(快速上手lsof命令)(9)

,