Jak uzyskać datę i godzinę za pomocą interfejsu wiersza poleceń?

98

Jak mogę uzyskać aktualną datę / godzinę w terminalu. Najczęściej uruchamiam system w trybie tekstowym (konsoli) i potrzebuję polecenia, aby poznać aktualną datę / godzinę.

Sharad Gautam
źródło

Odpowiedzi:

173

dateKomenda pokaże datę i czas.

man datepokaże ci, jak kontrolować wyjście do dowolnego formatu, którego potrzebujesz, jeśli chcesz czegoś innego niż standardowe wyjście. Na przykład:

date "+%H:%M:%S   %d/%m/%y"

wyświetli datę i godzinę w formacie 14:09:22 09/06/2015

Łatwiejszą do odczytania wersję strony podręcznika można znaleźć na stronach podręcznika Ubuntu

Carl H.
źródło
6
+1 tylko za powiedzenieman date
jshthornton
Jak mogę uzyskać różnicę stref czasowych?
Ali D.
19

Czas jako wiersz polecenia:

PS1="\@ \w$bk"

Wygląda na: 11:41 ~

Trochę bardziej fantazyjny, zamknięty w nawiasach:

PS1="[ \@ \w$bk ]"

Wygląda na: [11:36 ~]

Dodaj użytkownika i hosta lokalnego wraz z czasem, wszystko w nawiasach:

PS1="[ \u on \h \@ \w$bk ]"

Wygląda jak: [DrPete na LittleSorrel 10:34 AM ~]

Resetuj monit do domyślnego #: PS1="# "

Aby monit był stale dostępny, dodaj wybrany wiersz zachęty, tj.

export PS1="\@ \w$bk "

do ~ / .profile.

Nic na to nie poradzimy, toczymy się teraz ... dodaj kolory, zdefiniuj je w .profile, aby ułatwić ich konfigurację:

 # Install GNU coreutils
    bk="\[\033[0;38m\]" #means no background and white lines
    txtBlue="\[\033[0;34m\]"   #letter color blue
    txtRed="\[\033[0;31m\]"    #letter color red
    txtCyan="\[\033[1;36m\]"   #letter color cyan
    txtWhite="\[\033[1;37m\]"  #letter color white
    txtYellow="\[\033[1;33m\]" #letter color yellow

Wtedy podpowiedź w kolorze superfancy byłaby:

PS1="[ $txtYellow\u on $txtCyan\h $txtRed\@ $txtWhite\w$bk ]"
drPete
źródło
bardzo dobra odpowiedź =), ale trochę krótka.
AB
Moja pierwsza odpowiedź - teraz, gdy nie jestem już dziewicą - poszerzam w jaki sposób, narrację lub link do szybkiej informacji CLI?
drPete
Jak mogę to zrobić na stałe, np.
AB
wystarczy wyeksportować @AB Clever Answer btw :)
Sharad Gautam
1
Lepsza odpowiedź = więcej głosów pozytywnych
AB
16

Istnieje lista poleceń używanych dla godziny i daty:

  1. Komenda date

    $ date 
    Tue Jun  9 18:04:30 EEST 2015
    
  2. Polecenie zdumpużywane do echa czasu w określonej strefie czasowej.

    $ zdump EEST
    EEST  Tue Jun  9 15:05:17 2015 EEST
    
  3. hwclock

    $ sudo hwclock
    Tue 09 Jun 2015 06:05:55 PM EEST  -0.656710 seconds
    
  4. zegar, ale musi zainstalować klientów xview

    sudo apt-get install xview-clients
    
  5. za pomocą ntpdatepolecenia. ntpdatesłuży do ustawienia czasu systemowego, ale użycie bez sudospowoduje wydrukowanie godziny i daty.

    $ ntpdate
    
    26 Jun 10:48:34 ntpdate[4748]: no servers can be used, exiting
    
Maythux
źródło
11

W Ubuntu 15.04 (systemd) jest też informacja, timedatectlktóra pokazuje czas i pozwala go zmienić i nie tylko man timedatectl.

Bez argumentów daje

% timedatectl
Ostrzeżenie: ignorowanie zmiennej TZ. Czytanie tylko strefy czasowej systemu.

      Czas lokalny: ke 10.06.2015 10:31:59 EEST
  Czas uniwersalny: ke 10.06.2015 07:31:59 UTC
        Czas RTC: ke 10.06.2015 07:31:59
       Strefa czasowa: Europa / Helsinki (EEST, +0300)
     Włączone NTP: tak
