1.数组
abc[1]= “xiaohong"
abc : 为数组名称
[1] : 为数组元素下标,可以理解为数组的第1个元素
xiaohong : 元素内容
2.命令
# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 248 192.168.1.2:22 192.168.2.3:59343 ESTABLISHED
# netstat -an|awk '/^tcp /{++S[$NF]} END {for(a in S) print a,S[a]}'
LISTEN 5
ESTABLISHED 1(1)Awk在读取第一行的时候,会读取这个数组,此时的数组是这样的:S[LISTEN]++
(2)此时S[LISTEN]的值是未定义的。
但是由于有运算符号++ Awk会将数字0自动赋值给 S[LISTEN] 然后在做++运算
(3)此时S[LISTEN] 做++ ,默认值是0,++后是1
(4)那么在读第二个 LISTEN 时,此时S[LISTEN]的值已经经过上次运算为1.此时在做一次运算。也就是1+1 现在S[LISTEN]的值为2。
(5)总结,最后的值是多少,也就意味着,LISTEN运算了多少次,也意味着S[LISTEN]出现了多少次。
3.TCP连接状态详解
CLOSED: 无连接是活动的或正在进行
LISTEN: 服务器在等待进入呼叫
SYN_RECV: 一个连接请求已经到达,等待确认
SYN_SENT: 应用已经开始,打开一个连接
ESTABLISHED: 正常数据传输状态
FIN_WAIT1: 应用说它已经完成
FIN_WAIT2: 另一边已同意释放
ITMED_WAIT: 等待所有分组死掉
CLOSING: 两边同时尝试关闭
TIME_WAIT: 另一边已初始化一个释放
LAST_ACK: 等待所有分组死掉