awk — System Administration

Parse /proc/meminfo — memory stats in GB
awk '/MemTotal|MemFree|MemAvailable|Buffers|Cached/ {printf "%-15s %8.2f GB\n", $1, $2/1024/1024}' /proc/meminfo
System uptime in human-readable format
awk '{d=int($1/86400); h=int(($1%86400)/3600); m=int(($1%3600)/60); printf "%dd %dh %dm\n",d,h,m}' /proc/uptime
Load average with core count context
nproc | awk '{cores=$1} END{}' && awk -v cores="$(nproc)" '{printf "Load: %s %s %s (cores: %d)\n",$1,$2,$3,cores}' /proc/loadavg
Top 10 CPU consumers
ps aux --sort=-%cpu | awk 'NR<=11 {printf "%5.1f%% %s\n", $3, $11}'
Top 10 memory consumers
ps aux --sort=-%mem | awk 'NR<=11 {printf "%5.1f%% %s\n", $4, $11}'
Count open file descriptors per process — top consumers
find /proc/[0-9]*/fd -maxdepth 0 2>/dev/null | while read d; do echo "$(ls "$d" 2>/dev/null | wc -l) $(cat "${d%fd}comm" 2>/dev/null)"; done | sort -rn | head -10
Parse listening ports with process names from ss
ss -tlnp | awk 'NR>1 {split($4,a,":"); port=a[length(a)]; match($0,/users:\(\("([^"]+)"/,m); printf "%-6s %s\n", port, m[1]}' | sort -n
Installed package count by repository (pacman)
pacman -Q | awk '{print $1}' | xargs -I{} pacman -Qi {} 2>/dev/null | awk -F': ' '/^Repository/{repo[$2]++} END{for(r in repo) printf "%-20s %d\n", r, repo[r]}'