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 --help4. Определите день недели
Одним из очень распространенных и практичных способов использования форматирования даты является получение дня недели для любой заданной даты. Например, чтобы проверить, на какой день недели выпал 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 UTC6. Выведите местное время в другом часовом поясе.
Если вам нужно получить дату в любом другом часовом поясе, вы можете сделать это, установив переменную среды 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 MST7. Получите время последнего изменения файла
Например, если вы создаете резервные копии, вам часто нужно получить дату последнего изменения файла. Вы можете сделать это, передав параметр -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, – это различные временные метки, которые файлы несут с собой.