📜  查找端口 linux 的 pid - Shell-Bash (1)

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

查找端口Linux的PID

在Linux系统中,有时候我们需要查找某个端口对应的进程,以便于进行相关的调试和管理操作。这个时候,我们就需要借助一些命令和工具来实现了。

lsof命令

在Linux系统中,有一个非常常用的命令就是lsof。这个命令的作用是列出当前系统中打开的文件和进程信息。我们可以通过相关的选项,来筛选出我们所需要的信息。

列出指定端口对应的PID

要列出指定端口对应的PID,我们可以使用如下命令:

sudo lsof -i:端口号

其中,sudo表示以管理员权限运行该命令;-i参数表示筛选出所有网络相关的进程;端口号就是我们需要查找的目标端口。

示例如下:

sudo lsof -i:8080

输出结果可能类似于以下信息:

COMMAND  PID        USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    3077       tomcat   49u  IPv6 1257821      0t0  TCP *:http-alt (LISTEN)

其中,COMMAND表示进程名,PID表示进程号,USER表示进程所属的用户,FD表示文件描述符,TYPE表示文件类型,DEVICE表示设备号,SIZE/OFF表示文件大小或偏移量,NODE表示文件节点,NAME表示文件名。

netstat命令

在Linux系统中,另一个常用的命令就是netstat。这个命令的作用是列出当前网络连接、路由表与网卡信息等等。我们也可以通过相关的选项,来筛选出我们所需要的信息。

列出指定端口对应的PID

要列出指定端口对应的PID,我们可以使用如下命令:

sudo netstat -nlp | grep :端口号

其中,sudo表示以管理员权限运行该命令;-n参数表示不进行名称解析;-l参数表示列出所有监听端口;-p参数表示显示监听套接字的进程名和进程ID;grep命令则是通过关键词筛选出我们所需要的信息。端口号就是我们需要查找的目标端口。

示例如下:

sudo netstat -nlp | grep :8080

输出结果可能类似于以下信息:

tcp6       0      0 :::8080                 :::*                    LISTEN      3077/java

其中,tcp6表示协议类型,0表示TCP连接的状态,:::8080表示本地IP地址和端口号,:::*表示远程IP地址和端口号,LISTEN表示正在监听端口,3077/java表示占用该端口的进程名和进程ID。

结语

通过使用lsof命令和netstat命令,我们可以很方便地查找指定端口对应的PID。这对于进行系统调试和管理操作来说,是非常有用的。