- Команда date в Linux
- Синтаксис команды date
- Примеры использования date
- Выводы
- Как узнать текущее время Linux
- Текущее время Linux
- С помощью date
- 2. С помощью hwclock
- 3. С помощью timedatectl
- Выводы
- Вывод даты и времени в Linux
- Синтаксис
- Отображение даты и времени в Linux с помощью команды timedatectl
- Переменная среды TZ
- Инструмент с графическим интерфейсом: Администрирование времени
- Как изменить настройки даты и времени в рабочем столе Linux на базе Gnome
- Заключение
Команда date в Linux
Главное свойство утилит GNU/Linux — делать что-то одно, но эффективно. Яркий пример — команда date Linux, работающая с датой и временем. С её помощью можно извлекать любую дату в разнообразном формате, в том числе и рассчитывать прошлое и будущее время. Привилегированные пользователи могут перезаписывать системное время, используя её.
Утилита предустановлена во всех дистрибутивах GNU/Linux. В этой статье будут рассмотрены возможности date и способы применения этой команды.
Синтаксис команды date
Программа может выполнятся от имени обычного пользователя. Стандартный синтаксис команды (квадратные скобки обозначают необязательное наличие):
date [ ОПЦИИ ] . [ +ФОРМАТ ]
Ниже представлена таблица с часто применяемыми опциями для date.
Опция | Длинный вариант | Значение |
---|---|---|
-d STRING | —date=STRING | Вывод даты по указанной строке (например ‘yesterday’, ‘tomorrow’, ‘last monday’). |
-I | —iso-8601[=FMT] | Вывод даты в формате ISO 8601. FMT по умолчанию содержит ‘date’. Также может содержать ‘hourse’, ‘minutes’, ‘seconds’, ‘ns’ для отображения соответствующих значений и часовой пояс относительно UTC рядом с датой. |
—rfc-3339=FMT | Вывод даты в формате RFC 3339. FMT по умолчанию содержит ‘date’. Также может содержать ‘seconds’ и ‘ns’ для отображения секунд или наносекунд. | |
-r FILE | —reference=FILE | Вывод даты последней модификации указанного файла в формате по умолчанию. |
-u | —utc | Вывод UTC-даты |
Аргумент ФОРМАТ отвечает за форматирование вывода даты. Для его указания необходимо поставить знак «+» и написать нужную маску. Наиболее популярные форматы:
Формат | Значение |
---|---|
%% | Знак процента |
%a | День недели текущей локали в короткой форме («Чтв») |
%A | День недели текущей локали в длинной форме («Четверг») |
%b | Месяц года текущей локали в короткой форме в родительном падеже («янв») |
%B | Месяц года текущей локали в длинной форме в родительном падеже («января») |
%c | Дата и время текущей локали без указания часового пояса |
%С | Первые две цифры текущего года |
%d | Числовой день месяца с ведущим нулём |
%D | Дата в формате %m/%d/%y |
%e | День месяца; аналог %_d |
%F | Дата в формате %Y-%m-%d |
%h | Аналог %b |
%H | Часы (00..23) |
%I | Часы (01..12) |
%j | День года (001..366) |
%m | Месяц (01..12) |
%M | Минуты (00..59) |
%n | Новая строка |
%q | Квартал года |
%S | Секунды (00..59) |
%t | Знак табуляции |
%T | Время в формате %H:%M:%S |
%u | Числовой день недели; 1 — понедельник |
%x | Дата в локальном формате |
%X | Время в локальном формате |
%Z | Аббревиатура временной зоны |
Примеры использования date
Введем команду без параметров.
Будет отображена текущая дата и время в соответствии с настройками локали системы.
Команда date без параметров по умолчанию применяет маску %a %b %d %X %Z. Поскольку все форматы должны быть переданы как один параметр (из-за принципа обработки данных командным интерпретатором Bash), пробелы между ними необходимо экранировать обратным слэшем (\) или взять в кавычки.
Особое внимание следует уделить параметру -d (—date). Его функциональность не слишком очевидна, но при этом наиболее обширна.
Пример 1. Вычисление даты по числу секунд, прошедших с 1 января 1970 года.
Пример 2. Вычисление даты и времени следующего понедельника при указании часового пояса Нью-Йорка в 03:00.
date —date=’TZ=»America/New_York» 03:00 next mon’
Обратите внимание: указывать название дня недели или месяца можно в любом регистре, в короткой или длинной форме. Параметры next и last обозначают следующий и прошедший, соответственно, ближайшие дни недели.
Пример 3. Если текущий день месяца — последний, сформировать отчет о занятости дискового пространства корневого и домашнего каталога в файл report.
#!/bin/bash
if [[ $(date —date=’next day’ +%d) = ’01’ ]]; then
df -h / /home > report
Такой скрипт можно использовать для автоматизации работы с помощью демона crontab или anacron.
Выводы
Команда date Linux является эффективным инструментом работы с датой и временем, с широкой возможностью их расчёта для прошедших или будущих показателей. Также она применяется в написании сценариев в командном интерпретаторе Bash.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как узнать текущее время Linux
Иногда знание текущего времени на компьютере играет большую роль, например, при отслеживании выполнения тех или иных процессов. И далеко не всегда нужную информацию можно посмотреть через системный интерфейс Linux. Поэтому существуют различные команды для терминала.
В данной статье мы расскажем про то, как узнать текущее время Linux. Заодно упомянем тему часовых поясов и синхронизацию с серверами времени.
Текущее время Linux
В системе Linux есть три удобных утилиты для определения точного времени. Наиболее продвинутой из них можно назвать date. Но и остальные имеют свои особенности.
С помощью date
Чтобы получить общую информацию, выполните команду:
Сначала выводится дата (день-число-месяц-год), время в 12-часовом формате с пометками AM (до полудня) и PM (после полудня) и часовой пояс. Информацию можно вывести в мировом UTC-формате:
Форматирование задается после знака +. Первый символ после знака % интерпретируется как один из модификаторов. А остальные символы выводятся как обычный текст. Этим можно пользоваться:
date +’Какой сегодня день? Сегодня %e число %m месяца %Y года’
Еще один пример – вывод даты в кратком виде и времени в 24-часовом формате:
Ну и не совсем стандартный вариант – вывести, какой это по счету день в году, и сам год:
date +’Сегодня %j день %Y года’
данной статьей. В ней детально описан синтаксис, опции, форматирование вывода и конкретные примеры использования. А мы переходим к следующему способу.
2. С помощью hwclock
Вообще утилита hwclock используется для настройки даты и времени в системе Linux. Но еще она подходит для простого вывода этой информации. Запускать ее следует с правами супер-пользователя:
Обратите внимание на формат вывода времени. Он включает в себя еще и миллисекунды. И через дефис указывается часовой пояс. По умолчанию это UTC. Ну а для вывода локального времени нужно добавить к команде опцию —localtime:
3. С помощью timedatectl
Еще один вариант просмотра текущего времени – использование утилиты timedatectl. Достаточно ввести команду в терминале:
Помимо даты и времени, здесь есть следующие интересующие нас поля:
- Time zone – часовой пояс.
- System clock synchronized – синхронизация часов с сервером.
- NTP service – подключение к серверу точного времени.
Выводы
Каждый из упомянутых в статье способов Как узнать текущее время Linux имеет свои особенности. Для утилиты date можно детально настроить форматирование вывода. hwclock подходит для беглого просмотра информации, ведь в основном используется для настройки. А через timedatectl получится узнать еще и статус синхронизации часов.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Вывод даты и времени в Linux
Для отображения текущей даты и времени в операционной системе Linux с помощью командной строки используйте команду date или команду timedatectl. Эти команды также могут отображать текущее время / дату в заданном ФОРМАТЕ. Мы также можем установить системную дату и время от имени пользователя root.
Синтаксис
Откройте приложение терминала и введите следующую команду:
Команда Date вернет следующий результат
Вы можете отформатировать дату следующим образом в формате dd-mm-yy:
Простое отображение текущего времени в Linux:
Чтобы вывести дату позавчерашнего дня, выполните:
Хотите узнать день года Рождества в текущем году? Попробуйте:
Выведите полное название текущего месяца и день месяца:
Получение текущего времени в секундах с момента наступления эпохи Linux
Отображение даты и времени в Linux с помощью команды timedatectl
В большинстве современных дистрибутивов Linux с системой systemd используется команда timedatectl. Она используется для запроса и изменения системных часов и их настроек, а также для включения или отключения служб синхронизации времени. Все, что вам нужно сделать, это ввести следующую команду:
Переменная среды TZ
Среда TZ сообщает Linux, в каком часовом поясе вы находитесь. Во многих случаях, когда вы хотите временно изменить часовой пояс. Например, вы можете захотеть вывести текущую дату и время в часовом поясе «America/Los_Angeles», хотя вы находитесь в «Europe/London». Чтобы установить TZ, при использовании TCSH/CSH выполните следующую команду:
TZ="America/Los_Angeles" date TZ="Asia/Tokyo" date
timedatectl list-timezones
timedatectl list-timezones | more
timedatectl list-timezones | grep -i Hong_kong
timedatectl list-timezones | grep -i paris
timedatectl list-timezones | grep -E -i 'paris|london|kolkata'
Инструмент с графическим интерфейсом: Администрирование времени
Инструмент администрирования времени позволяет вам установить время, дату и часовой пояс вашей системы, а также установить любой сервер времени для синхронизации вашего локального сервера времени. Введите следующую команду, чтобы запустить инструмент администрирования времени:
gnome-control-center datetime
Вам может быть предложено ввести пароль администратора (пароль root), это необходимо, так как изменения, сделанные с помощью этого инструмента, повлияют на всю систему.
Как изменить настройки даты и времени в рабочем столе Linux на базе Gnome
Во-первых, вам нужно Настройки в Деятельности, а затем нажмите Детали в боковой панели. Обязательно нажмите Дата и время в боковой панели, чтобы открыть панель:
Заключение
В этом кратком руководстве вы узнали о команде date, которую можно использовать для просмотра или изменения даты/времени в операционных системах Linux. Далее мы объяснили, как использовать инструменты графического интерфейса. Команда date имеет множество дополнительных опций. Посмотрите страницу man, набрав следующую команду man:
man date man bash man ksh man timedatectl