Linux lsof命令教程为初学者(10个例子)

Linux中的lsof命令显示有关进程打开的文件的输出信息。 在本文中,我们将使用10个易于理解的示例来讨论该工具。 请注意,本教程中提到的所有示例都已在Ubuntu 16.04LTS上进行了测试。

lsof的

如果要快速查看特定进程(或所有进程)打开的文件的名称,则可以使用lsof命令。 打开的文件可以是常规文件,目录,库,块特殊文件,字符特殊文件,执行文本引用,甚至流或网络文件。

1.如何列出所有打开的文件

要列出所有打开的文件,请运行没有任何参数的lsof命令:

lsof

例如,以下是我系统上生成的以上命令输出的一部分的screengrab:

第一列表示进程,而最后一列包含文件名。 有关所有列的详细信息,请转到命令的手册页

2.如何列出属于特定用户的进程打开的文件

该工具还允许您列出属于特定用户的进程打开的文件。 可以使用-u命令行选项访问此功能。

lsof -u [user-name]

例如:

lsof -u youcl

3.如何根据自己的Internet地址列出文件

该工具可让您根据其Internet地址列出文件。 这可以使用-i命令行选项来完成。 例如,如果需要,您可以分别显示IPv4和IPv6文件。 对于IPv4,请运行以下命令:

lsof -i 4 

例如:

类似地,对于IPv6,请运行以下命令:

lsof -i 6 

例如:

lsof -i 6

4.如何列出特定于进程的文件

该工具还允许您根据过程标识(PID)编号显示打开的文件。 这可以通过使用-p命令行选项来完成。

lsof -p [PID]

例如:

lsof -p 2066

继续,您还可以通过在它们之前添加^符号来排除输出中的特定PID。 要排除特定的PID,可以运行以下命令:

lsof -p [^PID]

例如:

lsof -p ^1

正如你在上面的截图中看到的,id 1的进程从列表中排除。

5.如何列出已打开特定文件的进程的ID

该工具允许您列出已打开特定文件的进程的ID。 这可以通过使用-t命令行选项来完成。

$ lsof -t [file-name]

例如:

$ lsof -t  /lib/i386-linux-gnu/libaudit.so.1.0.0

6.如何将lsof限制到特定目录

如果需要,您还可以使lsof搜索所有打开的目录实例(包括其包含的所有文件和目录)。 可以使用+ D命令行选项访问此功能。

$ lsof +D [directory-path]

例如:

$ lsof +D  /usr/lib/locale

7.如何列出所有Internet和x.25(HP-UX)网络文件

这可以通过使用我们之前描述的-i命令行选项来实现。 只是你必须使用它没有任何参数。

$ lsof -i

8.如何根据端口范围列出打开的文件

该实用程序还允许您根据特定的端口或端口范围列出打开的文件。 例如,要显示端口1-1024的打开文件,请使用以下命令:

$ lsof -i :1-1024

9.如何根据连接类型(TCP或UDP)列出打开的文件

该工具允许您根据连接类型列出文件。 例如,对于UDP特定文件,请使用以下命令:

$ lsof -i udp

同样,您可以使lsof显示特定于TCP的文件。

10.如何使lsof列表进程的父PID

还有一个选项强制lsof在输出中列出父进程标识(PPID)号。 该选项是-R

$ lsof -R

要获取特定PID的PPID信息,可以运行以下命令:

$ lsof -p [PID] -R

例如:

$ lsof -p 3 -R

结论

虽然lsof提供了大量的选择,我们在这里讨论的应该足以让你开始。 一旦你完成了这些练习,请转到工具的手册页 ,了解更多信息。 哦,如果你有任何疑问和疑问,请在下面留下评论。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