Πώς να εμφανίσετε την ημερομηνία και την ώρα στο τερματικό Linux (και να τα χρησιμοποιήσετε σε σενάρια Bash)
Βασικά Takeaways
- Η εντολή ημερομηνίας στο κέλυφος Bash μπορεί να χρησιμοποιηθεί για την εμφάνιση της τρέχουσας ημερομηνίας και ώρας σε διάφορες μορφές, επιτρέποντας την προσαρμογή.
- Χρησιμοποιώντας το σύμβολο “+” και διάφορους κωδικούς επιλογής, η έξοδος της εντολής ημερομηνίας μπορεί να μορφοποιηθεί ώστε να περιλαμβάνει συγκεκριμένες πληροφορίες όπως η ημέρα, ο μήνας, το έτος ή η ζώνη ώρας.
- Η εντολή ημερομηνίας μπορεί να χρησιμοποιηθεί σε σενάρια φλοιού για την αυτοματοποίηση εργασιών όπως η δημιουργία καταλόγων με ονόματα χρονικών σφραγίδων ή η αντιγραφή αρχείων με συγκεκριμένες πληροφορίες ώρας.
ο
date
Η εντολή βρίσκεται στο κέλυφος Bash, το οποίο είναι το προεπιλεγμένο κέλυφος στις περισσότερες διανομές Linux, ακόμη και στο macOS. Αυτό το σεμινάριο σάς δείχνει πώς να κυριαρχήσετε
date
στη γραμμή εντολών και πώς μπορείτε να το χρησιμοποιήσετε σε σενάρια φλοιού για να κάνετε περισσότερα από την απλή εκτύπωση του χρόνου.
Πώς να δείτε την ημερομηνία και την ώρα και την ώρα στο τερματικό Linux
Εκτελέστε το
date
εντολή για να δείτε αυτές τις πληροφορίες. Εκτυπώνει την τρέχουσα ημερομηνία και ώρα για τη ζώνη ώρας σας:
date
Η προεπιλεγμένη μορφοποίηση φαίνεται λίγο ανόητη. Γιατί το έτος δεν τυπώνεται μετά τον μήνα και την ημέρα, αντί να επισημαίνεται στο τέλος, πίσω από τη ζώνη ώρας; Μην φοβάστε: Εάν είναι ο έλεγχος της μορφής της εξόδου που θέλετε,
date
το παραδίδει με μπαστούνια. Υπάρχουν περισσότερες από 40 επιλογές στις οποίες μπορείτε να περάσετε
date
για να του ζητήσετε να μορφοποιήσει την έξοδο του όπως ακριβώς θέλετε.
Για να χρησιμοποιήσετε οποιαδήποτε από τις επιλογές, πληκτρολογήστε
date
ένα διάστημα, ένα σύμβολο συν
+
, και την επιλογή που περιλαμβάνει το πρόσημο του πρώτου ποσοστού. ο
%c
Η επιλογή (δεδομένα και ώρα σε μορφή τοπικής ρύθμισης) προκαλεί την εκτύπωση της ημερομηνίας και της ώρας στην κανονικοποιημένη μορφή που σχετίζεται με τις τοπικές ρυθμίσεις σας. Η τοπική σας ρύθμιση ορίζεται από τις γεωγραφικές και πολιτισμικές πληροφορίες που παρείχατε κατά την εγκατάσταση του λειτουργικού σας συστήματος. Οι τοπικές ρυθμίσεις διέπουν πράγματα όπως το σύμβολο νομίσματος, τα μεγέθη χαρτιού, τη ζώνη ώρας και άλλα πολιτιστικά πρότυπα.
date +%c
Το
έτος εμφανίζεται πλέον σε πιο φυσική θέση στην παραγωγή.
Μπορείτε να περάσετε πολλές επιλογές σε
date
με τη μία. Μια ακολουθία επιλογών ονομάζεται συμβολοσειρά μορφοποίησης. Για να δείτε το όνομα της ημέρας (
%A
), την ημέρα του μήνα (
%d
) και το όνομα του μήνα (
%B
), χρησιμοποιήστε αυτήν την εντολή:
date +%A%d%B
Αυτό λειτούργησε, αλλά είναι άσχημο. Κανένα
πρόβλημα
, μπορούμε να συμπεριλάβουμε κενά αρκεί να τυλίξουμε ολόκληρη τη συμβολοσειρά μορφής σε εισαγωγικά. Σημειώστε ότι το
+
ξεφεύγει από τα εισαγωγικά.
date +"%A %d %B"
Μπορείτε να προσθέσετε κείμενο στη συμβολοσειρά μορφής, ως εξής:
date +"Today is: %A %d %B"
Κύλιση πάνω και κάτω μέσα από το
date
σελίδα ανθρώπου
Η αναζήτηση της επιλογής που θέλετε σύντομα γίνεται κουραστική. Έχουμε μπερδέψει τις επιλογές σε ομάδες για να σας βοηθήσουμε να τις βρίσκετε πιο εύκολα.
Επιλογές για την εμφάνιση της ημερομηνίας και της ώρας
-
%ντο
: Εκτυπώνει την ημερομηνία και την ώρα στη μορφή για τις τοπικές σας ρυθμίσεις, συμπεριλαμβανομένης της ζώνης ώρας.
Επιλογές για την εμφάνιση της ημερομηνίας
-
%ΡΕ
: Εκτυπώνει την ημερομηνία σε μορφή mm/dd/yy. -
%ΦΑ
: Εκτυπώνει την ημερομηνία σε μορφή εεεε-μμ-ηη. -
%Χ
: Εκτυπώνει την ημερομηνία με τη μορφή για τις τοπικές ρυθμίσεις σας.
Επιλογές για την εμφάνιση της ημέρας
-
%ένα
: Εκτυπώνει το όνομα της ημέρας, με συντομογραφία Mon, Tue, Wed, κ.λπ. -
%ΕΝΑ
: Εκτυπώνει το πλήρες όνομα της ημέρας, Δευτέρα Τρίτη, Τετάρτη κ.λπ. -
%u
: Εκτυπώνει τον αριθμό της ημέρας της εβδομάδας, όπου Δευτέρα=1, Τρίτη=2, Τετάρτη=3 κ.λπ. -
%w
: Εκτυπώνει τον αριθμό της ημέρας της εβδομάδας, όπου Κυριακή=0, Δευτέρα=1, Τρίτη=2 κ.λπ. -
%ρε
: Εκτυπώνει την ημέρα του μήνα, με μηδέν (01, 02 … 09) εάν απαιτείται. -
%μι
: Εκτυπώνει την ημέρα του μήνα, με ένα αρχικό διάστημα (‘ 1′, ‘ 2′ … ‘ 9′) εάν απαιτείται. Σημειώστε ότι οι απόστροφοι δεν εκτυπώνονται. -
%j
: Εκτυπώνει την ημέρα του έτους, με έως και δύο μηδενικά στην αρχή, εάν απαιτείται.
Επιλογές εμφάνισης της εβδομάδας
-
%U
: Εκτυπώνει τον αριθμό της εβδομάδας του έτους, θεωρώντας την Κυριακή ως την πρώτη ημέρα της εβδομάδας. Για παράδειγμα, η τρίτη εβδομάδα του έτους, η εικοστή εβδομάδα του έτους κ.λπ. -
%V
: Εκτυπώνει τον αριθμό της εβδομάδας ISO του έτους, θεωρώντας τη Δευτέρα ως την πρώτη ημέρα της εβδομάδας. -
%W
: Αριθμός εβδομάδας του έτους, θεωρώντας τη Δευτέρα ως την πρώτη ημέρα της εβδομάδας.
Επιλογές για την εμφάνιση του μήνα
-
%σι
ή
%h
: Εκτυπώνει το όνομα του μήνα σε συντομογραφία Jan, Feb, Mar, κ.λπ. -
%ΣΙ
: εκτυπώνει το πλήρες όνομα του μήνα, Ιανουάριο, Φεβρουάριο, Μάρτιο κ.λπ. -
%Μ
: Εκτυπώνει τον αριθμό του μήνα, με μηδέν στην αρχή, εάν απαιτείται, 01, 02, 03 … 12.
Επιλογές για την εμφάνιση του έτους
-
%ΝΤΟ
: Τυπώνει τον αιώνα χωρίς το έτος. Το 2019 θα τύπωνε 20. -
%y
: Εκτυπώνει το έτος ως διψήφιο. το 2019 θα εκτυπώσει 19. -
%Y
: Εκτυπώνει το έτος ως τετραψήφιο.
Επιλογές εμφάνισης της ώρας
-
%T
: Εκτυπώνει την ώρα ως ΩΩ:ΛΛ:ΔΔ. -
%R
: Εκτυπώνει την ώρα και τα λεπτά ως ΩΩ: ΜΛ χωρίς δευτερόλεπτα, χρησιμοποιώντας το ρολόι 24 ωρών. -
%r
: Εκτυπώνει την ώρα σύμφωνα με τις τοπικές ρυθμίσεις σας, χρησιμοποιώντας το ρολόι 12 ωρών και μια ένδειξη π.μ. ή μ.μ. -
%Χ
: Εκτυπώνει την ώρα σύμφωνα με τις τοπικές ρυθμίσεις σας, χρησιμοποιώντας το ρολόι 24 ωρών. Φέρεται ότι. Σημειώστε ότι κατά τη διάρκεια της
δοκιμή
ς αυτή η επιλογή συμπεριφέρθηκε ακριβώς όπως
%r
κάνει, όπως φαίνεται παρακάτω. Σε ένα μηχάνημα Linux που διαμορφώθηκε για τις τοπικές ρυθμίσεις του Ηνωμένου Βασιλείου και ρυθμίστηκε σε GMT, εκτύπωσε την ώρα, χρησιμοποιώντας το ρολόι 24 ωρών χωρίς ένδειξη AM ή PM, όπως αναμενόταν.
Επιλογές εμφάνισης της ώρας
-
%H
: Εκτυπώνει την ώρα 00, 01, 02…23. -
%ΕΓΩ
: Εκτυπώνει την ώρα χρησιμοποιώντας το ρολόι 12 ωρών, 00, 01, 02 … 12, με μηδέν στην αρχή εάν απαιτείται.
Επιλογές εμφάνισης λεπτών
-
%Μ
: εκτυπώνει τα λεπτά, 01, 02, 03 … 59, με μηδενικό στην αρχή εάν απαιτείται.
Επιλογές εμφάνισης δευτερολέπτων
-
%μικρό
: Εκτυπώνει τον αριθμό των δευτερολέπτων από το 1970-01-01 00:00:00, την έναρξη του
Unix Epoch
. -
%ΜΙΚΡΟ
: Εκτυπώνει τα δευτερόλεπτα, 01, 02, 03 … 59, με μηδενικό στην αρχή εάν απαιτείται. -
%Ν
: Εκτυπώνει τα νανοδευτερόλεπτα.
Επιλογές για την εμφάνιση πληροφοριών ζώνης ώρας
-
%z
: Εκτυπώνει τη διαφορά ώρας μεταξύ της ζώνης ώρας και της UTC. -
%:z
: Εκτυπώνει τη διαφορά ώρας μεταξύ της ζώνης ώρας και του UTC, με ένα : μεταξύ των ωρών και των λεπτών. Σημειώστε το
:
ανάμεσα σε
%
σημάδι και
z
. -
%::z
: Εκτυπώνει τη διαφορά ώρας μεταξύ της ζώνης ώρας και του UTC, με ένα : μεταξύ των ωρών, των λεπτών και των δευτερολέπτων. Σημειώστε το
::
ανάμεσα σε
%
σημάδι και
z
. -
%Z
: Εκτυπώνει το αλφαβητικό όνομα της ζώνης ώρας.
-
%Π
: Εκτυπώνει την ένδειξη AM ή PM με κεφαλαία. -
%Π
: Εκτυπώνει την ένδειξη π.μ. ή μ.μ. με πεζά γράμματα. Σημειώστε την ιδιορρυθμία με αυτές τις δύο επιλογές. Ένα πεζό
p
δίνει κεφαλαία έξοδο, κεφαλαία
P
δίνει πεζά γράμματα. -
%t
: Εκτυπώνει μια καρτέλα. -
%n
: Εκτυπώνει μια νέα γραμμή.
Επιλογές για τροποποίηση άλλων επιλογών
Αυτοί οι τροποποιητές μπορούν να εισαχθούν μεταξύ των
%
και το γράμμα επιλογής άλλων επιλογών για να τροποποιήσετε την εμφάνισή τους. Για παράδειγμα,
%-S
θα αφαιρούσε το αρχικό μηδέν για μονοψήφιες τιμές δευτερολέπτων.
-
–
: Μια απλή παύλα αποτρέπει τη μηδενική συμπλήρωση σε μονοψήφιες τιμές. -
_
: μια μεμονωμένη υπογράμμιση προσθέτει κενά για τις μονοψήφιες τιμές. -
0
: Παρέχει μηδενικά στην αρχή για μονοψήφιες τιμές. -
^
: Χρησιμοποιεί κεφαλαία, αν είναι δυνατόν (δεν σέβονται όλες τις επιλογές αυτόν τον τροποποιητή). -
#
: Χρησιμοποιήστε την αντίθετη από την προεπιλεγμένη περίπτωση για την επιλογή, εάν είναι δυνατόν (δεν σέβονται όλες τις επιλογές αυτόν τον τροποποιητή).
Δύο ακόμα προσεγμένα κόλπα
Για να λάβετε τον τελευταίο χρόνο τροποποίησης ενός αρχείου, χρησιμοποιήστε το
-r
(αναφορά) επιλογή. Σημειώστε ότι αυτό χρησιμοποιεί α
-
(παύλα) αντί για α
%
υπογράψει και δεν απαιτεί α
+
σημάδι. Δοκιμάστε αυτήν την εντολή στον αρχικό σας φάκελο:
date -r .bashrc
Η ρύθμιση TZ σάς επιτρέπει να αλλάξετε τη ζώνη ώρας σας για τη διάρκεια μιας μεμονωμένης εντολής.
TZ=GMT date +%c
Χρήση της ημερομηνίας σε σενάρια
Η ενεργοποίηση ενός σεναρίου κελύφους Bash για την εκτύπωση της ώρας και της ημερομηνίας είναι ασήμαντο. Δημιουργήστε ένα αρχείο κειμένου με το ακόλουθο περιεχόμενο και αποθηκεύστε το ως
gd.sh
.
#!/bin/bashTODAY=$(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
Πληκτρολογήστε την ακόλουθη εντολή για να ορίσετε τα δικαιώματα εκτέλεσης και να κάνετε το σενάριο εκτελέσιμο.
chmod +x gd.sh
Εκτελέστε το σενάριο με αυτήν την εντολή:
./gd.sh
Μπορούμε να χρησιμοποιήσουμε την εντολή ημερομηνία για να παρέχουμε μια χρονική σήμανση. Το σενάριο που εμφανίζεται θα δημιουργήσει έναν κατάλογο με τη χρονική σήμανση ως όνομα. Στη συνέχεια, θα αντιγράψει όλα τα αρχεία κειμένου από τον τρέχοντα φάκελο σε αυτό. Εκτελώντας αυτό το σενάριο περιοδικά μπορούμε να τραβήξουμε ένα στιγμιότυπο των αρχείων κειμένου μας. Με τον καιρό θα δημιουργήσουμε μια σειρά φακέλων με διαφορετικές εκδόσεις των αρχείων κειμένου μας σε αυτούς.
Σημειώστε ότι αυτό δεν είναι ένα ισχυρό σύστημα δημιουργίας αντιγράφων ασφαλείας, είναι απλώς για επεξηγηματικούς σκοπούς.
Δημιουργήστε ένα αρχείο κειμένου με το ακόλουθο περιεχόμενο και αποθηκεύστε το ως
snapshot.sh.
#!/bin/bash
date_stamp=$(date +"%F-%H-%M-%S")
mkdir "$date_stamp"
cp *.txt "$date_stamp"
echo "Text files copied to directory: "$date_stamp
Πληκτρολογήστε την ακόλουθη εντολή για να ορίσετε τα δικαιώματα εκτέλεσης και να κάνετε το σενάριο εκτελέσιμο.
chmod +x snapshot.sh
Εκτελέστε το σενάριο με αυτήν την εντολή:
./snapshot.sh
Θα δείτε ότι έχει δημιουργηθεί ένας κατάλογος. Το όνομά του είναι η ημερομηνία και η ώρα κατά την οποία εκτελέστηκε το σενάριο. Μέσα σε αυτόν τον κατάλογο υπάρχουν αντίγραφα των αρχείων κειμένου.
Με λίγη σκέψη και δημιουργικότητα, ακόμα και οι ταπεινοί
date
η εντολή μπορεί να χρησιμοποιηθεί σε παραγωγική χρήση.
VIA:
HowToGeek.com
