lsof命令

lsof命令详解

一、命令概述

lsof,全称为“list open files”,是一个在Linux和Unix系统上非常有用的命令行工具,用于列出当前系统打开的文件。这里的“文件”不仅仅指传统意义上的数据文件,还包括网络连接、硬件设备等。通过lsof,用户可以查看哪些进程打开了哪些文件,这对于诊断程序错误、系统挂起等问题特别有用。

二、功能作用

查看进程打开的文件:可用于查看程序访问情况,如哪些程序正在访问某个特定文件。
查看网络连接信息:可以查看所有打开的网络连接和套接字,适用于网络监控和故障排除。
快速查看目录下被打开的文件:可以快速定位目录下哪些文件被哪些进程打开。
与其他命令组合定位程序问题:如与strace合用追踪程序访问系统调用。
查看用户打开的文件信息:可以指定用户查看其打开的文件情况。
查看伪设备、管道等打开的文件情况:如内存映射文件、设备文件等。

三、常见参数

-a:表示两个参数都必须满足时才显示结果。
-c <进程名>:列出指定进程所打开的文件。
-g:列出GID号进程详情。
-d <文件号>:列出占用该文件号的进程。
+d <目录>:列出目录下被打开的文件。
+D <目录>:递归列出目录下被打开的文件。
-n <目录>:列出使用NFS的文件。
-i <条件>:列出符合条件的进程(如IP地址、端口号等)。
-p <进程号>:列出指定进程号所打开的文件。
-u:列出UID号进程详情。

四、输出信息说明

lsof命令的输出信息包含多列,每列都有其特定的含义:

COMMAND:进程的名称或命令名。
PID:进程ID,标识正在打开文件的进程。
USER:进程的用户名,表示拥有该进程的用户。
FD:文件描述符,描述进程打开文件的方式。常见的标识符包括cwd(当前工作目录)、txt(可执行文件)、mem(内存映射文件)等。
TYPE:文件类型,指示打开文件的类型,包括普通文件、目录、套接字等。
DEVICE:文件所在的设备号和设备的名称。
SIZE/OFF:文件大小或文件偏移量。
NODE:文件的节点号。
NAME:打开文件的路径和名称。

五、注意事项

要查看所有用户的文件信息,通常需要root权限。
lsof的输出可能非常庞大,通常需要结合管道命令或其他过滤器使用。

通过lsof命令,管理员可以方便地查看系统打开的文件情况,从而进行故障排查和系统监控。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介:在Linux系统中,lsof命令用于列出当前系统上打开的文件。它对于系统管理员和开发人员来说非常有用,因为它...
    方生方死FSFS阅读 89评论 0 0
  • 简介 lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以...
    Pecksniff1994阅读 443评论 0 0
  • 转载自:http://www.cnblogs.com/peida/archive/2013/02/26/29329...
    L白水飘萍阅读 557评论 0 0
  • lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的...
    StarShift阅读 904评论 0 0
  • lsof(list open files)是一个列出当前系统打开文件的工具。 lsof命令用于查看你进程开打的文件...
    北山学者阅读 5,642评论 0 1