Gymterview
junior

Как просматривать содержимое файлов?

Для просмотра содержимого файлов в Linux существует несколько утилит, каждая из которых подходит для своего сценария: cat для коротких файлов, less для больших, head/tail для начала или конца.

cat — полный вывод

cat (concatenate) — выводит всё содержимое файла целиком:

Пример
cat file.txt                     # Вывести содержимое файла
cat -n file.txt                  # С нумерацией строк
cat file1.txt file2.txt          # Конкатенация нескольких файлов
cat file1.txt file2.txt > merged.txt  # Объединить в новый файл

less — постраничный просмотр

less — рекомендуется для больших файлов, поддерживает навигацию в обе стороны:

Навигация в less
less logfile.log
# Навигация в less:
#   Space / f     — страница вперёд
#   b             — страница назад
#   /pattern      — поиск вперёд
#   ?pattern      — поиск назад
#   n             — следующее совпадение
#   N             — предыдущее совпадение
#   g             — в начало файла
#   G             — в конец файла
#   q             — выход
#   -N            — показать/скрыть номера строк

more — простой постраничный просмотр

more — упрощённая версия less, умеет прокручивать только вперёд:

Пример
more file.txt
# Space — страница вперёд
# Enter — строка вперёд
# q     — выход

head — начало файла

Пример
head file.txt                    # Первые 10 строк (по умолчанию)
head -n 20 file.txt              # Первые 20 строк
head -n -5 file.txt              # Все строки, кроме последних 5
head -c 100 file.txt             # Первые 100 байт

tail — конец файла

Пример
tail file.txt                    # Последние 10 строк
tail -n 20 file.txt              # Последние 20 строк
tail -n +5 file.txt              # Всё, начиная с 5-й строки
tail -f /var/log/app.log         # Следить за файлом в реальном времени (follow)
tail -f -n 100 app.log           # Последние 100 строк + следить за обновлениями

tail -f — одна из самых полезных команд для Java-разработчика при отладке: позволяет в реальном времени наблюдать за логами приложения. Для нескольких файлов одновременно используйте tail -f app.log error.log или multitail.

nl — нумерация строк

Пример
nl file.txt                      # Нумерует только непустые строки
nl -ba file.txt                  # Нумерует все строки, включая пустые

На собеседовании: интервьюер ожидает, что вы знаете tail -f для мониторинга логов и понимаете, когда использовать cat, а когда less. Частая ошибка — открывать гигабайтный лог через cat вместо less или tail.