So zeigen Sie Datum und Uhrzeit im Linux-Terminal an (und verwenden es in Bash-Skripten)

Der date-Befehl befindet sich in der Bash-Shell, die die Standard-Shell in den meisten Linux-Distributionen und sogar macOS ist. Dieses Tutorial zeigt Ihnen, wie Sie das Datum auf der Kommandozeile beherrschen und wie Sie es in Shell-Skripten verwenden können, um mehr zu tun, als nur die Zeit zu drucken.

Führen Sie den Befehl date aus, um diese Informationen anzuzeigen. Es druckt das aktuelle Datum und die aktuelle Uhrzeit für Ihre Zeitzone:

date

Die Standardformatierung sieht etwas albern aus. Warum wird das Jahr nicht nach Monat und Tag gedruckt, anstatt am Ende hinter der Zeitzone angehängt zu werden? Keine Angst: Wenn es um die Kontrolle über das gewünschte Ausgabeformat geht, liefert date es in Pik aus. Es gibt mehr als 40 Optionen, die Sie bis heute übergeben können, um es anzuweisen, seine Ausgabe genau nach Ihren Wünschen zu formatieren.

Um eine der Optionen zu verwenden, geben Sie Datum, ein Leerzeichen, ein Pluszeichen + und die Option einschließlich des führenden Prozentzeichens ein. Die Option %c (Daten und Uhrzeit im Gebietsschemaformat) bewirkt, dass Datum und Uhrzeit im normalisierten Format gedruckt werden, das mit Ihrem Gebietsschema verknüpft ist. Ihr Gebietsschema wird durch die geografischen und kulturellen Informationen festgelegt, die Sie bei der Installation Ihres Betriebssystems angegeben haben. Das Gebietsschema regelt Dinge wie das Währungssymbol, die Papierformate, die Zeitzone und andere kulturelle Normen.

date +%c

Das Jahr erscheint jetzt in einer natürlicheren Position in der Ausgabe.

Sie können mehrere Optionen gleichzeitig übergeben. Eine Folge von Optionen wird als Formatstring bezeichnet. Um den Namen des Tages (%A), den Tag des Monats (%d) und den Monatsnamen (%B) anzuzeigen, verwenden Sie diesen Befehl:

date +%A%d%B

Das hat funktioniert, ist aber hässlich. Kein Problem, wir können Leerzeichen einfügen, solange wir den gesamten Formatstring in Anführungszeichen setzen. Beachten Sie, dass das + außerhalb der Anführungszeichen steht.

date +"%A %d %B"

Sie können der Formatzeichenfolge wie folgt Text hinzufügen:

date +"Today is: %A %d %B"

Durch das Datum nach oben und unten scrollen man-Seite Die Suche nach der gewünschten Option wird schnell mühsam. Wir haben die Optionen in Gruppen zusammengefasst, damit Sie sich leichter zurechtfinden.

  So installieren Sie Brave Browser unter Linux

Optionen zum Anzeigen von Datum und Uhrzeit

%c: Druckt Datum und Uhrzeit im Format für Ihr Gebietsschema, einschließlich der Zeitzone.

Optionen zum Anzeigen des Datums

%D: Druckt das Datum im Format MM/TT/JJ.
%F: Druckt das Datum im Format JJJJ-MM-TT.
%x: Druckt das Datum im Format für Ihr Gebietsschema.

Optionen zur Anzeige des Tages

%a: Druckt den Namen des Tages, abgekürzt als Mo, Di, Mi usw.
%A: Druckt den vollständigen Namen des Tages, Montag, Dienstag, Mittwoch usw.
%u: Gibt die Nummer des Wochentages aus, wobei Montag=1, Dienstag=2, Mittwoch=3 usw.
%w: Gibt die Nummer des Wochentages aus, wobei Sonntag=0, Montag=1, Dienstag=2 usw.
%d: Druckt den Tag des Monats, ggf. mit führender Null (01, 02 … 09).
%e: Druckt den Tag des Monats mit einem führenden Leerzeichen (‚ 1‘, ‚ 2‘ … ‚ 9‘), falls erforderlich. Beachten Sie, dass die Apostrophe nicht gedruckt werden.
%j: Druckt den Tag des Jahres mit bis zu zwei führenden Nullen, falls erforderlich.

