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 , "\t", 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

 

posted @   王清河  阅读(112)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2019-01-30 1040 有几个PAT (25 分
2018-01-30 1009. 说反话 (20)
点击右上角即可分享
微信分享提示