我使用以下命令:
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 :(得分:1)
例如:
$ echo foo/bar | sed 's,/.*,,'
foo
$
答案 1 :(得分:1)
你过度思考这个问题:
netstat -anp | awk -F"[: /]" '/sshd/{printf "sshd Port&&pid: %s %s\n", $5,$9 }'
sshd Port&&pid: 22 1866
即:这适用于我的机器,你的netstats输出可能不同。