📜  linux 查询 pid 使用的端口 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:17:23.274000             🧑  作者: Mango

Linux查询PID使用的端口

在Linux系统中,PID是进程的唯一标识符。如果你想查找某个进程使用的端口,就需要先找到该进程对应的PID。下面介绍几种方法来查询PID使用的端口。

方法一:lsof命令

lsof命令可以列出当前系统中所有打开的文件,包括网络连接。可以使用以下命令来查询某个PID所使用的端口:

lsof -i :端口号
lsof -i :80     # 查找使用80号端口的进程

使用lsof还可以找到某个端口被哪个进程占用,例如:

lsof -i :80 | grep LISTEN

其中,grep LISTEN表示只查找处于LISTEN状态的进程,即正在监听端口。

方法二:netstat命令

netstat命令可以显示当前系统的网络连接和socket信息。以下命令可以查询某个进程所使用的端口:

netstat -ap | grep 进程名

例如:

netstat -ap | grep nginx

这条命令可以查找所有正在使用nginx作为进程名的进程所使用的端口。

方法三:/proc文件系统

Linux的/proc文件系统提供了系统运行时进程的信息。PID对应的目录就是/proc/PID。在该目录下有一个net目录,里面包含一个类似于TCP连接的文件,其中包含了该进程使用的所有网络链接信息。通过以下命令可以查询某个PID使用的端口:

cat /proc/PID/net/tcp | awk '{print $2}' | awk -F: '{print $2}'

其中,awk命令用于获取TCP文件中的第2列数据,即本地socket地址信息。再通过第二个awk命令的-F参数指定以冒号为分隔符来获取端口号信息。

以上就是三种查询PID使用的端口的方法。在工作中可以根据需求来选择合适的方法。