HCRM博客

CentOS系统下如何高效使用lsof命令?

CentOS系统下lsof命令详解

一、什么是lsof?

lsof(list open files)是一个用于列出当前系统中所有打开文件的命令,在Linux环境下,几乎所有的事物都可以被视为文件,包括网络连接和硬件设备,因此lsof的功能非常强大,它可以帮助系统管理员监测进程活动,诊断系统问题。

CentOS系统下如何高效使用lsof命令?-图1
(图片来源网络,侵权删除)

二、安装lsof

在CentOS系统中,可以通过以下命令来安装lsof:

  • yum install lsof

输入y确认安装即可。

三、lsof的基本用法

执行lsof命令后,会显示系统中所有被打开的文件及其相关信息,以下是一些常用的lsof命令选项:

1、查看所有打开的文件

CentOS系统下如何高效使用lsof命令?-图2
(图片来源网络,侵权删除)
  • lsof

2、查看特定端口的使用情况

  • lsof i :8080

这将显示使用8080端口的进程信息。

3、查看某个用户打开的文件

  • lsof u username

要查看用户root打开的文件,可以使用:

  • lsof u root

4、查看特定进程打开的文件

  • lsof p PID

要查看进程号为1234的进程打开的文件,可以使用:

CentOS系统下如何高效使用lsof命令?-图3
(图片来源网络,侵权删除)
  • lsof p 1234

5、查看特定文件被哪些进程打开

  • lsof /path/to/file

要查看某个文件被哪些进程打开,可以使用:

  • lsof /etc/passwd

6、查看特定类型的网络连接

  • lsof iTCP:80

这将显示所有使用TCP协议且端口为80的网络连接。

四、lsof输出结果解释

执行lsof命令后,会显示类似如下的信息:

  • COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  • systemd 1 root cwd DIR 253,0 4096 2 /
  • systemd 1 root rtd DIR 253,0 4096 2 /
  • systemd 1 root txt REG 253,0 1632776 308905 /usr/lib/systemd/systemd
  • ...

各列的含义如下:

COMMAND:进程的名称。

PID:进程标识符。

TID:线程标识符。

USER:进程所有者。

FD:文件描述符,应用程序通过文件描述符识别该文件,如cwd、txt等。

TYPE:文件类型,如DIR、REG等。

DEVICE:指定磁盘的名称。

SIZE:文件的大小。

NODE:索引节点(文件在磁盘上的标识)。

NAME:打开文件的确切名称。

五、lsof的高级用法

1、递归查看某个目录下的文件信息

  • lsof +D /path/to/directory

这会列出指定目录及其子目录下被打开的所有文件。

2、列出某个用户组打开的文件

  • lsof g groupname

要查看GID为5555的用户组打开的文件,可以使用:

  • lsof g 5555

3、根据文件描述符范围列出文件信息

  • lsof d 23

这会列出文件描述符在2到3之间的文件。

4、列出所有网络文件系统

  • lsof N

这将显示所有通过网络文件系统(NFS)打开的文件。

5、重复执行lsof命令直到中断

  • lsof r 10

这将每隔10秒重复执行一次lsof命令,直到用户中断。

六、FAQs

1、为什么普通用户执行lsof命令时显示"permission denied"?

答:因为lsof需要访问核心内存和各种文件,这些操作通常需要超级用户权限,普通用户执行lsof命令时会显示"permission denied",可以通过在命令前加上sudo来提升权限,

  • sudo lsof

2、如何卸载lsof?

答:如果需要卸载lsof,可以使用以下命令:

  • yum remove lsof

这将从系统中移除lsof工具。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/10918.html

分享:
扫描分享到社交APP
上一篇
下一篇