Použijte date -s
:
date -s '2014-12-25 12:34:56'
Spusťte to jako root nebo pod sudo
. Změna pouze jednoho roku/měsíce/dne je náročnější a bude vyžadovat opakování bitů aktuálního data. V hlavních desktopových prostředích jsou také zabudovány nástroje GUI pro datum, obvykle přístupné přes hodiny.
Chcete-li změnit pouze část času, můžete použít substituci příkazu v řetězci data:
date -s "2014-12-25 $(date +%H:%M:%S)"
změní datum, ale zachová čas. Viz man date
pro detaily formátování pro vytvoření dalších kombinací:jednotlivé komponenty jsou %Y
, %m
, %d
, %H
, %M
a %S
.
Systémový čas
Můžete použít date
pro nastavení systémového data. GNU implementace date
(jak se vyskytuje na většině systémů založených na Linuxu) přijímá mnoho různých formátů pro nastavení času, zde je několik příkladů:
nastavte pouze rok:
date -s 'next year'
date -s 'last year'
nastavte pouze měsíc:
date -s 'last month'
date -s 'next month'
nastavit pouze den:
date -s 'next day'
date -s 'tomorrow'
date -s 'last day'
date -s 'yesterday'
date -s 'friday'
nastavit vše dohromady:
date -s '2009-02-13 11:31:30' #that's a magical timestamp
Hardwarová doba
Nyní je systémový čas nastaven, ale možná jej budete chtít synchronizovat s hardwarovými hodinami:
Použijte --show
pro tisk hardwarového času:
hwclock --show
Hardwarové hodiny můžete nastavit na aktuální systémový čas:
hwclock --systohc
Nebo systémový čas na hardwarové hodiny
hwclock --hctosys
Příkaz k změně systémového data je date
.
Existují dva způsoby, jak zavolat příkaz date (v Linuxu):
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Snadné
Nejjednodušší způsob je použít date -s
protože umožňuje použití jednoduchého příbuzný data
$ 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
Datum se nezměnilo, protože bylo provedeno s omezeným uživatelem $
. Pokud skutečně chcete změnit datum, použijte root (#
) nebo sudo:
$ sudo date -s yesterday; date
Sat Jan 5 07:21:07 EST 2019
Sat Jan 5 07:21:07 EST 2019
Takže změna jakékoli části příbuzného datum je stejně snadné jako pojmenování:
$ 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
Absolutní data jsou o něco složitější, protože potřebují více podrobností:
$ date -s "2001-07-23 10:11:12"
Nebo můžete příkaz datum použít dvakrát:
$ date -s "$(date +'%Y-%m-%d %H:%M:%S')"
nahraďte některý z %
o platnou hodnotu a datum bude nastaveno (pouze jako root).
$ date -s "$(date +'%Y-11-%d %H:%M:%S')"
Wed Nov 6 08:37:15 EST 2019
přímo
Formulář pro druhé rande se používá k přímému změnit systémové datum.
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Takže :
date 11230812 # MMDDhhmm
Datum nastaví na 23. listopadu v 08h a 12min.
BSD má podobný příkaz, ale jiný formát ([[[[[cc]yy]mm]dd]HH]MM[.ss]).
Zkuste date
jako omezený uživatel, abyste viděli, co by to udělalo (aniž byste cokoli měnili):
$ date 11230812
date: cannot set date: Operation not permitted
Sat Nov 23 08:12:00 EST 2019
Nebo, pokud skutečně chcete změnit datum, jako root:
# date 11230812
# date
Sat Nov 23 08:12:00 EST 2019
Upozorňujeme, že budou ovlivněny služby jako NTP nebo chrony. A pokud restartujete, obnoví se datum zpět na skutečné.
Chcete-li nastavit rok, přidejte YY:
$ date 1123081222
date: cannot set date: Operation not permitted
Wed Nov 23 08:12:00 EST 2022
Nebo CCYY pro nastavení roku a století:
$ date 112308121982
date: cannot set date: Operation not permitted
Tue Nov 23 08:12:00 EST 1982