是一个查看当前系统文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,该文件描述符提供了大量关于这个应用程序本身的信息。
lsof打开的文件可以是:
lsof -p 11968
lsof -c mysql
lsof -i 可以指定传输协议 lsof -i tcp/udp 列出谁在使用某个端口 lsof -i :3306
lsof -i 4 -a -p 1234
lsof -i :20,21,80 -r 3
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令
而在MacOS上,-f需要加上地址族,-p需要加上协议TCP或者UDP等
通常用法:
显示所有的TCP连接 Linux netstat -atnp 显示网卡列表 netstat -i Mac 如果需要查询inet:netstat -anvf inet 如果需要查询TCP:netstat -anvp tcp 如果需要查询UDP:netstat -anvp udp windows netstat -a | findstr "8080"
lsof 一切皆文件
MacOS 端口占用情况,其中 netstat 命令与 CentOS 略有出入
Linux netstat命令