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 [email protected]: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
Leave a Reply