Process (ps) display shortcuts in bash

By thomas, 11 November, 2019

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.