Linux之lsof命令
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:itlead 阅读 1407
lsof命令的原始功能是列出打开的文件的进程,但LINUX下,所有的设备都是以文件的行式存在的,所以,lsof的功能很强大!lsof-i:5555COMMANDPIDUSERFDTYPEDEVICE

  

  lsof命令的原始功能是列出打开的文件的进程,但LINUX下,所有的设备都是以文件的行式存在的,所以,lsof的功能很强大!

  lsof -i:5555

  COMMAND   PID USER   FD   TYPE    DEVICE SIZE NODE NAME

  3       13350 root    4u  IPv4 134285086       TCP 218.93.18.243:personal-agent->112.66.109.11:10802 (ESTABLISHED)

  3       13537 root    4u  IPv4 134285772       TCP 218.93.18.243:personal-agent->124.238.251.153:51342 (ESTABLISHED)

  3       30272 root    3u  IPv4 123280823       TCP *:personal-agent (LISTEN)

  

          lsof用法小结

  lsof是一个用来显示被打开的文件的强大而有用的工具。在Unix系统中,任何事物都是文件(everything is a file),pipe是文件,IP sockets是文件,unix sockets是文件,目录是文件,设备是文件,inodes是文件。

  

  一些有用的例子:

  当在lsof后边没有跟任何参数时,该命令将会列出当前系统中被所有进程打开的所有文件

  lsof|nl     #nl命令打印出行号



  下边这几个命令指出打开某文件的进程

  

  lsof `which httpd`   #那个进程在使用apache的可执行文件

  lsof /etc/passwd      #那个进程在占用/etc/passwd

  lsof /dev/hda6         #那个进程在占用hda6

  lsof /dev/cdrom       #那个进程在占用光驱

  

  下边将会打印出占用httpd可执行文件的进程的进程号(仅仅是进程号,在编写shell脚本是有用)

  

  显示出那些文件被以k打头的进程名的进程打开,以bash打头,和以init打头:   

  

  显示出那些文件被以courier打头的进程打开,但是并不属于用户‘zahn’         

  lsof -c courier -u ^zahn

  显示被zahn和apache打开的文件        

  lsof -u apache,zahn

  显示那些文件被pid为30297的进程打开:       

  lsof +p 30297

  显示所有在/tmp文件夹中打开的instance和文件的进程。但是symbol文件并不在列         

  lsof -D /tmp

  显示所有打开的端口        

  lsof -i   

  显示所有打开80端口的进程        

  lsof -i:80

  显示所有打开的端口和UNIX domain文件:        

  lsof -i -U

  显示那些进程打开了到UDP的123(ntp)端口的链接:

  

  

  本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。

联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2