标签搜索

Linux下关于lsof命令使用

Toanle
2023-01-06 / 0 评论 / 82 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年01月07日,已超过747天没有更新,若内容或图片失效,请留言反馈。

lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。

1.命令格式
lsof [参数][文件]
2.命令功能
用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为 lsof 需要访问核心内存和各种文件,所以需要 root 用户执行。
lsof打开的文件可以是:

  • 普通文件
  • 目录网络
  • 文件系统的文件
  • 字符或设备文件
  • (函数)共享库
  • 管道,命名管道
  • 符号链接
  • 网络文件(例如:NFS file、网络socket,unix域名socket)
  • 还有其它类型的文件,等等
    3.命令参数
  • -a 列出打开文件存在的进程
  • -c<进程名> 列出指定进程所打开的文件
  • -g 列出GID号进程详情
  • -d<文件号> 列出占用该文件号的进程
  • +d<目录> 列出目录下被打开的文件+D<目录> 递归列出目录下被打开的文件
  • -n<目录> 列出使用NFS的文件
  • -i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )
  • -p<进程号> 列出指定进程号所打开的文件
  • -u 列出UID号进程详情
  • -h 显示帮助信息
  • -v 显示版本信息

     **4.使用实例:** 

    命令:

lsof

lckpfyvs.png
lsof输出各列信息的意义如下:
实例1:列出某个用户打开的文件信息
命令:

lsof -u username

lckpjcjx.png
说明:
-u 选项,u其实是user的缩写
实例2:通过某个进程号显示该进行打开的文件
命令:

lsof -p 1

lckpm6l6.png

1

评论

博主关闭了当前页面的评论