Úvod
Linux date zobrazí a nastaví systémové datum a čas. Tento příkaz také umožňuje uživatelům tisknout čas v různých formátech a vypočítat budoucí a minulá data.
Čtěte dále a zjistěte, jak používat date příkaz v Linuxu.
Předpoklady
- Systém se systémem Linux
- Uživatelský účet s oprávněními root
- Přístup k oknu terminálu/příkazovému řádku
Linux date syntaxe příkazu
Syntaxe pro date příkaz je:
date [option]... [+format] Jak používat příkaz date v Linuxu
Chcete-li zobrazit aktuální systémový čas a datum, zadejte date příkaz:
date
Výstup zobrazuje den v týdnu, den v měsíci, měsíc, rok, aktuální čas a časové pásmo. Ve výchozím nastavení date příkaz je nastaven na časové pásmo operačního systému.
-d možnost umožňuje uživatelům pracovat v určité datum. Můžeme například zadat následující příkaz:
date -d "2000-11-22 09:10:15"
Můžete použít --date příkaz k zobrazení daného řetězce data ve formátu data. Tento příkaz neovlivňuje skutečné hodnoty data a času systému a vytiskne pouze požadované datum. Například:
date --date="09/10/1960"
Možnosti formátu příkazu data v Linuxu
Chcete-li formátovat date na výstupu příkazu můžete použít řídicí znaky, kterým předchází + podepsat. Ovládací prvky formátu začínají % symbol a jsou nahrazeny svými aktuálními hodnotami.
Zde %Y znak je nahrazen aktuálním rokem, %m s měsícem a %d se dnem v měsíci:
date +"Year: %Y, Month: %m, Day: %d"
Zde jsou další dva příklady formátování:
date "+DATE: %D%nTIME: %T" 
date +"Week number: %V Year: %y"
Toto jsou nejběžnější formátovací znaky pro date příkaz:
%D– Zobrazit datum jako mm/dd/rr%Y– Rok (např. 2020)%m– Měsíc (01-12)%B– Dlouhý název měsíce (např. listopad)%b– Krátký název měsíce (např. Nov)%d– Den v měsíci (např. 01)%j– Den v roce (001-366)%u– Den v týdnu (1–7)%A– Celý název dne v týdnu (např. pátek)%a– Krátký název dne v týdnu (např. pá)%H– Hodina (00-23)%I– Hodina (01-12)%M– Minuta (00-59)%S– Druhý (00-60)
Chcete-li zobrazit všechny možnosti formátování, spusťte date --help nebo příkaz man man date ve vašem terminálu.
Nastavit nebo změnit datum v systému Linux
Chcete-li změnit systémové hodiny ručně, použijte příkaz set. Chcete-li například nastavit datum a čas na 17:30, 13. května 2010 , zadejte:
date --set="20100513 05:30"
Většina distribucí Linuxu má systémové hodiny synchronizované pomocí ntp nebo systemd-timesyncd služby, takže buďte opatrní při ručním nastavování hodin.
Zobrazit minulá data
Použijte --date možnost zobrazení minulých dat v Linuxu. date příkaz přijímá hodnoty jako "tomorrow" , "Friday" , "last Friday" , "next Friday" , "next week" a podobně. Pro tisk minulých dat tedy použijte následující řetězce::
date --date="2 year ago" 
date --date="yesterday" 
date --date="10 sec ago"
Zobrazit budoucí data
--date možnost může také zobrazit budoucí data. Stejně jako u minulých dat můžete pro tisk nadcházejících dat zadat řetězce:
date --date="next monday" 
date --date="4 day" 
date --date="tomorrow"
Zobrazit řetězec data na řádku souboru
--file volba vytiskne řetězec data přítomný na každém řádku souboru. Na rozdíl od --date možnost, --file může prezentovat více datových řetězců na každém řádku.
Toto je syntaxe pro --file příkaz:
date --file=file_name.txt Zde používáme příkaz cat k přidání dat do souboru a poté je vytiskneme příkazem date:
Zobrazit časové razítko poslední úpravy souboru data
Když použijete -r možnost, date příkaz vypíše čas poslední úpravy souboru. Například následující příkaz vytiskne poslední změnu souboru hosts:
date -r /etc/hosts
Přepsat časové pásmo
Ve výchozím nastavení date používá časové pásmo definované v /etc/localtime . Chcete-li v prostředí použít jiné časové pásmo, nastavte TZ proměnnou na požadované časové pásmo.
Chcete-li například přepnout na newyorský čas, zadejte:
TZ='America/New_York' date
Zadejte date příkaz k návratu systému do výchozího časového pásma. Chcete-li zobrazit všechna dostupná časová pásma, použijte timedatectl list-timezones příkaz.
date příkaz může také zobrazit místní čas pro jiné časové pásmo. Chcete-li například zobrazit místní čas pro 16:30 příští pondělí na východním pobřeží Austrálie, zadejte:
date -d 'TZ="Australia/Sydney" 04:30 next Monday'
Použít datum s dalšími příkazy
Můžete použít date příkaz k vytvoření názvů souborů obsahujících aktuální čas a datum. Vstup níže vytvoří záložní soubor MySQL ve formátu aktuálního data:
mysqldump database_name > database_name-$(date +%Y%m%d).sql
Další běžné použití date příkaz je ve skriptech shellu. Níže přiřadíme výstupu date do date_now proměnná:
date_now=$(date "+%F-%H-%M-%S")
Používejte Unix Epoch Time (Epoch Converter)
Můžete použít date příkaz jako převodník Epoch. Epocha neboli časová razítka Unixu je počet sekund, které uplynuly od 1. ledna 1970 v 00:00:00 UTC.
Chcete-li zobrazit počet sekund od epochy do aktuálního dne, použijte %s ovládání formátu:
date +%s
Chcete-li zjistit, kolik sekund uplynulo od epochy do určitého data, zadejte:
$ date -d "1984-04-08" +"%s"