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

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