실행 중인 프로세스 수를 기준으로 사용자를 정렬하려고 할 때 루트 프로세스가 정렬되지 않는 이유는 무엇입니까?

실행 중인 프로세스 수를 기준으로 사용자를 정렬하려고 할 때 루트 프로세스가 정렬되지 않는 이유는 무엇입니까?

현재 저는 원격 환경에서 작업 중이며 ps 명령을 사용하여 가장 많은 프로세스를 사용하는 사용자 수를 정렬하고 싶습니다. 유일한 문제는 현재 명령에서 표시되어야 하는 루트 사용자가 표시되지 않는다는 것입니다. 첫 번째 출력은 내가 찾고 있는 것이고, 후자는 현재 내가 받는 것입니다.

157 root
 12 apache
 11 brun1992
  4 bb
  2 postfix
  2 hart4492
  2 68
  1 USER
  1 sshd
  1 rpcuser

내 명령:

 ps -eo user=|sort|uniq -c | head -n 10 | sort -r $1
         9 apache
         6 au6620
         5 ande7941
         4 cwen4344
         4 bb
         3 dagg9715
         2 evan8561
         2 brun1992
         2 alki2221
         1 dbus

답변1

이것은 작동합니다:

ps -eo user|sort|uniq -c|sort -gr

sort -gr이 핵심입니다.

-g : 숫자로 정렬합니다.

답변2

문제는 정렬하기 전에 시작한다는 것입니다. 내 생각에 당신은 가장 일반적인 10개의 사용자 이름을 찾으려고 노력하고 있는 것 같습니다. 먼저 @rakesh-n이 말했듯이 숫자순으로 정렬해야 합니다.

하지만 문제는 uniq에서 사용자 이름으로 정렬된 목록을 얻은 다음 상위 10개를 선택한 다음 개수별로 정렬한다는 것입니다. 예제를 보고 모든 사용자 이름이 ae로 시작하는 것을 확인하세요.

ps -eo user=|sort|uniq -c |sort-r $1 |head-n 10

관련 정보