Если вы начинаете осваивать систему Linux или просто хотите лучше понимать, как управлять файлами и получать нужную информацию, команда head станет вашим надежным помощником.
В этой статье я подробно расскажу, что такое команда head, как ее использовать, и для чего она предназначена.
Что такое команда head в Linux?
Команда head предназначена для быстрого просмотра первых строк текстового файла. Вместо того, чтобы открывать весь файл целиком или листать его, вы можете с помощью head сразу увидеть начало файла — например, первые 10 строк.
Это очень удобно при работе с большими файлами, логами или данными, где важно увидеть только начало содержимого, чтобы понять, о чем идет речь.
Как работает команда head?
Основная идея команды — выбрать и показать первые строчки файла. В большинстве случаев она показывает по умолчанию 10 строк, но с помощью опций можно менять это значение.
Основные параметры команды head
Чтобы сделать работу с командой гибче, в head есть несколько полезных параметров:
| Параметр | Описание | Пример использования |
| -n или —lines | Указать количество строк, которые нужно показать | head -n 20 filename.txt — первые 20 строк |
| -c или —bytes | Указать количество байт, которые нужно показать | head -c 100 filename.txt — первые 100 байт файла |
Примеры использования команды head
- 1. Показать первые 10 строк файла
- 2. Показать первые n строк файла
- 3. Показать первые n байт файла
- 4. Читать первые строки нескольких файлов одновременно
Давайте рассмотрим несколько практических примеров.
1. Показать первые 10 строк файла
Для того, чтобы запустить команду с дефолтными настройками достаточно просто передать ей название файла, с которым мы хотим работать:
head название_файла
Например:
[root@waky practice]# head /var/log/cron
Jan 25 03:58:25 waky crond[766]: (CRON) STARTUP (1.5.7)
Jan 25 03:58:25 waky crond[766]: (CRON) INFO (Syslog will be used instead of sendmail.)
Jan 25 03:58:25 waky crond[766]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 94% if used.)
Jan 25 03:58:25 waky crond[766]: (CRON) INFO (running with inotify support)
Jan 25 04:01:01 waky CROND[1453]: (root) CMD (run-parts /etc/cron.hourly)
Jan 25 04:01:01 waky run-parts[1456]: (/etc/cron.hourly) starting 0anacron
Jan 25 04:01:01 waky anacron[1466]: Anacron started on 2026-01-25
Jan 25 04:01:01 waky anacron[1466]: Will run job `cron.daily' in 45 min.
Jan 25 04:01:01 waky anacron[1466]: Jobs will be executed sequentially
Jan 25 04:01:01 waky run-parts[1468]: (/etc/cron.hourly) finished 0anacron
[root@waky practice]#
Обычно такого вывода достаточно, чтобы понять, какая информация содержится в файле, формат строк, дату начала записи и подобное.
2. Показать первые n строк файла
Если файл содержит неоднородные записи или шаблон повторяется реже, чем каждые 10 строк, нам может потребоваться вывод большего, чем предусмотрено по дефолту, количества строк.
Для вывода отличного количества строк служит опция —n. Так, чтобы вывести 20 строк, команда примет вид:
head -n 20 название_файла
Например:
[root@waky practice]# head -n 20 /var/log/cron
Jan 25 03:58:25 waky crond[766]: (CRON) STARTUP (1.5.7)
Jan 25 03:58:25 waky crond[766]: (CRON) INFO (Syslog will be used instead of sendmail.)
Jan 25 03:58:25 waky crond[766]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 94% if used.)
Jan 25 03:58:25 waky crond[766]: (CRON) INFO (running with inotify support)
Jan 25 04:01:01 waky CROND[1453]: (root) CMD (run-parts /etc/cron.hourly)
Jan 25 04:01:01 waky run-parts[1456]: (/etc/cron.hourly) starting 0anacron
Jan 25 04:01:01 waky anacron[1466]: Anacron started on 2026-01-25
Jan 25 04:01:01 waky anacron[1466]: Will run job `cron.daily' in 45 min.
Jan 25 04:01:01 waky anacron[1466]: Jobs will be executed sequentially
Jan 25 04:01:01 waky run-parts[1468]: (/etc/cron.hourly) finished 0anacron
Jan 25 04:01:01 waky CROND[1452]: (root) CMDEND (run-parts /etc/cron.hourly)
Jan 25 04:46:01 waky anacron[1466]: Job `cron.daily' started
Jan 25 04:46:01 waky anacron[1466]: Job `cron.daily' terminated
Jan 25 04:46:01 waky anacron[1466]: Normal exit (1 job run)
Jan 25 05:01:01 waky CROND[1524]: (root) CMD (run-parts /etc/cron.hourly)
Jan 25 05:01:01 waky run-parts[1527]: (/etc/cron.hourly) starting 0anacron
Jan 25 05:01:01 waky run-parts[1533]: (/etc/cron.hourly) finished 0anacron
Jan 25 05:01:01 waky CROND[1523]: (root) CMDEND (run-parts /etc/cron.hourly)
Jan 26 04:37:57 waky crond[761]: (CRON) STARTUP (1.5.7)
Jan 26 04:37:57 waky crond[761]: (CRON) INFO (Syslog will be used instead of sendmail.)
[root@waky practice]#
Подготовим простой тестовый файл, который поможет нам понятно продемонстрировать одну дополнительную особенность использования -n:
[root@waky practice]# echo -e "1\n2\n3\n4\n5\n6\n7\n8\n9" > numbers.txt
[root@waky practice]#
У нас получился файл, в каждой строке которого находится цифра, соответствующая номеру строки, можете проверить это командой cat:
[root@waky practice]# cat numbers.txt
1
2
3
4
5
6
7
8
9
[root@waky practice]#
Выполним команду head и выведем первые 3 строки:
[root@waky practice]# head -n 3 numbers.txt
1
2
3
[root@waky practice]#
Ожидаемо мы видим 1, 2 и 3 строки. Теперь вместо 3 передадим команде отрицательное количество строк (-3):
[root@waky practice]# head -n -3 numbers.txt
1
2
3
4
5
6
[root@waky practice]#
Это выведет на экран строки с 1 по 6, то есть отрежет 3 последние строки. Использование отрицательного аргумента удобно в том случае, когда нам проще откинуть несколько последних строк с хвоста, чем считать необходимое их количество с головы.
3. Показать первые n байт файла
Похожий по смыслу, но более специфичный способ ограничить вывод — указать количество байт с помощью опции —c:
head -c 100 название_файла
Например:
[root@waky practice]# head -c 100 /var/log/cron
Jan 25 03:58:25 waky crond[766]: (CRON) STARTUP (1.5.7)
Jan 25 03:58:25 waky crond[766]: (CRON) INFO[root@waky practice]#
Такой вывод обрывается ровно на том месте, где кончаются отведенные байты.
4. Читать первые строки нескольких файлов одновременно
Если нам нужно проверить несколько файлов, не обязательно делать это последовательно, можно сделать это одной командой:
head file1.txt file2.txt
В таком случае команда покажет по 10 строк каждого файла с названием файла перед каждым блоком.
Например:
[root@waky practice]# head /var/log/cron-20260106 /var/log/cron-20260111 /var/log/cron-20260120
==> /var/log/cron-20260106 <==
Dec 30 08:27:52 Managed-Node-1 crond[768]: (CRON) STARTUP (1.5.7)
Dec 30 08:27:52 Managed-Node-1 crond[768]: (CRON) INFO (Syslog will be used instead of sendmail.)
Dec 30 08:27:52 Managed-Node-1 crond[768]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 31% if used.)
Dec 30 08:27:52 Managed-Node-1 crond[768]: (CRON) INFO (running with inotify support)
Dec 30 09:01:01 Managed-Node-1 CROND[12887]: (root) CMD (run-parts /etc/cron.hourly)
Dec 30 09:01:01 Managed-Node-1 run-parts[12890]: (/etc/cron.hourly) starting 0anacron
Dec 30 09:01:01 Managed-Node-1 anacron[12900]: Anacron started on 2025-12-30
Dec 30 09:01:01 Managed-Node-1 anacron[12900]: Will run job `cron.daily' in 19 min.
Dec 30 09:01:01 Managed-Node-1 anacron[12900]: Will run job `cron.weekly' in 39 min.
Dec 30 09:01:01 Managed-Node-1 anacron[12900]: Jobs will be executed sequentially
==> /var/log/cron-20260111 <==
Jan 6 02:03:22 waky crond[771]: (CRON) STARTUP (1.5.7)
Jan 6 02:03:22 waky crond[771]: (CRON) INFO (Syslog will be used instead of sendmail.)
Jan 6 02:03:22 waky crond[771]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 11% if used.)
Jan 6 02:03:22 waky crond[771]: (CRON) INFO (running with inotify support)
Jan 6 03:01:01 waky CROND[1505]: (root) CMD (run-parts /etc/cron.hourly)
Jan 6 03:01:01 waky run-parts[1508]: (/etc/cron.hourly) starting 0anacron
Jan 6 03:01:01 waky anacron[1518]: Anacron started on 2026-01-06
Jan 6 03:01:01 waky anacron[1518]: Will run job `cron.daily' in 27 min.
Jan 6 03:01:01 waky anacron[1518]: Will run job `cron.weekly' in 47 min.
Jan 6 03:01:01 waky anacron[1518]: Jobs will be executed sequentially
==> /var/log/cron-20260120 <==
Jan 11 03:30:04 waky crond[767]: (CRON) STARTUP (1.5.7)
Jan 11 03:30:04 waky crond[767]: (CRON) INFO (Syslog will be used instead of sendmail.)
Jan 11 03:30:04 waky crond[767]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 43% if used.)
Jan 11 03:30:04 waky crond[767]: (CRON) INFO (running with inotify support)
Jan 11 04:01:01 waky CROND[1473]: (root) CMD (run-parts /etc/cron.hourly)
Jan 11 04:01:01 waky run-parts[1476]: (/etc/cron.hourly) starting 0anacron
Jan 11 04:01:01 waky anacron[1486]: Anacron started on 2026-01-11
Jan 11 04:01:01 waky anacron[1486]: Will run job `cron.daily' in 13 min.
Jan 11 04:01:01 waky anacron[1486]: Jobs will be executed sequentially
Jan 11 04:01:01 waky run-parts[1488]: (/etc/cron.hourly) finished 0anacron
[root@waky practice]#
При этом можно использовать все те же опции:
[root@waky practice]# head -n 2 /var/log/cron-20260106 /var/log/cron-20260111 /var/log/cron-20260120
==> /var/log/cron-20260106 <==
Dec 30 08:27:52 Managed-Node-1 crond[768]: (CRON) STARTUP (1.5.7)
Dec 30 08:27:52 Managed-Node-1 crond[768]: (CRON) INFO (Syslog will be used instead of sendmail.)
==> /var/log/cron-20260111 <==
Jan 6 02:03:22 waky crond[771]: (CRON) STARTUP (1.5.7)
Jan 6 02:03:22 waky crond[771]: (CRON) INFO (Syslog will be used instead of sendmail.)
==> /var/log/cron-20260120 <==
Jan 11 03:30:04 waky crond[767]: (CRON) STARTUP (1.5.7)
Jan 11 03:30:04 waky crond[767]: (CRON) INFO (Syslog will be used instead of sendmail.)
[root@waky practice]#
Где и как использовать команду head?
Команду head часто используют в следующих ситуациях:
- Быстрый просмотр начала больших журналов ошибок или логов.
- Анализ содержимого файлов без открытия редактора.
- Передача первых строк файла по конвейеру (pipelines) для дальнейшей обработки.
Заключение
Команда head — это простой, но очень полезный инструмент для быстрого просмотра начала текстовых файлов в Linux. Она отлично подходит для работы с большими файлами, логами и отчетами. Запомните основные параметры (-n, -c) и используйте их для гибкости.