当前位置:   article > 正文

linux lsof命令(lsof指令:list open file)列出系统打开文件:网络连接(网络套接字)、管道、设备、目录和普通文件(通过进程号查找监听端口、查找端口)

lsof

简单解释

lsof是一个用于列出当前系统打开的文件的命令行工具,它可以显示系统中所有打开的文件,包括网络连接、管道、设备、目录和普通文件等。

lsof命令的基本语法如下:

lsof [options]
  • 1

其中,options是可选参数,可以用来指定lsof的输出格式、过滤条件等。

下面是一些常用的lsof命令选项:

  • -a:表示逻辑与,用于指定多个过滤条件之间的关系;
  • -c:表示按进程名过滤;
  • -d:表示按文件描述符过滤;
  • -g:表示按组ID过滤;
  • -i:表示按网络连接过滤;
  • -p:表示按进程ID过滤;
  • -u:表示按用户ID过滤;
  • -t:表示只输出进程ID;
  • -F:表示指定输出格式;
  • -h:表示不显示列名;
  • -n:表示不解析主机名;
  • -P:表示不解析端口号;
  • -r:表示指定输出间隔时间;
  • -s:表示按文件大小过滤;
  • -T:表示指定输出格式。

例如,要列出所有打开的文件,可以使用以下命令:

lsof
  • 1

要列出指定进程打开的文件,可以使用以下命令:

lsof -p <pid>
  • 1

要列出指定用户打开的文件,可以使用以下命令:

lsof -u <username>
  • 1

要列出指定文件名的进程,可以使用以下命令:

lsof <filename>
  • 1

要列出指定端口号的进程,可以使用以下命令:

lsof -i :<port>
  • 1

要列出指定目录下打开的文件,可以使用以下命令:

lsof <directory>
  • 1

除了以上常用的选项外,lsof还支持很多其他的选项,可以通过man lsof命令查看完整的帮助文档。

lsof命令详解

lsof是一个在Unix及类Unix环境(包括Linux)下用来查看当前系统文件被哪些进程打开的工具。其名称取自英文“List Open Files”的首字母,直译过来就是列出打开的文件。然而,“打开的文件”并不仅仅指磁盘上的文件,还可以是网络套接字、设备、管道等。

基础使用

命令格式

lsof [options] [names]
  • 1

lsof没有必须的参数,如果直接运行lsof命令,则会列出所有打开的文件。但在实际使用中,我们通常会配合一些选项和参数使用。

查看指定进程打开的文件

lsof -p <pid>
  • 1

其中,<pid>为你要查询的进程ID。

在这里插入图片描述

查看指定用户打开的文件

lsof -u <username>
  • 1

其中,<username>为你要查询的用户名。

在这里插入图片描述

查看指定程序打开的文件

lsof /path/to/program
  • 1

其中,/path/to/program为你要查询的程序的路径。

在这里插入图片描述

选项详解

lsof有大量的选项,这里列举几个常用的:

  • -a:and条件连接符,当需要同时满足多个条件时使用
  • -b:不重新读取已打开文件的信息,防止系统阻塞
  • -d <descriptors>:列出指定文件描述符打开的文件
  • -D <directory>:搜索某个目录下被打开的文件
  • -n:不解析网络号和端口号,提高查询速度
  • -P:不解析端口名字,提高查询速度

输出详解

lsof命令的输出包含以下几个字段:

  • COMMAND:进程的名称
  • PID:进程标识符
  • USER:进程所有者
  • FD:文件描述符,cwd、txt、err等
  • TYPE:文件类型,例如REG(常规)、DIR(目录)、CHR(字符设备)等
  • DEVICE:设备编号
  • SIZE/OFF:文件大小或节点
  • NODE:索引节点
  • NAME:文件路径名

高级应用

查找占用指定端口的进程

lsof -i :<port>
  • 1

其中,<port>为你要查询的端口号。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查找删除但磁盘空间未释放的文件

lsof | grep '(deleted)'
  • 1

当你删除一个大文件后,发现磁盘空间没有增加,这可能是因为还有进程在使用该文件。此时可以使用上述命令查找。

在这里插入图片描述
在这里插入图片描述

查找特定目录下被打开的文件

lsof +D <directory>
  • 1

其中,<directory>为你要查询的目录。

在这里插入图片描述

在这里插入图片描述

结语

lsof是一个非常强大的工具,可以帮助我们解决很多问题,比如查找占用端口的进程、查找删除后磁盘空间未释放的文件等。希望通过本文的介绍,能够帮助读者更好地理解和使用lsof命令。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号