#!/usr/bin/env bash # Listening external ports and their process owner ss -Htulpn state listening '! src 127.0.0.1/8 and ! src [::1]' \ | awk '{ port = $4; sub(/.*:/, "", port) proc = "unknown" if (match($0, /"[^"]+"/)) proc = substr($0, RSTART + 1, RLENGTH - 2) print port, proc }' \ | sort -n -u -k1,1 \ | awk '{ printf "%s%s (%s)", sep, $1, $2; sep = ", " } END { print "" }'