删除netstat输出(特别是不能识别所有进程行)

时间:2015-09-16 14:45:33

标签: bash shell unix io-redirection netstat

在检查当前端口是否正在使用时,我无法从netstat命令中删除输出。我不需要输出命令,而只需要错误代码。

运行netstat -anp | grep 1521 &>/dev/null会导致

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)

显示为输出。我也尝试过:

2>/dev/null| cut -d' ' -f45-50 | sed 's/[^0-9]*//g'

只会在Not all processes ...输出后产生一堆空行,但仍会在输出中显示。

3 个答案:

答案 0 :(得分:2)

最终解决了我自己的问题。 使用以下

netstat -taepn 2>/dev/null | grep -Po "\b(\d|\.)+:1521\b" 1>/dev/null

当我只想要错误代码而没有输出

时,这特定于我的情况

答案 1 :(得分:1)

接受的答案对我不起作用,CentOS6.5 32位在这里。无论端口处于什么状态,它都不会输出任何内容。

我找到了解决方案:

netstat -antp 2>/dev/null | grep [port-num]

如果常规用户执行,netstat将省略前两行。

警告两行需要省略:

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)

适用于两种情况:

  1. 该端口处于“LISTEN”状态
  2. 端口为“TIME_WAIT”状态。

答案 2 :(得分:0)

代替

netstat -anp

您可以检查使用

sudo netstat -anp 

这对我有用。