Zsynchronizowany NTP: tak
 RTC w lokalnym TZ: nie
      Aktywny czas letni: tak
 Ostatnia zmiana czasu letniego: czas letni rozpoczął się o godz
                  su 2015-03-29 02:59:59 EET
                  su 2015-03-29 04:00:00 EEST
 Następna zmiana czasu letniego: czas letni kończy się (zegar przeskakuje o godzinę do tyłu) o godz
                  su 2015-10-25 03:59:59 EEST
                  su 2015-10-25 03:00:00 EET

Kolejną miłą funkcją, której użyłem, jest timedatectl set-ntp trueaktywacja systemd-timesyncdwbudowanego klienta SNTP (Simple Network Time Protocol), który synchronizuje zegar ze zdalnym serwerem.

Mikaela
źródło
1
$ timedatectldziała również dobrze na Ubuntu 14.04.
Klamka
8

Chociaż wszystkie odpowiedzi tutaj są poprawne, musisz użyć datepolecenia ręcznie, aby zobaczyć czas w dowolnym momencie, a dane wyjściowe zmieszają się z normalnym wynikiem polecenia. Jest to w większości ok, ale czasami nie jest praktyczne.

Możesz dodać komendę date do monitu, który będzie wyświetlał (stały) zegar za każdym razem, gdy powłoka jest gotowa na komendę, lub możesz użyć jednego z multiplekserów terminali, które mają linię statusu. Moim preferowanym (choć przyznaję, że najstarszym) jest ekran GNU.

W konsoli lub w terminalu, powiedzmy za pośrednictwem ssh, jeśli używasz ekranu , między zillions różnych rzeczy można zrobić (użyłem myśleć screenjako nieunikniony do pracy kiedy właśnie terminal tekstowy) masz opcję --- co jest zwykle w domyślnej konfiguracji --- posiadania zegara w linii statusu:

Ekran na terminalu

(Zrzut ekranu znajduje się na wirtualnym terminalu, ale jest taki sam na wirtualnej konsoli).

Rmano
źródło
1
Byobu (oparty na ekranie) również robi to po wyjęciu z pudełka. Tylko do informacji
Sergiy Kolodyazhnyy
4

Wyświetli również datę i godzinę:

sudo hwclock

Bardziej szczegółowe:

man hwclock
Żartowniś
źródło
Krótko, ale miło!
Sharad Gautam
1

Nie było wzmianki o pytonie, więc wyrzucę to tutaj:

$ python -c 'import time;print(time.asctime(time.localtime()))'                                                                       
Tue Nov 29 20:25:27 2016

Sposób działania jest dość prosty:

  • importujemy timemoduł
  • localtime()funkcja podaje structtyp danych ze wszystkimi potrzebnymi informacjami, takimi jak pora dnia, dzień, rok itp.
  • asctime() konwertuje wszystkie te informacje na ciąg, a my drukujemy je ładnie sformatowane

Działa zarówno w Pythonie 2, jak i 3.

Sergiy Kolodyazhnyy
źródło
0

jeśli szukasz czegoś takiego jak RRRRMMDDGGMMSS , 20160804020100 użyj tego:

date +%Y%m%d%H%M%S

obsługuje większość celów, takich jak tworzenie kopii zapasowych plików lub filtrowanie dzienników.

computingfreak
źródło
2
Witamy w AskUbuntu. Chociaż ta odpowiedź próbuje rozwiązać opublikowane pytanie, rozwiązanie zostało już wspomniane w odpowiedzi przez wielu innych użytkowników. Osobiście nie uważam tej odpowiedzi za przydatną. Popraw swój post
Sergiy Kolodyazhnyy
0

Jeśli nie masz pewności co do dokładności zegara systemowego lub chcesz użyć zewnętrznego źródła czasu, możesz uzyskać czas przez Internet. Aby uzyskać najlepszą dokładność, możesz użyć sntp(instalowany domyślnie w systemie MacOS i dostarczany jako część dystrybucji NTTP), aby uzyskać datę:

sntp pool.ntp.org 

Jeśli masz dostęp do Internetu tylko wtedy, możesz go uzyskać przez HTTP za pomocą HTP, który jest dostępny w wielu systemach, ponieważ htpdatezwykle ma dokładność z dokładnością do najbliższej sekundy, lub możesz uzyskać do niego dostęp za pomocą TLS (który wyodrębnia znacznik czasu z TLS wymiany), tlsdatektóre mogą zapewnić lepszą dokładność:

tlsdate -nV ntp.org
Pierz
źródło