占用端口、PID 查询总结

总结一下日常工作学习中常用的查询占用端口、PID相关命令。主要有命令 ps、lsof、netstat 等命令。

ps

ps -ef 或者 ps aux

根据命令(IntelliJIDEALicenseServer)搜索 PID(17107)

$ ps -ef | grep IntelliJIDEALicenseServer | grep -v "grep"
  501 17017 12203   0 10:01上午 ttys000    0:00.02 IntelliJIDEALicenseServer -p 21014

lsof

根据 PID(17107)搜索占用端口(21014)

$ lsof -p 17017 -nP | grep TCP
COMMAND     PID  USER   FD     TYPE             DEVICE SIZE/OFF    NODE NAME
IntelliJI 17017 ehlxr    3u    IPv4 0xc0df10496212b0e3      0t0     TCP *:21014 (LISTEN)

# 或者使用
$ lsof -nP -iTCP -sTCP:LISTEN | grep 17017
  • -n 表示不显示主机名
  • -P 表示不显示端口俗称

根据端口(21014)搜索 PID(17107)

$ lsof -i:21014
COMMAND     PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
IntelliJI 17017 ehlxr    3u  IPv4 0xc0df10496212b0e3      0t0  TCP *:21014 (LISTEN)

netstat

仅 Linux 系统下好使,Mac 下无效

端口(21017),PID(1847)

$ netstat -antlp | grep IntelliJIDEA
tcp        0      0 0.0.0.0:21017           0.0.0.0:*               LISTEN      1847/./IntelliJIDEA