输出当前所有活跃进程打开的所有文件。文件、目录、管道、socket套接字、设备等等。
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME
其中
COMMAND:
显示命令的名称
PID:
进程ID
USER:
用户名
FD:
cwd 当前目录
txt txt文件
rtd root目录
mem 内存映射文件
TYPE:
TYPE 说明
DIR 目录
REG 普通文件
CHR 字符
a_inode Inode文件
FIFO 管道或者socket文件
netlink 网络
unknown 未知
DEVICE:
表示设备ID
SIZE/OFF:
表示进程大小
NODE:
表示文件的Inode号
NAME:
表示路径或者链接
lsof:
-u 选项可以列出指定用户已经打开的文件,表示列出所有指定用户已打开的所有文件
lsof -u xiao # xiao 用户已经打开了的文件
lsof -u ^xiao # xiao 用户之外已经打开了的文件
lsof -u xiao | grep deleted # 找出打开着但已被删除了的文件
lsof -u xiao | grep cache # 找出打开着的 cache 文件
-i 选择IPV 4/6 文件
lsof -i 4 # 列出所有已经打开了的 ipv4 网络文件
lsof -i TCP/UDP # 列出使用了TCP 或 UDP 协议的文件
lsof -i TCP/UDP 列出使用了TCP 或 UDP 协议的文件
lsof -i TCP:1-1024 列出使用了TCP协议并且端口范围为 1 到 1024 的文件
+D 选项会列出一个目录和其子目录中打开的文件
+d 选项只会列出当前目录下已打开的文件
-p 选项后面可以指定多个进程ID,加上 ^ 符号排除掉某个进程打开的文件
kill -9 `lsof -t -u xiao` 杀死指定用户的所有进程
更多参数查阅 lsof -h 。