A dátum és az idő megjelenítése a Linux terminálban (és használata Bash Scriptekben)

A dátum parancs a Bash-héjban található, amely a legtöbb Linux-disztribúcióban, sőt a macOS-ben is az alapértelmezett shell. Ez az oktatóanyag bemutatja, hogyan lehet elsajátítani a dátumot a parancssorban, és hogyan használhatja azt a shell-szkriptekben, hogy az idő egyszerű kinyomtatásánál többet tegyen.

Az információ megtekintéséhez futtassa a dátum parancsot. Kinyomtatja az aktuális dátumot és időt az Ön időzónájához:

date

Az alapértelmezett formázás kissé hülyén néz ki. Miért nincs az év a hónap és a nap után nyomtatva, ahelyett, hogy a végén, az időzóna mögött lenne? Ne félj: Ha a kívánt kimenet formátumát szabályozza, a dátum ásókkal kézbesíti azt. Több mint 40 lehetőség van, amelyeket átadhat a mai napig, hogy utasítsa a kimenetet pontosan az Ön által kívánt formázására.

Bármelyik beállítás használatához írja be a dátumot, egy szóközt, egy pluszjelet + és a bevezető százalékjelet tartalmazó opciót. A %c (adatok és idő nyelvi formátumban) beállítás hatására a dátum és az idő a területi beállításhoz tartozó normalizált formátumban kerül kinyomtatásra. A területi beállítást az operációs rendszer telepítésekor megadott földrajzi és kulturális adatok határozzák meg. A terület szabályozza az olyan dolgokat, mint a pénznem szimbóluma, a papírméretek, az időzóna és más kulturális normák.

date +%c

Az évszám most természetesebb pozícióban jelenik meg a kimenetben.

Egyszerre több lehetőséget is átadhat a dátumhoz. Az opciók sorozatát formátum karakterláncnak nevezzük. A nap nevének (%A), a hónap napjának (%d) és a hónap nevének (%B) megtekintéséhez használja ezt a parancsot:

date +%A%d%B

Ez működött, de csúnya. Semmi gond, szóközt is beírhatunk, ha a teljes formátum karakterláncot idézőjelbe tesszük. Vegye figyelembe, hogy a + kívül esik az idézőjeleken.

date +"%A %d %B"

A formátum karakterláncához szöveget adhat hozzá, például:

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

A dátum felfelé és lefelé görgetése man oldal a kívánt opció keresése hamarosan fárasztóvá válik. A lehetőségeket csoportokba soroltuk, hogy könnyebben eligazodjon bennük.

Lehetőségek a dátum és az idő megjelenítésére

%c: Kinyomtatja a dátumot és az időt az Ön országának megfelelő formátumban, beleértve az időzónát is.

  Szoftverek keresése homályos Linux disztribúciókon

Lehetőségek a dátum megjelenítésére

%D: Kinyomtatja a dátumot hh/nn/éé formátumban.
%F: A dátumot éééé-hh-nn formátumban nyomtatja ki.
%x: Kinyomtatja a dátumot az Ön országának megfelelő formátumban.

A nap megjelenítési beállításai

%a: Kinyomtatja a nap nevét, rövidítve H, K, Sze stb.
%A: Kinyomtatja a nap teljes nevét, hétfő kedd, szerda stb.
%u: Kiírja a hét napjának számát, ahol hétfő=1, kedd=2, szerda=3 stb.
%w: Kiírja a hét napjának számát, ahol vasárnap=0, hétfő=1, kedd=2 stb.
%d: Kinyomtatja a hónap napját, szükség esetén nullával (01, 02 … 09).
%e: Kinyomtatja a hónap napját, szükség esetén szóközzel (‘1’, ‘2’ …’ 9′). Vegye figyelembe, hogy az aposztrófok nem jelennek meg.
%j: Kinyomtatja az év napját, akár két nullával, ha szükséges.

A hét megjelenítésének lehetőségei

%U: Kinyomtatja az év hét számát, ha a vasárnapot a hét első napjának tekinti. Például az év harmadik hete, az év huszadik hete stb.
%V: Kinyomtatja az év ISO hétszámát, ha a hétfőt a hét első napjának tekinti.
%W: Az év hét száma, ha a hétfőt a hét első napjának tekintjük.

Lehetőségek a hónap megjelenítésére

%b vagy %h: Kiírja a hónap nevét Jan, Feb, Mar stb.
%B: kiírja a hónap teljes nevét, január, február, március stb.
%m: Kinyomtatja a hónap számát, szükség esetén nullával 01, 02, 03 … 12.

Az év megjelenítési lehetőségei

%C: Az évszázadot évszám nélkül nyomtatja ki. 2019-ben 20-at nyomtatnak.
%y: Az évet két számjeggyel nyomtatja ki. 2019-ben 19-et nyomtatnak.
%Y: Az évet négy számjegyben nyomtatja ki.

  A Softmaker Office 2019 próbaverzió telepítése Linux rendszeren

Az idő megjelenítésének lehetőségei

