shell编程题(二十七)

题目:

  查看TCP连接状态

答案:

完整答案:

netstat -nat | grep tcp | awk '{print $6}' | sort | uniq -c | sort -rn

分步一:

分步二:

netstat -nat | grep tcp | awk '{print $6}' 

 

分步三:

答案二:

netstat -n | awk '/^tcp/ {print $NF}' | sort | uniq -c | sort -rn

解析:

 awk '/^tcp/ {print $NF}'

awk中的命令格式

/pattern/{actions}

pattern是正则表达式,actions是一系列操作

awk程序一行一行读出待处理文件,如果某一行与pattern匹配,或者满足condition条件,则执行相应的actions,如果一条awk命令只有actions部分,则actions作用于待处理文件的每一行。

NF表示numbers of field ,是获取的文件的成员数,默认是空格分开的。

例如 获取的文件内容是 hello world ,那么NF就是2.

print $NF 的意思就是获取打印获取文件的最后一行(以空格为分割线)

答案三:

netstat -n | awk '/^tcp/ {++arr[$NF]}; END {for (k in arr) print k , "	", arr[k] }'

其中 ++arr[$NF]

这类似与C++中的 map

例如 文件内容为 hello world hello

那么这这句的执行结果以后就是

arr["hello"] = 2

arr["world"] = 1

整体的功能意思就是说,统计最后一项 state 的状态数,然后加起来

答案四:

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' |  uniq -c | sort -rn

原文地址:https://www.cnblogs.com/wanghao-boke/p/12243239.html