Verwenden Sie date -s
:
date -s '2014-12-25 12:34:56'
Führen Sie das als root oder unter sudo
aus . Das Ändern von nur einem Jahr/Monat/Tag ist eine größere Herausforderung und erfordert das Wiederholen von Bits des aktuellen Datums. Es gibt auch GUI-Datumstools, die in die wichtigsten Desktop-Umgebungen integriert sind und normalerweise über die Uhr aufgerufen werden.
Um nur einen Teil der Zeit zu ändern, können Sie die Befehlsersetzung in der Datumszeichenfolge verwenden:
date -s "2014-12-25 $(date +%H:%M:%S)"
ändert das Datum, behält aber die Uhrzeit bei. Siehe man date
für Formatierungsdetails, um andere Kombinationen zu konstruieren:Die einzelnen Komponenten sind %Y
, %m
, %d
, %H
, %M
, und %S
.
Systemzeit
Sie können date
verwenden um das Systemdatum einzustellen. Die GNU-Implementierung von date
(wie auf den meisten nicht eingebetteten Linux-basierten Systemen zu finden) akzeptiert viele verschiedene Formate, um die Zeit einzustellen, hier ein paar Beispiele:
Stellen Sie nur das Jahr ein:
date -s 'next year'
date -s 'last year'
nur den Monat einstellen:
date -s 'last month'
date -s 'next month'
nur den Tag einstellen:
date -s 'next day'
date -s 'tomorrow'
date -s 'last day'
date -s 'yesterday'
date -s 'friday'
alles zusammen einstellen:
date -s '2009-02-13 11:31:30' #that's a magical timestamp
Hardwarezeit
Jetzt ist die Systemzeit eingestellt, aber Sie möchten sie vielleicht mit der Hardware-Uhr synchronisieren:
Verwenden Sie --show
um die Hardwarezeit auszudrucken:
hwclock --show
Sie können die Hardware-Uhr auf die aktuelle Systemzeit stellen:
hwclock --systohc
Oder die Systemzeit zur Hardwareuhr
hwclock --hctosys
Der Befehl, das Systemdatum zu ändern ist date
.
Es gibt zwei Möglichkeiten, den date-Befehl (unter Linux) aufzurufen:
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Einfach
Der einfachste Weg ist die Verwendung von date -s
da es die Verwendung von einfach erlaubt Verwandter Termine
$ 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
Das Datum hat sich nicht geändert, da es mit einem eingeschränkten Benutzer $
ausgeführt wurde . Wenn Sie das Datum tatsächlich ändern möchten, verwenden Sie root (#
) oder sudo:
$ sudo date -s yesterday; date
Sat Jan 5 07:21:07 EST 2019
Sat Jan 5 07:21:07 EST 2019
Also das Ändern eines Teils eines Verwandten date ist so einfach wie es zu benennen:
$ 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
Absolute Datumsangaben sind etwas komplexer, da sie mehr Details erfordern:
$ date -s "2001-07-23 10:11:12"
Oder Sie können den date-Befehl zweimal verwenden:
$ date -s "$(date +'%Y-%m-%d %H:%M:%S')"
Ersetzen Sie einen der %
durch einen gültigen Wert und das Datum wird gesetzt (nur als root).
$ date -s "$(date +'%Y-11-%d %H:%M:%S')"
Wed Nov 6 08:37:15 EST 2019
direkt
Das zweite Date-Call-Formular wird direkt verwendet Systemdatum ändern.
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Also :
date 11230812 # MMDDhhmm
Stellt das Datum auf den 23. November um 08:00 Uhr und 12:00 Uhr ein.
BSD hat einen ähnlichen Befehl, aber ein anderes Format ([[[[[cc]yy]mm]dd]HH]MM[.ss]).
Versuchen Sie es mit date
als eingeschränkter Benutzer sehen, was es tun würde (ohne etwas zu ändern):
$ date 11230812
date: cannot set date: Operation not permitted
Sat Nov 23 08:12:00 EST 2019
Oder, wenn Sie das Datum tatsächlich ändern möchten, als root:
# date 11230812
# date
Sat Nov 23 08:12:00 EST 2019
Beachten Sie, dass Dienste wie NTP oder Chrony betroffen sind. Und bei einem Neustart wird das Datum auf das tatsächliche Datum zurückgesetzt.
Fügen Sie ein YY hinzu, um das Jahr festzulegen:
$ date 1123081222
date: cannot set date: Operation not permitted
Wed Nov 23 08:12:00 EST 2022
Oder ein CCYY zum Einstellen von Jahr und Jahrhundert:
$ date 112308121982
date: cannot set date: Operation not permitted
Tue Nov 23 08:12:00 EST 1982