lsof Linux 命令指南及示例
lsof Linux 命令用于列出打开的文件。在 Linux 系统上,一切都被视为文件。这意味着文件、目录、套接字、管道、设备等都是文件,因此 lsof 命令将列出所有这些内容(如果其中任何一个正在使用)。
除了显示正在使用的文件之外,它还会为您提供有关哪个用户和进程正在使用该文件的详细信息。正如您可以想象的那样,这在多种情况下都非常方便,例如当尝试找出与您的系统建立了哪些连接或哪些进程占用了您尝试卸载的磁盘等时。
在本指南中,我们将向您展示 lsof 命令的一些最有用的示例,以帮助您在自己的系统上充分利用它。
在本教程中您将学习:
如何通过示例使用 lsof 命令
Linux 上的 lsof 命令
如何使用lsof命令
通过示例了解 lsof 命令是最简单的。首先,在您自己的系统上使用以下一些命令,您最终将掌握它。
lsof 命令最简单的用法是使用它而不带其他选项。这将列出您系统上当前正在使用的每个文件,可能很多。在我们全新安装的测试系统上,有超过 20,000 个文件正在使用。
# lsof
要查看特定用户打开的文件,您可以将
-u
选项添加到命令中。# lsof -u linuxconfig
要查看特定进程 ID 打开的所有文件,请使用
-p
选项。如果需要先找到进程ID,可以使用ps命令。# lsof -p 1234
使用
-i
选项查看与系统上的网络连接相关的文件列表。这是查看侦听端口和已建立连接的好方法。# lsof -i
要专门查看 IPv4 的文件,请使用以下选项:
# lsof -i4
同样,要仅查看 IPv6 文件:
# lsof -i6
您还可以使用
-i
选项来检查使用特定端口的文件。例如,以下命令将检查 TCP 端口 80 并显示它正在使用哪些文件。# lsof -i TCP:80
您还可以检查端口范围,例如下面的示例,我们显示哪些文件正在使用 TCP 端口 20-100。
# lsof -i TCP:20-100
您还可以使用 UDP 代替 TCP:
# lsof -i UDP:20-100
要查看特定命令正在使用哪些文件,请使用
-c
选项。在此示例中,我们查看 ping 命令使用的所有文件。# lsof -c ping
lsof 命令使用
^
字符排除某些结果。例如,要列出用户 linuxconfig 未使用的文件,我们可以使用以下语法。# lsof -u^linuxconfig
最基本的 lsof 命令,它显示系统上正在使用的每个文件
显示进程 ID 1234 打开的所有文件
显示 ping 命令打开的所有文件
结束语
在本指南中,我们通过一些最常见和有用的示例了解了如何在 Linux 上使用 lsof 命令。使用我们介绍的选项应该可以帮助您充分利用该命令,但如果您感兴趣,手册页中总是有更多内容可以查看。