Optionen zum Anzeigen der Woche

%U: Druckt die Wochennummer des Jahres, wobei der Sonntag als erster Tag der Woche betrachtet wird. Zum Beispiel die dritte Woche des Jahres, die zwanzigste Woche des Jahres usw.
%V: Druckt die ISO-Wochennummer des Jahres, wobei Montag als erster Tag der Woche berücksichtigt wird.
%W: Wochennummer des Jahres, wobei Montag als erster Tag der Woche betrachtet wird.

Optionen zum Anzeigen des Monats

%b oder %h: Druckt den Namen des Monats abgekürzt mit Jan, Feb, März usw.
%B: druckt den vollständigen Namen des Monats Januar, Februar, März usw.
%m: Druckt die Zahl des Monats, ggf. mit führender Null 01, 02, 03 … 12.

Optionen zum Anzeigen des Jahres

%C: Druckt das Jahrhundert ohne Jahr. Im Jahr 2019 würde es 20 drucken.
%y: Das Jahr wird zweistellig gedruckt. 2019 wird es 19 gedruckt.
%Y: Das Jahr wird vierstellig gedruckt.

Optionen zum Anzeigen der Uhrzeit

%T: Druckt die Zeit als HH:MM:SS.
%R: Druckt die Stunden und Minuten als HH:MM ohne Sekunden im 24-Stunden-Format.
%r: Druckt die Uhrzeit gemäß Ihrem Gebietsschema mit der 12-Stunden-Uhr und einem Vormittags- oder Nachmittagsindikator.
%X: Druckt die Uhrzeit gemäß Ihrem Gebietsschema im 24-Stunden-Format. Angeblich. Beachten Sie, dass sich diese Option beim Testen genau wie %r verhält, wie unten gezeigt. Auf einem Linux-Computer, der für das britische Gebietsschema konfiguriert und auf GMT eingestellt war, wurde die Uhrzeit wie erwartet im 24-Stunden-Format ohne AM- oder PM-Anzeige gedruckt.

  So verwenden Sie den Befehl chgrp unter Linux

Optionen zum Anzeigen der Stunde

%H: Druckt die Stunden 00, 01, 02…23.
%I: Druckt die Stunde im 12-Stunden-Format, 00, 01, 02 … 12, ggf. mit führender Null.

Optionen zum Anzeigen von Minuten

%M: druckt die Minute 01, 02, 03 … 59, ggf. mit führender Null.

Optionen zum Anzeigen von Sekunden

%s: Druckt die Anzahl der Sekunden seit 1970-01-01 00:00:00, dem Beginn des Unix-Epoche.
%S: Druckt die Sekunden 01, 02, 03 … 59, ggf. mit führender Null.
%N: Druckt die Nanosekunden.

Optionen zum Anzeigen von Zeitzoneninformationen

%z: Druckt den Zeitunterschied zwischen Ihrer Zeitzone und UTC.
%:z: Druckt den Zeitunterschied zwischen Ihrer Zeitzone und UTC, mit einem : zwischen den Stunden und Minuten. Beachten Sie das : zwischen dem % – Zeichen und z .
%::z: Druckt den Zeitunterschied zwischen Ihrer Zeitzone und UTC mit einem : zwischen den Stunden, Minuten und Sekunden. Beachten Sie den :: zwischen dem %-Zeichen und z .
%Z: Druckt den alphabetischen Zeitzonennamen.

Optionen zur Formatierung

%p: Druckt den AM- oder PM-Indikator in Großbuchstaben.
%P: Druckt den am- oder pm-Indikator in Kleinbuchstaben. Beachten Sie die Eigenart dieser beiden Optionen. Ein Kleinbuchstabe p gibt eine Ausgabe in Großbuchstaben, ein Großbuchstabe P ergibt eine Ausgabe in Kleinbuchstaben.
%t: Druckt eine Registerkarte.
%n: Druckt eine neue Zeile.

