ps
Practical ps command examples for Linux: list running processes, display process trees, find processes by user, analyze CPU and memory usage, sort output, and inspect process start times
This ps supports AIX format descriptors, which work somewhat like the formatting codes of printf(1) and printf(3). The NORMAL codes are described in the next section.
| CODE |
NORMAL |
HEADER |
| %C |
pcpu |
%CPU |
| %G |
group |
GROUP |
| %P |
ppid |
PPID |
| %U |
user |
USER |
| %a |
args |
COMMAND |
| %c |
comm |
COMMAND |
| %g |
rgroup |
RGROUP |
| %n |
nice |
NI |
| %p |
pid |
PID |
| %r |
pgid |
PGID |
| %t |
etime |
ELAPSED |
| %u |
ruser |
RUSER |
| %x |
time |
TIME |
| %y |
tty |
TTY |
| %z |
vsz |
VSZ |
Print how much percentage of total ram a process is using
ps -eo pmem,comm|grep konsole|awk '{sum+=$1} END {print sum " % of RAM"}'
Top 20 processes by memory usage (human-readable)
ps -eo size,pid,user,comm --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'|head -n20
Display elapsed time of running proceses
ps -eo user,pid,%cpu,%mem,comm --sort=-%mem,-%cpu|head -n10
ps -eo user,pid,%cpu,%mem,comm --sort=-%mem,-%cpu
ps -o pid,%mem,%cpu,user,group --sort=-%mem
Show mem and cpu usage in percentage only
ps -eo pmem,pcpu,comm --sort=-pmem | head -25
Show mem usage in percentage only
ps -eo comm,pmem --sort=-pmem | head -25
Show cpu usage in percentage only
ps -eo comm,pcpu --sort -pcpu | head -5
Show the full process tree with resource usage
Show all processes with tty, exempt session leaders
Display all processes without controlling ttys
Show the environment after command
Display a detailed process tree
Find all processes by a specific user and sort by memory usage
ps -u <username> -o pid,ppid,cmd,%mem,%cpu --sort=-%mem|head -n20
Find Processes Using More Than 1GB of Memory
ps -e -o pid,ppid,cmd,%mem,%cpu --sort=-%mem | awk '$4 > 10.0'
How much memory and cpy package consuming
ps -C <package> -o %mem=,%cpu=,comm= |
awk '{sub(/\..*/,"%",$1); sub(/\..*/,"%",$2);
printf "%s %s %s\n",$1,$2,$3}' |
sort -Vr
How much memory a package consuming
ps -C chrome -o %mem=,pid=,comm= |
awk '{sub(/\..*/,"%",$1); printf "%s\t%s\t%s\n",$1,$2,$3}' |
sort -Vr
How much cpu a package consuming
ps -C chrome -o %cpu=,pid=,comm= |
awk '{sub(/\..*/,"%",$1);
printf "%s\t%s\t%s\n",$1,$2,$3}' |
sort -Vr
Find the process you are looking for
Display the top ten running processes - sorted by memory usage
ps aux | sort -nk +4 | tail
Processes per user counter
ps hax -o user | sort | uniq -c
Find processes running longer than 7 days
ps -eo pid,user,etimes,cmd | awk '$3 > 604800 {print}'
Discover the process start time
Show a 4-way scrollable process tree with full details
Processes per user counter
ps hax -o user | sort | uniq -c
Grep processes list avoiding the grep itself
Sort all running processes by their memory and cpu usage
Discover the process start time
bash
ps -eo pid,lstart,cmd
Display the top ten running processes - sorted by memory usage
ps aux --sort -rss | head
Listing running X server pocesses
Print how long time a command has been running
A more simple way to see how long time a command has running
ps -o etime= -p $(pgrep -f command_name)
See elapsed time by command name
This means the command has been running for 18 minutes and 40 seconds
ps -eo pid,etime,cmd | grep '[m]ake'
60300 18:40 make -j5 menuconfig
List processes by top memory usage
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
Kill all process of a program
kill -9 $(ps aux | grep 'program_name' | awk '{print $2}')
Open as many programs as we’d normally use simultaneously and then count them in the terminal
ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1
To find out what´s causing a high load in /proc/loadavg or uptime we can use
$ ps -eo stat,comm | grep '^D'
D< kworker/u17:5+i915_flip
D< kworker/u17:0+i915_flip
D< kworker/u17:3+i915_flip
Counting running processes by commandn name
ps -eo comm --sort=comm | uniq -c | sort -nr
Analyzing chrome process types and counts
ps -C chrome -o pid,ppid,cmd --sort=ppid | grep -- '--type=' | sort | uniq -c