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 命令列出进程或文件。
相关文章
如何在 CentOS 中获取 IP 地址
发布时间:2023/05/04 浏览次数:108 分类:操作系统
-
这篇简短的文章是对 CentOS 的一个简短介绍,然后简要讨论了我们如何使用命令行界面 (CLI) 在 CentOS 中获取服务器 IP 地址。
在 Linux 中更新 YUM
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。
在 Linux 中安装 Deb 文件
发布时间:2023/05/04 浏览次数:130 分类:操作系统
-
本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。
Linux 解决不能执行二进制文件问题
发布时间:2023/05/04 浏览次数:187 分类:操作系统
-
在本文中,我们将学习如何在 Linux 中执行二进制文件。 如果 Linux 无法执行二进制文件,我们还将学习如何解决错误。
Linux 中错误 Mesg: Ttyname Failed: Inappropriate Ioctl for Device Error
发布时间:2023/05/04 浏览次数:145 分类:操作系统
-
本文介绍如何在 Linux 中解决 mesg: ttyname failed: inappropriate ioctl for device 错误。在 Linux 中,这个错误是由于默认的 vagrant 配置 config.ssh.shell 与 bash -l 交互导致的。
Linux 中的 ps aux 命令
发布时间:2023/05/04 浏览次数:69 分类:操作系统
-
本篇文章将讨论 Linux 中的 ps aux 命令。如果将 aux 快捷方式与 ps 命令一起使用,它将显示用户需要的最多信息,并可以为您提供系统运行进程的当前状态。
Linux 中的 NTP
发布时间:2023/05/04 浏览次数:137 分类:操作系统
-
本篇文章将讨论 Linux 中的 ntp。NTP 是大多数 IT 基础设施使用的核心协议。 使用它的目的是同步日期和时间信息。
在 Bash 中创建进度条
发布时间:2023/05/04 浏览次数:164 分类:操作系统
-
这是有关在 Bash 中创建进度条以显示正在运行的命令或进程的进度的指南。本文将探讨在 Bash(Linux 和 macOS 的默认 shell)中向 shell 脚本添加进度条的几种方法。使用 pv 命令在 Bash 中创建进度条
在 Bash 中将 Stderr 和 Stdout 重定向到一个文件
发布时间:2023/05/04 浏览次数:130 分类:操作系统
-
本文介绍了如何在 Bash 中重定向 stderr 和 stdout。让我们开始了解 Linux 中的标准输出和标准错误这两个术语。Linux 中的标准输出和标准错误 在 Linux 中,命令从用户那里获取一些输入,可以是文件