Como obter data e hora usando a interface da linha de comandos?

101

Como posso obter a data / hora atual no terminal. Principalmente inicio o sistema no modo de texto (console) e preciso do comando para saber a data / hora atual.

Sharad Gautam
fonte

Respostas:

176

O datecomando mostrará a data e a hora.

man datemostrará como controlar a saída para o formato que você precisar, se desejar algo diferente da saída padrão. Por exemplo:

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

produzirá a data e a hora no formato 14:09:22 09/06/2015

Uma versão mais fácil de ler da página de manual pode ser encontrada nas Man Pages do Ubuntu

Carl H
fonte
7
+1 apenas para dizerman date
jshthornton
como posso obter diferença de fuso horário?
Ali D.
19

Hora como o prompt da linha de comandos:

PS1="\@ \w$bk"

Parece: 11:41 AM ~

Um pouco mais chique, entre parênteses:

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

Parece: [11:36 ~]

Adicione o usuário e o host local com a hora, tudo entre colchetes:

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

Parece que: [DrPete em LittleSorrel 10:34 ~]

Redefina o prompt para o padrão #: PS1="# "

Para disponibilizar permanentemente o prompt , adicione a linha de prompt de sua escolha, ou seja,

export PS1="\@ \w$bk "

para ~ / .profile.

Não podemos evitar, estamos rolando agora ... adicione cores, defina-as em .profile para facilitar a configuração:

 # 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

Em seguida, um prompt colorido de superfancy seria:

PS1="[ $txtYellow\u on $txtCyan\h $txtRed\@ $txtWhite\w$bk ]"
drPete
fonte
resposta muito boa =) mas um pouco curta.
AB
Minha primeira resposta - agora que não sou mais virgem - expanda de que maneira, narrativa ou link para informações de prompt da CLI?
precisa
Como posso tornar isso permanente, por exemplo.
AB
basta exportar @AB inteligente Resposta btw :)
Sharad Gautam
1
Resposta melhor = mais votos positivos
AB
16

Há uma lista de comandos usados ​​para hora e data:

  1. O comando date

    $ date 
    Tue Jun  9 18:04:30 EEST 2015
    
  2. O comando zdumpusado para ecoar a hora em um fuso horário especificado.

    $ 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. relógio, mas precisa instalar xview-clients

    sudo apt-get install xview-clients
    
  5. usando o ntpdatecomando ntpdateé usado para definir a hora do sistema, mas usar sem sudoimprimirá apenas a hora e a data.

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

Com o Ubuntu 15.04 (systemd), há também o timedatectlque mostra a hora e permite que você mude e muito mais man timedatectl.

Sem argumentos, dá

% timedatectl
Aviso: Ignorando a variável TZ. Lendo apenas a configuração de fuso horário do sistema.

      Hora local: ke 2015-06-10 10:31:59 EEST
  Horário universal: ke 2015-06-10 07:31:59 UTC
        Tempo RTC: ke 2015-06-10 07:31:59
       Fuso horário: Europe / Helsinki (EEST, +0300)
     NTP ativado: sim
NTP sincronizado: sim
 RTC na TZ local: não
      Horário de verão ativo: sim
 Última alteração do horário de verão: o horário de verão começou às
                  su 2015-03-29 02:59:59 EET
                  su 2015-03-29 04:00:00 EEST
 Próxima alteração do horário de verão: o horário de verão termina (o relógio avança uma hora para trás) às
                  su 2015-10-25 03:59:59 EEST
                  su 2015-10-25 03:00:00 EET

E outro recurso interessante que usei é o timedatectl set-ntp trueque ativa o systemd-timesyncdcliente SNTP (Simple Network Time Protocol) embutido que sincroniza seu relógio com o servidor remoto.

Mikaela
fonte
1
$ timedatectlfunciona bem aqui no Ubuntu 14.04 também.
Doorknob
8

Embora todas as respostas aqui estejam corretas, você precisa usar o datecomando manualmente para ver a hora sempre que quiser, e a saída será combinada com a saída normal do seu comando. Isso é bom, mas às vezes não é prático.

Você pode adicionar o comando date ao seu prompt, que mostrará um relógio (fixo) toda vez que o shell estiver pronto para o comando, ou você pode usar um dos multiplexadores de terminal que possuem uma linha de status. O meu preferido (embora eu admita o mais antigo) é a tela GNU.

No console ou em um terminal, digamos via ssh, se você usar a tela , entre zilhões de coisas diferentes que você pode fazer (eu costumava considerar screeninevitável trabalhar quando tinha apenas um terminal de texto), você tem a opção --- que é normalmente na configuração padrão --- de ter um relógio na linha de status:

Tela em um terminal

(A captura de tela está em um terminal virtual, mas é a mesma em um console virtual).

Rmano
fonte
1
O Byobu (que é baseado na tela) também faz isso imediatamente. Apenas FYI
Sergiy Kolodyazhnyy
4

Também exibirá a data e hora:

sudo hwclock

Mais detalhado:

man hwclock
Palhaço
fonte
Curto, mas agradável!
Sharad Gautam
1

Não houve menção de python, então eu vou jogá-lo aqui:

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

O modo como funciona é bastante simples:

  • nós importamos timemódulo
  • localtime()A função fornece ao structtipo de dados todas as informações necessárias, como hora do dia, dia, ano, etc.
  • asctime() converte todas essas informações em string e as imprimimos de maneira bem formatada

Funciona em python 2 e 3 da mesma forma.

Sergiy Kolodyazhnyy
fonte
0

se você estiver procurando algo como AAAAMMDDHHMMSS , 20160804020100, use este:

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

ele serve para a maioria dos propósitos, como backup de arquivo ou filtragem de log.

computerfreak
fonte
2
Bem-vindo ao AskUbuntu. Embora essa resposta tente resolver a pergunta postada, a solução já foi mencionada na resposta por vários outros usuários. Pessoalmente, não acho essa resposta útil. Por favor, melhorar o seu pós
Sergiy Kolodyazhnyy
0

Se você não tiver certeza da precisão do relógio do sistema, ou quiser usar uma fonte de tempo externa, poderá obter o horário pela Internet. Para obter melhor precisão, você pode usar sntp(instalado por padrão no MacOS e vem como parte das distribuições ntp) para obter a data:

sntp pool.ntp.org 

Se você tiver apenas acesso da Web à Internet, poderá obtê-lo por HTTP usando HTP, disponível em muitos sistemas, pois htpdatenormalmente só tem precisão para o segundo mais próximo, ou você pode acessá-lo usando TLS (que extrai o registro de data e hora do TLS troca), tlsdateque pode fornecer uma melhor precisão:

tlsdate -nV ntp.org
Pierz
fonte