Come ottenere la data e l'ora utilizzando l'interfaccia della riga di comando?


101

Come posso ottenere la data / ora corrente nel terminale. Per lo più avvio il mio sistema in modalità testo (console) e ho bisogno del comando per conoscere la data / ora corrente.

Risposte:


176

Il datecomando ti mostrerà la data e l'ora.

man dateti mostrerà come controllare l'output in qualunque formato tu abbia bisogno, se vuoi qualcosa di diverso dall'output standard. Per esempio:

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

produrrà la data e l'ora nel formato 14:09:22 09/06/2015

Una versione più semplice da leggere della pagina man è disponibile nelle pagine man di Ubuntu


7
+1 solo per direman date
jshthornton

come posso ottenere la differenza di fuso orario?
Ali D.

19

Ora come prompt della riga di comando:

PS1="\@ \w$bk"

Sembra: 11:41 ~

Un po 'più elaborato, racchiuso tra parentesi:

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

Sembra: [11:36 AM ~]

Aggiungi l'utente e localhost con l'ora, il tutto tra parentesi:

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

Sembra: [DrPete su LittleSorrel 10:34 ~]

Ripristina prompt su # predefinito: PS1="# "

Per rendere il prompt permanentemente disponibile, aggiungi la riga del prompt che preferisci, ovvero

export PS1="\@ \w$bk "

a ~ / .profile.

Non posso farci niente, stiamo rotolando ora ... aggiungi colori, definiscili in .profile per renderli più facili da configurare:

 # 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

Quindi un prompt colorato superfancy sarebbe:

PS1="[ $txtYellow\u on $txtCyan\h $txtRed\@ $txtWhite\w$bk ]"

ottima risposta =) ma un po 'breve.
AB

La mia prima risposta - così ora che non sono più vergine - espandi in che modo, narrativa o link alle informazioni del prompt della CLI?
drPete,

Come posso renderlo permanente, ad es.
AB

basta esportare @AB Risposta intelligente tra l'altro :)
Sharad Gautam,

1
Risposta migliore = più voti positivi
AB

16

Esiste un elenco di comandi utilizzati per ora e data:

  1. Il comando date

    $ date 
    Tue Jun  9 18:04:30 EEST 2015
    
  2. Il comando zdumputilizzato per ripetere l'ora in un fuso orario specificato.

    $ 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. orologio ma deve installare xview-client

    sudo apt-get install xview-clients
    
  5. usando il ntpdatecomando. ntpdateè usato per impostare l'ora del sistema, ma usando senza sudosi stampa solo l'ora e la data.

    $ ntpdate
    
    26 Jun 10:48:34 ntpdate[4748]: no servers can be used, exiting
    

11

Con Ubuntu 15.04 (systemd) c'è anche timedatectlche ti mostra l'ora e ti permette di cambiarla e altro ancora man timedatectl.

Senza argomenti dà

% timedatectl
Avvertenza: ignorare la variabile TZ. Lettura solo dell'impostazione del fuso orario del sistema.

      Ora locale: ke 2015-06-10 10:31:59 EEST
  Tempo universale: ke 2015-06-10 07:31:59 UTC
        Orario RTC: ke 2015-06-10 07:31:59
       Fuso orario: Europa / Helsinki (EEST, +0300)
     NTP abilitato: si
NTP sincronizzato: sì
 RTC nella TZ locale: no
      Ora legale attiva: si
 Ultima modifica dell'ora legale: l'ora legale è iniziata alle
                  su 2015-03-29 02:59:59 EET
                  su 2015-03-29 04:00:00 EEST
 Prossima modifica dell'ora legale: l'ora legale termina (l'orologio salta indietro di un'ora) alle
                  su 2015-10-25 03:59:59 EEST
                  su 2015-10-25 03:00:00 EET

E un'altra bella funzionalità che ho usato è quella timedatectl set-ntp trueche attiva il systemd-timesyncdclient SNTP (Simple Network Time Protocol) inbuild che sincronizza l'orologio con il server remoto.


1
$ timedatectlfunziona bene anche qui su Ubuntu 14.04.
Doorknob,

8

Sebbene tutte le risposte qui siano corrette, devi usare il datecomando manualmente per vedere l'ora quando vuoi e l'output si mescolerà con l'output normale del tuo comando. Questo è per lo più ok, ma a volte non è pratico.

È possibile aggiungere il comando date al prompt che mostrerà un orologio (fisso) ogni volta che la shell è pronta per il comando, oppure è possibile utilizzare uno dei multiplexer del terminale con una riga di stato. Il mio preferito (anche se lo ammetto il più vecchio) è lo schermo GNU.

In console o in un terminale, dì tramite ssh, se usi lo schermo , tra miliardi di cose diverse che puoi fare (pensavo fosse screeninevitabile per lavorare quando avevo solo un terminale di testo) hai l'opzione --- che è normalmente nella configurazione predefinita --- di avere un orologio nella riga di stato:

Schermo su un terminale

(Lo screenshot è su un terminale virtuale, ma è lo stesso su una console virtuale).


1
Anche Byobu (basato sullo schermo) lo fa immediatamente. Cordiali saluti
Sergiy Kolodyazhnyy,


1

Non c'era menzione di Python, quindi lo butto qui:

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

Il modo in cui funziona è abbastanza semplice:

  • importiamo il timemodulo
  • localtime()La funzione fornisce al structtipo di dati tutte le informazioni necessarie, come l'ora del giorno, il giorno, l'anno, ecc.
  • asctime() converte tutte queste informazioni in stringa e le stampiamo in modo ben formattato

Funziona in Python 2 e 3 allo stesso modo.


0

se stai cercando qualcosa di simile come AAAAMMGGHHMMSS , 20160804020100 usa questo:

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

server la maggior parte degli scopi come il backup dei file o il filtro dei log.


2
Benvenuto in AskUbuntu. Mentre questa risposta tenta di risolvere la domanda pubblicata, la soluzione è già stata menzionata nella risposta da più altri utenti. Personalmente non trovo utile questa risposta. Per favore, migliora il tuo post
Sergiy Kolodyazhnyy,

0

Se non si è sicuri della precisione dell'orologio del proprio sistema o si desidera utilizzare una fonte di tempo esterna, è possibile ottenere l'ora su Internet. Per la massima precisione, è possibile utilizzare sntp(installato per impostazione predefinita su MacOS e incluso nelle distribuzioni ntp) per ottenere la data:

sntp pool.ntp.org 

Se si dispone solo dell'accesso Web a Internet, è possibile ottenerlo tramite HTTP utilizzando HTP, che è disponibile su molti sistemi in quanto di htpdatesolito ha solo la precisione al secondo più vicino, oppure è possibile accedervi tramite TLS (che estrae il timestamp dal TLS scambio) tlsdateche può fornire una migliore precisione:

tlsdate -nV ntp.org
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.