Материал открыт для чтения

Войдите, чтобы сохранять прогресс и результаты.

Войти
Linux: Основные инструменты

Текст как источник фактов: просмотр и первый поиск

чтение ~4 минУрок 2 из 34

Просмотр текста и первый поиск

module linux core Image06

В Linux почти любая диагностика начинается с чтения текста. Конфиг сервиса, лог веб-сервера, список пользователей, вывод ps или df — всё это строки, которые нужно быстро открыть, просмотреть и сузить до нужного фрагмента.

Просмотреть файл целиком или частями

cat подходит для коротких файлов:

cat /etc/hostname

Для длинных файлов лучше использовать less, потому что он не вываливает всё в терминал сразу:

less /var/log/syslog

Внутри less полезны клавиши:

Клавиша Что делает
/text найти текст вниз по файлу
n перейти к следующему совпадению
Shift+G перейти в конец
q выйти

head и tail нужны, когда важны начало или конец файла:

head -n 20 app.log
tail -n 50 app.log
tail -f app.log

tail -f часто используют при запуске сервиса: команда “следит” за новыми строками в логе.

Найти важное

grep отвечает на вопрос “есть ли здесь строки, похожие на шаблон?”:

grep "ERROR" app.log
grep -i "timeout" app.log
grep -n "listen" nginx.conf

Начинай с простого слова, а потом добавляй флаги. Для новичка важнее не регулярные выражения, а привычка быстро сузить поток информации.

Типовой ход мысли

Если лог большой, не читай его глазами с начала до конца. Сначала найди подозрительные слова: error, failed, denied, timeout, listen, permission. Потом уже открывай контекст вокруг найденных строк.

wc, sort и uniq: быстро посчитать и привести список в порядок

После просмотра файла часто нужно ответить на простой количественный вопрос: сколько строк, сколько совпадений, какие значения встречаются без повторов.

wc -l app.log
grep "ERROR" app.log | wc -l
sort words.txt
sort words.txt | uniq
sort words.txt | uniq -c

wc -l считает строки. Если передать ему имя файла, он покажет число и имя файла. Если подать данные через pipe, обычно выводится только число. Это удобно в конвейерах.

sort сортирует строки. uniq убирает только соседние дубликаты, поэтому перед uniq почти всегда ставят sort. Частая ошибка новичков — запустить uniq на несортированном файле и удивиться, что повторы остались. Команда работает правильно, просто одинаковые строки не стояли рядом.

Первое извлечение полей

В логах и CSV-файлах строка часто состоит из полей. Для простых случаев можно взять поле через cut, для более гибких — через awk.

cut -d',' -f1 users.csv
awk '{print $1}' access.log
awk '{print $9}' access.log | sort | uniq

cut -d',' -f1 означает: разделитель запятая, взять первое поле. Это хорошо работает, когда разделитель простой и одинаковый в каждой строке.

awk '{print $1}' читается так: запустить awk, для каждой строки выполнить действие в фигурных скобках, print $1 напечатать первое поле. В access.log первым полем часто бывает IP-адрес, а код ответа часто стоит в отдельном поле ближе к концу строки. Перед тем как писать итоговую команду, полезно вывести несколько строк через head и глазами понять структуру:

head -n 3 access.log
awk '{print $1, $9}' access.log | head

Поиск без лишнего риска

grep ничего не меняет в файле, поэтому это безопасная первая команда. Начинай с точного слова, затем добавляй флаги:

# Найти строки с точным словом ERROR.
grep "ERROR" app.log

# Найти error, Error, ERROR и другие варианты регистра.
grep -i "error" app.log

# Показать совпадения вместе с номерами строк.
grep -n "ERROR" app.log

# Показать все строки, кроме строк с INFO.
grep -v "INFO" app.log

# Посчитать количество строк с WARNING.
grep -c "WARNING" app.log

# Искать ERROR во всех файлах внутри каталога logs.
grep -r "ERROR" logs/

# Показать только имена файлов, где найден ERROR.
grep -rl "ERROR" logs/
Флаг Что делает
-i Отключает чувствительность к регистру.
-n Добавляет номера строк.
-v Инвертирует поиск и оставляет строки без шаблона.
-c Печатает только количество совпавших строк.
-r Ищет рекурсивно по каталогу.
-l Выводит только имена файлов с совпадением.

Перед лабами важно понимать: команда поиска не обязана сразу быть сложной. Сначала проверь, что совпадения вообще есть, затем сохраняй их в файл через >.

Материал изучен?

Войдите, чтобы сохранить прогресс и перейти к практической лаборатории.

Войти и продолжить