Linux 命令

lsof 是一个列出当前系统打开文件的工具。

命令格式

lsof  [  -?abChlnNOPRstUvVX  ] [ -A A ] [ -c c ] [ +c c ] [ +|-d d ] [ +|-D D ] [ +|-f [cfgGn] ] [ -F [f] ] [ -g [s] ] [ -i [i] ] [ -k k ] [ +|-L [l] ] [ +|-m m ] [ +|-M ] [ -o [o] ] [ -p s ] [ +|-r [t] ] [ -S [t] ] [ -T [t] ] [ -u s ] [ +|-w ] [ -x [fl] ] [ -z [z] ] [ -Z [Z] ] [ -- ] [names]

命令参数

-? -h
  显示帮助信息

-c s
  列出程序 s 所打开的文件

-d s
  列出文件描述符为 s 的文件

+d s
  列出目录 s 下所有打开的文件

+D D
  递归列出目录 D 下所有打开的文件

-g [s]
  列出 PGID 为 s 的用户组所打开的文件

-i [46][protocol][@hostname|hostaddr][:service|port]
  列出所使用的网络地址符合条件的文件

-p s
  列出 PID 为 s 的进程所打开的文件

-u s
  列出用户 s 所打开的文件

实例

a) 列出系统当前所有被打开的文件

lsof

b) 列出正在使用 /etc/hosts 的用户

lsof /etc/hosts

c) 列出用户 huey 所打开的文件

lsof -u huey

d) 列出既不是用户 root 也不是用户 huey 打开的文件

lsof -u ^root,^huey

e) 列出程序 mysqld 所打开的文件

lsof -c mysqld

 f) 列出 PID 为 2672 的进程所打开的文件

lsof -p 2672

g) 列出所有使用网络连接的进程

lsof -i

h) 列出所有 UDP 网络连接

lsof -i UDP

i) 列出使用 8080 端口的进程

lsof -i:8080

j) 列出被打开的文件描述符为 1 的文件

lsof -d 1
原文地址:https://www.cnblogs.com/huey/p/4435368.html