Linux下lsof命令使用

目录

lsof 命令使用指南

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

基本语法

bash 复制代码
lsof [选项] [文件]

常用选项

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

使用示例

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

    bash 复制代码
    lsof -u root
  2. 查找进程 ID 为 1234 的进程打开的文件

    bash 复制代码
    lsof -p 1234
  3. 查找 TCP 端口 80 上打开的文件

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

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

    bash 复制代码
    lsof +D /home/user
  6. 查找所有 TCP 连接

    bash 复制代码
    lsof -i tcp
  7. 查找所有 UDP 连接

    bash 复制代码
    lsof -i udp
  8. 列出所有正在监听的 TCP 套接字

    bash 复制代码
    lsof -iTCP -sTCP:LISTEN

lsof vs netstat

lsof

  • 用途:列出打开的网络文件,包括详细的进程信息。

  • 显示内容 :可以查看哪些进程正在使用网络端口。

    bash 复制代码
    lsof -iTCP -sTCP:LISTEN # 列出所有正在监听的 TCP 端口以及相关的进程。

netstat

  • 用途:显示网络连接、路由表和网络接口信息。

  • 显示内容 :网络连接的状态、端口的监听情况,但不显示具体的进程信息。

    bash 复制代码
    netstat -tuln # 列出所有监听的 TCP 和 UDP 套接字。

区别

  1. 信息范围

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

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

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

示例对比

  • 查看所有正在监听的 TCP 端口:

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

    bash 复制代码
    lsof -i :80
    netstat -anp | grep :80

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

相关推荐
A小辣椒17 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒21 小时前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式