попытайтесь добавить-I до каталога палочки как -I/usr/local/include/ImageMagick/wand
или -I/usr/local/include/ImageMagick/wand/magick
Используйте date -s
:
date -s '2014-12-25 12:34:56'
Запустите это как root или под sudo
. Изменение только одного года / месяца / дня является более сложной задачей и потребует повторения битов текущей даты. Есть также инструменты даты с графическим интерфейсом, встроенные в основные среды рабочего стола, обычно доступные через часы.
Чтобы изменить только часть времени, вы можете использовать подстановку команды в строке даты:
date -s "2014-12-25 $(date +%H:%M:%S)"
изменит дату, но сохранит время. См. man date
для деталей форматирования для создания других комбинаций: отдельные компоненты: % Y
, % m
, % d
, ]% H
, % M
и % S
.
Вы изменяете дату командой дата
. Однако, команда ожидает полную дату в качестве аргумента:
# date -s "20141022 09:45"
Wed Oct 22 09:45:00 BST 2014
Для изменения части даты выведите текущую дату с той частью даты, которую вы хотите изменить, в виде строки, а все остальные - в виде переменных форматирования даты. Затем передайте ее команде дата -s
для установки:
# date -s "$(date +'%Y12%d %H:%M')"
Mon Dec 22 10:55:03 GMT 2014
меняет месяц на 12-й месяц - декабрь.
Форматы даты:
%Y
- Год%m
- Месяц%d
- День%H
- Час%M
- МинутаСистемное время
Для установки системной даты можно воспользоваться командой дата
. Реализация GNU date
(как в большинстве не встроенных систем на базе Linux) допускает множество различных форматов для установки времени, вот несколько примеров:
-устанавливает только год:
date -s 'next year'
date -s 'last year'
-устанавливает только месяц:
date -s 'last month'
date -s 'next month'
-устанавливает только день:
date -s 'next day'
date -s 'tomorrow'
date -s 'last day'
date -s 'yesterday'
date -s 'friday'
-устанавливает все вместе:
date -s '2009-02-13 11:31:30' #that's a magical timestamp
Аппаратное время
Теперь системное время установлено, но вы можете синхронизировать его с аппаратными часами:
Используйте - show
для печати аппаратного времени:
hwclock --show
Вы можете установить аппаратные часы на текущее системное время:
hwclock --systohc
Или системное время на аппаратные часы
hwclock --hctosys
Для таких, как я, использующих ESXI 5.1, вот что мне ответила система
~ # date -s "2016-03-23 09:56:00"
date: invalid date '2016-03-23 09:56:00'
Мне пришлось вместо этого использовать специальную команду ESX:
esxcli system time set -y 2016 -M 03 -d 23 -H 10 -m 05 -s 00
Я использовал команду даты и формат времени, перечисленные ниже, чтобы успешно установить дату из команды оболочки терминала, выполненной на Android Things, которая использует ядро Linux.
дата 092615002017.00
ММДДЧЧММГГГГ.СС
ММ -Месяц -09
ДД -День -26
ЧЧ -Час -15
ММ -Мин. -00
ГГГГ -Год -2017
.SS -секунда -00
Команда для изменения системной даты — date
.
Существует два способа вызова команды даты(в Linux):
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Проще всего использовать date -s
, так как он позволяет использовать простыеотносительные даты
$ date -s yesterday; date
date: cannot set date: Operation not permitted
Sat Jan 5 07:21:07 EST 2019
Sun Jan 6 07:21:07 EST 2019
Дата не изменилась, так как она выполнялась с ограниченным пользователем $
. Если вы действительно хотите изменить дату, используйте root(#
)или sudo:
$ sudo date -s yesterday; date
Sat Jan 5 07:21:07 EST 2019
Sat Jan 5 07:21:07 EST 2019
Таким образом, изменить любую часть относительной даты так же просто, как назвать ее:
$ date -s "5 years ago"
Mon Jan 6 08:26:26 EST 2014
$ date -s "+6 months"
Sat Jul 6 08:28:39 EDT 2019
$ date -s "+3 hours -13 minutes"
Sun Jan 6 11:16:59 AST 2019
Абсолютные даты немного сложнее, так как они требуют большей детализации:
$ date -s "2001-07-23 10:11:12"
Или вы можете использовать команду даты дважды:
$ date -s "$(date +'%Y-%m-%d %H:%M:%S')"
замените любой из %
допустимым значением, и дата будет установлена (только как корень ).
$ date -s "$(date +'%Y-11-%d %H:%M:%S')"
Wed Nov 6 08:37:15 EST 2019
Вторая форма вызова даты используется для прямого изменения системной даты.
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Так:
date 11230812 # MMDDhhmm
Устанавливает дату 23 ноября в 08:00 и 12:00.
BSD имеет похожую команду , но другой формат ([[[[[cc]гг]мм]дд]ЧЧ]ММ[.ss] ).
Попробуйте date
как пользователь с ограниченными правами, чтобы увидеть, что он будет делать (без каких-либо изменений):
$ date 11230812
date: cannot set date: Operation not permitted
Sat Nov 23 08:12:00 EST 2019
Или, если вы действительно хотите изменить дату, как root:
# date 11230812
# date
Sat Nov 23 08:12:00 EST 2019
Обратите внимание, что это повлияет на такие службы, как NTP или chrony. И, если перезапустить, сбросит дату обратно на реальную.
Добавьте YY для установки года:
$ date 1123081222
date: cannot set date: Operation not permitted
Wed Nov 23 08:12:00 EST 2022
Или CCYY для установки года и века:
$ date 112308121982
date: cannot set date: Operation not permitted
Tue Nov 23 08:12:00 EST 1982