# FIND BIG THINGS du -sh * | sort -rh | head -20 # biggest items here du -h --max-depth=2 / 2>/dev/null | sort -rh | head find . -type f -size +100M # files over 100MB df -h # disk free, human readable # FIND AND ACT find . -name '*.log' -mtime +30 -delete # delete logs older than 30 days find . -type f -name '*.txt' -exec grep -l 'needle' {} + grep -rn 'TODO' --include='*.php' . # recursive, with line numbers # TEXT sort file | uniq -c | sort -rn | head # most common lines awk '{print $1}' access.log | sort | uniq -c | sort -rn | head # top IPs sed -i 's/old/new/g' file # in-place replace tr -s ' ' # squeeze repeated spaces cut -d: -f1 /etc/passwd # field by delimiter # PROCESSES ps aux --sort=-%mem | head # top memory users lsof -i :80 # what is on this port ss -tulpn # listening sockets # NETWORK curl -sI https://example.com # headers only curl -s -o /dev/null -w '%{http_code}\n' URL # just the status code curl -sL URL # follow redirects # SAFETY rm -i # prompt before each delete cp -n src dst # never overwrite --dry-run # if it offers one, use it first