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 权限或者具有相应权限的用户才能运行。