netstat -anp |awk |cut 通过pid获取应用程序的端口号

脚本如下

#下列 | 表示接续处理。
netstat -anopt |grep $pid|head -n 1|awk '{printf $4}'|cut -d: -f4

脚本解释

  1. netstat -anopt获取应用程序网络连接状态
    参数说明:
    -a (all) 显示所有选项,默认不显示LISTEN相关。
    -t (tcp) 仅显示tcp相关选项。
    -u (udp) 仅显示udp相关选项。
    -n 拒绝显示别名,能显示数字的全部转化成数字。
    -l 仅列出有在 Listen (监听) 的服务状态。
    -p 显示建立相关链接的程序名
    -r 显示路由信息,路由表
    -e 显示扩展信息,例如uid等
    -s 按各个协议进行统计
    -c 每隔一个固定时间,执行该netstat命令。

    返回字段说明:
    Proto:显示连接使用的协议。
    RefCnt:表示连接到本套接口上的进程号。
    Types:显示套接口的类型。
    State:显示套接口当前的状态。
    I-NODE:端口号。
    Path:表示连接到套接口的其它进程使用的路径名

  2. grep %pid是获取该pid的行记录

  3. head -n 1获取第一行记录。
    例子:netstat -anopt |grep $pid|head -n 1如下图:
    在这里插入图片描述

  4. awk '{printf $4}'awk相似于split,默认按照空格分割,之后获取第四个位置对应的值如上图 是 :::80
    列子:netstat -anopt |grep 24754|head -n 1|awk '{printf $4}'如下图:
    在这里插入图片描述

  5. cut -d: -f4是表示切割,-d是表示按照指定的pattern切割,此处是指定冒号 ,-f4是表示取第四个值,如:::80 执行后得到80

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章