博客
关于我
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 工具v简介
查看>>
python 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem
查看>>
Python 常见的错误类型和继承关系
查看>>
python 常量_零基础学Python系列之一:Python的变量与常量
查看>>
Python 并发编程
查看>>
Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能
查看>>
python 序列化操作
查看>>
Python 开发者,这 7 个 VS Code 插件极力推荐
查看>>
python手把手视频_硬货 | 手把手带你构建视频分类模型(附Python演练))
查看>>
python 录音左右声道_Python分离立体声wav压缩文件的左右声道
查看>>
Python 循环异或对文件进行加解密
查看>>
Python开发环境搭建(附VMware安装包及虚拟机环境)
查看>>
python 微信扫码登录_python实现微信第三方网站扫码登录(Django)
查看>>
Python 快速下载依赖
查看>>
python实现非参数统计的Cochran检验 (附完整源码)
查看>>
python 怎么验证是否安装成功 scrapy
查看>>
Python 手写数字识别-1
查看>>
Python实现接口自动化测试库(JSON与Requests)详解
查看>>
Python 手写数字识别-3-sklearn中的几种算法
查看>>