
我可以套用我想要的濾鏡互動模式(按 o)。有沒有辦法以批次模式取得這些。
我正在使用 procps-ng 版本 3.3.10。謝謝。
答案1
根據手冊頁,-p
命令列選項可用來限制哪些進程top
讀取。它似乎不允許完全像互動模式下那樣進行過濾,但是您可以透過檢查 的輸出來獲得基本上相同的結果ps
。
例如,僅採用具有三個以上執行緒的進程:
$ ps -eLf | awk '$6 ~ /^[0-9]+$/ { if ($6 > 3) { print $2; } }' | sort -u
在我的電腦上,這會列印所有相關進程的列表,每行一個。ps
產生進程詳細資訊列表,該awk
命令對其進行過濾,並sort
僅刪除重複項。
為了您的使用,請檢查ps
您需要哪些欄位。在我的電腦上,線程數(“NLWP”)是第六列($6
),進程 ID(“PID”)是第二列($2
)。awk
根據需要在命令中調整這些以符合您需要的篩選器。請注意,$6
出現兩次:第一次是為了確保它是一個數字而不是標題,第二次是為了確保它大於 3。
運行此命令後,必須將進程 ID 賦予top
。 Bash 和可能的其他 shell 允許將程式的輸出作為參數傳遞給另一個程序,因此最終命令可能是
$ top $(ps -eLf | awk '$6 ~ /^[0-9]+$/ { if ($6 > 3) { print "-p"$2; } }' | sort -u) ... And other options
"-p"
添加是為了使輸出能夠與top
.根據需要調整此命令以適合您的過濾器和外殼,將其放入您的批次中,它應該可以工作。
注意:添加更多過濾器可能需要學習 awk。這並不太難。