
원하는 필터 대화형 모드를 적용할 수 있습니다(o를 눌러). 일괄 모드로 가져올 수 있는 방법이 있나요?
procps-ng 버전 3.3.10을 사용하고 있습니다. 감사합니다.
답변1
에 따르면맨 페이지, -p
명령줄 옵션을 사용하여 읽는 프로세스를 제한할 수 있습니다 top
. 대화형 모드에서처럼 정확히 필터링을 허용하지는 않지만 의 출력을 검사하면 본질적으로 동일한 결과를 얻을 수 있습니다 ps
.
예: 3개 이상의 스레드가 있는 프로세스만 사용:
$ 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 및 아마도 다른 쉘에서는 프로그램의 출력을 다른 프로그램에 대한 인수로 전달할 수 있으므로 최종 명령은 다음과 같을 수 있습니다.
$ top $(ps -eLf | awk '$6 ~ /^[0-9]+$/ { if ($6 > 3) { print "-p"$2; } }' | sort -u) ... And other options
"-p"
출력이 top
. 필요에 따라 필터와 셸에 맞게 이 명령을 조정하고 배치에 추가하면 작동합니다.
참고: 더 많은 필터를 추가하려면 awk를 배워야 할 수도 있습니다. 너무 어렵지 않습니다.