开发与运维时,经常会遇到端口被占用的情况,有时候还需要查找端口是被谁占用了,有时候还需要查看进程是否启动了。这些情况都可以用命令行实现
Linux 下
端口占用
使用 netstat -nlp | grep [端口|程序名]
命令,比如查看 80 端口的占用情况,输入以下命令
1 | [root@asdf ~]# netstat -nlp | grep 80 |
可以看到 80 端口被 Nginx 占用了,PID 是 23534
,协议是 tcp
,目前处于监听状态
说明一下几个参数的含义:
-n
拒绝显示别名,能显示数字的全部转化为数字-l
仅列出在 Listening (监听)的服务状态-p
显示建立相关链接的程序名
可以用 netstat -你老婆 | grep [端口|程序名]
这个方法来记
进程情况
使用 pf -ef | grep 进程名
或者 ps aux | grep 进程名
查看相关信息,比如我要查看 Nginx 的进程信息
1 | [root@asdf ~]# ps -ef | grep nginx |
Windows 下
端口占用
输入 netstat -ano
可以看到所有端口的占用情况
1 | C:\Users\test>netstat -ano |
假如 9527 端口被占用了,可以输入 netstat -ano | findstr "9527"
1 | C:\Users\test>netstat -ano | findstr "9527" |
可以看到 9527 端口被 PID 为 8300 的进程占用了
进程情况
用 tasklist
查看进程列表
1 | C:\Users\Think>tasklist |
如果想看 PID 为 8300 的进程的具体信息,可使用 tasklist | findstr "8300"
1 | C:\Users\Think>tasklist | findstr "8300" |
可以看到是名为 ShadowsocksR.exe 应用启动的进程
总结
Linxu 下:
netstat -nlp
结合grep
使用ps -ef
或ps aux
结合grep
使用
Windows 下:
netstat -ano
结合findstr
使用tasklist
结合findstr
使用