简单解释
lsof
是一个用于列出当前系统打开的文件的命令行工具,它可以显示系统中所有打开的文件,包括网络连接、管道、设备、目录和普通文件等。
lsof
命令的基本语法如下:
lsof [options]
其中,options
是可选参数,可以用来指定lsof
的输出格式、过滤条件等。
下面是一些常用的lsof
命令选项:
-
-a
:表示逻辑与,用于指定多个过滤条件之间的关系; -
-c
:表示按进程名过滤; -
-d
:表示按文件描述符过滤; -
-g
:表示按组ID过滤; -
-i
:表示按网络连接过滤; -
-p
:表示按进程ID过滤; -
-u
:表示按用户ID过滤; -
-t
:表示只输出进程ID; -
-F
:表示指定输出格式; -
-h
:表示不显示列名; -
-n
:表示不解析主机名; -
-P
:表示不解析端口号; -
-r
:表示指定输出间隔时间; -
-s
:表示按文件大小过滤; -
-T
:表示指定输出格式。
例如,要列出所有打开的文件,可以使用以下命令:
lsof
要列出指定进程打开的文件,可以使用以下命令:
lsof -p <pid>
要列出指定用户打开的文件,可以使用以下命令:
lsof -u <username>
要列出指定文件名的进程,可以使用以下命令:
lsof <filename>
要列出指定端口号的进程,可以使用以下命令:
lsof -i :<port>
要列出指定目录下打开的文件,可以使用以下命令:
lsof <directory>
除了以上常用的选项外,lsof
还支持很多其他的选项,可以通过man lsof
命令查看完整的帮助文档。
lsof命令详解
lsof
是一个在Unix及类Unix环境(包括Linux)下用来查看当前系统文件被哪些进程打开的工具。其名称取自英文“List Open Files”的首字母,直译过来就是列出打开的文件。然而,“打开的文件”并不仅仅指磁盘上的文件,还可以是网络套接字、设备、管道等。
基础使用
命令格式
lsof [options] [names]
lsof
没有必须的参数,如果直接运行lsof
命令,则会列出所有打开的文件。但在实际使用中,我们通常会配合一些选项和参数使用。
查看指定进程打开的文件
lsof -p <pid>
其中,<pid>
为你要查询的进程ID。
查看指定用户打开的文件
lsof -u <username>
其中,<username>
为你要查询的用户名。
查看指定程序打开的文件
lsof /path/to/program
其中,/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>
其中,<port>
为你要查询的端口号。
查找删除但磁盘空间未释放的文件
lsof | grep '(deleted)'
当你删除一个大文件后,发现磁盘空间没有增加,这可能是因为还有进程在使用该文件。此时可以使用上述命令查找。
查找特定目录下被打开的文件
lsof +D <directory>
其中,<directory>
为你要查询的目录。
文章来源:https://www.toymoban.com/news/detail-433762.html
结语
lsof
是一个非常强大的工具,可以帮助我们解决很多问题,比如查找占用端口的进程、查找删除后磁盘空间未释放的文件等。希望通过本文的介绍,能够帮助读者更好地理解和使用lsof
命令。文章来源地址https://www.toymoban.com/news/detail-433762.html
到了这里,关于linux lsof命令(lsof指令)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!