Команда grep в Linux: как найти текст в файлах и журналах
grep показывает строки, в которых есть нужный текст. Им ищут, в каком конфиге упомянут домен, где в журнале ошибки и какие строки настроек на самом деле работают. Ниже — ключи с примерами для сервера.
Содержание 7
Что сделать прямо сейчас
- Подключитесь к серверу — инструкция.
- Найдите текст в одном файле:
grep -n 'server_name' /etc/nginx/nginx.conf. - Найдите текст во всей папке:
grep -rn 'example.com' /etc/nginx/. - Найдите ошибки в журнале:
sudo grep -i 'error' /var/log/nginx/error.log | tail -n 20. - Если ничего не нашлось, проверьте большие буквы и добавьте
-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 |
| Где задано имя базы WordPress | grep -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.
Источники
- Справка grep для Ubuntu 24.04 — ключи -r, -i, -n, -l, -v, -w, -F, --include и коды выхода.
Сверено 11 октября 2026 года.
Что почитать дальше
- Команда findнайти файл по имени, если не знаете, где он.
- cat, less, head и tailоткрыть файл и следить за журналом.
- Процессы: ps, top и killкакие программы запущены.
- Команды Linux для новичкашпаргалка по командам.
Проверено и обновлено: 11.10.2026