grep есть на любом сервере, но половину его флагов вспоминают в момент инцидента.
Что держать в голове: -i без учёта регистра, -n номер строки, -r по каталогам, -v инверсия. Флаги -A, -B и -C показывают строки после, до и вокруг совпадения. -o выводит только совпавшую часть, -c считает строки, -l отдаёт имена файлов. -e задаёт несколько выражений, -f берёт шаблоны из файла. Режимы: BRE по умолчанию, ERE через -E, PCRE через -P с lookbehind.
Примеры под инциденты:
grep -iE 'error|warn|fatal' /var/log/syslog
grep -i 'failed password' /var/log/auth.log | tail
grep -oE '([0-9]{1,3}.){3}[0-9]{1,3}' access.log | sort -u
grep -RIn --exclude-dir={.git,node_modules} 'listen' /etc/nginx
Коды возврата: 0 нашлось, 1 не нашлось, 2 ошибка. Отсюда проверка grep -q pattern file && echo OK.