Linux lsof 命令详解+实例

👨‍🎓博主简介

  🏅CSDN博客专家
  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

    • 一、lsof 命令介绍
    • 二、lsof 命令主要功能
    • 三、lsof 命令语法
    • 四、lsof 常用参数
    • 五、lsof 命令实例
    • 六、lsof 命令输出每列解析
    • 七、应用场景

一、lsof 命令介绍

lsof 命令在linux中是一个很实用的工具:

  • 主要功能:用于列出当前系统中所有打开的文件,在 Linux 系统中,几乎所有资源(包括文件、目录、网络连接、设备等)都被视为文件,因此 lsof 命令就可以显示与这些资源相关的详细信息,以便于排查所需结果。
  • 注意:因为lsof命令需要访问核心、内存和各种文件,所以 需要使用root用户执行命令。
  • 解析:
    在Linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表,这对系统监测以及排错是很有帮助的。
    总的来说,lsof 是一个功能强大的系统监视工具,能够帮助用户了解系统中文件的使用情况,以及网络连接和硬件设备的状态。

二、lsof 命令主要功能

  1. 列出打开的文件lsof 可以显示当前系统中所有被打开的文件,包括普通文件、目录、库文件、设备文件、网络套接字等。
  2. 按进程或用户过滤:可以通过指定进程 ID(PID)或用户名来查看特定进程或用户打开的文件。
  3. 按文件类型过滤:可以根据文件类型(如普通文件、目录、网络套接字等)进行过滤。
  4. 按网络连接过滤:可以列出与特定网络连接相关的文件,例如 TCP 或 UDP 连接。
  5. 按文件路径过滤:可以指定文件路径,查看哪些进程打开了该文件。

三、lsof 命令语法

lsof 【参数】
lsof 【参数】 filename

四、lsof 常用参数

参数解析
-?-h列出帮助信息
-a列出打开文件存在的进程;
-c<进程名>列出指定进程所打开的文件;
-g 列出GID号进程详情;
-d<文件号>列出占用该文件号的进程;
+d<目录>列出目录下被打开的文件;
+D<目录> 递归列出指定目录下所有打开的文件。
-n<目录>列出使用NFS的文件;
-i<条件>列出符合条件的进程。( IPv4、IPv6、协议、:端口、 @ip )
-p<进程号> 列出指定进程号所打开的文件;
-u列出指定用户打开的文件。
-v显示版本信息。
-V详细搜索
+c设置命令名称的显示宽度
-d s根据文件描述符选择文件
-f-f[gG]显示文件系统或文件名称
-K列出线程(任务)
-l列出用户 ID 数字
-n不解析主机名
-N选择 NFS 文件
-o列出文件偏移量
-O不显示开销,可能有风险
-P不解析端口名称
-R列出父进程 ID
-r [t]每隔 t 秒重复一次,可选后缀格式
-s [p:s]根据协议(TCP/UDP)状态选择文件
-S [t]设置统计超时时间
-T [t]设置 TCP/TPI 信息
-t简洁列表显示,仅显示进程 ID,适用于脚本中。

五、lsof 命令实例

  • 1、 列出所有打开的文件:
lsof

该命令会显示系统中所有打开的文件及其相关信息,包括进程 ID、用户、文件描述符、文件类型等。

  • 2、列出特定用户打开的文件:
lsof -u username

该命令会显示指定用户打开的所有文件。

  • 3、列出除了某个用户外的被打开的文件信息
lsof   -u ^root

也就是说^这个符号在用户名之前,将排查root用户,展示其他用户正在打开的文件信息;

  • 4、列出某个程序或服务所打开的文件信息
lsof -c mysql
  • 5、列出多个程序多打开的文件信息
lsof -c mysql -c nginx
  • 6、列出某个用户以及某个程序所打开的文件信息
lsof -u nginx-c nginx
  • 7、列出特定进程打开的文件:
lsof -p 1234

该命令会显示进程 ID 为 1234 的进程打开的所有文件。

  • 8、列出多个进程号对应的文件信息
lsof -p 123,456,789

