현재 저는 원격 환경에서 작업 중이며 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