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

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

相关文章
|
13天前
|
存储 Linux Android开发
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。以前很多赛项都是使用vol2.6都可以完成,但是由于操作系统更新,部分系统2.6已经不支持了,如:Win10 等镜像,而Volatility3是支持这些新版本操作系统的。
|
9天前
|
存储 Linux 数据库
【Linux】Linux基础文件与目录管理:成为Linux大师的入门必修课
【Linux】Linux基础文件与目录管理:成为Linux大师的入门必修课
21 3
|
12天前
|
Linux Unix 安全
【Linux终端探险】:从入门到熟练,玩转基础命令的秘密(一)
【Linux终端探险】:从入门到熟练,玩转基础命令的秘密(一)
|
12天前
|
Linux 开发工具
【Linux文本编辑艺术】:从入门到熟练,Vim大师之路揭秘
【Linux文本编辑艺术】:从入门到熟练,Vim大师之路揭秘
|
12天前
|
Linux Unix Windows
【Linux终端探险】:从入门到熟练,玩转基础命令的秘密(二)
【Linux终端探险】:从入门到熟练,玩转基础命令的秘密(二)
|
6天前
|
Unix Linux 程序员
linux入门系列4--vi/vim编辑器
linux入门系列4--vi/vim编辑器
|
2天前
|
Linux
Linux如何快速执行历史命令
Linux如何快速执行历史命令
16 8
|
2天前
|
存储 安全 Linux
Linux passwd命令:守护账户安全的密钥
`passwd`命令是Linux中管理用户密码的关键工具,确保数据安全。它用于更改密码,采用加密存储,并有锁定/解锁账号、设置密码策略等功能。参数如`-d`删除密码,`-l`锁定账号,`-u`解锁。最佳实践包括定期更改复杂密码,保护root密码,谨慎使用无密码选项。了解和正确使用passwd是保障系统安全的重要步骤。
|
2天前
|
SQL 关系型数据库 数据库
深入探索Linux中的pgawk命令
`pgawk`是`awk`的扩展,带有对PostgreSQL的支持,允许在`awk`脚本中执行SQL查询,简化文本与数据库交互。它保持了`awk`的全部功能,且高效传输数据。使用时,可以通过参数如`-d`、`-h`、`-p`、`-U`和`-W`指定数据库连接详情。示例中展示了如何结合`pgawk`和`psql`从文本文件获取销售数据并联查数据库获取客户名称。在使用时要注意安全连接、优化SQL、测试验证和版本兼容性,以实现有效且安全的数据处理。
|
1天前
|
NoSQL 应用服务中间件 Linux
宝塔linux面板命令大全
宝塔linux面板命令大全
11 2