Linux 命令行工具:lsof 入门指南

简介: `lsof` 命令详解:用于列出系统中打开的文件,包括进程、网络连接、管道等。通过 `-p` 查看指定进程文件,`-u` 查看用户文件,`-i` 查看网络连接。还能定位占用端口的进程,显示已删除但仍在使用的文件,以及分析程序如何操作文件。是Linux用户问题定位和性能优化的得力助手。学习并熟练运用 `lsof` 可提升工作效率。

在我们深入 Linux 的奥妙时,总会遇到需要查看文件或者进程相关信息的场景。

这时候,一个强大的帮手—— lsof 命令就显得非常重要。

本文将深入浅出地介绍 lsof 命令,让你无论是初学者还是有一定编程经验的开发者,都能轻松掌握它。

什么是 lsof?

lsof 是 “List Open Files” 的缩写,顾名思义,它的作用就是列出系统中当前被打开的文件。但这里所说的 “文件”,不仅仅是我们日常理解的文档那么简单,它还包括了目录、库文件、网络套接字 (socket)、管道 (pipes) 等。

为什么要查看打开的文件呢?

因为在 UNIX 或 Linux 系统中,“一切皆文件”,很多问题定位和性能优化的工作都会涉及到文件的操作。通过 lsof,我们可以轻松查看哪个进程打开了哪些文件,进而对系统的行为有更深入的理解。

基本用法

查看特定进程打开的文件

如果我们要查看特定进程打开了哪些文件,可以使用 -p 选项后跟进程 ID。举个例子,查看进程 ID 为 1234 的进程打开的文件:

lsof -p 1234

查看特定用户打开的文件

如果想要查看特定用户(例如 tom)打开的文件,可以使用 -u 选项:

lsof -u tom

查看特定类型的文件

lsof 也可以用来查看打开的特定类型的文件,比如查看所有网络连接:

lsof -i

实用技巧

查找哪个进程占用了端口

在 Linux 开发中,我们经常会遇到需要查找哪个进程占用了某个端口的情况。通过 lsof 配合 -i 选项,这个任务就变得易如反掌。

假如我们需要查看哪个进程占用了 8080 端口:

lsof -i:8080

查看被删除但仍被进程使用的文件

lsof 还有一个非常实用的功能,就是查看那些已经被删除,但是仍被某些进程占用的文件,这类文件在磁盘空间不释放的问题定位上非常有用。使用方法如下:

lsof +L1

这里的 +L1 参数会列出所有被删除但至少还有一个进程在使用的文件。

查看程序打开文件的情况

有时候,我们可能对整个系统范围内的文件打开情况不感兴趣,而只想要着重查看某个程序如何操作文件。

比如,我们想要看看 nginx 是如何打开文件的:

lsof -c nginx

总结

lsof 是每个 Linux 用户都应该掌握的必备工具。它不仅能帮助我们理解系统的运行状态,还能在多种场景下快速定位问题。

希望通过本文的介绍,你能对 lsof 命令有一个全面的了解并加以实践,提升工作效率。

上手 lsof 其实并不难,关键在于理解其提供的信息并结合实际情况加以应用。

希望各位在阅读完本文后,能将其融会贯通,成为自己解决问题的利器。

相关文章
|
1月前
|
安全 Linux
Linux系统之lsof命令的基本使用
【10月更文挑战第14天】Linux系统之lsof命令的基本使用
76 2
Linux系统之lsof命令的基本使用
|
16天前
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
54 3
|
2月前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
226 73
|
1月前
|
机器学习/深度学习 Linux 编译器
Linux入门3——vim的简单使用
Linux入门3——vim的简单使用
58 1
|
1月前
|
Linux Shell Windows
Linux入门1——初识Linux指令
Linux入门1——初识Linux指令
26 0
Linux入门1——初识Linux指令
|
2月前
|
运维 监控 Linux
深入理解Linux系统运维:命令行工具的力量
【9月更文挑战第14天】在Linux的世界里,命令行工具是系统管理员的瑞士军刀。本文将带你领略命令行的魅力,从基础操作到高级技巧,让你的运维工作更加高效和精准。准备好了吗?让我们一起开启这段探索之旅!
|
1月前
|
存储 数据可视化 Linux
Linux 基础入门
Linux 基础入门
|
1月前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
26 0