Optionen zum Ändern anderer Optionen

Diese Modifikatoren können zwischen % und dem Optionsbuchstaben anderer Optionen eingefügt werden, um deren Anzeige zu ändern. %-S würde beispielsweise die führende Null für einstellige Sekundenwerte entfernen.

–: Ein einzelner Bindestrich verhindert das Auffüllen von Nullen bei einstelligen Werten.
_: Ein einzelner Unterstrich fügt führende Leerzeichen für einstellige Werte hinzu.
0: Stellt führende Nullen für einstellige Werte bereit.
^: Verwendet wenn möglich Großbuchstaben (nicht alle Optionen berücksichtigen diesen Modifikator).
#: Verwenden Sie nach Möglichkeit das Gegenteil des Standardfalls für die Option (nicht alle Optionen berücksichtigen diesen Modifikator).

  So speichern Sie YouTube-Videos unter Linux mit YouTube-DL

Zwei weitere nette Tricks

Um den Zeitpunkt der letzten Änderung einer Datei abzurufen, verwenden Sie die Option -r (Referenz). Beachten Sie, dass hier ein – (Bindestrich) anstelle eines %-Zeichens verwendet wird und kein +-Zeichen erforderlich ist. Versuchen Sie diesen Befehl in Ihrem Home-Ordner:

date -r .bashrc

Mit der TZ-Einstellung können Sie Ihre Zeitzone für die Dauer eines einzelnen Befehls ändern.

TZ=GMT date +%c

Datum in Skripten verwenden

Es ist trivial, ein Bash-Shell-Skript zum Drucken von Uhrzeit und Datum zu aktivieren. Erstellen Sie eine Textdatei mit dem folgenden Inhalt und speichern Sie sie als gd.sh.

#!/bin/bash

TODAY=$(date +"Today is %A, %d of %B")
TIMENOW=$(date +"The local time is %r")
TIME_UK=$(TZ=BST date +"The time in the UK is %r")

echo $TODAY
echo $TIMENOW
echo $TIME_UK

Geben Sie den folgenden Befehl ein, um die Ausführungsberechtigungen festzulegen und das Skript ausführbar zu machen.

chmod +x gd.sh

Führen Sie das Skript mit diesem Befehl aus:

./gd.sh

Wir können den date-Befehl verwenden, um einen Zeitstempel bereitzustellen. Das gezeigte Skript erstellt ein Verzeichnis mit dem Zeitstempel als Namen. Es kopiert dann alle Textdateien aus dem aktuellen Ordner hinein. Durch regelmäßiges Ausführen dieses Skripts können wir eine Momentaufnahme unserer Textdateien erstellen. Im Laufe der Zeit werden wir eine Reihe von Ordnern mit verschiedenen Versionen unserer Textdateien erstellen.

Beachten Sie, dass dies kein robustes Backup-System ist, sondern nur zur Veranschaulichung.

Erstellen Sie eine Textdatei mit dem folgenden Inhalt und speichern Sie sie als Snapshot.sh.

#!/bin/bash

# obtain the date and time
date_stamp=$(date +"%F-%H-%M-%S")

# make a directory with that name
mkdir "$date_stamp"

# copy the files from the current folder into it
cp *.txt "$date_stamp"

# all done, report back and exit
echo "Text files copied to directory: "$date_stamp

Geben Sie den folgenden Befehl ein, um die Ausführungsberechtigungen festzulegen und das Skript ausführbar zu machen.

chmod +x snapshot.sh

Führen Sie das Skript mit diesem Befehl aus:

./snapshot.sh

Sie werden sehen, dass ein Verzeichnis erstellt wurde. Sein Name ist das Datum und die Uhrzeit, zu der das Skript ausgeführt wurde. In diesem Verzeichnis befinden sich Kopien der Textdateien.

Mit etwas Überlegung und Kreativität kann sogar der bescheidene Datumsbefehl produktiv eingesetzt werden.