lsof

lsof用来列出当前系统打开的所有的文件。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等

格式

lsof [参数][文件]

参数

-a 指示其它选项之间为与的关系
-c <进程名> 输出指定进程所打开的文件
-d <文件描述符> 列出占用该文件号的进程
+d <目录> 输出目录及目录下被打开的文件和目录(不递归)
+D <目录> 递归输出及目录下被打开的文件和目录
-i <条件> 输出符合条件与网络相关的文件
-n 不解析主机名
-p <进程号> 输出指定 PID 的进程所打开的文件
-P 不解析端口号
-t 只输出 PID
-u 输出指定用户打开的文件
-U 输出打开的 UNIX domain socket 文件
-h 显示帮助信息
-v 显示版本信息

输出

image.png

COMMAND:程序的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件( cwd 表示当前的工作目录;rtd 表示根目录;txt 表示程序的可执行文件;mem 表示内存映射文件)
TYPE:文件类型,如 DIR、REG 等
DEVICE:以逗号分隔设备编号
SIZE:文件的大小(bytes)
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称

常见命令

lsof /bin/bash 查看打开/bin/bash这个文件的所有进程
lsof /dev/sda1 查看打开/dev/sda1这个设备的所有进程
lsof +d /var/log 查看/var/log这个目录的文件的所有进程(不递归)
lsof +D /var/log 查看/var/log这个目录以及这个目录的所有子目录下的文件的所有进程(递归)
lsof -p 1152 查看1152这个进程打开的所有文件
lsof -c ^cr 排除以cr开头的进程(也可以是正则/cr[ao]/)
lsof -u xxx 查看用户为xxx打开的文件
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • lsof简介 lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何...
    壹人城阅读 340评论 0 0
  • 功能 列出进程打开的文件的信息。 描述 lsof 简介 lsof ( list open files )是一个列出...
    QuietHeart阅读 344评论 0 1
  • lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的...
    jerrik阅读 433评论 0 1
  • 简介 lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以...
    Pecksniff1994阅读 494评论 0 0
  • 这几年我周围的人常常与死亡打照面,我从最初的无法接受到不得不去面对,在到最后我的不得不去接受,有些人,已经从我的生...
    是籽阳阅读 664评论 0 0

友情链接更多精彩内容