• Linux下lsof命令使用


    lsof 命令使用指南

    • lsof (List Open Files) 是一个用于列出当前系统中打开文件的命令,适用于 Unix 和类 Unix 操作系统。它不仅可以列出常规文件,还可以列出打开的网络文件、设备等。

    基本语法

    lsof [选项] [文件]
    

    常用选项

    • 列出所有打开的文件
    lsof
    
    • 列出特定用户打开的文件
    lsof -u username
    
    • 列出特定进程打开的文件
    lsof -p PID
    
    • 列出特定文件被哪个进程打开
    lsof /path/to/file
    
    • 列出特定网络端口上打开的文件
    lsof -i :port
    
    • 列出网络文件
    lsof -i
    
    • 列出某个目录下打开的文件
    lsof +D /path/to/dir
    
    • 列出某个协议的网络文件
    lsof -i tcp
    lsof -i udp
    
    • 列出所有正在监听的套接字
    lsof -i -sTCP:LISTEN
    

    使用示例

    1. 查找用户 root 打开的所有文件

      lsof -u root
      
    2. 查找进程 ID 为 1234 的进程打开的文件

      lsof -p 1234
      
    3. 查找 TCP 端口 80 上打开的文件

      lsof -i :80
      
    4. 查找并列出 /var/log/syslog 文件被哪些进程打开

      lsof /var/log/syslog
      
    5. 查找目录 /home/user 下的所有打开文件

      lsof +D /home/user
      
    6. 查找所有 TCP 连接

      lsof -i tcp
      
    7. 查找所有 UDP 连接

      lsof -i udp
      
    8. 列出所有正在监听的 TCP 套接字

      lsof -iTCP -sTCP:LISTEN
      

    lsof vs netstat

    lsof

    • 用途:列出打开的网络文件,包括详细的进程信息。
    • 显示内容:可以查看哪些进程正在使用网络端口。
      lsof -iTCP -sTCP:LISTEN # 列出所有正在监听的 TCP 端口以及相关的进程。
      

    netstat

    • 用途:显示网络连接、路由表和网络接口信息。
    • 显示内容:网络连接的状态、端口的监听情况,但不显示具体的进程信息。
      netstat -tuln # 列出所有监听的 TCP 和 UDP 套接字。
      

    区别

    1. 信息范围

      • lsof 可以显示进程与网络连接的对应关系。
      • netstat 主要显示网络连接和端口状态。
    2. 输出内容

      • lsof 提供进程ID、用户、文件描述符等详细信息。
      • netstat 提供协议、端口、连接状态等网络层信息。
    3. 使用场景

      • 使用 lsof 时,可以了解哪个进程在使用特定的网络端口。
      • 使用 netstat 时,可以快速查看网络连接的整体状态。

    示例对比

    • 查看所有正在监听的 TCP 端口:
      lsof -iTCP -sTCP:LISTEN  #列出所有正在监听的 TCP 端口以及相关的进程。
      netstat -tuln # 列出所有监听的 TCP 和 UDP 套接字
      
    • 查看特定端口(如80)被哪个进程使用:
      lsof -i :80
      netstat -anp | grep :80
      

    总结:lsof 提供进程级别的详细信息,而 netstat 更适合查看网络连接和接口的状态,两者可以结合使用以获得更全面的信息。

  • 相关阅读:
    快速搭建Jenkins自动化集成cicd工具
    解决vue项目中前后端交互的跨域问题、nginx代理配置
    66.基于Django学习会话技术
    WebRTC中 setup:actpass、active、passive
    交换机的三层交换技术
    Spring 事务和事务传播机制
    国内-eks-nlb+ nginx-ingress-controller部署
    Springboot+美妆网站的设计与实现 毕业设计-附源码211539
    java158-线程的常用方法yield,优先级
    vue3 nextTick
  • 原文地址:https://blog.csdn.net/qq_62311779/article/details/139790130