⑴Linux系统中,lsof命令可用于查找应用程序打开的文件名称和数量,除此之外,losf命令还有很多用法,下面的小编就给大家介绍下Linux中lsof命令的用法实例,一起来看看吧。
⑵lsof(list open files是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件,所以如传输控制协议 (TCP 和用户数据报协议 (UDP 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
⑶lsof [参数][文件]
⑷用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP。找回/恢复删除的文件。是十分方便的系统监视工具,因为 lsof 需要访问核心内存和各种文件,所以需要root用户执行。
⑸lsof打开的文件可以是:
⑹.网络文件系统的文件
⑺.字符或设备文件
⑻.(函数共享库
⑼.管道,命名管道
⑽.网络文件(例如:NFS file、网络socket,unix域名socket
⑾.还有其它类型的文件,等等
⑿-a 列出打开文件存在的进程
⒀-c《进程名》 列出指定进程所打开的文件
⒁-g 列出GID号进程详情
⒂-d《文件号》 列出占用该文件号的进程
⒃+d《目录》 列出目录下被打开的文件
⒄+D《目录》 递归列出目录下被打开的文件
⒅-n《目录》 列出使用NFS的文件
⒆-i《条件》 列出符合条件的进程。(、、协议、:端口、 ip
⒇-p《进程号》 列出指定进程号所打开的文件
⒈-u 列出UID号进程详情
⒉-h 显示帮助信息
⒊-v 显示版本信息
⒋实例:无任何参数
⒌[rootlocalhost ~]# lsof《/p》 《p》MAND PID USER FD TYPE DEVICE SIZE NODE NAME
⒍init root cwd DIR , /
⒎init root rtd DIR , /
⒏init root txt REG , /sbin/init
⒐init root mem REG , /lib/ld-..so
⒑init root mem REG , /lib/libc-..so
⒒init root mem REG , /lib/libdl-..so
⒓init root mem REG , /lib/libselinux.so.
⒔init root mem REG , /lib/libsepol.so.
⒕init root u FIFO , /dev/initctl
⒖migration root cwd DIR , /
⒗migration root rtd DIR , /
⒘migration root txt unknown /proc//exe
⒙ksoftirqd root cwd DIR , /
⒚ksoftirqd root rtd DIR , /
⒛ksoftirqd root txt unknown /proc//exe
①migration root cwd DIR , /
②migration root rtd DIR , /
③migration root txt unknown /proc//exe
④ksoftirqd root cwd DIR , /
⑤ksoftirqd root rtd DIR , /
⑥ksoftirqd root txt unknown /proc//exe
⑦events/ root cwd DIR , /
⑧events/ root rtd DIR , /
⑨events/ root txt unknown /proc//exe
⑩events/ root cwd DIR , /
Ⅰlsof输出各列信息的意义如下:
ⅡMAND:进程的名称
ⅢPID:进程标识符
ⅣPPID:父进程标识符(需要指定-R参数
ⅤUSER:进程所有者
ⅥPGID:进程所属组
ⅦFD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等