Гид по технологиям

Как пользоваться командами head и tail в Linux

• 6 min read • Linux • Обновлено 29 Nov 2025
head и tail в Linux — справочник
head и tail в Linux — справочник

Терминал Ubuntu с приглашением командной строки

Команды head и tail позволяют быстро показать только интересующую часть файла — первые или последние строки/символы — вместо того чтобы открывать файл целиком. Это экономит время и ресурсы при работе с большими логами, CSV, дампами и любыми текстовыми данными.

Что делает head

Команда head читает файл с начала и по умолчанию выводит первые 10 строк. Это удобно для быстрой проверки содержимого: заголовков CSV-файла, первых ошибок в логе, структуры конфигурации.

Синтаксис head

head [опции] [файл]

Для подробностей можно открыть man-страницу:

man head

Примеры использования head

Создадим файл numbers.txt со словами для чисел от one до twenty (по примеру). По умолчанию:

head numbers.txt

Выведет первые 10 строк:

one
two
three
four
five
six
seven
eight
nine
ten

Чтобы вывести ровно N строк, используйте -n:

head -n 3 numbers.txt

Результат:

one
two
three

Чтобы исключить последние N строк, передайте отрицательное значение:

head -n -15 numbers.txt

Результат (первые 5 строк):

one
two
three
four
five

Опция -c печатает первые N байтов/символов:

head -c 10 numbers.txt

Результат может выглядеть так (первые 10 символов файла):

one
two
th

Замечание: поведение -c зависит от локали и кодировки — в UTF-8 один символ может занимать несколько байтов, поэтому при работе с многобайтовыми кодировками считайте по байтам или используйте инструменты, ориентированные на символы.

Что делает tail

Команда tail читает файл с конца и по умолчанию выводит последние 10 строк. Это основная команда для оперативного анализа логов, мониторинга и проверки последних записей.

Синтаксис tail

tail [опции] [файл]

Для справки:

man tail

Примеры использования tail

По умолчанию:

tail numbers.txt

Выведет последние 10 строк (для примера с числами):

eleven
twelve
thirteen
fourteen
fifteen
sixteen
seventeen
eighteen
nineteen
twenty

Вывести последние N строк:

tail -n 4 numbers.txt

Результат:

seventeen
eighteen
nineteen
twenty

Начать вывод с конкретной строки N (например, с 17-й):

tail -n +17 numbers.txt

Результат:

seventeen
eighteen
nineteen
twenty

Опция -c выводит последние N байтов/символов:

tail -c 10 numbers.txt

Результат:

en
twenty

Опять же, учитывайте кодировку при указании байтов.

Одновременная работа с несколькими файлами

head и tail поддерживают несколько файлов в аргументах. При этом команды печатают заголовки (имена файлов) перед содержимым, чтобы различать вывод.

head -n 5 file1.txt file2.txt
tail -n 3 file1.log file2.log

Если нужен только чистый поток без названий, перенаправьте вывод через sed/awk или используйте cat + пайпинг.

Комбинация head и tail через пайп

Самый простой способ получить произвольный диапазон строк — взять первые K строк с помощью head, затем отрезать последние M из них через tail. Например, чтобы получить 6–8 строки:

head -n 8 numbers.txt | tail -n 3

Результат:

six
seven
eight

Это работает эффективно и читабельно для небольших диапазонов.

Частые сценарии и приемы

  • Просмотр заголовков CSV: head -n 1 file.csv
  • Быстрая проверка формата файла: head -c 200 file
  • Мониторинг логов в реальном времени: tail -f /var/log/syslog (или –follow)
  • Комбинация с grep: tail -n 200 access.log | grep “ERROR” | head -n 20

Важно: tail -f держит терминал открытым и показывает добавляемые строки — удобно для мониторинга.

Альтернативы и когда head/tail не подходят

  • sed/awk: для извлечения диапазона строк по номерам, шаблонам и более сложной логики используйте sed/awk. Например, sed -n ‘6,8p’ file.txt выведет 6–8 строки напрямую.
  • grep: фильтрация по регулярным выражениям.
  • cut: извлечение полей в строках по разделителю.

