Команда date linux изменить время

Команда date в Linux

В этом руководстве мы рассмотрим основы команды date .

Команда date отображает или устанавливает системную дату. Чаще всего он используется для печати даты и времени в различных форматах и вычисления будущих и прошлых дат.

Использование команды date в Linux

Синтаксис команды date следующий:

Чтобы отобразить текущее системное время и дату с использованием форматирования по умолчанию, вызовите команду без каких-либо параметров и аргументов:

Вывод включает день недели, месяц, день месяца, время, часовой пояс и год:

Sat Jun 1 14:31:01 CEST 2019 

Параметры форматирования даты

Выходные данные команды date могут быть отформатированы с помощью последовательности символов управления форматом, которым предшествует знак + . Элементы управления форматом начинаются с символа % и заменяются своими значениями.

date +"Year: %Y, Month: %m, Day: %d"

Символ %Y будет заменен годом, %m месяцем, а %d — днем месяца:

Year: 2019, Month: 06, Day: 02 

Ниже приведен небольшой список некоторых наиболее распространенных символов форматирования:

  • %a — сокращенное короткое название дня недели для локали (например, Mon)
  • %A — сокращенное полное название дня недели (например, понедельник).
  • %b — сокращенное краткое название месяца локали (например, январь)
  • %B — сокращенное длинное название месяца локали (например, январь)
  • %d — День месяца (например, 01)
  • %H — час (00..23)
  • %I — Час (01..12)
  • %j — День года (001..366)
  • %m — Месяц (01..12)
  • %M — Минута (00..59)
  • %S — Секунда (00..60)
  • %u — День недели (1..7)
  • %Y — полный год (например, 2019)

Чтобы получить полный список всех параметров форматирования, запустите в терминале date —help или man date .

Строка даты

Параметр -d позволяет вам работать с определенной датой. Вы можете указать дату в виде удобочитаемой строки даты, как показано ниже:

Sun Feb 7 12:10:53 CET 2010 

Используя произвольное форматирование:

date -d '16 Dec 1974' +'%A, %d %B %Y'

Строка даты принимает такие значения, как «завтра», «пятница», «последняя пятница», «следующая пятница», «следующий месяц», «следующая неделя» и т. Д.

Sat May 25 14:31:42 CEST 2019 

Вы также можете использовать опцию строки даты, чтобы показать местное время для разных часовых поясов. Например, чтобы показать местное время на 6:30 утра следующего понедельника на восточном побережье Австралии, введите:

date -d 'TZ="Australia/Sydney" 06:30 next Monday'
Sun Jun 2 22:30:00 CEST 2019

Отменить часовой пояс

Команда date возвращает дату в часовом поясе системы по умолчанию. Чтобы использовать другой часовой пояс, установите переменную среды TZ на нужный часовой пояс.

Читайте также:  Debian gnu linux password

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

TZ='Australia/Melbourne' date
Sat Jun 1 22:35:10 AEST 2019 

Чтобы /usr/share/zoneinfo список всех доступных часовых поясов , вы можете либо перечислить файлы в каталоге /usr/share/zoneinfo либо использовать команду timedatectl list-timezones .

Конвертер эпохи

Команду date можно использовать как конвертер эпохи. Эпоха или временные метки Unix — это количество секунд, прошедших с 1 января 1970 года в 00:00:00 UTC.

Чтобы напечатать количество секунд от эпохи до текущего дня, вызовите date с помощью элемента управления форматом %s :

Чтобы преобразовать секунды с начала эпохи до даты, установите секунды как строку даты с префиксом @ :

Sat Feb 14 00:31:30 CET 2009 

Использование date с другими командами

Команда date наиболее часто используется для создания имен файлов , содержащих текущее время и дату.

Приведенная ниже команда создаст файл резервной копии Mysql в следующем формате database_name-20190601.sql

mysqldump database_name > database_name-$(date +%Y%m%d).sql

Вы также можете использовать команду date в сценариях оболочки. В приведенном ниже примере мы назначаем вывод date переменной date_now :

date_now=$(date "+%F-%H-%M-%S") echo $date_now 

Отображение времени последнего изменения файла

Команда date с параметром -r показывает время последней модификации файла. Например:

Tue Jul 24 11:11:48 CEST 2018 

Если вы хотите изменить временную метку файла, используйте touch команду .

Установите системное время и дату

