如何在Linux中使用lsof命令?示例教程

217 阅读2分钟

大家好,如果你想学习如何在Linux中使用lsof命令,那么你就来对地方了。在过去的几篇文章中,我谈到了Linux中的findgrepmailxcrontabledu命令,在这篇文章中,我将谈到另一个有用的Linux命令,lsof命令。lsof命令列出了打开的文件,这就是为什么它叫lsof。这个命令对于服务器端的开发者和IT支持人员来说非常重要,他们需要检查哪个文件被哪个进程所占用,并找到被删除的占用内存的文件等。它是Linux中一个有用的调试和故障排除工具。

lsof命令显示了一个进程所打开的文件。在Linux/Unix中,一切都被认为是文件,如管道、套接字、设备等都被视为文件。因此,通过使用 "lsof "命令,我们将得到任何已打开的文件的信息。

在Linux中使用lsof命令的10种方法

我喜欢从看到的例子中学习,这就是为什么我将在这篇文章中分享Linux中lsof commad的10个常见例子,你将会顺便学习如何使用lsof。

1、用lsof命令列出所有打开的文件

$ lsof

这个命令会列出所有打开的文件。

FD - 文件描述符
下面是文件描述符的常见值是。

  • cwd - 当前工作目录

  • txt - 文本文件

  • mem - 内存映射的文件

  • mmap - 内存映射的设备

  • Num代表实际的文件描述符。例如,0u,1w和3r,其中r代表读,w代表写,u代表读和写。

TYPE代表文件的类型。TYPE的一些值是

  • REG - 常规文件

  • DIR - 目录

  • CHR--字符特殊文件

  • FIFO - 先入先出

2、如何列出特定用户打开的文件

$ lsof -u user_name

3.如何查找并列出运行在某一端口的进程

$ lsof -i :port_number

4.如何只列出IPv4和IPv6打开的文件

lsofi4用于IPv4lsof -i 4 - 用于IPv4 lsof -i 6 - 用于IPv6

5.如何列出TCP端口范围1-1024的开放文件

$ lsof -i :1-1024

6.如何按pid列出进程列表

$ lsof -p PID

7.如何杀死一个特定用户的所有活动

$ killall -9 `lsof -t -u username`。

8.如何列出一个目录中所有已打开的文件

$ lsof +D path_of_the_directory

9.如何使用lsof列出所有基于进程名称的已打开文件

$ lsof -c process_name

10.如何使用lsof命令列出所有的网络连接

$ lsof -i

以上就是关于如何在UNIX和Linux中使用lsof命令的全部内容。你可以看到你可以用lsof命令做很多事情,比如你可以列出所有的网络连接,你可以根据进程名称找到所有打开的文件,你可以找到删除的文件,这些文件还在占用内存,因为一个进程有它们的引用。我非常喜欢这个命令,我认为每个开发人员、IT支持人员和系统管理员都应该熟记这个命令,它将在Linux服务器的故障排除过程中对你有很大的帮助。