I need to print the 10 processes that are using the most CPU. Also I need to print their ID, and the command they were started with.

What I've found is that the command ps -ax -u prints all the processes and their %CPU usage. The command ps -ax -u --sort pcpu prints all the processes sorted by the %CPU usage, from the least to the most, but I need to print only 10 processes from the most to the least. I have to use something like sort -r to make a reverse sorting, but the command ps -ax -u --sort -r pcpu produces an error.

So, how can I make a reverse sorting and print only 10 of the processes?

1 Answer 1


to print 10 processes, that use the most CPU

ps -aux --sort -pcpu | head

Sorting syntax is [+|-]key[,[+|-]key[,...]].
The "+" is optional since default direction is increasing numerical or lexicographic order. Identical to k. For example: ps jax --sort=uid,-ppid,+pid

head - will print the first/top 10 lines of file(s) or standard input (by default)

  • 1
    And, for example, if I need not 10, but 15 lines, I will need to write head -n 15 ?
    – gloomikon
    Oct 3, 2017 at 10:04
  • 1
    @НиколайЖурба, that's right Oct 3, 2017 at 10:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .