[转帖]lsof命令

lsof,命令 · 浏览次数 : 0

小编点评

**列出所有打开的文件** ```bash lsof ``` **列出谁正在使用某个文件** ```bash lsof /filepath/file3 ``` **列出某个用户打开的文件信息** ```bash lsof -u username ``` **列出某个程序所打开的文件信息** ```bash lsof -c mysql ``` **列出除了某个用户外的被打开的文件信息** ```bash lsof -u ^root ``` **列出多个程序多打开的文件信息** ```bash lsof -c mysql -c apache8 ``` **列出某个用户以及某个程序所打开的文件信息** ```bash lsof -u test -c mysql9 ``` **列出除了某个进程号,其他进程号所打开的文件信息** ```bash lsof -p ^113 ``` **列出所有的网络连接** ```bash lsof -i14 ``` **列出所有tcp 网络连接信息** ```bash lsof -i tcp15 ``` **列出所有udp网络连接信息** ```bash lsof -i udp16 ``` **列出谁在使用某个端口** ```bash lsof -i :330617 ``` **列出谁在使用某个特定的udp端口** ```bash lsof -i udp:55特定的tcp端口 ``` **列出某个用户的所有活跃的网络端口** ```bash lsof -a -u test -i19 ``` **列出所有网络文件系统** ```bash lsof -N20 ``` **域名socket文件** ```bash lsof -u21 ``` **根据文件描述列出对应的文件信息** ```bash lsof -d description(like 2)23 ``` **根据文件描述范围列出文件信息** ```bash lsof -d 2-3 ```

正文

https://www.cnblogs.com/ryanlamp/p/10797641.html

 

lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。

实用命令:
lsof `which nginx` //哪个进程在使用nginx的可执行文件

lsof /etc/passwd //哪个进程在占用/etc/passwd

lsof /dev/hda6 //哪个进程在占用hda6

lsof /dev/cdrom //哪个进程在占用光驱

lsof -c sendmail //查看sendmail进程的文件使用情况

lsof -c courier -u ^zahn //显示出那些文件被以courier打头的进程打开,但是并不属于用户zahn

lsof -p 30297 //显示那些文件被pid为30297的进程打开

lsof -D /tmp 显示所有在/tmp文件夹中打开的instance和文件的进程。但是symbol文件并不在列

lsof -u1000 //查看uid是100的用户的进程的文件使用情况

lsof -u tony //查看用户tony的进程的文件使用情况

lsof -u ^tony //查看不是用户tony的进程的文件使用情况(^是取反的意思)

lsof -i //显示所有打开的端口

lsof -i:80 //显示所有打开80端口的进程

lsof -i -U //显示所有打开的端口和UNIX domain文件

lsof -i UDP@[url]www.akadia.com:123 //显示那些进程打开了到www.akadia.com的UDP的123(ntp)端口的链接

lsof -i tcp@ohaha.ks.edu.tw:ftp -r //不断查看目前ftp连接的情况(-r,lsof会永远不断的执行,直到收到中断信号,+r,lsof会一直执行,直到没有档案被显示,缺省是15s刷新)

lsof -i tcp@ohaha.ks.edu.tw:ftp -n //lsof -n 不将IP转换为hostname,缺省是不加上-n参数
————————————————————————————————————————————————
1.列出所有打开的文件:

lsof

备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位

2. 查看谁正在使用某个文件

lsof /filepath/file

3.递归查看某个目录的文件信息

lsof +D /filepath/filepath2/

备注: 使用了+D,对应目录下的所有子目录和文件都会被列出

4. 比使用+D选项,遍历查看某个目录的所有文件信息 的方法

lsof | grep ‘/filepath/filepath2/’

5. 列出某个用户打开的文件信息

lsof -u username

备注: -u 选项,u其实是user的缩写

6. 列出某个程序所打开的文件信息

lsof -c mysql

备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成lsof | grep mysql,但是第一种方法明显比第二种方法要少打几个字符了

7. 列出多个程序多打开的文件信息

lsof -c mysql -c apache

8. 列出某个用户以及某个程序所打开的文件信息

lsof -u test -c mysql

9. 列出除了某个用户外的被打开的文件信息

lsof -u ^root

备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示

10. 通过某个进程号显示该进行打开的文件

lsof -p 1

11. 列出多个进程号对应的文件信息

lsof -p 123,456,789

12. 列出除了某个进程号,其他进程号所打开的文件信息

lsof -p ^1

13 . 列出所有的网络连接

lsof -i

14. 列出所有tcp 网络连接信息

lsof -i tcp

15. 列出所有udp网络连接信息

lsof -i udp

16. 列出谁在使用某个端口

lsof -i :3306

17. 列出谁在使用某个特定的udp端口

lsof -i udp:55

特定的tcp端口

lsof -i tcp:80

18. 列出某个用户的所有活跃的网络端口

lsof -a -u test -i

19. 列出所有网络文件系统

lsof -N

20.域名socket文件

lsof -u

21.某个用户组所打开的文件信息

lsof -g 5555

22. 根据文件描述列出对应的文件信息

lsof -d description(like 2)

23. 根据文件描述范围列出文件信息

lsof -d 2-3

与[转帖]lsof命令相似的内容:

[转帖]lsof命令

https://www.cnblogs.com/ryanlamp/p/10797641.html lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议

[转帖]linux lsof 命令使用指南

https://cizixs.com/2017/05/16/linux-lsof-primer/ lsof 简介 lsof 是 list open files 的简称,正如名字所示,它的作用主要是列出系统中打开的文件。乍看起来,这是个功能非常简单,使用场景不多的命令,不过是 ls 的另一个版本。但是

[转帖]Linux 命令神器:lsof

lsof是系统管理/安全的管理工具。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。 有趣的是,lsof也是有着最多开关的Linux/Unix命令之一。它有那么多的开关,它有许多选项支持使

[转帖]Linux命令拾遗-软件资源观测

原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 这是Linux命令拾遗系列的第三篇,本篇主要介绍Linux中观测软件资源的命令,如ps、netstat、lsof,以及查看进程信息的宝库/proc目录。 本系列文章索引Linux命令拾遗-入门篇Linux命令拾遗

[转帖] Linux命令拾遗-软件资源观测

https://www.cnblogs.com/codelogs/p/16060443.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 这是Linux命令拾遗系列的第三篇,本篇主要介绍Linux中观测软件资源的命令,如ps、netstat、lsof,

[转帖]如何使用 ss、netstat、lsof 和 nmap 扫描开放端口

https://bbs.huaweicloud.com/blogs/386425 【摘要】 以下是使用端口扫描时会发现的一些常见端口:端口 21 – FTP(文件传输协议)端口 22 – SSH(安全外壳)端口 23 - Telnet端口 25 - SMTP(简单邮件传输协议)端口 53 - DNS

[转帖]linux下df查看空间已经占用%100,但是找不到大文件的解决方法

https://www.cnblogs.com/leffss/p/8571685.html 有时候在linux下会遇到这种情况:df查看空间已经占用%100,但是找不到大文件,怎么回事呢,经过网上查找资料,得到解决方法: 1.使用lsof查看已删除但未释放的文件 lsof -n | grep del

【转帖】linux 内核分析工具 Dtrace、SystemTap、火焰图、crash等

<< System语言详解 >> 关于 SystemTap 的书。 我们在分析各种系统异常和故障的时候,通常会用到 pstack(jstack) /pldd/ lsof/ tcpdump/ gdb(jdb)/ netstat/vmstat/ mpstat/truss(strace)/iostat/s

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