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

Команды head и tail в Linux

6 min read Linux команды Обновлено 07 Jan 2026
head и tail в Linux: вывод начала и конца файлов
head и tail в Linux: вывод начала и конца файлов

Кратко: команды head и tail быстро выводят начало и конец текстового файла без его полного открытия. Используйте -n для строк и -c для байтов/символов; комбинируйте через pipe, чтобы выбирать произвольные диапазоны.

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

Многие задачи в Linux требуют не чтения всего файла, а лишь его начала или конца — например, просмотр логов, быстрый осмотр большой таблицы или получение последних записей журнала. Команды head и tail предназначены именно для этого: head выводит первые строки входного файла, tail — последние.

Что делает команда head

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

Синтаксис команды head

head [option] [file]

Чтобы прочитать справку в системе, используйте:

man head

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

Для примеров создайте файл numbers.txt с числами от one до twenty по одному слову на строку. Одна строка — одно слово.

  • По умолчанию вывод первых 10 строк:
head numbers.txt

Вывод:

one
two
three
four
five
six
seven
eight
nine
ten
  • Вывести первые N строк:
head -n 3 numbers.txt

Вывод:

one
two
three
  • Исключить последние N строк (отсчитать с конца):
head -n -15 numbers.txt

Вывод:

one
two
three
four
five
  • Вывести первые N байтов/символов (опция -c):
head -c 10 numbers.txt

Вывод (считает байты; при UTF-8 многобайтовые символы могут обрезаться):

one
two
th

Важно: опция -c считает байты, а не символы в многобайтовых кодировках. Если файл в UTF-8 и содержит не-ASCII, -c может разрезать символы посередине.

Что делает команда tail

tail выводит конечную часть файла (по умолчанию — последние 10 строк). Часто используется для просмотра последних записей логов и мониторинга обновлений.

Синтаксис команды tail

tail [option] [file]

Чтобы узнать подробности, выполните:

man tail

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

  • По умолчанию последние 10 строк:
tail numbers.txt

Вывод:

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
  • Вывести последние N байтов:
tail -c 10 numbers.txt

Вывод:

en
twenty

Заметьте: как и у head, -c считает байты, а не кодовые точки Unicode.

Работа с несколькими файлами

Обе команды поддерживают несколько входных файлов. Они пронумеруют блоки вывода и добавят заголовки с именами файлов.

head [option] [file1] [file2]
tail [option] [file1] [file2]

Это удобно при сравнении или при необходимости просмотреть начало/конец набора файлов.

Комбинирование head и tail

Pipe (|) перенаправляет stdout первой команды в stdin следующей. Частая задача — взять конкретные строки диапазона. Пример: получить 6–8 строки файла.

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

Вывод:

six
seven
eight

В этом сценарии head сначала даёт первые 8 строк, а tail берёт из них последние 3.

Полезные сценарии и подсказки

  • Быстрый просмотр заголовков CSV/TSV: head -n 5 file.csv
  • Мониторинг логов в реальном времени: tail -f /var/log/syslog (флаг -f держит файл «открытым» и печатает добавляемые строки)
  • Комбинация с grep/awk/sed для фильтрации и извлечения полей: tail -n 100 /var/log/app.log | grep ERROR | head -n 20

Совет: при обработке бинарных файлов используйте hexdump или strings вместо head/tail, чтобы избежать повреждённого вывода.

Когда команды дают неожиданный результат

  • Подсчёт байтов вместо символов: опции -c ориентированы на байты, поэтому в UTF-8 символы длиной >1 байта будут исказены. Для работы с символами используйте инструменты, поддерживающие кодировки, или предварительно перекодируйте файл в ASCII/utf-8 и избегайте -c.
  • Буферизация при использовании в скриптах или при чтении из FIFO может давать задержки. Для реального времени используйте tail -f или stdbuf для управления буферизацией.
  • Файлы с необычными окончаниями строк (CRLF vs LF) могут выглядеть по-разному; при трансляции между Windows и Unix учитывайте dos2unix.

Альтернативы и сочетания

  • sed: печать произвольного диапазона строк: sed -n ‘6,8p’ numbers.txt
  • awk: гибкая фильтрация по номеру строки: awk ‘NR>=6 && NR<=8’ numbers.txt
  • less/more: интерактивный просмотр больших файлов с возможностью пролистывания
  • dd: извлечение байтовых диапазонов, например, dd if=file bs=1 skip=100 count=200 2>/dev/null

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

Памятка (cheat sheet)

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

Критерии приёмки

  1. Быстрый показ начала/конца файла без открытия в редакторе.
  2. Управление количеством строк/байтов через -n и -c.
  3. Корректная работа при комбинировании через pipe и в сценариях мониторинга (-f).

Роль‑ориентированные чек-листы

  • Для разработчика:

    • Используйте head для проверки структуры входных данных (первые 5–10 строк).
    • Для отладки логов применяйте tail -n 200 | grep “ERROR”.
  • Для системного администратора / SRE:

    • tail -f /var/log/service.log для мониторинга запуска сервиса.
    • При ротации логов проверяйте, что tail -f ссылается на правильный файл (иногда нужен –follow=name).
  • Для аналитика данных:

    • head -n 1 file.csv — посмотреть заголовки столбцов.
    • head -n 100 | awk -F”,” ‘{print $3}’ — быстро проверить значения в колонке.

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

  • Модель «окна»: head даёт левый край файла, tail — правый. Pipe позволяет сдвигать окно выборки внутрь файла.
  • «Проверочный фильтр»: сначала head/tail сокращают поток данных, затем grep/sed/awk выполняют фильтрацию внутри уменьшенного набора.

Тонкие места и совместимость

  • Кодировка: учитывайте UTF-8; опция -c оперирует байтами. Для корректного считывания символов используйте инструменты с поддержкой Unicode.
  • Поведение в разных Unix-произведениях обычно одинаково, но флаги и реализация могут незначительно отличаться в очень старых системах.
  • tail –follow=name полезен при ротации логов: он продолжит следить за новым файлом с тем же именем.

Однострочные шаблоны (snippets)

  • Показать последние 500 строк:
tail -n 500 /var/log/syslog
  • Показать последние 100 строк и фильтровать по ERROR:
tail -n 100 /var/log/app.log | grep ERROR
  • Показать строки с 100 по 200:
head -n 200 file | tail -n 101
  • Следить за логом и показывать только новые строки с ERROR:
tail -f /var/log/app.log | grep --line-buffered ERROR

Сводка и рекомендации

Команды head и tail — простые, но крайне полезные инструменты для оперативного просмотра файлов. Они экономят время и ресурсы при работе с большими файлами и отлично сочетаются с другими утилитами командной строки. Помните о различиях между байтами и символами, а также используйте более мощные инструменты (sed, awk, dd) при необходимости точных выборок или преобразований.

Краткий глоссарий

  • -n — количество строк; если перед числом стоит +, вывод начинается с этой строки.
  • -c — количество байтов.
  • -f — следить за добавлением новых строк (follow).
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство