Centos
netstat 使用 grep 時如何從結果中排除 localhost
當我在終端中執行此命令時:
netstat -an | egrep ":80|:443" | sort
我得到以下輸出:
tcp 0 0 172.104.10.125:48310 172.104.10.125:8081 TIME_WAIT tcp 0 0 172.104.10.125:48316 172.104.10.125:8081 TIME_WAIT tcp 0 0 172.104.10.125:48428 172.104.10.125:8081 ESTABLISHED tcp 0 0 172.104.10.125:80 0.0.0.0 LISTEN tcp 0 0 172.104.10.125:80 5.111.110.185:23784 SYN_RECV tcp 0 0 172.104.10.125:80 89.109.64.166:42690 TIME_WAIT tcp6 0 0 ::1:443 :: LISTEN tcp 0 0 172.104.10.125:443 60.51.33.253:65270 ESTABLISHED tcp 0 0 172.104.10.125:443 66.249.79.94:49202 ESTABLISHED tcp6 0 0 172.104.10.125:8080 172.104.10.125:39668 TIME_WAIT
172.104.10.125 是我的 IP 地址,如何排除上述第 5 列有 ‘172.104.10.125’、‘0.0.0.0’ 和 ‘::’ 的結果?因為那些是受信任的本地主機 IP 和協議。
如果我使用這個:
egrep -v "172.104.10.125|::|0.0.0.0"
它將排除不在第 5 列的所有內容
你可以使用 awk
awk '$5 !~ "^(172\.104\.10\.125:[0-9]+|0\.0\.0\.0|::)$"'
但 grep 可以做到
grep -Ev '^([^ ]+ +){4}(172\.104\.10\.125:[0-9]+|0\.0\.0\.0|::)'