$ 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.