统计本机所有tcp连接的状态

Q:netstat -n|awk '/^tcp/{++S[$NF]} END {for(a in S) print a,S[a]}'
这都什么啊,我一句都读不懂,哪位细心又高才的大大帮忙解释解释,感激不尽

统计TCP连接的几种状态的数量.

A:看不懂很正常,但是别灰心泄气.

首先 ^ 是开头的意思,就是说开头是TCP字样的,$NF表示最后一个字段,把它放入数组S中,然后自加,awk是采用的关联数组,个中奥秘我也说不清楚,倒不出来.自己慢慢体会吧.END最后用for取出数组中的下标,也就是TCP的几种状态,然后对应该下标的值,就是统计的数量.

说明:在shell中,不存在关联数组或者说像python中"字典"那样的非数字下标的数组,因为你定义一个S[a]=1,S[b]=2,如果你改变S[a]的值,那么S[b]的值也相应改变(亲自试验过)。而在awk中貌似存在例外,关联数组好像可以存在,例如上边这个例子,不然整个语句说不通。

而且,不管是关联数组还是数字下标的普通数组,其在定义时没有被赋值,或为空值,若进行自加,自减运算,那么其当做0值对待,但其本身不等于0值。

如:declare -a S[0]=""

     let ++S[0]

     echo "${S[0]}"  # 显示结果为1

转载于:https://www.cnblogs.com/mycats/p/3971254.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值