Здесь мы собираем всё, что может быть интересно представителям, пожалуй, лучшей в мире профессии: руководства, лучшие практики, свежие новости мира ИТ, книги, и многое другое.
# echo 'raz_dva_tri' | grep -Po '\Kdva_tri'
dva_tri
Начало фразы raz_ вырезали. Здесь используются два ключа: P (perl-regexp) - использование регулярного выражение Perl, o (only-matching) - возвращает только совпадение с образцом. \K - регулярка, которая отбрасывает всё, что перед ней.
Проверка файла на наличие pattern.
# grep 'pattern' file > /dev/null && echo 'String Found'
# grep -q 'pattern' file && echo 'String Found'
Если pattern не будет найден в файле, конструкция && не сработает.
Посчитать количество совпадений pattern в файле:
# grep -c pattern file
Рекурсивный поиск файлов, где найден шаблон:
# grep -lr 'pattern' /web/site.ru
И обратная история, когда нужно вывести файлы, которые не содержат шаблон:
# grep -Lr 'pattern' /web/site.ru
Опять рекурсивный поиск по директории, только выводим не имена файлов, а все совпадающие строки:
# grep -hr 'pattern' /var/log
Бывает нужно когда какой-то ip пробиваешь по нескольким логам.
Когда через grep нужно вывести символы регулярных выражений, их нужно экранировать \ или использовать ключ F (fixed-strings):
# cat /var/log/syslog | grep 'systemd\[1]'
# cat /var/log/syslog | grep -F 'systemd[1]'
Да, я знаю, что не надо тут использовать cat, но я привык. Правильнее сделать так:
# grep -F 'systemd[1]' /var/log/syslog
Ничего не могу с собой поделать. Использую всегда с cat. Причина проста - не всегда нужен grep, а смотреть что-то в консоли я привык через cat. Так что мне проще сначала сделать просто cat, а потом грепнуть вывод в случае необходимости.
Ещё одна полезная опция grep - i (ignore-case) игнорировать регистр шаблона. Будут найдены и заглавные, и строчные совпадения.
# grep -i 'Page.html' /web/site
Вывести рядом с найденной строкой 2 до и 2 после:
# last | grep -A2 -B2 'reboot'apt-get install rkhunter - ставим прогу для поиска руткитов
rkhunter -c --sk - запуск поиска
rkhunter --update - апгрейд базы
apt-get install tiger - ставим еще одну прогу для поиска руткитов
tiger - запуск проверки
apt-get install lynis - ставим еще одну прогу для поиска руткитов
lynis -c - запуск проверки
Взломщики, которым успешно удалось проникнуть в систему,
часто заменяют некоторые системные бинарные файлы (например, Is или ps)
поврежденными версиями и делают их не отключаемыми.
Поэтому полезно иногда проверять атрибуты,
назначенные исполняемым файлам (например, в каталогах /bin, /usr/bin, /sbin и /usr/sbin).