Статьи

Команди для роботи з датою і часом

date

Команда date без параметрів виводить дату і час на стандартний пристрій виводу stdout. Вона стає набагато цікавіше при використанні додаткових ключів форматування виводу.

Приклад 12-7. команда date

#! / Bin / bash # Приклади використання команди 'date' echo "Кількість днів, що минули з початку року:` date +% j`. " # Символ '+' обов'язковий при використанні форматує аргументу #% j, що повертає кількість днів, що пройшли з початку року. echo "Кількість секунд, які пройшли з 01/01/1970:` date +% s`. " #% S кількість секунд, що пройшли з початку "епохи UNIX", # + але наскільки цей ключ корисний? prefix = temp suffix = `eval date +% s` # Ключ" +% s "характерний для GNU-версії 'date'. filename = $ prefix. $ suffix echo $ filename # Прекрасний спосіб отримання "унікального" імені для тимчасового файлу, # + навіть краще, ніж з використанням $$. # Додаткову інформацію ви знайдете в 'man date'. exit 0

Ключ -u дає UTC час (Universal Coordinated Time - час за Гринвічем).

bash $ date Fri Mar 29 21:07:39 MST 2002 bash $ date -u Sat Mar 30 4:07:42 UTC 2002
zdump

Показує час для зазначеної тимчасової зони.

bash $ zdump EST EST Tue Sep 18 22:09:22 2001 EST
time

Виводить докладну статистику по виконанню деякої команди.

time ls -l / дасть щось подібне:

0.00user 0.01system 0: 00.05elapsed 16% CPU (0avgtext + 0avgdata 0maxresident) k 0inputs + 0outputs (149major + 27minor) pagefaults 0swaps

Див. Так само дуже схожу команду times , Обговорювалася в попередньому розділі.

Так само дуже схожу команду   times   , Обговорювалася в попередньому розділі

Починаючи з версії 2.0 Bash, команда time стала зарезервованим словом інтерпретатора, з трохи зміненим поведінкою в конвеєрі.

touch

Утиліта встановлює час останнього звернення / зміни файлу в поточний системний час або в заданий час, але так само може використовуватися для створення нового пустого файлу. Команда touch zzz створить новий порожній файл з ім'ям zzz, якщо перед цим файл zzz був відсутній. Крім того, такі порожні файли можуть використовуватися для індикації, наприклад, часу останнього зміни в проекті.

Крім того, такі порожні файли можуть використовуватися для індикації, наприклад, часу останнього зміни в проекті

Еквівалентом команди touch можуть служити: >> newfile або >> newfile (для звичайних файлів).

at

Команда at - використовується для запуску завдань в заданий час. У загальних рисах вона нагадує crond , Однак, at використовується для одноразового запуску набору команд.

at 2pm January 15 - попросить ввести набір команд, які необхідно запустити в зазначений час. Ці команди повинні бути сумісними зі сценаріями командної оболонки. Введення завершується натисканням комбінації клавіш Ctl-D .

Ключ -f або операція перенаправлення вводу (<), змушує at прочитати список команд з файлу. Цей файл повинен представляти із себе звичайний сценарій, на мові командної оболонки і, само собою зрозуміло, такий сценарій повинен бути неінтерактивному. Може використовуватися спільно з командою run-parts для запуску різних наборів сценаріїв.

bash $ at 2:30 am Friday <at-jobs.list job 2 at 2000-10-27 2:30
batch

Команда batch, керуюча запуском завдань, нагадує команду at, але запускає список команд тільки тоді, коли завантаженість системи впаде нижче .8. Подібно команді at, з ключем -f, може зчитувати набір команд з файлу.

cal

Виводить на stdout акуратно відформатований календар на поточний місяць. Може виводити календар за певний рік.

sleep

Зупиняє виконання сценарію на задану кількість секунд, нічого не роблячи. Може використовуватися для синхронізації процесів, запущених у фоновому режимі, перевіряючи наступ очікуваної події так часто, як це необхідно. наприклад, приклад 29-6 .

sleep 3 # Пауза, тривалістю в 3 секунди.
sleep 3 # Пауза, тривалістю в 3 секунди

Команда sleep за замовчуванням приймає кількість секунд, але їй можна передати і кількість годин і хвилин і навіть днів.

sleep 3 h # Призупинення на 3 години!
sleep 3 h # Призупинення на 3 години

Для запуску команд через задані інтервали часу краще використовувати watch .

usleep

Microsleep (тут символ повинен читатися як буква грецького алфавіту -, або префікс мікро). Це те ж саме, що і sleep, тільки інтервал часу задається в мікросекундах. Може використовуватися для дуже тонкої синхронізації процесів.

usleep 30 # Призупинення на 30 мікросекунд.

Ця команда є частиною пакета initscripts / rc-scripts в дистрибутиві Red Hat.

Ця команда є частиною пакета initscripts / rc-scripts в дистрибутиві Red Hat

Команда usleep не забезпечує особливу точність дотримання інтервалів, і тому вона не підходить для застосувань, критичних до часу.

hwclock,clock

Команда hwclock використовується для отримання доступу або корекції апаратних годин комп'ютера. З деякими ключами вимагає наявності привілеїв root. Сенара /etc/rc.d/rc.sysinit використовує команду hwclock для установки системного часу під час завантаження.

Команда clock - це синонім команди hwclock.

S кількість секунд, що пройшли з початку "епохи UNIX", # + але наскільки цей ключ корисний?

Новости