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 其实并不难,关键在于理解其提供的信息并结合实际情况加以应用。

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

相关文章
|
11月前
|
Unix Linux Shell
Linux新手入门手册
在Linux或类Unix系统中,掌握一系列基础命令和快捷键是提升工作效率的关键。这些工具和技巧不仅能帮助用户更高效地管理系统,还能在日常使用中带来极大的便利。以下是对这些基础操作与快捷键的详细解析大全。
215 9
|
安全 Linux
Linux系统之lsof命令的基本使用
【10月更文挑战第14天】Linux系统之lsof命令的基本使用
589 2
Linux系统之lsof命令的基本使用
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
769 3
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
187 2
|
机器学习/深度学习 Linux 编译器
Linux入门3——vim的简单使用
Linux入门3——vim的简单使用
213 1
|
Linux Shell Windows
Linux入门1——初识Linux指令
Linux入门1——初识Linux指令
162 0
Linux入门1——初识Linux指令
|
运维 监控 Linux
深入理解Linux系统运维:命令行工具的力量
【9月更文挑战第14天】在Linux的世界里,命令行工具是系统管理员的瑞士军刀。本文将带你领略命令行的魅力,从基础操作到高级技巧,让你的运维工作更加高效和精准。准备好了吗?让我们一起开启这段探索之旅!
|
存储 数据可视化 Linux
Linux 基础入门
Linux 基础入门
125 0
|
4月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
502 1
二、Linux文本处理与文件操作核心命令
|
4月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
346 137