Linux工作中常用的命令netstat、lsof、ps区别


ps------- lsof------netstat
强大,强大,都强大!总之查看进程、进程号、端口号是否存在,这三个命令都可以实现,用哪个随你
ps -ef|grep java (进程名)
ps -ef|grep 8080 (端口号)
ps -ef|grep 2556 (进程号)

lsof -i:8080(只能查端口号)

netstat -apn|grep 9090 (端口号占用查看)

netstat(端口占用查看)

查看系统端口使用情况
netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作!
在这里插入图片描述
Proto:协议名(tcp协议还是udp协议)
recv-Q:网络接收队列
表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走
send-Q:网路发送队列
对方没有收到的数据或者说没有Ack的,还是本地缓冲区.
Local Address 部分的0.0.0.0:22 表示监听服务器上所有ip地址的所有(0.0.0.0表示本地所有ip),比如你的服务器是有172.172.230.210和
172.172.230.11两个ip地址,那么0.0.0.0:22此时表示监听172.172.230.210,172.172.230.211,127.0.0.1三个地址的22端口
Foreign Address与本机端口通信的外部socket。显示规则与Local Address相同
State链路状态,共有11种state列共有12中可能的状态,前面11种是按照TCP连接建立的三次握手和TCP连接断开的四次挥手过程来描述的。
PID/Program PID即进程id,Program即使用该socket的应用程序
在这里插入图片描述

lsof命令(文件查看)

用于查看你进程打开的文件,打开文件的进程,进程使用的端口号(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为 lsof 需要访问核心内存和各种文件,所以需要root用户执行。
lsof -i:9090 -i:后面只可以跟端口号-------显示所有占用9090端口的进程
lsof -p 8080 -p后面跟进程号-------显示那些文件被pid为8080的进程打开过 (一般不用,因为太多文件被使用某端口号开放的服务打开过…例如你Java程序开放的端口访问过的文件,数不胜数)

在这里插入图片描述

ps命令(进程查看)

ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令
ps -ef //显示所有命令,连带命令行在这里插入图片描述

UID :程序被该 UID 所拥有

PID :就是这个程序的 ID (一般看它)

PPID :则是其上级父程序的ID

C :CPU使用的资源百分比

STIME :系统启动时间

TTY :登入者的终端机位置

TIME :使用掉的CPU时间。

CMD :所下达的是什么指令

ps -ef |grep java //检查java 进程是否存在 (经常用的命令,grep后可以跟端口号,进程号(PID),还可以跟服务名(java))

在这里插入图片描述
解释: | 是管道命令 ,是指 ps命令与grep同时执行
grep是查找命令,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

举例

1.以查redis为例:其监听端口为6379:
ps:
在这里插入图片描述
netstat:
在这里插入图片描述在这里插入图片描述
lsof:
在这里插入图片描述
2.实战应用:公司内部的一个老服务运行在192.168.1.1:50060上,服务将于一周之后停用,再在要查一下本机上有没有进行在调用该服务。
使用命令netstat -pt可以输出PID及程序名:

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhostname:16061 192.168.1.1:50060 ESTABLISHED 22000/java

是本机的16061端口在调192.168.1.1:50060上的服务,且本机16061端口上跑的是一个java程序,进程ID是22000

lsof -i:@192.168.1.1:50060,输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 22000 root 106u IPv4 1592198833 0t0 TCP localhostname:16061->192.168.1.1:50060 (ESTABLISHED)
FD表示文件描述符,应用程序通过文件描述符来识别文件,文件描述符后有u表示程序是以读写的权限打开文件的(r只读w只写)
ps -ef | grep 22000

输出:
UID PID PPID C STIME TTY TIME CMD
在CMD列你可以看到程序名
或者用ps aux | grep 22000
输出:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
aux比-ef输出的信息更多,比如%CPU和%MEM。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值