常见的端口号列表:https://www.cnblogs.com/httpssl/p/11003935.html

ps命令详解

ps : 将某个进程显示出来
-A  显示所有程序。
-e  此参数的效果和指定"A"参数相同。
-f   显示UID,PPIP,C与STIME栏位。

查找特定应用程序所占用的进程

ps -ef|grep [应用程序名称]

grep命令是查找,中间的|是管道命令 是指 ps命令与grep命令 同时执行。

在这里插入图片描述

查看应用程序的进程

我查找的是 java程序占用的进程,命令如下:

ps -ef|grep java

可以看到,能够查找到两个进程。
在这里插入图片描述

请注意,带--color=auto是grep命令自带的进程。

如果你再次运行ps -ef|grep java,会发现它的的进程号是会变动的,而java程序占用的进程号不会改变。

这对于新手来说,很不方便,因为有时候使用kill 命令会提示 进程不存在。

此时,可以通过命令,屏蔽grep本身占用的进程,命令如下:

ps -ef|grep java|grep -v grep

查找到进程号,可以通过 kill 命令,将其杀死,命令如下:

kill -9 [进程号]

通过进程查看端口

以 java 为例,它的进程号是 22830

netstat -apn | grep 22830

如果列表太多,可以通过 less命令 只显示一屏幕

netstat -apn | grep 22830|less

或者只显示 10 行信息

netstat -anp |grep 22830 -m 10

通过端口查看进程

有时候我们会遇到Linux系统端口被占用的问题,比如:
在这里插入图片描述
此时,我们可以通过被占用的端口号,查找究竟是哪个进程占用了该端口。

lsof——list open files,它是Linux系统查看打开的文件以及相关进程信息的工具。

该命令需要访问核心内存和各种文件,所以需要root用户执行。

lsof -i:端口号

以查找端口号10000为例子:lsof -i:10000
在这里插入图片描述
参数详解:

COMMAND:与文件关联进程的名称
PID:进程号
USER:归属的用户
FD:进程与文件的关联关系
TYPE:文件类型
DEVICE:文件所在设备的设备号(major,minor)
SIZE/OFF:文件大小或进程对文件操作的偏移量
NODE:文件索引标识
NAME:文件名

FD列的值,指示了进程与文件的关联关系,有以下常见取值:

cwd:进程工作目录
txt:进程由该文件拉起(如二进制文件或脚本)
rtd:进程的根目录
mem:内存映射文件
N(u/w/r):该文件为进程打开的第N个文件描述符,u为可读可写模式,w为可写模式,r为可读模式

TYPE列有以下常见取值:

REG:一般文件
DIR:目录
CHR:字符设备
BLK:块设备
FIFO:命名管道
PIPE:管道
IPV4:ipv4套接字
unix:unix域套接字

根据以上字段,我们可以了解到哪个文件,以何种关联方式与哪个进程关联。

但执行lsof命令,有时候输出太多,为了获取必要输出,我们就得加一些过滤选项。

该命令博大精深。

这里不做其他探讨,只用作查看端口运行情况。


拓展文档:

https://blog.csdn.net/qq_27870421/article/details/92803453

https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316599.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