linux lsof原理,Linux中的lsof命令详解

Linux学习笔记总结(九十)- Linux中的lsof命令详解

熟悉linux 的朋友都知道,在linux系统中,一切皆文件,任何事物都以文件的形式存在。普通文件是文件,目录是文件,硬件设备也是文件(键盘、监视器、硬盘、打印机等),就连网络通信也都是文件。

任何进程在打开文件时,都会想内核申请一个文件描述符,该描述符为进程和操作系统之间的交互提供了通用接口。我可通过lsof命令查看这些信息。

lsof命令可以列出系统打开的所有的文件,当然不同的用户查看到的信息是不一样的,如果要查看所有完整的信息,那就要使用root用户的权限来执行lsof命令。

50fd0624b96342d3c1a7dc5711475cfb.png

各列含义:

COMMAND:进程的名称

PID:进程标识符

USER:进程所有者

FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等

TYPE:文件类型,如DIR、REG等

DEVICE:指定磁盘的名称

SIZE:文件的大小

NODE:索引节点(文件在磁盘上的标识)

NAME:打开文件的确切名称

lsof命令语法格式:

lsof [参数][文件]

常用参数:

-a:列出打开文件存在的进程

lsof –a –u know_action

56079019a9a954d313f8e928eeb26a7a.png

-c :列出指定进程打开的文件信息

sudo lsof -d bash

cfdd25f7f52c7ddb5d066f722e1ee59d.png

-g:列出GID号的进程信息

-d:列出占用该文件好的进程

sudo lsof -d cwd

6bd0a6b4eff3f5efd843025689e4e586.png

注:

0表示标准输入,1表示标准输出,2表示标准错误,应用程序所打开的文件的FD都是从3开始。

+d:列出该目录下被打开的文件

sudo lsof +d /usr/lib/x86_64-linux-gnu/gconv

50ce22df0a4919814182b65a8fbeac22.png

+D:递归列出目录下被打开的文件

sudo lsof +D /dev/

69be4c4c7c3f252b4453ad26271238db.png

-i:累出符合条件的进程

sudo lsof -i:22#tcp:80;UDP:53

4cf26ce2c742db473870fadaa3d7134d.png

-p:列出指定进程号所打开的文件

sudo lsof -p 861

ba43143ad58f882d1522de2dc9169843.png

8e21ad169cc8b1602c2112e373bb8192.png

f04061ac8163988781d7fa51e8072745.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值