Пример: sed быстрее и чище для несмежных диапазонов или когда нужен один шаг без пайпов:

sed -n '6,8p' numbers.txt

Памятка (cheat sheet)

  • head -n N file — первые N строк
  • head -n -N file — все строки, кроме последних N
  • head -c N file — первые N байтов
  • tail -n N file — последние N строк
  • tail -n +N file — начиная с N-й строки до конца
  • tail -c N file — последние N байтов
  • tail -f file — следить за добавлением новых строк
  • head file1 file2 — покажет заголовки для каждого файла

Ментальные модели и правила выбора

  • Если нужно «сверху» — head; «снизу» — tail.
  • Для диапазона строк предпочитайте комбинацию head|tail, если диапазон маленький, и sed/awk, если нужно одно решение.
  • Для символьных манипуляций помните про кодировку (UTF-8 vs ASCII): -c считает байты, не символы.

Матричный сравнительный краткий обзор

  • Простота: head/tail > sed/awk
  • Гибкость: sed/awk > head/tail
  • Читаемость: head|tail пайпы проще для быстрого понимания
  • Производительность: для больших файлов sed/awk может быть эффективнее, поскольку один инструмент делает всю работу.

Проверка корректности и тест-кейсы

  1. Тест: файл с 5 строками, выполнить head (без опций) — ожидается вывод всех 5 строк.
  2. Тест: head -n -2 для файла из 4 строк — ожидается вывод первых 2 строк.
  3. Тест: tail -n +3 для файла из 6 строк — ожидается строки с 3-й по 6-ю.
  4. Тест: head -c 10 на UTF-8 файле с многобайтовыми символами — проверить, что вывод совпадает с первыми 10 байтами, а не 10 символами.

Критерии приёмки: команды должны обращаться к указанному файлу; поведение -n и -c соответствует man-странице; пайпинг возвращает ожидаемый диапазон строк.

Роли и быстрые чек-листы

  • Разработчик:
    • Используйте head для проверки структуры файлов и первых строк.
    • При отладке логов комбинируйте tail -n и grep.
  • Системный администратор:
    • tail -f для мониторинга процессов и служб.
    • При работе с большими логами применяйте tail -n 1000 | grep “ERROR”.
  • Аналитик данных:
    • head -n 1 для получения заголовков CSV.
    • head -n 100 для предварительного просмотра и проверки типов столбцов.

Безопасность и приватность

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

Советы по производительности

  • Для очень больших файлов используйте tail -n N вместо чтения всего файла через cat и последующей фильтрации.
  • Комбинация head|tail читает только необходимую часть файла — это экономит время на сетевых и медленных дисках.

Примеры реальных команд и сценариев

  • Получить последние 50 строк error.log и искать ключевое слово:
tail -n 50 /var/log/error.log | grep "CRITICAL"
  • Показать 2–4 строки файла:
head -n 4 file.txt | tail -n 3
  • Слежение за логом и фильтрация по регулярному выражению в реальном времени:
tail -f /var/log/service.log | grep --line-buffered "timeout"

Когда использовать другие инструменты

  • sed/awk — если нужны преобразования, подсчёты, сложная фильтрация.
  • perl/python — если требуется сложная логика обработки или интеграция с API.

Маленькая методика: как выбрать инструмент для задачи

  1. Нужен ли только просмотр — head/tail.
  2. Нужен ли диапазон строк — head|tail или sed.
  3. Нужна ли фильтрация/парсинг — grep/sed/awk.
  4. Нужно ли масштабирование/скрипты — использовать awk/python.

Заключение

Head и tail — базовые, но часто незаменимые инструменты при работе с текстовыми файлами в Linux. Они просты в использовании, быстро дают доступ к нужной части файла и хорошо сочетаются с другими утилитами. Для сложных задач переходите на sed, awk или скрипты на Python, но сначала проверьте, не решит ли задачу короткая комбинация head/tail.

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

Факто-бокс:

  • По умолчанию обе команды показывают 10 строк.
  • Опции: -n (строки), -c (байты).
  • tail поддерживает –follow (tail -f) для мониторинга в реальном времени.

Короткая памятка: head — сверху, tail — снизу, sed/awk — для сложной обработки.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро