使用 lsof 代替 Mac OS X 中的 netstat 查看占用端口的程序

众所周知水果系统内核是有 BSD 血统的 Darwin,OS X 自带的很多 CLI 工具也是 BSD style 的,有一部分使用起来和 Linux 无异,有一部分可以通过 brew 安装 GNU 版本(如 tar),但是 OS X 的 netstat 不能查看使用端口的程序名让我一直很不爽,而且也没找到 GNU 版本,于是去搜了一下解决办法,stackoverflow 上的结论基本都是建议使用 lsof 代替 netstat 进行查看:

-n 表示不显示主机名,-P 表示不显示端口俗称,不加 sudo 只能查看以当前用户运行的程序,可以后接管道符 sudo lsof -nP -iTCP -sTCP:LISTEN | grep Python

效果如:lsof

实际上只是为了看个程序名要图方便的话只需要 sudo lsof -i :端口号 | grep LISTEN不需要敲那么多,非常用端口连 grep 都能省了- –


PS:一行流输出占用该端口的 PID:

一行流干掉这个进程:


PSS: lsof -h 的输出很混乱,以至于我找参数的时候看的眼睛都是花的,但是直接 lsof -h | less 是不行的,大概是因为调用的并不是 stdout, lsof -h 2>&1 | less 导入 less 之后可以搜索,稍微方便一些。

 

发表评论

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