前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 命令行工具:lsof 入门指南

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

原创
作者头像
南山竹
发布2024-06-06 22:35:44
530
发布2024-06-06 22:35:44

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

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

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

什么是 lsof?

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

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

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

基本用法

查看特定进程打开的文件

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

代码语言:bash
复制
lsof -p 1234

查看特定用户打开的文件

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

代码语言:bash
复制
lsof -u tom

查看特定类型的文件

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

代码语言:bash
复制
lsof -i

实用技巧

查找哪个进程占用了端口

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

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

代码语言:bash
复制
lsof -i:8080

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

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

代码语言:bash
复制
lsof +L1

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

查看程序打开文件的情况

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

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

代码语言:bash
复制
lsof -c nginx

总结

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

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

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 lsof?
  • 基本用法
    • 查看特定进程打开的文件
      • 查看特定用户打开的文件
        • 查看特定类型的文件
        • 实用技巧
          • 查找哪个进程占用了端口
            • 查看被删除但仍被进程使用的文件
              • 查看程序打开文件的情况
              • 总结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档