zoukankan      html  css  js  c++  java
  • 统计本机所有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

  • 相关阅读:
    pku 1330 LCA
    最近公共祖先(LCA)的Tarjan算法
    字典数模板
    字典树
    RMQ问题ST算法与模板
    RMQ(Range Minimum/Maximum Query)问题:
    罗穗骞的dc3和倍增法
    多重背包问题
    tarjan LCA 算法
    终极工程师的造诣 – 不迷信高科技的乔布斯给我们的启示
  • 原文地址:https://www.cnblogs.com/mycats/p/3971254.html
Copyright © 2011-2022 走看看