博客
关于我
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)
  • 文件状态模式(如u、r、w等)
  • 文件锁信息
  • 文件类型(如DIR、CHR、BLK等)
  • 文件设备号、文件大小、节点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文件的所有打开者,排除了root和upfor用户。

查看多个进程号的文件

lsof -p 9183,26655

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

排除指定进程号的文件

lsof -p ^9183,^26655

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

查看网络连接

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/

你可能感兴趣的文章
python基础变量之---元组
查看>>
python基础内容_Python基础入门必须了解的
查看>>
Python基础之面向对象2(封装)
查看>>
Python在def函数中使用for循环
查看>>
Python图像处理:从内存加载jpeg
查看>>
python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
查看>>
python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
查看>>
python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
查看>>
Python哪个版本最稳定好用2023.10.19
查看>>
python命名空间更改_Python模块xml.etree.ElementTree自动修改xml命名空间键
查看>>
Python命名中尾随下划线有什么好处?
查看>>
Python启动脚本
查看>>
python吊打Excel?屁!那是你不会用!
查看>>
Python合并两张图片 | 先叠透明度再合并 (附Demo)
查看>>
python各进制的表述与转换
查看>>
python各种库安装
查看>>
python可视化matplotlib_如何使用Python中最强大的可视化工具Matplotlib?
查看>>
python可维护性_使用这7大神器,让你的Python 代码更容易于维护
查看>>
python变量的详细教程_Python零基础入门教程之语法入门[变量](第二期)
查看>>
Python变量命名方法-ChatGPT4o作答
查看>>