天天看点

linux列出所有打开文件,Linux lsof命令列出打开的文件

功能描述

使用lsof命令可以列出打开的文件,这个文件可以是一个普通文件、目录、块设备文件或字符设备文件。

命令语法

lsof [选项] [名称]

选项含义

选项

含义

-i

选择IPv4、IPv6文件

-b

避免内核模块

-o

偏移位

-a

使用AND选择

+f

文件系统

-f

文件名

-S

超时统计

-P

选择PID

-c

选择指定命令前缀的进程

-u

选择用户

-g

选择和打印进程组ID

-d

选择文件描述符

+D

列出目录树

-V

详细搜索

-l

列出UID号

-n

没有主机名

-N

选择NFS文件

-T

显示TCP/TPI信息

-v

列出版本信息

-U

选择UNIX套接字

-s

列出文件大小

-o

列出文件偏移量

-R

列出父PID

lsof命令输出字段描述

输出字段

字段描述

COMMAND

与进程相关的Linux命令

PID

进程标识号

USER

进程所有者

FD

文件描述符,应用程序通过文件描述符识别该文件

TYPE

与文件相关的节点的类型

DEVICE

包含设备号,并以逗号分隔

SIZE

文件的大小

NODE

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

NAME

挂载点和文件系统上驻留的文件的名称

列出所有进程打开的所有文件。

[[email protected] ~]# lsof

查找使用端口号22的进程

[[email protected] ~]# lsof -i:22

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

sshd     998 root    3u  IPv4  19273      0t0  TCP *:ssh (LISTEN)

sshd     998 root    4u  IPv6  19275      0t0  TCP *:ssh (LISTEN)

sshd    1316 root    3u  IPv4  19683      0t0  TCP localhost.localdomain:ssh->192.168.6.1:57486 (ESTABLISHED)

查找用户root的所有网络连接

[[email protected] ~]# lsof -a -u root -i

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

dhclient  807 root    6u  IPv4  17200      0t0  UDP *:bootpc

dhclient  807 root   20u  IPv4  17609      0t0  UDP *:45585

dhclient  807 root   21u  IPv6  17610      0t0  UDP *:57144

sshd      998 root    3u  IPv4  19273      0t0  TCP *:ssh (LISTEN)

sshd      998 root    4u  IPv6  19275      0t0  TCP *:ssh (LISTEN)

httpd    1001 root    4u  IPv6  19620      0t0  TCP *:http (LISTEN)

httpd    1001 root    6u  IPv6  19628      0t0  TCP *:https (LISTEN)

master   1231 root   13u  IPv4  19530      0t0  TCP localhost:smtp (LISTEN)

master   1231 root   14u  IPv6  19531      0t0  TCP localhost:smtp (LISTEN)

sshd     1316 root    3u  IPv4  19683      0t0  TCP localhost.localdomain:ssh->192.168.6.1:57486 (ESTABLISHED)

查找以httpd开头的进程打开的所有文件

[[email protected] ~]# lsof -c httpd

列出所有以描述符2打开的文件

[[email protected] ~]# lsof -d 2

列出所有网络连接

[[email protected] ~]# lsof -i

列出所有的TCP网络连接

[[email protected] ~]# lsof -i tcp

列出所有对应组群UID为0的进程

[[email protected] ~]# lsof -g 0

列出所有由PID为1对应的进程打开的文件

[[email protected] ~]# lsof -p 1

列出用户root打开的所有文件

[[email protected] ~]# lsof -u root

列出所有NFS(网络文件系统)文件

[[email protected] ~]# lsof -N

列出使用/lib64/ld-2.12.so文件的进程

[[email protected] ~]# lsof  /lib64/ld-2.12.so

递归查找/usr/lib目录中所有打开的文件

[[email protected] ~]# lsof +D /usr/lib

循环列出文件,每秒钟重复显示一次。

[[email protected] ~]# lsof -r 1