I gave a talk on processes and made some simple shortcuts to show processes matching patterns.
psg
ps - grep, grep the process listing for something and show the parent pid, sort by pid.
function psg() {
thing=$1
sort=$2
if [ -z $2 ]; then
sort='pid'
fi
ps -eo 'pid ppid stat cmd' --sort $sort| awk 'NR==1 {print}; /$thing/ && !/awk "NR==1/ {print}'
}
psgi
ps - grep case insensitive.
function psgi ()
{
thing=$1;
sort=$2;
if [ -z $2 ]; then
sort='pid';
fi;
ps -eo 'pid ppid stat cmd' --sort $sort | awk "BEGIN{IGNORECASE = 1}; NR==1 {print}; /$thing/ && "'!/awk "NR==1/ {print}'
}
psk
ps - kernel, show the kernel processes
function psk() {
ps -eo 'pid ppid stat cmd' --sort pid |awk 'NR==1 {print}; $2==2 {print}' |less
}
pss
ps - sorted by pid (or any other sort field)
function pss() {
sort=$1
if [ -z $1 ]; then
sort='pid'
fi
ps -eo 'pid ppid stat cmd' --sort $sort |less
}
psz
ps - look for Zombie processes
function psz() {
sort=$1
if [ -z $1 ]; then
sort='pid'
fi
ps -eo 'pid ppid stat cmd' --sort $sort| awk 'NR==1 {print}; $3=="Z" {print}'
}
Of these, I use psg a lot. I use awk to print the first header line and then any matches.