当前位置:首页 > 技术文章 > 正文内容

一切皆文件 – Linux lsof 妙用技巧

douba34周前 (08-03)技术文章15

lsof(List Open Files)是 Linux 中用于列出系统打开文件的实用工具。它可显示进程与文件、目录、网络连接等的关联信息。以下是常见使用场景和示例:

1、列出所有打开的文件

$ sudo lsof

2、查看某用户打开的文件

$ sudo lsof -u <用户名>

3、查看指定进程ID(PID)打开的文件

$ sudo lsof -p <PID>

4、查看某个文件被哪些进程使用

$ sudo lsof <文件路径>

5、查看占用某个端口的进程:

$ sudo lsof -i :<端口号>

指定TCP/UDP协议

$ sudo lsof -i tcp # 所有TCP连接
$ sudo lsof -i udp # 所有UDP连接

6、同时按用户和端口过滤

$ sudo lsof -u <用户名> -i :<端口号>

7、排除某用户

显示非该用户打开的文件

$ sudo lsof -u ^<用户名> 

8、找被删除但未释放的文件

显示链接数为0的文件

$ sudo lsof +L1 

结合grep快速定位

$ sudo lsof /path | grep deleted 

9、查看指定进程名称打开的文件

$ sudo lsof -c <进程名>

10、列出占用某端口的PID(方便脚本处理)

$ sudo lsof -t -i :<端口号>

11、列出某个用户的所有活跃的网络端口

$ sudo lsof -a -u <用户名> -I

12、查找包含 flask 关键字的进程的资源使用

$ sudo lsof -p $(pgrep -f flask)

13、通过 ps 找到进程 PID,再用 lsof 查看详细信息

$ sudo lsof -p $(pgrep -f <进程名或命令片段>)

14、查看占用 80 端口的进程的所有文件

$ sudo lsof -p $(sudo lsof -t -i :80)

15、直接终止占用某个文件或端口的进程

$ sudo kill $(sudo lsof -t <文件路径或端口>)

终止占用 8000 端口的进程

$ sudo kill $(sudo lsof -t -i :8000)

终止占用 /var/log/syslog 的进程

$ sudo kill $(sudo lsof -t /var/log/syslog)

16、查找最近修改的文件(结合 find)

列出 /path 下最近 5 分钟修改过且被打开的文件

$ find /path -mmin -5 | xargs lsof

相关文章

向日葵对比ToDesk,谁才是解决远程开关机问题的NO.1?

很多办公人士都会有这样的烦恼,那就是打算下班回家工作,才发现有一份重要的资料没有上传,真的是让人很头大!想要回去拿,又很麻烦,不回去吧,又无法完成工作,所以这时候一款远程控制电脑开关机的产品就很重要。...

Linux下免交互模式的远程管理实现

通过linux脚本及expect可以不交互进行linux服务器的批量管理。一、远程传输文件cat send_file.sh#!/usr/local/bin/expect -f## 输入两个参数set...

Linus:Linux 太垃圾了,我把它删了,建议你用 Windows XP

IT之家 1 月 26 日消息,Linux 之父 Linus Torvalds 昨日似乎情绪有点失控,向 GitHub 提交了一个 README 文件,狠狠吐槽了 Linux 系统。Linus 表示:...

第五章 Linux常用服务介绍-5.2 FTP服务

1)ftp服务器安装和配置FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文本传输协议”,通常我们就叫它FTP服务。用于Internet上的控制文件的双...

为解决卡顿,Linux禁用所有AMD处理器fTPM上的随机数生成器

IT之家 8 月 8 日消息,最近,AMD 的 fTPM 随机数生成器(RNG)出现了一个卡顿问题,最初影响了 Windows 用户,但后来也影响到了 Linux。Linux 之父 Linus Tor...

linux如何限制指定账户不能SSH只能SFTP在指定目录

概述由于某台服务器需要对指定用户进行限制,只允许访问指定目录,这个需求在很多场景应该是比较常见的,下面介绍一种解决方案。以下限制了sftp用户组只能sftp 连接上去至指定目录(/projects/t...