该命令会显示进程pid为123,456,789的进程打开的所有文件;

  • 9、列出除了某个进程号,其他进程号所打开的文件信息
lsof -p ^1234

也就是除了1234的进程,其他都会列出来;

  • 10、列出与网络连接相关的文件:
lsof -i

该命令会显示所有与网络连接相关的文件,包括 TCP 和 UDP 连接。

  • 11、列出所有tcp 网络连接信息
lsof  -i tcp
  • 12、列出所有udp网络连接信息
lsof  -i udp
  • 13、列出谁在使用这个端口
lsof -i :3306
  • 14、列出谁在使用某个特定的udp端口
lsof -i udp:55
  • 15、列出谁在使用某个特定的tcp端口
lsof -i tcp:80
  • 16、列出某个用户的所有活跃的网络端口
lsof  -a -u username -i
  • 17、列出特定目录下打开的文件:
lsof +D /path/to/directory

该命令会递归列出指定目录下所有打开的文件。

  • 18、查看当前文件的pid
lsof -t filename

该命令可以直接查看到此文件的pid,如果没有启动就看不到;

六、lsof 命令输出每列解析

COMMAND     PID   TID    USER   FD      TYPE             DEVICE   SIZE/OFF       NODE NAME
systemd       1          root  cwd       DIR              253,0        280         64 /
systemd       1          root  rtd       DIR              253,0        280         64 /
  • COMMAND:进程的名称
  • PID:进程的id
  • TID:线程标识符,对于多线程程序,这里会显示线程ID。对于非多线程程序,这个值通常与 PID 相同或为空。
  • USER:进程所有者
  • FD:文件描述符,表示进程打开文件的方式。如下: FD文件描述符常见列表
  • TYPE:文件类型,如DIR、REG等,更多如下:常见文件类型
  • DEVICE:指定磁盘的名称
  • SIZE/OFF:文件大小或文件偏移量,取决于文件类型和状态。
  • NODE:索引节点(文件在磁盘上的标识)用于唯一标识文件系统中的文件。
  • NAME:文件的名称或路径

FD文件描述符常见列表

  • cwd:应用程序当前工作目录。
  • txt:程序的代码文本(可执行文件)。
  • dat:程序的数据段。
  • mem:内存映射文件。
  • rtd:根目录。
  • mmap:内存映射设备。
  • 0:表示标准输出。
  • 1:表示标准输入。
  • 2:表示标准错误。
  • 管道(pipe)或 socket:用于进程间通信。

一般在标准输出、标准错误、标准输入后还跟着文件状态模式:

  • u:表示该文件被打开并处于读取/写入模式。
  • r:表示该文件被打开并处于只读模式。
  • w:表示该文件被打开并处于。
  • 空格:表示该文件的状态模式为unknow,且没有锁定。
  • -:表示该文件的状态模式为unknow,且被锁定。

同时在文件状态模式后面,还跟着相关的锁:

  • N:对于未知类型的Solaris NFS锁;
  • r:用于对文件的一部分进行读取锁定;
  • R:整个文件的读取锁定;
  • w:文件的部分写锁;
  • W:整个文件的写锁;
  • u:对于任意长度的读写锁;
  • U:对于未知类型的锁;
  • x:对于文件的sco openserver xenix锁;
  • X:对于整个文件的sco openserver xenix锁;
  • space:如果没有锁;

常见文件类型

  • DIR:表示目录。
  • REG:常规文件。
  • CHR:表示字符类型。
  • BLK:块设备类型。
  • LNK:符号链接。
  • SOCK:套接字。
  • UNIX: UNIX 域套接字。
  • FIFO:先进先出 (FIFO) 队列。
  • MEM:内存文件。
  • IPv4:网际协议 (IP) 套接字。
  • a_inode:代表匿名 inode,通常表示共享内存区域或内存映射的文件

七、应用场景

  • 排查文件占用问题:当某个文件无法删除或移动时,可以使用 lsof 查看是否有进程正在使用该文件。
  • 监控网络连接:通过 lsof -i 可以查看当前系统的网络连接情况,帮助排查网络问题。
  • 分析系统资源使用情况:通过 lsof 可以了解系统中哪些文件被频繁打开,帮助优化系统性能。

lsof 是一个功能强大的工具,适用于系统管理员和运维人员在日常工作中进行系统监控和问题排查。


🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85161.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85161.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Cobalt Strike手册】客户端界面功能

工具栏 顶部的工具栏提供了快速访问的功能&#xff0c;这些图片的功能从左到右功能以此如下表 创建新的连接断开当前的TeamServerListeners监听器列表以图形化展示表格形式展示表格展示目标管理Web服务查看获取到的认证信息查看下载的文件查看键盘记录查看截屏记录 图形化会话…

FastAPI本地文档的定制技巧

磨刀不误砍柴工&#xff0c;一份清晰的API文档能让前后端协作效率翻倍——源滚滚如是说 在前后端分离开发的今天&#xff0c;接口文档的质量直接决定了团队协作的效率。作为Python领域最受瞩目的现代Web框架&#xff0c;FastAPI最大的亮点之一是其自动化交互式文档功能。但很多…

Python 标准库概览

Python 标准库非常庞大,所提供的组件涉及范围十分广泛,使用标准库我们可以让您轻松地完成各种任务。 以下是一些 Python3 标准库中的模块: os 模块:os 模块提供了许多与操作系统交互的函数,例如创建、移动和删除文件和目录,以及访问环境变量等。 sys 模块:sys 模块提供…

AI大模型:(二)4.1 文生图(Text-to-Image)模型发展史

目录 1.介绍 2.发展历史 2.1.早期探索阶段(1980-2014 年) 2.1.1.卷积神经网络(CNN) 2.1.2.生成对抗网络(GAN)的提出 2.2.GAN主导时代(2015-2018 年) 2.2.1.高分辨率GAN的突破 2.2.2.文本-图像对齐的改进 2.3. Diffusion革命(2021–2022) 2.3.1.扩散模型(D…

vue3实现轮播渲染多张图每张进行放大缩小拖拽功能互不影响

vue3实现轮播渲染多张图每张进行放大缩小拖拽功能互不影响 1.以vue3中el-carousel轮播插件为例 <div class"pic_view"><el-carousel height"100vh" :autoplay"false" ref"carouselRef" change"handleCarouselChange&qu…

traceroute 使用说明

1、概述 Traceroute&#xff08;Windows 系统中为 tracert&#xff09;是一种网络诊断工具&#xff0c;用于跟踪数据包从本地设备到目标主机的传输路径&#xff0c;并显示沿途经过的每一跳&#xff08;路由器&#xff09;的延迟和 IP 地址。它通过发送不同 TTL&#xff08;生存…

用idea操作git缓存区回退、本地库回退、远程库回退

前言 使用idea软件操作git非常人性化和方便。 但是如果我的代码使用git提交之后,我想回到以前的版本,此时需要进行git的版本回退。 提交代码分为提交到缓存区、本地库、远程库这3个过程。 下面我将介绍每个阶段的提交对应的回退方法。 本篇文章是掌握git和使用idea操作git…

webpack+vite前端构建工具 - 3webpack处理js

3 webpack处理js webpack的核心——处理js文件&#xff0c;将模块化的代码打包。具体操作如下 es6转化&#xff08;为兼容老浏览器&#xff0c;将es6转化为es5&#xff09; babel-loader 代码规范&#xff08;例如空格&#xff0c;缩进等代码风格规范&#xff09; eslint 代码…

Nginx转发中相对路径资源302问题的分析与解决

Nginx转发中相对路径资源302问题的分析与解决 典型案例&#xff1a;后端页面引入./test.css的302问题 问题场景 假设我们有一个后端服务&#xff0c;其页面中通过相对路径引入了CSS文件&#xff1a; <!-- 后端页面代码 --> <link rel"stylesheet" href&…

Vue3 + TypeScript合并两个列表到目标列表,并且进行排序,数组合并、集合合并、列表合并、list合并

在Vue 3 TypeScript中合并并排序两个列表&#xff0c;可以通过以下步骤实现&#xff1a; 解决方案代码 vue 复制 下载 <script setup lang"ts"> import { ref, computed } from vue;// 定义列表项类型 interface ListItem {id: number;name: string;valu…

Python-教程

1 需求 2 接口 3 示例 4 参考资料 Python 教程 — Python 3.13.5 文档

Excel数据导出小记

文章目录 前言一、DataTable >EXCEL二、DBReader >Excel &#xff08;NPOI&#xff09;三、分页查询 DbReader>Excel (MiniExcel)总结&#xff1a; 前言 最近经历了一次数据量比较大的导出&#xff0c;也做了各种优化尝试&#xff0c;这里稍记录一下 一、DataTable …

深入理解链表数据结构:从Java LinkedList到自定义实现

引言 链表作为基础数据结构之一&#xff0c;在Java集合框架中以LinkedList的形式提供。本文将深入分析Java原生LinkedList的实现机制&#xff0c;并介绍我自定义实现的MyLinkedList&#xff0c;最后对比两者的设计差异与实现特点。 Java原生LinkedList解析 基本结构 Java的…

【深度学习】卷积神经网络(CNN):计算机视觉的革命性引擎

卷积神经网络&#xff08;CNN&#xff09;&#xff1a;计算机视觉的革命性引擎 一、算法背景&#xff1a;视觉智能的进化之路1.1 传统视觉处理的困境1.2 神经科学的启示 二、算法理论&#xff1a;CNN的核心架构2.1 基础组成单元卷积层&#xff1a;特征提取引擎池化层&#xff1…

使用@SpringJUnitConfig注解开发遇到的空指针问题

Spring测试中的版本陷阱&#xff1a;SpringJUnitConfig与JUnit版本兼容性深度解析 一个看似简单的空指针异常&#xff0c;背后可能隐藏着JUnit版本不匹配的“幽灵”。 一、SpringJUnitConfig&#xff1a;Spring与JUnit 5的桥梁 SpringJUnitConfig是Spring TestContext框架为**…

[2025CVPR]AdcSR:一种高效实世界图像超分辨率的对抗扩散压缩方法

目录 1. 背景与挑战 2. AdcSR模型概述 2.1 模型架构 2.2 训练策略 3. 公式与原理 4. 创新点 5. 实验与结果 5.1 实验设置 5.2 结果对比 5.3 消融实验 6. 结论 在计算机视觉领域&#xff0c;图像超分辨率&#xff08;Image Super-Resolution, ISR&#xff09;一直是一…

Go 语言中的字符串基本操作

这篇文章已经放到腾讯智能工作台的知识库啦&#xff0c;链接在这里&#xff1a;ima.copilot-Go 入门到入土。要是你有啥不懂的地方&#xff0c;就去知识库找 AI 聊一聊吧。 本篇将详细讲解 Go 语言中与字符串相关的操作。 1、rune 和 字符串长度 1、Go 函数语法约定 在开始…

数学建模会议笔记

看似优化模型 建立整数规划模型 用优化软件、启发式方法、精确方法求解 建立图论和组合优化模型用组合优化方法、启发式方法求解 建立博弈论模型 数据统计分析与可视化- 数据拟合、参数估计、插值、数据的标准化、去伪补全相关度分析、分类、聚类等 最优化理论和方法 线性规划…

学习昇腾开发的六天--ACL应用开发之运行第一个实例

1、下载一个实例&#xff0c;运行一个图像分类实例&#xff08;环境&#xff1a;Ubuntu22.04&#xff0c;硬件&#xff1a;昇腾310B1&#xff0c;加速模块&#xff1a;atlas 200i a2&#xff09; samples: CANN Samples - Gitee.com 目录结构如下&#xff1a; ├── data │…

可灵AI-快手公司自主研发的一款AI视频与图像生成工具

可灵AI是由快手公司自主研发的一款AI视频与图像生成工具&#xff0c;于2024年6月正式推出。以下是对其的详细介绍&#xff1a; 核心功能 AI视频生成&#xff1a; 文生视频&#xff1a;输入文字描述&#xff0c;AI可自动生成匹配的视频片段。图生视频&#xff1a;上传图片&…