実行中のプロセス数に基づいてユーザーをソートしようとしたときにルートプロセスがソートされないのはなぜですか?

実行中のプロセス数に基づいてユーザーをソートしようとしたときにルートプロセスがソートされないのはなぜですか?

現在、私はリモート環境で作業しており、psコマンドを使用して最も多くのプロセスを使用しているユーザーの数をソートしたいと思います。唯一の問題は、現在のコマンドで表示する必要があるrootユーザーが表示されないことです。最初の出力は私が探しているものであり、後者は現在私が受け取っているものです。

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

関連情報