9 практических примеров команды даты в Linux

Встречайте команду даты в Linux. Нет, романтический вечер не получится. Но он может отформатировать дату вверху любовного письма, которое вы написали в терминале. Достаточно близко? Давайте начнем.

Когда вы пишете скрипт в Bash, вам неизбежно придется печатать дату или время, и эта дата или время часто должны быть в определенном формате для удовлетворения требований других функций. Вот тогда и вступает в игру команда даты.

Как вы увидите, команда date в Linux одновременно проста и универсальна, что означает, что она принимает все виды ввода и генерирует даты во множестве форматов. Он также имеет другие специальные функции для различных вычислительных задач, связанных со временем. Параметры и синтаксис Learning date определенно сделают вас более опытными в написании сценариев и, возможно, более пунктуальными.

Базовый синтаксис команды даты

Базовый синтаксис команды даты следующий:

 date [OPTION]... [+FORMAT]

Это означает, что после ввода даты вы можете ввести параметр, например -d или -s , для вызова определенной функции, что мы объясним ниже.

Вы также можете дополнить их строками форматирования, которые всегда начинаются с символа + . Эти строки принимают определенные символы форматирования, также перечисленные ниже, для определения вывода.

Linux date Command Практические примеры

Команду date можно использовать несколькими способами. Давайте рассмотрим наиболее распространенные и полезные варианты использования одного и того же.

1. Получите текущую дату и время

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

 $ date
Mon 19 Apr 2021 12:41:17 PM CDT

Как видите, date дает вам актуальную информацию о дате и времени в простом и предсказуемом формате.

2. Определите дату в прошлом или будущем.

Скажем, в вашем скрипте вам нужно рассчитать время и дату, которые будут ровно через неделю. Команда date поможет вам. Выполните эту команду, используя параметр -d, чтобы получить подробную информацию, относящуюся к будущим датам:

 $ date -d "next week"
Tue 27 Apr 2021 05:21:07 PM CDT

Параметр -d , сокращение от date, – это то, где действительно сияет команда date. Он принимает множество настраиваемых строк даты; они могут быть техническими, например 20200315 , 15.03.20 , или читабельными, например 15 марта 2020 года . Но вы также можете использовать относительные термины, например, завтра , вчера , в следующее воскресенье и т. Д. Поиграйте с ним и посмотрите, как date интерпретирует различные входные строки.

3. Отформатируйте дату

Вы могли заметить в предыдущих двух примерах, что дата по умолчанию имеет очень определенный формат времени. Так что, если вам это нужно в другом формате?

Вы можете отформатировать свой вывод аналогично команде printf . Например, вы можете распечатать текущий год с помощью этой команды:

 date +"Year: %Y"

Знак + сигнализирует о том, что вам нужна отформатированная строка, и все, что появляется после кавычек , date будет обрабатывать и форматировать для вывода.

Вот список символов форматирования, которые вы, скорее всего, будете использовать:

Форматирование символа Выход
%ЧАС Час (00-24)
Час (01-12)
% M Минуты (00-59)
% S Второй (00-60)
%п До или после полудня
% А Полное название дня недели (например, воскресенье)
% а Сокращенное название дня недели (например, вс)
% w Номер дня недели (0-6)
% d День месяца (01-31)
% j День года (001-366)
% B Полное название месяца (например, январь)
% b Сокращенное название месяца (например, январь)
% m Номер месяца (01-12)

Вы можете получить полный список символов форматирования, используя параметр –help в терминале.

 date --help

4. Определите день недели

Одним из очень распространенных и практичных способов использования форматирования даты является получение дня недели для любой заданной даты. Например, чтобы проверить, на какой день недели выпал 4 ноября 1995 г., введите команду, подобную этой:

 $ date -d "1996-04-11" +"%A"
Friday

Параметр -d указывает, что вам нужна конкретная дата, строка «1996-04-11» указывает, какую дату вы хотите, а форматирование + «% A» указывает, что вы хотите указать день недели в выходных данных. Помните, что строка даты может быть в разных форматах, а не только в указанном здесь.

5. Получите всемирное координированное время

Установив флаг -u , вы можете получить текущее время в формате всемирного координированного времени (UTC).

 $ date -u
Wed 21 Apr 2021 12:46:59 PM UTC

6. Выведите местное время в другом часовом поясе.

Если вам нужно получить дату в любом другом часовом поясе, вы можете сделать это, установив переменную среды TZ = перед командой date.

Например, вы можете увидеть текущую дату и время в Mountain Standard Time (MST) с помощью следующей команды:

 $ TZ=MST date
Tue 20 Apr 2021 03:45:29 PM MST

Для ваших целей просто замените MST инициалами любого часового пояса, который вы предпочитаете. Вы также можете использовать нотацию UTC. Например, чтобы получить тот же часовой пояс, замените MST на UTC + 7 .

Кроме того, вы можете назвать континент и крупный город, чтобы узнать время по местному времени этого конкретного города. Например:

 $ TZ=America/Phoenix date
Tue 20 Apr 2021 03:45:29 PM MST

7. Получите время последнего изменения файла

Например, если вы создаете резервные копии, вам часто нужно получить дату последнего изменения файла. Вы можете сделать это, передав параметр -r и присвоив файлу имя.

 $ date -r /etc/shadow
Wed 14 Apr 2021 07:53:02 AM CDT

Вы также можете изменить временные метки файла с помощью сенсорной команды в Linux .

8. Вывод и преобразование времени эпохи

Вы можете рассчитать количество секунд, прошедших с эпохи Unix, с помощью следующей команды:

 $ date +%s
1618955631

Вы также можете обратить процесс и преобразовать время Unix в удобочитаемый формат с помощью параметра -d и символа @ .

 $ date -d @1618955631
Tue 20 Apr 2021 04:53:51 PM CDT

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

9. Временно установите системное время.

Вы можете изменить системные часы из терминала с помощью команды date, передав аргумент -s, за которым следует желаемое время. Например, вы можете установить системные часы на 24 часа в будущем с помощью следующей команды:

 date -s "tomorrow"

Обратите внимание, что для передачи этой команды вам потребуются привилегии sudo. Кроме того, изменение, вероятно, не будет постоянным (это означает, что ваши часы вернутся к предыдущему времени после перезагрузки), потому что большинство дистрибутивов используют другие утилиты для управления системными часами, которые отменяют изменение при загрузке.

Объяснение команды даты в Linux

Как и в жизни, в Linux невозможно уйти от времени. Вот почему так важно понимать, как его форматировать и использовать с помощью команды date. Одна вещь, с которой вы обязательно столкнетесь при управлении файлами Linux, – это различные временные метки, которые файлы несут с собой.