Linux LSOF 命令

“在本 Linux 教程中,我们将尝试探索一个非常有用的 Linux 命令的用法,即 LSOF 命令。 我们将首先向您介绍此命令的基本用途和一般语法,然后是一些有用的示例,这些示例将对您使用此命令有很大帮助。 所以,让我们开始吧。”

Linux 中 LSOF 命令的用途

LSOF 字面意思是“列出打开的文件”,顾名思义,此命令用于列出系统当前打开的所有文件。 该命令的一般语法如下:

$ lsof [option]

在这里,您可以使用此命令可用的任何选项替换“选项”。

Linux中LSOF命令的使用

要了解如何在 Linux 中使用 LSOF 命令,可以查看以下示例:

示例 #1:列出 Linux 中所有打开的文件

在这个 example,我们将在 Linux 中使用 LSOF 命令来简单地列出所有打开的文件。 为此,我们将以如下所示的方式运行此命令:

$ lsof

不带任何选项运行此命令会打印有关终端上当前打开的所有文件的详细信息,如下图所示。 该命令将需要一些时间来执行,因为它必须产生冗长的输出。

示例 # 2:列出 Linux 中属于特定用户的所有打开文件

现在,我们将使用 LSOF 命令打印属于特定 Linux 用户的所有打开文件的详细信息,因为 Linux 系统可以同时拥有多个用户。 为此,我们将使用如下所示的命令:

$ lsof –u system

带有“-u”标志后跟用户名的 LSOF 命令打印属于指定用户的所有打开文件。 在这个 example,我们想打印仅属于名为“system”的 Linux 用户的打开文件。 您可以将其替换为您希望列出其打开文件的用户的用户名。

属于我们Linux系统指定用户的所有打开文件如下图所示:

示例#3:列出与 Linux 中特定进程 ID 关联的所有打开文件

在这个 example,我们打算打印与特定进程 ID 关联的所有打开文件。 为此,我们将以如下方式使用 LSOF 命令:

$ lsof –p 1129

每当 LSOF 命令与后跟特定进程 ID 的“-p”标志配对时,与该特定进程 ID 关联的所有打开文件都将打印在终端上。 您可以将“1129”替换为要打印其关联打开文件的进程的进程 ID。

与我们的 Linux 系统的指定进程 ID 关联的所有打开文件如下图所示:

示例#4:列出与 Linux 中的父进程关联的所有打开文件

现在,我们只想列出所有与 Linux 中的父进程相关联的打开文件。 为此,我们将使用 LSOF 命令,如下所示:

$ lsof –R

“-R”标志与 LSOF 命令一起使用,用于列出仅与 Linux 中的父进程关联的所有打开文件。

与我们Linux系统的父进程关联的所有打开文件如下图所示:

示例 # 5:列出与 Linux 中遵循特定协议的网络连接相关联的所有打开文件

在这个 example,我们希望列出与遵循特定协议(如 TCP 或 UDP)的 Linux 网络连接相关的所有打开文件。 为此,我们将以如下方式使用 LSOF 命令:

$ sudo lsof –i tcp

该命令需要“sudo”权限来执行。 此外,如果要显示与此特定协议关联的所有打开文件,只需将“tcp”替换为“udp”即可。

我们Linux系统所有打开的属于指定协议的文件如下图所示:

结论

在本教程中,我们希望指导您在 Linux 中使用 LSOF 命令。 为此,我们首先讨论了这个命令的用途,然后是它的一般语法。 之后,我们讨论了一些 example 此命令的用例将帮助您进一步探索此命令。