分享

lsof命令及其作用

lsof 是 "LiSt Open Files" 的缩写,是一个在类 Unix 系统(如 Linux 和 macOS)中使用的命令行工具,用来列出当前系统中所有打开的文件和文件描述符。由于在 Unix-like 系统中,几乎一切皆文件(包括网络连接、管道、设备等),因此 lsof 是一个非常强大且灵活的诊断工具。以下是 lsof 命令的基本用法和几个实用案例。

基本用法
不带任何参数运行 lsof 将列出系统中所有进程打开的所有文件,这通常会返回大量的信息,因此通常会结合各种选项使用以获得更具体的信息。

常用选项
-i:列出与网络相关的文件(如TCP、UDP端口)。
-p PID:列出指定进程ID (PID) 打开的文件。
-c command:列出指定命令(进程名)所打开的文件。
-n:禁止DNS解析,加快输出速度。
-t:仅输出进程ID,常用于脚本中。
-d FD:列出指定文件描述符(FD)的使用情况。
-a:逻辑与操作,用于结合其他选项。
+D directory:列出指定目录及其子目录下所有被进程打开的文件。


使用案例
查看某个端口的使用情况
假设你想查找占用8080端口的进程,可以这样做:
sudo lsof -i :8080


查找某个进程打开的文件
如果要查看PID为1234的进程打开了哪些文件:
sudo lsof -p 1234

恢复被误删的日志文件
假设你意外删除了正在被某个服务使用的日志文件,但服务仍在运行,可以通过以下方式找到该文件的路径,并进行恢复:
sudo lsof | grep deleted
从结果中找到对应的文件路径,然后使用适当的方法(如复制)将其恢复到原位。

查看所有打开的网络连接
sud

试读已结束,请付费阅读全文。

  本文只能试读34%,付费后可阅读全文。 

版权说明:论坛帖子主题均由合作第三方提供并上传,若内容存在侵权,请进行举报

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系在线客服