Unix-使用管道内部监视命令(按状态分组的连接数)
我试图在按“状态”分组时计算连接的数量 该命令可实现该目标:Unix-使用管道内部监视命令(按状态分组的连接数),unix,pipe,netstat,Unix,Pipe,Netstat,我试图在按“状态”分组时计算连接的数量 该命令可实现该目标: netstat -ant | awk '{ print $6}' | sort | uniq -c 提供如下输出: 4 CLOSE_WAIT 1 established) 127 ESTABLISHED 1 Foreign 2 LAST_ACK 39 LISTEN 9 TIME_WAIT watch -n 1 "netstat -ant | awk '{ print $6}' | sort | uniq -c
netstat -ant | awk '{ print $6}' | sort | uniq -c
提供如下输出:
4 CLOSE_WAIT
1 established)
127 ESTABLISHED
1 Foreign
2 LAST_ACK
39 LISTEN
9 TIME_WAIT
watch -n 1 "netstat -ant | awk '{ print $6}' | sort | uniq -c"
我正在尝试将我的命令与watch
命令结合起来,如下所示:
4 CLOSE_WAIT
1 established)
127 ESTABLISHED
1 Foreign
2 LAST_ACK
39 LISTEN
9 TIME_WAIT
watch -n 1 "netstat -ant | awk '{ print $6}' | sort | uniq -c"
但是,输出只是netstat-ant
命令的输出(而不是管道的最后一个输出)
如何将该复杂命令与watch
一起使用?此操作有效:
watch -n1 "netstat -ant | awk '{ print \$6}' | sort | uniq -c"
您正在传递一个双引号字符串,该字符串恰好包含单引号。在双引号字符串中,必须转义表示为文本的$
s($6
=>\$6
)。
如果您没有逃脱它,watch
可能会收到
"netstat -ant | awk '{ print }' | sort | uniq -c"
(因为$6
很可能是未设置的),这将解释您得到的输出(awk'{print}
在管道中基本上是不可操作的,就像cat
)