Установка системного времени и даты вручную с помощью команды date не рекомендуется, поскольку в большинстве дистрибутивов Linux системные часы синхронизируются с помощью служб ntp или systemd-timesyncd .

Однако, если вы хотите установить системные часы вручную, вы можете использовать параметр —set= . Например, если вы хотите установить дату и время на 17:30 1 июня 2019 г., введите:

Выводы

Команда Linux date отображает или устанавливает системные дату и время.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Команда date в Linux

В Linux команда date отображает и устанавливает системную дату и время, позволяет выводить время в различных форматах и ​​вычислять будущие и прошлые даты.

Примеры использования команды date в Linux

Синтаксис

Опции

-d, —date=СТРОКА Показать не текущее время, а время, описанное заданной СТРОКОЙ —debug Описывать разбираемую дату и предупреждать о сомнительном использовании в stderr -f, —file=ФАЙЛ Как —date для каждой строки из ФАЙЛА -I[ФОРМ_ВРЕМЕНИ], —iso-8601[=ФОРМ_ВРЕМЕНИ] Вывод даты/времени в формате ISO 8601. Только дату, если ФОРМ_ВРЕМЕНИ=»date»» (по умолчанию), «hours», «minutes», «seconds» или «ns» для получения даты и времени с нужной точностью. Пример: 2006-08-14T02:34:56-06:00 —resolution Вывести доступное разрешение временных меток Пример: 0.000000001 -R, —rfc-email Выводить дату и время в соответствии с RFC-2822. Пример: Mon, 14 Aug 2006 02:34:56 -0600 —rfc-3339=СПЕЦ Вывести дату/время в формате RFC 3339 СПЕЦ=»date», «seconds» или «ns» для получения даты и времени с указанной точностью. Пример: 2006-08-14 02:34:56-06:00 -r, —reference=ФАЙЛ Показать время последнего изменения ФАЙЛА -s, —set=СТРОКА Установить время, описанное СТРОКОЙ -u, —utc, —universal Показать или установить универсальное координированное время (UTC)

Читайте также:  Дистрибутив linux mint iso

Параметры формата

Воспринимаются следующие последовательности:

%% Знак % %a Сокращённое название дня недели (напр., вск) согласно локали %A Полное название дня недели (напр., понедельник) согласно локали %b Сокращённое название месяца (напр., янв) согласно локали %B Полное название месяца (напр., январь) согласно локали %c Время и дата (напр., Чтв 3 Мар 23:05:25 2005) согласно локали %C Век; как %Y, но не указываются две последние цифры (напр., 20) %d День месяца (напр., 01) %D Дата; аналогично %m/%d/%y %e День месяца, дополненный пробелами; аналогично %_d %F Полная дата; эквивалентно %+4Y-%m-%d %g Последние две цифры года для номера недели ISO (см. %G) %G Год для номера недели ISO (см. %V); обычно бывает полезно только с %V %h То же, что и %b %H Час (00..23) %I Час (01..12) %j Номер дня в году (001..366) %k Час, дополняется пробелом ( 0..23); то же, что и %_H %l Час, дополняется пробелом ( 1..12); то же, что и %_I %m Месяц (01..12) %M Минуты (00..59) %n Новая строка %N Наносекунды (000000000..999999999) %p Эквивалент AM или PM согласно локали; пусто, если неизвестно %P Как %p, но строчными буквами %q Квартал года (1..4) %r Время согласно локали, 12-часовой формат (напр., 11:11:04 PM) %R Часы и минуты согласно локали, 24-часовой формат; аналог %H:%M %s Число секунд с начала эпохи (1970-01-01 00:00:00 UTC) %S Секунда (00..60) %t Табуляция %T Время, аналог %H:%M:%S %u День недели (1..7); 1 обозначает понедельник %U Номер недели в году, если первый день недели — воскресенье (00..53) %V Номер недели по ISO, если первый день недели — понедельник (01..52) %w День недели (0..6), 0 означает воскресенье %W Номер недели в году, если первый день недели — понедельник (00..53) %x Представление даты (напр., дд/мм/гг) согласно локали %X Представление времени (напр., 23:13:48) согласно локали %y Последние две цифры года (00..99) %Y Год %z +ччмм часового пояса (напр., -0400) %:z +чч:мм часового пояса (напр., -04:00) %::z +чч:мм:сс часового пояса (напр., -04:00:00) %. z Часовой пояс с достаточным количеством двоеточий (напр., -04, +05:30) %Z Буквенная аббревиатура часового пояса (напр., EDT)

