2013-04-08 42 views
-2

我用下面的命令:提供的Linux Shell:如何讓sshd的端口和PID

sudo netstat -tnp | grep sshd 

輸出是:

tcp  0  0 192.201.0.8:22   192.201.0.90:2690  ESTABLISHED 1866/sshd: yang [pr 

比,我用下面的命令:

$ echo -n "sshd Port&&pid: " ; sudo netstat -tnp | grep sshd | awk '{print $4, $7}' | sed -r 's/^[^:]*:([a-z]*)/\1/g' 

輸出是:

sshd Port&&pid: 22 1866/sshd: 

最後,使用下面的命令:

$ echo -n "sshd Port&&pid: " ; sudo netstat -tnp | grep sshd | awk '{print $4, $7}' | sed -r 's/^[^:]*:([a-z]*)/\1/g; s/([0-9]*)\/sshd:$/\1/g' 

輸出是:

sshd Port&&pid: 22 1866 

雖然我已經解決了我的問題,有沒有更好的方式來做到這一點?

另一個答案:

$ sudo netstat -anp | grep "sshd" | grep -v "\]" | sed -r 's/.*:([0-9]+).* ([0-9]*)\/.*$/sshd Port\&\&pid: \1 \2/' | sort | uniq 
+0

*質量很低:*您嘗試過什麼? – 2013-04-08 01:58:58

+0

@DannyBeckett我編輯了我的問題添加了我試過的東西,任何幫助將不勝感激。 – ajaxhe 2013-04-08 02:24:17

+0

我已經爲此+1了。 – 2013-04-08 02:26:05

回答

1

例如:

$ echo foo/bar | sed 's,/.*,,' 
foo 
$ 
1

你過度思考問題:

netstat -anp | awk -F"[: /]" '/sshd/{printf "sshd Port&&pid: %s %s\n", $5,$9 }' 
sshd Port&&pid: 22 1866 

那就是:這個作品在我的機器上,你netstats輸出可能會有所不同。