0

0

Linux命令行中lsof命令的实用技巧

冷漠man

冷漠man

发布时间:2025-09-30 20:22:02

|

908人浏览过

|

来源于php中文网

原创

lsof是Linux中用于列出打开文件的命令行工具,可定位端口占用进程(如lsof -i :8080)、查看指定用户或进程打开的文件、查找导致设备忙的元凶、监控网络连接状态,并支持按协议、目录、文件类型等条件筛选,广泛应用于资源排查与系统运维。

linux命令行中lsof命令的实用技巧

lsof(List Open Files)是Linux系统中一个非常强大的命令行工具,用于列出当前系统上被打开的文件。在Linux中,几乎所有资源都被视为“文件”——包括网络连接、设备、目录甚至进程间通信通道。因此,lsof不仅能查看哪些进程打开了哪些文件,还能用来排查网络问题、查找占用端口的程序、释放被占用的资源等。

查看某个端口被哪个进程占用

当启动服务提示端口被占用时,可以用lsof快速定位:

lsof -i :8080

该命令会列出所有使用8080端口的进程,包含PID、用户、协议和连接状态。输出中的PID可用于后续kill操作:

kill -9 PID

若只想查看TCP或UDP连接,可加协议前缀:

lsof -i TCP:80

查找某个用户打开的文件

要查看特定用户正在使用的文件或资源:

lsof -u username

这在多用户系统中很有用,比如判断某用户是否还在访问某个挂载点,或者是否有进程阻止卸载磁盘。

结合条件还可筛选特定类型文件,例如只看该用户的网络连接:

lsof -u username -i

列出某个文件或目录被谁使用

当你尝试卸载一个设备或删除一个文件却提示“设备正忙”时,可用lsof找出元凶:

lsof /path/to/directory

例如,卸载U盘前发现无法卸载:

lsof /mnt/usb

输出结果会显示具体进程名和PID,终止这些进程后即可安全卸载。

对于被删除但仍被进程占用的文件(常见于日志文件),可用 +L 选项查找:

Shell脚本编写基础 中文WORD版
Shell脚本编写基础 中文WORD版

Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统

下载
lsof +L1

这能列出链接数小于1但仍被打开的文件,帮助清理残留句柄。

监控网络连接状态

lsof可以替代netstat或ss的部分功能,查看活跃的网络连接:

lsof -i -P -n

其中:

  • -i 表示显示网络相关文件
  • -P 防止端口号转为服务名(如80 → http)
  • -n 不解析主机名,加快输出速度

可进一步过滤特定状态,如只看ESTABLISHED连接:

lsof -i -n | grep ESTABLISHED

查看进程打开的文件类型

每个进程可能打开多种类型的文件:普通文件、管道、套接字、内存映射等。可通过以下方式查看某一进程的详细打开情况:

lsof -p 1234

也可以按文件类型筛选,例如查看所有使用IPv4的进程:

lsof -i 4

查看使用了目录的进程:

lsof +D /var/log

注意 +D 会递归扫描目录,适合大范围检查。

基本上就这些。lsof功能丰富,参数众多,但掌握上述几种典型用法已能解决大多数日常运维问题。关键是理解“一切皆文件”的设计思想,这样更容易读懂lsof的输出含义。

相关专题

更多
http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

326

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

401

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

1597

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1936

2024.08.16

tcp和udp的区别
tcp和udp的区别

TCP和UDP的区别,在连接性、可靠性、速度和效率、数据报大小以及适用场景等方面。本专题为大家提供tcp和udp的区别的相关的文章、下载、课程内容,供大家免费下载体验。

118

2023.07.25

udp是什么协议
udp是什么协议

UDP是OSI参考模型中一种无连接的传输层协议。本专题为大家带来udp是什么协议的相关文章,免费提供给大家。

277

2023.08.08

tcp和udp有什么区别
tcp和udp有什么区别

tcp和udp的区别有:1、udp是无连接的,tcp是面向连接的;2、udp是不可靠传输,tcp是可靠传输;3、udp是面向报文传输,tcp是面向字节流传输。想了解更多tcp相关的内容,可阅读本专题下面的相关文章。

368

2024.11.14

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1347

2023.06.21

Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

10

2026.01.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7万人学习

Git 教程
Git 教程

共21课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号