, , , , , ,

$ ps -eo pcpu,size:8,user,start_time,pid,args | sort -nk 1 -r |egrep -v "COMMAND|egrep -v|start_time"| head -10

The ps command displays every process (-e) with user-defined format (e.g., -o pcpu).

pcpu = CPU usage percentage
size = memory size in kB (with 8 character long field — otherwise the formatting is messed up!)
user = user name
start_time = start time
pid = process ID,
args = command being run

The sort command sorts the lines numerically (-n) in the reverse order (-r) based on the first field (-k 1).

Then egrep -v filters the lines that do not match the header (containing COMMAND), egrep and ps commands themselves.

The head -10 command filters out top 10 lines from the list generated by previous sort. (Note: here -10 is actually redundant since head command prints out top 10 lines by default, but it is there as a reminder that we can print more lines using a number greater than 10  it if there is a need!)

Credit: Nixcraft.