lsof命令详解

lsof – list open files显示程序打开的文件(linux下所有的文件,程序,进程都是文件)

root用户才能执行lsof命令,普通用户会被拒绝显示或无显示结果。

根据实例学习用法:

显示已经打开的文件

lsof

显示所有打开的internet链接(-i),unix socket (-U)

lsof -i -U

显示被进程1197打开的ipv4网络文件,可以看到是pptpd的进程,正在监听状态

# lsof -i 4 -a -p 1197
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pptpd 1197 root 6u IPv4 4181 0t0 TCP *:1723 (LISTEN)

显示打开ipv6的网络文件

# lsof -i 6

显示使用tcp协议,22端口(或ssh,在/etc/service中)的ipv4和ipv6文件

# lsof -i tcp:22
或
# lsof -i tcp:ssh
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 14873 root 3u IPv4 4100995 0t0 TCP ibm.jpuyy.com:ssh->114.221.19.245:56544 (ESTABLISHED)
sshd 17248 root 3r IPv4 4149257 0t0 TCP ibm.jpuyy.com:ssh->114.221.19.245:52610 (ESTABLISHED)
sshd 27849 root 3u IPv4 3235729 0t0 TCP *:ssh (LISTEN)
sshd 27849 root 4u IPv6 3235731 0t0 TCP *:ssh (LISTEN)

显示某个命令打开的文件,如pptpd

# lsof -c pptpd

显示和ip:1.2.3.4有关的打开的文件

# lsof -i @1.2.3.4

显示和ip:1.2.3.4有关的tcp协议ftp

# lsof -i tcp@1.2.3.4:ftp

显示和jpuyy有关的打开的文件

# lsof -u jpuyy

不断显示连到jpuyy.com的80端口的打开的文件,(default fifteen)

# lsof -i @jpuyy.com:80 -r

显示/dev/sdb1打开的文件

# lsof /dev/sdb1

 

lsof |sort -k7 -n

发表评论

电子邮件地址不会被公开。 必填项已用*标注