lsof命令

黄沙百战穿金甲,不破楼兰终不还。这篇文章主要讲述lsof命令相关的知识,希望能为你提供帮助。
lsof 命令
lsof(list open files)是一个查看当前系统文件的工具。在 linux 环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。例如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统都会在后台都为该应用程序分配了一个文件描述符,该文件描述符提供了大量关于这个应用程序本身的信息。
【lsof命令】参数说明

  • -a: 列出打开文件存在的进程查找某个文件相关的进程
  • -c< 进程名> : 列出指定进程所打开的文件
  • -g:列出GID号进程详情
  • -d< 文件号> : 列出占用该文件号的进程
  • +d< 目录> : 列出目录下被打开的文件
  • +D< 目录> : 递归列出目录下被打开的文件
  • -n< 目录> : 列出使用NFS的文件
  • -i< 条件> : 列出符合条件的进程。(4、6、协议、:端口、 @ip )
  • -p< 进程号> : 列出指定进程号所打开的文件
  • -u: 列出UID号进程详情
  • -h: 显示帮助信息
  • -v: 显示版本信息
    查找某个文件相关的进程
    $ lsof /bin/bash
    列出某个用户打开的文件信息
    $ lsof -u username
    列出某个程序进程所打开的文件信息
    $ lsof -c mysql
    通过某个进程号显示该进程打开的文件
    $ lsof -p 11968
    列出所有 tcp 网络连接信息
    $ lsof -i tcp
    列出某个端口被哪个进程占用
    $ lsof -i :3306

    推荐阅读