lsof (list open files) 是一个常用的 Linux 命令之一,它可以列出系统打开的文件和网络连接,并提供了多种操作选项

lsof (list open files) 是一个常用的 Linux 命令之一,它可以列出系统打开的文件和网络连接,并提供了多种操作选项。

简单使用

列出所有打开的文件和网络连接:

lsof

列出指定进程打开的文件和网络连接:

lsof -p <pid>

列出指定用户打开的文件和网络连接:

lsof -u <user>

列出指定文件名打开的进程:

lsof <filename>

高级选项

列出指定类型的文件:
lsof -i                   # 列出所有网络连接
lsof -i tcp               # 列出所有 TCP 连接
lsof -i udp               # 列出所有 UDP 连接
lsof -i :80               # 列出所有占用 80 端口的连接
lsof -U                   # 列出所有 Unix 域套接字

查看某个目录下被打开的文件:

lsof +D /path/to/dir      # 列出 /path/to/dir 目录下被打开的文件
查看某个文件系统被哪些进程使用:
lsof /mnt/filesystem      # 列出挂载在 /mnt/filesystem 上的文件系统上被哪些进程使用
根据文件描述符查找进程:
lsof -d <fd>              # 查找使用某个文件描述符的进程
lsof -d /path/to/file     # 查找使用某个文件描述符并打开了指定文件的进程
列出指定用户或进程占用文件大小:
lsof -u <username> | awk '{total += $8} END {print total/1024" MB"}'   # 列出指定用户占用文件总大小
lsof -p <pid> | awk '{total += $7} END {print total/1024" MB"}'       # 列出指定进程占用文件总大小

列出所有的网络连接

lsof -i

查看指定端口22的pid

lsof -i :22

查看指定用户打开的应用信息

lsof -u root

显示所有打开的文件

以上是 lsof 命令的一些常见用法,它在系统管理和调试中都非常有用。需要注意的是,lsof 命令需要 root 权限或者具有相应权限的用户才能运行。

转载:https://www.bilibili.com/read/cv16173844

posted @ 2023-05-26 16:43  Journey&Flower  阅读(49)  评论(0编辑  收藏  举报