По умолчанию команда date дополняет числовые поля нулями. После % могут идти следующие необязательные флаги:

— (дефис) не дополнять это поле _ (подчёркивание) дополнять пробелами 0 (нуль) дополнять нулями + дополнять нулями и помещать «+» перед будущими годами >4 цифр ^ использовать верхний регистр, если возможно # использовать противоположный регистр, если возможно

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

E Если возможно, использовать альтернативное представление для текущей локали O Если возможно, использовать альтернативные числовые символы локали

Читайте также:  Модулями ядра драйверы linux

Использование команды date в Linux

Текущее системное время и дата

Для того чтобы показать текущее системное время и дату, введите команду date без опций:

oleg@mobile:~:$ date Вс 06 ноя 2022 13:38:12 EET oleg@mobile:~:$ 

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

Заданное время и дата

В данном случае используется опция -d :

oleg@mobile:~:$ date -d "2001-12-31 23:59:59"09:10:15" Пн 31 дек 2001 23:59:59 EET oleg@mobile:~:$ 

Эта команда конечно же не влияет на фактические значения даты и времени в системе и выводит лишь запрошенную дату и время.

Установка или изменение даты

Вы можете изменить системные часы вручную. Например, чтобы установить дату и время на 07:30 11 мая 1999 г., введите:

oleg@mobile:~:$ date --set="19991011 07:30" 

При выполнении этой команды будьте осторожны, так как на многих дистрибутивах Linux системные часы синхронизируются с помощью служб ntp или systemd-timesyncd.

Вывод прошлых дат

Для отображения прошлых дат в Linux используйте опцию —date со следующими значениями: «tomorrow», «Friday», «last Friday», «next Friday», «next week» и подобными.

oleg@mobile:~:$ date --date="2 weeks ago" Вс 23 окт 2022 15:20:05 EEST oleg@mobile:~:$ 
oleg@mobile:~:$ date --date="yesterday" Сб 05 ноя 2022 14:21:45 EET oleg@mobile:~:$ 
oleg@mobile:~:$ date --date="3 hours ago" Вс 06 ноя 2022 11:22:33 EET oleg@mobile:~:$ 

Вывод будущих дат

oleg@mobile:~:$ date --date="3 day" Ср 09 ноя 2022 14:27:08 EET oleg@mobile:~:$ 
oleg@mobile:~:$ date --date="tomorrow" Пн 07 ноя 2022 14:25:57 EET oleg@mobile:~:$ 

Переопределение часового пояса

По умолчанию команда date использует часовой пояс, определенный в /etc/localtime . Для использования другого часового пояса установите переменную TZ в желаемый часовой пояс.

Можно, например, установить в системе нью-йоркское время:

oleg@mobile:~:$ TZ='America/New_York' date

Увидеть все доступные часовые пояса позволит следующая команда:

oleg@mobile:~:$ timedatectl list-timezones list-timezones Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Asmera Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau Africa/Blantyre Africa/Brazzaville Africa/Bujumbura Africa/Cairo Africa/Casablanca Africa/Ceuta Africa/Conakry Africa/Dakar Africa/Dar_es_Salaam Africa/Djibouti Africa/Douala Africa/El_Aaiun Africa/Freetown Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Juba Africa/Kampala Africa/Khartoum Africa/Kigali Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Lome Africa/Luanda Africa/Lubumbashi Africa/Lusaka Africa/Malabo lines 1-38

Использование date вместе с другими командами

Вы можете использовать команду date для создания имен файлов, содержащих текущее время и дату.

В Linux команда date с успехом используется в скриптах. Я, например, использую её для автоматического создания резервных копий баз данных.

Содержимое моего файла linuxcookbookru_dump.sh :

oleg@mobile:~/www/backuplinode:$ cat linuxcookbookru_dump.sh #!/bin/bash date=%% cd /home/mensh/www/backup && \ mysqldump --opt -umensh -pPASSWORD \ linuxcookbookru > linuxcookbookru_linode_`date '+%Y%m%d'`.sql && \ tar cjvf linuxcookbookru_linode_`date '+%Y%m%d'`.sql.bz2 linuxcookbookru_linode_`date '+%Y%m%d'`.sql && \ rm linuxcookbookru_linode_`date '+%Y%m%d'`.sql

Выводы

В этой статье я изложил основные приёмы использования в Linux команды date . Теперь вы наверняка понимаете насколько полезна эта команда.

Источник

Оцените статью
Adblock
detector