打印端口以及使用它的应用程序

打印端口以及使用它的应用程序

我想一起打印 2 个字段,所有打开的端口和使用它的应用程序。这是我的命令,但它只打印端口号,并且仍然缺少程序字段:

netstat -lnt -u -p | awk '{print $4}' | sed 's/.*://' | sort -n | uniq

我如何修改它以打印程序名称,如“PID/程序名称”将返回“java”

“ ”的示例netstat -lnt -u -p如下所示:

tcp 、 0 、 0 、 10.194.194.21:36195 、 0.0.0.0:* 、 监听 、 2969/java

我只想查看端口号和程序名称:

 36195 java

答案1

您需要打印出第 6 个字段和第 4 个字段

这应该返回您期望的结果。 (因为我不知道命令结果,肯定会有更有效的方法。)

netstat -lnt -u -p | awk '{print $4,$6}' | sed 's/.*://' | sort -n | uniq

这是获取唯一端口和程序名称的方法(sed不需要额外的sort命令,可以独特的及其-u选项):

netstat -lnt -u -p | awk -F"[,:/]" '{print $5,$NF}'| sort -un
36195  java

答案2

缩短的解决方案:

netstat -lpunt | awk -F' +|:+|/' '$5{print $5,$10}' | sort -n
  • -F' +|:+|/'- 字段分隔符(空格、冒号或斜杠)

  • $5- 端口号

  • $10- 程序名称

相关内容