LSOF 命令

in unix •  2 years ago 

显示进程打开的所有文件

lsof打开的文件可以是:

1.普通文件

2.目录

3.网络文件系统的文件

4.字符或设备文件

5.(函数)共享库

6.管道,命名管道

7.符号链接

8.网络文件(例如:NFS file、网络socket,unix域名socket)

9.还有其它类型的文件,等等

3.命令参数:

-a 列出打开文件存在的进程

-c<进程名> 列出指定进程所打开的文件

-g 列出GID号进程详情

-d<文件号> 列出占用该文件号的进程

+d<目录> 列出目录下被打开的文件

+D<目录> 递归列出目录下被打开的文件

-n<目录> 列出使用NFS的文件

-i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )

-p<进程号> 列出指定进程号所打开的文件

-u 列出UID号进程详情

-h 显示帮助信息

-v 显示版本信息

Lsof -c <进程名 sshd> #ps -ef 出来的名字

lsof /bin/bash #谁正在使用文件

Lsof -u redfox #这个用户打开的文件

lsof -u test -c mysql #结合起来也能用

lsof -p 1 #1,2,3号进程打开的文件

Lsof -I tcp

Lsof -I udp

Lsof -I :3306

Lsof -I udp:55 #谁在使用55端口

Lsof -g 1000 #1000组打开的文件,1000是组ID在/etc/passwd

Lsof -d 2-3 #根据文件描述符的列出文件信息

Lsof -c sshd -a -d txt # 列出COMMAND列中包含字符串sshd,且文件描符的类型为txt的文件信

==========

实例25:列出被进程号为1234的进程所打开的所有IPV4 network files

命令:

lsof -i 4 -a -p 1234

实例26:列出目前连接主机peida.linux上端口为:20,21,22,25,53,80相关的所有文件信息,且每隔3秒不断的执行lsof指令

命令:

lsof -i @peida.linux:20,21,22,25,53,80 -r 3

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Nice post keep it up buddy.
Hope you got the 100 STEEM & 1000 TAKI Airdrop, if not get it quickly before the campaign ends.
go to this official taki announcement how to get the airdrop CLICK HERE