Як показати дату і час у терміналі Linux (і використовувати його в скриптах Bash)
Команда date знаходиться в оболонці Bash, яка є типовою оболонкою у більшості дистрибутивів Linux і навіть у macOS. З цього туториалу ви дізнаєтеся, як впоратися з date в командному рядку і як його використовувати в сценаріях оболонки, щоб робити більше, ніж просто друкувати час.
- Параметри показу дати і часу
- Варіанти показу дати
- Варіанти відображення дня
- Параметри відображення тижня
- Варіанти відображення місяця
- Варіанти відображення року
- Параметри показу часу
- Варіанти відображення години
- Варіанти відображення хвилин
- Параметри відображення секунд
- Параметри для відображення інформації про часовий пояс
- Параметри форматування
- Параметри для зміни інших параметрів
- Ще дві акуратні хитрощі
- Використання дати у скриптах
Запустіть команду date, щоб побачити цю інформацію. Він друкує поточну дату і час для вашого часового поясу:
Дата
Типове форматування виглядає трохи безглуздо. Чому рік не друкується після місяця і дня, а не позначається в кінці за часовим поясом? Не бійтеся: якщо ви контролюєте формат виводу, який ви хочете, date доставляє його в піки. Існує більше 40 параметрів, які ви можете передати на date щоб дати йому команду відформатувати висновок точно так, як вам би хотілося.
Щоб використовувати будь-який з параметрів, введіть date, пробіл, знак плюс + і параметр, що включає початковий знак відсотка. Параметр% c (дані і час у форматі локалі) дозволяє друкувати дату і час у нормалізованому форматі, пов "язаному з вашою локаллю. Ваш регіон визначається географічною та культурною інформацією, наданою вами при установці операційної системи. Мова управляє такими речами, як символ валюти, розміри паперу, часовий пояс та інші культурні норми.
дата +% c
Тепер рік виглядає більш природним у результатах.
Ви можете передати декілька варіантів на date одночасно. Послідовність параметрів називається форматним рядком. Щоб побачити назву дня (% A), день місяця (% d) і назву місяця (% B), скористайтеся цією командою:
дата +% A% d% B
Це спрацювало, але це негарно. Немає проблем, ми можемо включати пробіли, якщо укласти весь рядок формату в лапки. Зауважте, що + виходить за лапки.
дата + ""% A% d% B "
Ви можете додати текст до рядка формату, наприклад:
дата + «» Сьогодні:% A% d% B"
Прокрутка вгору і вниз за сторінкою довідника по date пошуках потрібного варіанту незабаром стає втомливою. Ми розподілили варіанти по групах, щоб вам було легше їх знайти.
Параметри показу дати і часу
- % c: друкує дату і час у форматі вашої локалі, включаючи часовий пояс.
Варіанти показу дати
- % D: друк дати у форматі мм/д/рр.
- % F: друк дати у форматі гггг-мм-дд.
- % x: друкує дату у форматі вашої локалі.
Варіанти відображення дня
- % a: друкує назву дня, скорочено понеділок, вівторок, середа тощо.
- % A: друкує повну назву дня, понеділок, вівторок, середа тощо.
- % u: друкує номер дня тижня, де понеділок = 1, вівторок = 2, середа = 3 тощо.
- % w: друкує номер дня тижня, де неділя = 0, понеділок = 1, вівторок = 2 тощо.
- % d: друкує день місяця з початковим нулем (01, 02... 09), якщо потрібно.
- % e: друкує день місяця з початковим пробілом («1», «2»... «9»), якщо потрібно. Зверніть увагу, апострофи не друкуються.
- % j: друкує день року з двома провідними нулями, якщо потрібно.
Параметри відображення тижня
- % U: друкує номер тижня в році, вважаючи неділю першим днем. Наприклад, третій тиждень року, двадцятий тиждень року тощо.
- % V: друкує номер тижня ISO року, вважаючи понеділок першим днем.
- % W: номер тижня в році, вважаючи понеділок першим днем цього тижня.
Варіанти відображення місяця
- % b або% h: друк назви місяця, скороченого до січня, лютого, березня тощо.
- % B: друкує повну назву місяця, січня, лютого, березня тощо.
- % m: друкує номер місяця з початковим нулем, якщо потрібно 01, 02, 03... 12.
Варіанти відображення року
- % C: друк століття без року. У 2019 році буде надруковано 20.
- % y: друкує рік у вигляді двох цифр. у 2019 році він надрукує 19.
- % Y: друкує рік у вигляді чотирьох цифр.
Параметри показу часу
- % T: друкує час у форматі ЧЧ: ММ: СС.
- % R: друк годин і хвилин у форматі ЧЧ: ММ без секунд з використанням 24-годинних годин.
- % r: друкує час згідно з вашою локаллю з використанням 12-годинних годин та індикатора am або pm.
- % X: друкує час відповідно до вашої локалі, використовуючи 24-годинний годинник. Нібито. Зауважте, що під час тестування цей параметр вів себе так само, як% r, як показано нижче. На машині Linux, налаштованій для локалі у Великобританії і налаштованої на GMT, вона друкувала час, використовуючи 24-годинний годинник без індикатора AM або PM, як і очікувалося.
Варіанти відображення години
- % H: друк годин 00, 01, 02... 23.
- % I: друк години з використанням 12-годинних годин, 00, 01, 02... 12, з початковим нулем, якщо потрібно.
Варіанти відображення хвилин
- % M: друкує хвилини, 01, 02, 03... 59, з початковим нулем, якщо потрібно.
Параметри відображення секунд
- % s: друкує кількість секунд з 1970-01-01 00:00:00, початку епохи Unix.
- % S: друк секунд 01, 02, 03... 59 з початковим нулем, якщо потрібно.
- % N: друкує наносекунди.
Параметри для відображення інформації про часовий пояс
- % z: друкує різницю в часі між часовим поясом і UTC.
- %: z: друкує різницю в часі між вашим часовим поясом і UTC, з: між годинами і хвилинами. Зверніть увагу: між знаком% і z.
- %:: z: друкує різницю в часі між вашим часовим поясом і UTC, з: між годинами, хвилинами і секундами. Зверніть увагу на:: між знаком% і z.
- % Z: друк літерної назви часового поясу.
Параметри форматування
- % p: друк індикатора AM або PM у верхньому регістрі.
- % P: друк індикатора am або pm у нижньому регістрі. Зверніть увагу на причуду з цими двома варіантами. Рядкова буква p дає вивід у верхньому регістрі, прописна буква P нижньому.
- % t: друк вкладки.
- % n: друкує новий рядок.
Параметри для зміни інших параметрів
Ці модифікатори можна вставити між% і буквою параметра інших параметрів, щоб змінити їх відображення. Наприклад,% -S вилучить початковий нуль для однозначних секундних значень.
- —: Один дефіс запобігає заповненню нулями однозначних значень.
- _: поодиноке підкреслення додає початкові пробіли для однозначних значень.
- 0: забезпечує початкові нулі для однозначних значень.
- ^: Якщо можливо, використовується верхній регістр (не всі параметри враховують цей модифікатор).
- #: Використовуйте варіант, протилежний регістру за замовчуванням, якщо це можливо (не всі параметри враховують цей модифікатор).
Ще дві акуратні хитрощі
Щоб отримати час останньої зміни файла, скористайтеся пунктом -r (посилання). Зауважте, що тут використовується знак - (дефіс) замість знака%, і для нього не потрібен знак +. Спробуйте цю команду у вашій домашній теці:
date -r.bashrc
Налаштування TZ дозволяє змінити часовий пояс на час однієї команди.
TZ = дата за Гринвічем +% c
Використання дати у скриптах
Увімкнення скрипту оболонки Bash для друку часу і дати тривіально. Створіть текстовий файл з наступним вмістом і збережіть його як gd.sh
# !/Bin/^
СЬОГОДНІ = $ (дата + «» Сьогодні% A,% d% B «»)
TIMENOW = $ (дата + «» Місцевий час% r «»)
TIME_UK = $ (TZ = BST date + «» Час у Великобританії% r «»)
Ехо $ СЬОГОДНІ
echo $ TIMENOW ехо
$ TIME_UK
Введіть наступну команду, щоб встановити права на виконання і зробити виконуваний скрипт.
chmod + x gd.sh
Запустіть скрипт за допомогою цієї команди:
./gd.sh
Ми можемо використовувати команду date для надання мітки часу. Показаний скрипт створить каталог з позначкою часу в якості імені. Потім він копіює всі текстові файли з поточної теки. Періодично запускаючи цей скрипт, ми можемо зробити знімок наших текстових файлів. З часом ми створимо ряд тек з різними версіями наших текстових файлів.
Зверніть увагу, що це не надійна система резервування, а просто для наочності.
Створіть текстовий файл з наступним вмістом і збережіть його як snapshot.sh.
# !/Bin/^
# отримати дату і час
date_stamp = $ (дата + «»% F-% H-% M-% S «»)
# створити каталог з такою назвою
mkdir «» $ date_stamp «#
скопіювати до нього файли з поточної теки
cp * .txt» «$ date_stamp»
# все готове, доповісти і вийти
echo «» Текстові файли скопійовані до каталогу:"" $ date_stamp
Введіть наступну команду, щоб встановити права на виконання і зробити виконуваний скрипт.
chmod + x snapshot.sh
Запустіть скрипт за допомогою цієї команди:
./snapshot.sh
Ви побачите, що каталог було створено. Його ім'я - це дата і час виконання сценарію. У цьому каталозі містяться копії текстових файлів.
Якщо трохи подумати і проявити креативність, навіть команда смиренного date може бути ефективно використана.








