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 更适合查看网络连接和接口的状态,两者可以结合使用以获得更全面的信息。

相关推荐
dsywws几秒前
Linux学习笔记之时间日期和查找和解压缩指令
linux·笔记·学习
yeyuningzi9 分钟前
Debian 12环境里部署nginx步骤记录
linux·运维·服务器
上辈子杀猪这辈子学IT27 分钟前
【Zookeeper集群搭建】安装zookeeper、zookeeper集群配置、zookeeper启动与关闭、zookeeper的shell命令操作
linux·hadoop·zookeeper·centos·debian
minihuabei32 分钟前
linux centos 安装redis
linux·redis·centos
EasyCVR1 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
lldhsds2 小时前
书生大模型实战营第四期-入门岛-1. Linux前置基础
linux
wowocpp2 小时前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
山河君2 小时前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别
鹏大师运维2 小时前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源2 小时前
Elasticsearch-linux环境部署
linux·elasticsearch