Справочник

Команда grep в Linux: как найти текст в файлах и журналах

grep показывает строки, в которых есть нужный текст. Им ищут, в каком конфиге упомянут домен, где в журнале ошибки и какие строки настроек на самом деле работают. Ниже — ключи с примерами для сервера.

Обновлено 11.10.2026≈ 4 мин чтения
Содержание 7

Что сделать прямо сейчас

  1. Подключитесь к серверу — инструкция.
  2. Найдите текст в одном файле: grep -n 'server_name' /etc/nginx/nginx.conf.
  3. Найдите текст во всей папке: grep -rn 'example.com' /etc/nginx/.
  4. Найдите ошибки в журнале: sudo grep -i 'error' /var/log/nginx/error.log | tail -n 20.
  5. Если ничего не нашлось, проверьте большие буквы и добавьте -i.

Как устроена команда

grep -rn 'example.com' /etc/nginx/
ЧастьЧто значит
grepкоманда
-rnключи: искать во всех файлах папки и показать номера строк
'example.com'что искать — в одинарных кавычках
/etc/nginx/где искать: файл или папка

Ответ — строки вида путь к файлу:номер строки:текст строки. По номеру строки легко найти место в редакторе.

/etc/nginx/sites-available/example.com:4:    server_name example.com www.example.com;

Ключи grep

КлючЧто делаетПример
-iне различать большие и маленькие буквыgrep -i 'error' file.log
-nпоказать номер строкиgrep -n 'listen' site.conf
-rискать во всех файлах папки и вложенных папокgrep -r 'example.com' /etc/nginx/
-lпоказать только имена файлов, где нашлосьgrep -rl 'DB_NAME' /var/www/
-cпосчитать строки, где нашлосьgrep -c ' 404 ' access.log
-vпоказать строки, где этого текста нетgrep -v '^#' file.conf
-wискать только целое словоgrep -w 'root' file.conf
-Fискать текст как есть, без особого смысла у точки и звёздочкиgrep -F '*.example.com' file.conf
--includeискать только в файлах с таким именемgrep -rn --include='*.php' 'DB_NAME' /var/www/
-A 3показать ещё 3 строки после найденнойgrep -A 3 'location' site.conf
-B 3показать 3 строки перед найденнойgrep -B 3 'error' file.log
-C 3по 3 строки до и послеgrep -C 3 'error' file.log

Ключи можно соединять: grep -rin — во всей папке, без учёта больших букв и с номерами строк.

Точка и звёздочка в шаблоне

Без -F grep понимает шаблон как регулярное выражение: точка в нём значит «любой символ». Поэтому grep 'example.com' найдёт и строку с exampleXcom. Для точного поиска адресов, путей и строк со звёздочками добавляйте -F.

^ в начале шаблона значит «в начале строки», $ в конце — «в конце строки». grep -v '^#' убирает строки, которые начинаются с решётки, — так в конфиге остаются только рабочие настройки, без комментариев.

Примеры для сервера

ЗадачаКоманда
В каком конфиге nginx упомянут доменgrep -rn 'example.com' /etc/nginx/
Сколько строк с 404 в журналеsudo grep -c ' 404 ' /var/log/nginx/access.log
Где задано имя базы WordPressgrep -n 'DB_NAME' /var/www/example.com/wp-config.php
Есть ли программа среди запущенныхpgrep -a nginx — см. Процессы: ps, top и kill

Последние 20 ошибок в журнале nginx:

sudo grep -i 'error' /var/log/nginx/error.log | tail -n 20

Знак | передаёт ответ одной команды на вход следующей: grep находит строки с ошибками, а tail -n 20 оставляет последние 20. Как работает tail — в статье cat, less, head и tail.

Рабочие строки конфига — без комментариев и пустых строк:

grep -v '^#' /etc/nginx/nginx.conf | grep -v '^$'

Журналы nginx может читать не каждый пользователь, поэтому в примерах перед grep стоит sudo. Если прав не хватит, grep ответит Permission denied — Permission denied в Linux.

Коды выхода grep

КодЧто значит
0нашлась хотя бы одна строка
1ничего не нашлось
2ошибка: нет файла, нет прав или ошибка в шаблоне

Узнать код последней команды можно командой echo $?. Код 1 — не ошибка, а ответ «не нашлось»: это важно в скриптах и заданиях cron.

Источники

Сверено 11 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 11.10.2026