博客
关于我
Linux 命令 —— lsof 查看打开的文件信息
阅读量:803 次
发布时间:2023-02-01

本文共 1799 字,大约阅读时间需要 5 分钟。

lsof(List Open Files)是一个用于列出系统中当前打开文件的工具。它能够显示进程打开的文件、文件所属的进程、文件的端口(包括TCP和UDP)、以及帮助恢复删除的文件等功能。在Linux环境下,所有资源都以文件形式存在,包括网络连接和硬件设备。这些资源通过文件描述符与应用程序和操作系统进行交互,因此,查看文件描述符列表对于系统监控和故障排除具有重要意义。使用lsof命令前,需要确保具有root权限,因为它需要访问核心内存和文件系统。

命令格式

lsof [参数] [文件]

命令参数

  • -a:列出所有打开文件的进程
  • -c:指定进程名,列出该进程打开的文件
  • -g:指定组ID,列出该组ID进程打开的文件
  • -d:指定文件描述符ID,列出占用该文件描述符的进程
  • -D:递归列出指定目录下被打开的文件
  • -+D:递归列出指定目录下被打开的文件(与-D功能相同)
  • -n:列出使用NFS文件系统的文件
  • -i:列出符合特定条件的进程(如协议、端口、IP地址)
  • -p:指定进程号,列出该进程号打开的文件
  • -u:指定用户ID,列出该用户ID进程打开的文件
  • -h:显示帮助信息
  • -v:显示版本信息

输出项含义

命令输出包括以下信息:

  • COMMAND:进程名称
  • PID:进程标识符
  • PPID:父进程标识符(需要指定-R参数)
  • USER:进程所有者
  • PGID:进程所属组ID
  • FD:文件描述符
    • cwd:当前工作目录
    • txt:程序二进制文件或共享库
    • er:文件描述符信息错误
    • ltx:共享库文本部分
    • mem:内存映射文件
    • pd:父目录
    • rtd:根目录
    • tr:内核跟踪文件(OpenBSD)
  • 文件状态模式(如urw等)
  • 文件锁信息
  • 文件类型(如DIRCHRBLK等)
  • 文件设备号、文件大小、节点ID
  • 文件名称

应用实例

查看所有打开文件

lsof

输出显示系统启动时打开的文件列表,包括/init/lib64/libnss_files-2.12.so等。

查看特定文件的进程

lsof /usr/bin/nginx

输出显示进程nginx打开的文件,包括/usr/local/nginx/sbin/nginx

递归查看目录下文件

lsof +D /opt/gogs/

输出显示/opt/gogs目录下所有被打开的文件,包括/opt/gogs/log/xorm.log

查看指定进程号的文件

lsof -p 9876

输出显示进程9876打开的所有文件,包括/bin/bash/usr/lib/locale/locale-archive

查看指定进程名的文件

lsof -c gogs

输出显示进程gogs打开的所有文件,包括/opt/gogs/gogs/lib64/libfreebl3.so

查看指定用户的文件

lsof -u upfor

输出显示用户upfor打开的所有文件,包括/sshd/usr/sbin/sshd

排除指定用户的文件

lsof -u ^root,^upfor /opt/gogs/gogs

输出显示/opt/gogs/gogs文件的所有打开者,排除了rootupfor用户。

查看多个进程号的文件

lsof -p 9183,26655

输出显示进程918326655打开的文件,包括/home/upfor/.nvm/versions/node/v9.7.1/bin/node/usr/local/nginx/sbin/nginx

排除指定进程号的文件

lsof -p ^9183,^26655

输出显示系统中除918326655进程外的所有文件。

查看网络连接

lsof -i

输出显示系统中所有网络连接信息,包括TCP和UDP端口。

查看特定协议的连接

lsof -i tcp

输出显示所有TCP网络连接信息。

查看特定端口的连接

lsof -i :80

输出显示使用TCP端口80的所有进程。

查看用户的网络端口

lsof -a -u upfor -i

输出显示用户upfor打开的所有活跃网络端口。

查看网络文件系统

lsof -N

输出显示系统中所有网络文件系统信息。

查看指定用户组的文件

lsof -g 501

输出显示用户组ID为501的所有文件。

通过合理使用lsof命令,可以有效监控系统中文件和进程的状态,快速定位问题并进行处理。

转载地址:http://wawfk.baihongyu.com/

你可能感兴趣的文章
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO基于UDP协议的网络编程
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>
NI笔试——大数加法
查看>>
NLog 自定义字段 写入 oracle
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>
NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
查看>>
NLP:使用 SciKit Learn 的文本矢量化方法
查看>>
Nmap扫描教程之Nmap基础知识
查看>>
Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
查看>>
NMAP网络扫描工具的安装与使用
查看>>