红帽企业Linux服务器版本5.4(Tikanga) 2.6.18-164.el5
您好,
我正在尝试使用watch命令结合netstat来查看使用某些端口的2个程序。
但是,我使用下面的命令对两个单词都不起作用:
watch -n1 "netstat -upnlt | grep gateway\|MultiMedia"
这是grep两个程序名称的正确方法吗?
如果我使用它可以,但两者都不起作用。
非常感谢,
答案 0 :(得分:34)
对于你需要的grep:
"grep gateway\|MultiMedia"
所以也许试试:
watch -n1 'netstat -upnlt | grep "gateway\|MultiMedia"'
答案 1 :(得分:1)
我在监视ssh连接时遇到类似的问题。
> netstat -tulpan|grep ssh
tcp 0 0 192.168.2.52:58072 192.168.2.1:22 ESTABLISHED 31447/ssh
但是watch -n 1 'netstat -tulpan|grep ssh'
不显示任何输出(除了watch消息之外)。
如果将其更改为watch -n 1 'netstat -tulpan|grep ":22"'
,则会得到所需的输出行。通过netstat运行netstat时,似乎忽略了-p选项。奇怪。
答案 2 :(得分:0)
还有新的做事方式...... grep -E既漂亮又便携(或者egrep,这对于linux和< bsd上的grep -E来说简单快捷)所以你没有逃避报价。从手册页:
-E Interpret pattern as an extended regular expression (i.e. force
grep to behave as egrep).
因此...
watch "netstat -upnlt | grep -E 'gateway|multimedia'"
或
watch "netstat -upnlt | egrep 'gateway|multimedia'"