Если вы начинаете изучать работу с командной строкой в Linux или хотите лучше понять, как управлять датой и временем в системе, эта статья для вас.
Мы подробно расскажем о команде date, приведем популярные примеры и объясним, как использовать эту команду для различных задач.
Что такое команда date в Linux?
Команда date — это одна из стандартных команд в Linux, которая отображает текущую дату и время. Она также позволяет задавать или изменять системные часы (требуются root права) и выводить дату в нужном формате.
Основные примеры использования команды date в Linux
- 1. Проверка текущей даты и времени
- 2. Форматирование вывода даты
- 3. Создание и отображение произвольной даты
- 4. Расчет даты
- 5. Получение UNIX времени
- 6. Смена времени
- Почему команда date важна для пользователей Linux?
1. Проверка текущей даты и времени
Самый простой пример — вывести текущую дату и время в системе:
[root@waky practice]# date
Wed Jan 7 06:05:16 AM MSK 2026
[root@waky practice]#
Здесь отображается день недели, дата, время, часовой пояс и год.
2. Форматирование вывода даты
Вы можете настроить вывод так, чтобы он отображал только нужные вам части даты. Для этого команда date использует специальные форматы, задаваемые с помощью +, например:
[root@waky practice]# date +%Y-%m-%d
2026-01-07
[root@waky practice]#
Существуют следующие значения:
| Обозначение | Описание | Пример |
| %Y | год в четырехзначном формате | 2026 |
| %m | месяц в числовом виде (01-12) | 01 |
| %d | день (01-31) | 07 |
| %H | час (00-23) | 06 |
| %M | минута (00-59) | 05 |
| %S | секунда (00-60) | 16 |
| %A | день недели (название) | Wednesday |
| %B | месяц (название) | January |
| %Z | часовой пояс (аббревиатура) | MSK |
В данном примере мы вывели текущую дату: год-месяц-день. при этом использовали дефис (—) в качестве разделителя.
В качестве разделителя можно использовать различные символы, например:
- дефис (-): date +%Y-%m-%d
- прямой слеш (/): date +%m/%d/%Y
- двоеточие(:): date +%H:%M:%S
- точку(.): date +%d.%m.%y
- пробел( ): date «+%d %B %Y»
- подчеркивание(_): date +%Y_%m_%d
Можно использовать и несколько разделителей одновременно:
[root@waky practice]# date +"%d/%B/%Y %H:%M:%S"
07/January/2026 06:22:36
[root@waky practice]#
Не забывайте, если используете пробел в качестве разделителя, заключайте все описание формата в кавычки, чтобы обработчик воспринимал это как единое целое.
3. Создание и отображение произвольной даты
Команда date позволяет не только показывать текущие дату и время, но и создавать произвольные значения с помощью опции -d:
[root@waky practice]# date -d "2027-01-01 00:00" +"%A, %d %B %Y"
Friday, 01 January 2027
[root@waky practice]#
Мы задали дату и указали, в каком формате ее нужно представить, далее программа сама перевела формат и провела необходимые подсчеты, как например, день недели.
4. Расчет даты
Чтобы узнать, какая дата будет через некоторое время, используется относительное задание даты/времени. Например, завтра:
[root@waky practice]# date -d "+1 day"
Thu Jan 8 06:34:41 AM MSK 2026
[root@waky practice]#
Послезавтра:
[root@waky practice]# date -d "+2 day"
Fri Jan 9 06:35:13 AM MSK 2026
[root@waky practice]#
Через неделю:
[root@waky practice]# date -d "+1 week"
Wed Jan 14 06:35:41 AM MSK 2026
[root@waky practice]#
Или назад в прошлое, вчера:
[root@waky practice]# date -d "-1 day"
Tue Jan 6 06:36:24 AM MSK 2026
[root@waky practice]#
Неделю назад:
[root@waky practice]# date -d "-1 week"
Wed Dec 31 06:37:29 AM MSK 2025
[root@waky practice]#
Доступные варианты вполне очевидны: second, minute, hour, day, week, month, year.
5. Получение UNIX времени
Unix-время — это система исчисления времени, представляющая собой количество секунд, прошедших с «эпохи Unix» — 00:00:00 по Всемирному координированному времени (UTC) 1 января 1970 года.
Это просто число — временная метка (timestamp), удобное для компьютеров, так как оно одинаково для всех систем и позволяет легко работать с датами и временем в программном обеспечении.
Получить такую временную метку можно с помощью формата %s:
[root@waky practice]# date +%s
1767757317
[root@waky practice]#
Так же работает и обратное превращение:
[root@waky ~]# date -d @1767757317
Wed Jan 7 06:41:57 AM MSK 2026
[root@waky ~]#
6. Смена времени
С помощью команды date можно не только выводить текущее время, но и устанавливать его.
Задание конкретной даты с помощью опции —s:
[root@waky practice]# date -s "2026-01-03"
Sat Jan 3 12:00:00 AM MSK 2026
[root@waky practice]# date
Sat Jan 3 12:00:10 AM MSK 2026
[root@waky practice]#
Либо с помощью относительного указания:
[root@waky practice]# date -s "+ 4 day"
Wed Jan 7 12:01:16 AM MSK 2026
[root@waky practice]# date
Wed Jan 7 12:01:26 AM MSK 2026
[root@waky practice]#
Имейте в виду, что такое изменение носит временный характер, и после перезагрузки будет восстановлено прежнее значение. Возможность менять системное время в моменте, может быть полезна при диагностике процессов и ошибок, зависящих от времени.
Для реальной смены времени используйте timedatectl.
Почему команда date важна для пользователей Linux?
Команда date — универсальный инструмент для работы с датой и временем. Она помогает:
- выводить текущие дату и время в нужном формате
- создавать отчеты и лог-файлы с правильной отметкой времени
- автоматизировать задачи, связанные с датами
- управлять временными метками при скриптовании
Краткие советы:
Чтобы вывести дату в новом формате, используйте date +»ваш_формат»
Для работы с произвольной датой используйте -d
Для получения Unix-времени используйте +%s
Если вы хотите быстро освоить работу с датой в Linux, практикуйтесь с приведенными командами и форматами.
Заключение
Команда date в Linux — мощный и простой в использовании инструмент для отображения и форматирования текущей даты и времени. Она имеет широкое применение, как в плане простого отслеживания времени, так и в скриптах, для формирования временных меток, имен файлов, и прочего.