Linux 中的 lsof 命令
在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。
我们使用 lsof
命令来验证 Linux 操作系统上正在使用的端口。 使用这个 lsof 命令,我们可以查明某个端口在 Linux 操作系统上是否正在使用。
让我们从 Linux 中的 lsof 命令开始。
Linux 中的 lsof 命令
lsof
代表 Linux 中用于确定端口是否正在使用的 List Open Files 命令。 此命令将进程返回给 Linux 中系统文件使用的用户。
它可以帮助我们确定为什么文件系统仍在使用且无法卸载。
众所周知,Linux 操作系统将一切都视为文件和文件夹。 所以在Linux系统中使用的文件或者文件夹是非常重要的。
当我们在 Linux 操作系统上工作时,会用到几个文件和文件夹。 其中一些文件或文件夹对用户可见,而另一些则不可见。
lsof 命令提供在 Linux 操作系统上打开的文件或文件夹的列表。 该命令为我们提供信息,以查找系统中哪个进程打开的文件。
只需一步,它就会在输出控制台中列出所有打开的文件。 lsof 命令不仅可以列出常见的常规文件,还可以列出目录、共享库、系统中的特殊文件等等。
lsof
命令可以与 grep 命令结合使用,用于在 Linux 中进行高级搜索和列出文件。
在 Linux 中使用 lsof 命令列出端口
lsof 命令帮助我们列出 Linux 系统上所有打开的文件或文件夹。 所以,我们可以使用这个命令来查看在我们的 Linux 系统中特定端口上打开的所有进程。
要使用 lsof 命令,如果我们的 Linux 系统上尚未安装 lsof 实用程序,我们需要在终端中使用以下命令安装它。
$ sudo apt install lsof
在我们的系统上安装 lsof 命令的实用程序后,我们现在可以使用它来列出我们 Linux 系统中的文件和端口。
在 Linux 中使用 lsof 命令列出所有打开的文件
作为 Linux 用户,有时我们想知道某个文件打开了某个特定进程的端口号。 所有 Linux 操作系统端口都与进程 ID 或服务相关联。
我们将看到可用于确定文件打开进程的哪个端口的不同方法。
如下例所示,我们使用了 lsof 命令。 它将显示我们 Linux 系统中任何进程打开的所有文件。
正如我们所看到的,它显示了下图所示的 Linux 系统中的进程打开的一长串文件。
示例代码:
$ lsof
上图显示了打开的文件的详细信息。 详细信息包括进程 ID、与进程关联的用户、FD(文件描述符)和文件大小。
所有这些都提供了有关命令打开的文件、进程 ID、用户等的详细信息。
在 Linux 中使用 lsof 命令列出用户打开的所有文件 以防不止一个用户使用 Linux 系统。 然后每个人都有不同的要求,他们使用不同的文件。
如果我们想找出特定用户打开的文件列表,我们使用以下命令。
语法:
$ lsof -u username
示例代码:
$ lsof -u abid
上图显示命令 lsof -u abid
列出了名为 abid 的用户打开的所有文件。
我们还可以看到不同类型的文件(CHR、REG、DIR)。 CHR是特殊字符文件,REG是常规文件,DIR是目录。
在 Linux 中使用 lsof 命令列出所有 Internet 文件
要列出所有 Internet 和网络文件,我们将 -i 选项与 lsof 命令一起使用。 我们在终端中使用 lsof 命令,如下所示:
$ sudo lsof -i
运行 lsof -i
命令后,我们可以看到它在输出中显示了服务名称和数字端口。
在 Linux 中使用 lsof 命令按特定进程列出所有文件
例如,正在运行一个名为Mysql的特定进程,我们想找出这个进程打开的所有文件。 我们可以通过使用 lsof 命令来找出这一点:
$ lsof -c Mysql
此 lsof
命令将列出命令中指定的特定进程打开的所有文件。 这样,我们只需在命令中给出进程名称,就可以找到任何进程打开的文件。
在 Linux 中使用 lsof 命令查找在特定端口上运行的进程
如果我们想发现端口上所有正在运行的进程,我们使用以下带有选项 -i 的 lsof 命令。 下面的例子列出了 30 端口的所有运行进程。
只需在命令中提供端口号,我们就可以找到在任何特定端口上运行的进程,如示例代码所示。
示例代码:
$ sudo lsof -i :30
在 Linux 中使用 lsof 命令检查监听端口
在 Linux 系统中,网络端口由其编号、IP 地址和用于通信的协议类型(如 TCP 或 UDP)来标识。 在 Linux 中我们可以通过不同的方式来查看监听端口,在本文中,我们将使用 lsof 命令来查看监听端口。
众所周知,lsof 是 Linux 中一个功能强大的命令,可以提供有关进程打开的文件的信息。 在 Linux 中,我们使用终端的 lsof 命令来获取所有监听的 TCP 端口。
用于显示我们系统上运行的所有 TCP 端口的命令:
$ sudo lsof -nP -iTCP -sTCP:LISTEN
在上面的命令中,我们使用 -n 不将端口号更改为名称。 我们还使用 -p 来显示端口的数字地址。
我们使用 -iTCP -sTCP:LISTEN
来仅显示具有 TCP 状态的网络文件。
输出:
在终端中使用上述命令后,我们可以在输出中看到我们的 Linux 系统中运行的所有 TCP 端口。
我们希望本文有助于您了解如何在 Linux 中使用 lsof 命令列出进程或文件。
相关文章
在 Bash 中运行 find -exec 命令
发布时间:2024/03/14 浏览次数:127 分类:操作系统
-
本文将演示如何使用 find 命令的 -exec 参数来使用 find 命令定位文件中的任何文本。