%T: Kiírja az időt ÓÓ:PP:SS formában.
%R: Kinyomtatja az órát és a percet ÓÓ:PP formában, másodpercek nélkül, a 24 órás óra használatával.
%r: Kinyomtatja az időt az Ön országának megfelelően, a 12 órás óra és egy délelőtt vagy délután jelző segítségével.
%X: Kinyomtatja az időt az Ön országának megfelelően, a 24 órás óra használatával. Állítólag. Ne feledje, hogy a tesztelés során ez az opció pontosan úgy viselkedett, mint a %r, az alábbiak szerint. Az Egyesült Királyság területére konfigurált és GMT-re állított Linux-gépen a várakozásoknak megfelelően a 24 órás óra segítségével nyomtatta ki az időt.

Opciók az óra megjelenítéséhez

%H: Kiírja az órát 00, 01, 02…23.
%I: Kinyomtatja az órát a 12 órás 00, 01, 02 … 12 óra használatával, szükség esetén nullával.

A percek megjelenítésének lehetőségei

%M: kiírja a percet, 01, 02, 03 … 59, szükség esetén kezdő nullával.

A másodpercek megjelenítésének beállításai

%s: Kiírja a másodpercek számát 1970-01-01 00:00:00, a Unix Epoch.
%S: Kinyomtatja a másodperceket, 01, 02, 03 … 59, szükség esetén kezdő nullával.
%N: Kiírja a nanoszekundumokat.

Lehetőségek az időzóna információinak megjelenítésére

%z: Kinyomtatja az időzóna és az UTC közötti időkülönbséget.
%:z: Kinyomtatja az időzóna és az UTC közötti időkülönbséget, a : jellel az órák és percek között. Jegyezze meg: a % jel és a z között.
%::z: Kinyomtatja az időzóna és az UTC közötti időkülönbséget, a : jellel az órák, percek és másodpercek között. Jegyezze meg a :: jelet a % jel és a z között.
%Z: Kiírja az időzóna alfabetikus nevét.

A formázással kapcsolatos beállítások

%p: Az AM vagy PM jelzőt nagybetűvel nyomtatja ki.
%P: A délelőtt vagy délután jelzőt kisbetűvel nyomtatja ki. Vegye figyelembe a két lehetőség furcsaságát. A kis p nagybetűs kimenetet, a nagy P kisbetűs kimenetet ad.
%t: Kinyomtat egy lapot.
%n: Új sort nyomtat.

Más opciók módosításának lehetőségei

Ezeket a módosítókat be lehet illeszteni a % és az opció betűje közé más opcióknál, hogy módosítsák a megjelenítésüket. Például a %-S eltávolítja a bevezető nullát az egyszámjegyű másodpercértékeknél.

  Külső merevlemezek felszerelése Linux alatt

–: Egyetlen kötőjel megakadályozza, hogy az egyjegyű értékek nulla kitöltése legyen.
_: egyetlen aláhúzás szóközöket ad az egyjegyű értékekhez.
0: Bevezető nullákat biztosít az egyjegyű értékekhez.
^: Ha lehetséges, nagybetűt használ (nem minden beállítás veszi figyelembe ezt a módosítót).
#: Ha lehetséges, használja az opció alapértelmezett kis- és nagybetűjének ellenkezőjét (nem minden opció veszi figyelembe ezt a módosítót).

Még két ügyes trükk

Egy fájl utolsó módosítási idejének lekéréséhez használja a -r (referencia) kapcsolót. Vegye figyelembe, hogy ez egy – (kötőjelet) használ a % jel helyett, és nincs szükség + jelre. Próbáld ki ezt a parancsot a saját mappádban:

date -r .bashrc

A TZ beállítás lehetővé teszi az időzóna megváltoztatását egyetlen parancs időtartamára.

TZ=GMT date +%c

A dátum használata a szkriptekben

A Bash shell script engedélyezése az idő és a dátum nyomtatásához triviális. Hozzon létre egy szöveges fájlt a következő tartalommal, és mentse el gd.sh néven.

#!/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

Írja be a következő parancsot a végrehajtási engedélyek beállításához és a szkript futtathatóvá tételéhez.

chmod +x gd.sh

Futtassa a szkriptet ezzel a paranccsal:

./gd.sh

Használhatjuk a dátum parancsot időbélyegző megadására. A megjelenített szkript létrehoz egy könyvtárat, amelynek neve az időbélyeg. Ezután átmásolja az összes szöveges fájlt az aktuális mappából. A szkript rendszeres futtatásával pillanatképet készíthetünk szöveges fájljainkról. Idővel egy sor mappát hozunk létre, amelyekben szövegfájljaink különböző verziói találhatók.

Ne feledje, hogy ez nem egy robusztus biztonsági mentési rendszer, csak illusztrációs célokat szolgál.

Hozzon létre egy szöveges fájlt a következő tartalommal, és mentse el snapshot.sh néven.

#!/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

Írja be a következő parancsot a végrehajtási engedélyek beállításához és a szkript futtathatóvá tételéhez.

chmod +x snapshot.sh

Futtassa a szkriptet ezzel a paranccsal:

./snapshot.sh

Látni fogja, hogy létrejött egy könyvtár. A neve a szkript végrehajtásának dátuma és időpontja. Ebben a könyvtárban találhatók a szöveges fájlok másolatai.

Egy kis gondolkodás és kreativitás mellett még a szerény dátumparancs is hasznosítható.