Como exibir data e hora no terminal Linux (e usá-lo em scripts bash)

Conteúdo

Bash shell no conceito de desktop Unity

a date O comando está no shell bash, que é o shell padrão na maioria das distribuições Linux e até mesmo no macOS. Este tutorial mostra como dominar date na linha de comando e como você pode usá-lo em scripts de shell para fazer mais do que apenas imprimir a hora.

Execute o date comando para ver esta informação. Imprime a data e hora atuais para o seu fuso horário:

encontro

Saída de comando de data

O formato padrão parece um pouco ridículo. Por que o ano não é impresso após o mês e o dia, em vez de ser marcado no final, atrás do fuso horário? Não temas: se o que você quer é controlar o formato de saída, date entrega com. Há mais de 40 opções que você pode ir date para instruí-lo a formatar sua saída exatamente como você gostaria.

Para usar qualquer uma das opções, escriba date, um espaço, um sinal de mais +, e a opção até o sinal de porcentagem principal. a %c (dados e hora no formato local) faz com que a data e a hora sejam impressas no formato padrão associado à sua localidade. Sua localidade é determinada pelas informações geográficas e culturais que você forneceu quando instalou o sistema operacional.. Coloque regras, coisas como o símbolo da moeda, o tamanho do papel, fuso horário e outras normas culturais.

data +% c

Saída do comando de data com opção c

O ano agora aparece em uma posição mais natural na produção.

Você pode passar várias opções para date agora mesmo. Uma sequência de opções é chamada de string de formato. Para ver o nome do dia (%A), o dia do mês (%d) e o nome do mês (%B), use este comando:

data +% A% d% B

Saída de comando de data com opções A d B

Isso funcionou, mas é feio. Não há problema, podemos incluir espaços, desde que você coloque toda a string de formato entre aspas. Observe que o + vai fora de as aspas.

encontro +"%A% d% B"

Saída do comando de data com opção A d B com espaços

Você pode adicionar texto à string de formato, Então:

encontro +"Hoje é: %A% d% B"

Saída de comando de dados com texto adicionado pelo usuário

Role para cima e para baixo no date página man procurar a opção que deseja logo se torna tedioso. Dividimos as opções em grupos para ajudá-lo a encontrar seu caminho mais facilmente.

Opções para exibir a data e hora

  • %C: Imprima a data e hora no formato de suas configurações regionais, incluindo fuso horário.

Saída de comando de data

Opções para exibir a data

  • %D: Imprima a data no formato mm / dd / aa.
  • %F: Imprima a data no formato aaaa-mm-dd.
  • %X: Imprima a data em seu formato local.

Saída de comando de data com opções DF x

Opções para exibir o dia

  • %uma: Imprima o nome do dia, abreviado como Mon, Mar, qua, etc.
  • %UMA: Imprima o nome completo do dia, segunda terça, quarta-feira, etc.
  • % você: Imprime o número do dia da semana, onde segunda-feira = 1, Terça = 2, Quarta-feira = 3, etc.
  • % C: Imprime o número do dia da semana, onde domingo = 0, Segunda-feira = 1, Terça = 2, etc.
  • %D: Imprime o dia do mês, com um zero à esquerda (01, 02… 09) Sim é necessário.
  • %mim: Imprime o dia do mês, com um espaço de liderança (‘1’, ‘2’ ... ‘9’) Sim é necessário. Observe que os apóstrofos não são impressos.
  • % j: Imprima o dia do ano, com até dois zeros à esquerda, Sim é necessário.

Saída do comando de data com opções A uwdej

Opções para exibir a semana

  • % você: Imprime o número da semana do ano, considerando o domingo como o primeiro dia da semana. Por exemplo, a terceira semana do ano, a vigésima semana do ano, etc.
  • % V: Imprime o número da semana ISO do ano, considerando segunda-feira como o primeiro dia da semana.
  • % C: Número da semana do ano, considerando segunda-feira como o primeiro dia da semana.

Saída de comando de data com opções de UVW

Opções para exibir o mês

  • %B o % h: Imprime o nome do mês abreviado como janeiro, fevereiro, marchar, etc.
  • %B: imprima o nome completo do mês, Janeiro, fevereiro, marchar, etc.
  • %metro: Imprime o número do mês, com um zero à esquerda, se necessário 01, 02, 03… 12.

Saída do comando de data com opções bh B m

Opções para exibir o ano

  • %C: Imprime o século sem o ano. Sobre 2019 imprimiria 20.
  • % e: Imprima o ano com dois dígitos. sobre 2019 irá imprimir 19.
  • % E: Imprima o ano com quatro dígitos.

Saída de comando de data com opções C e Y

Opções para exibir a hora

  • % T: Imprima a hora como HH: MILÍMETROS: WL.
  • % R: Imprima a hora e o minuto como HH: MM sem segundos, usando o relógio 24 horas.
  • % r: Imprima a hora com base na sua localização, usando o relógio 12 horas e um indicador de manhã ou tarde.
  • %X: Imprima a hora de acordo com a sua localização, usando o relógio 24 horas. Presumivelmente. Observe que durante o teste, esta opção se comportou exatamente como %r faz, como é mostrado a seguir. Em uma máquina Linux configurada para a localidade do Reino Unido e definida como GMT, imprimiu a hora, usando o relógio 24 horas sin indicador AM o PM, como esperado.

Saída de comando de data com opções TR r X

Opções para exibir a hora

  • % H: Imprimir a hora 00, 01, 02… 23.
  • %eu: Imprima a hora usando o relógio 12 horas, 00, 01, 02… 12, com um zero à esquerda, se necessário.

Saída de comando de data com opções HI

Opções para exibir minutos

  • %METRO: imprima o minuto, 01, 02, 03… 59, com um zero à esquerda, se necessário.

Saída de comando de data com opções M

Opções para mostrar segundos

  • %s: Imprime o número de segundos desde 1970-01-01 00:00:00, o começo do Época Unix.
  • %S: Imprima os segundos, 01, 02, 03… 59, com um zero à esquerda, se necessário.
  • %NORTE: Imprima os nanossegundos.

Saída de comando de data com opções s SN

Opções para exibir informações de fuso horário

  • % Com: Imprimir a diferença horária entre o seu fuso horário e UTC.
  • %: Com: Imprimir a diferença horária entre o seu fuso horário e UTC, com um: entre horas e minutos. Note o : Entre os % assinar e z .
  • % :: Com: Imprimir a diferença horária entre o seu fuso horário e UTC, com um: entre horas, os minutos e os segundos. Note o :: Entre os % assinar e z .
  • % COM: Imprime o nome alfabético do fuso horário.

Saída do comando de data com opções de fuso horário

Opções relacionadas ao formato

  • %pag: Imprime o indicador AM ou PM em maiúsculas.
  • %PAG: Imprima o indicador am ou pm em letras minúsculas. Observe a peculiaridade dessas duas opções. Uma minúscula p saídas em maiúsculas, uma letra maiúscula P saídas em minúsculas.
  • % t: Imprimir uma guia.
  • %Norte: Imprima uma nova linha.

Saída de comando de data com indicador AM PM e opções de formatação

Opções para modificar outras opções

Esses modificadores podem ser inseridos entre os % e a letra de opção de outras opções para modificar sua exibição. Por exemplo, %-S removeria o zero à esquerda para valores de segundos de dígito único.

  • : Um único traço impede o preenchimento de zero em valores de um dígito.
  • _: um sublinhado simples adiciona espaços iniciais para valores de um dígito.
  • 0: Fornece zeros à esquerda para valores de um dígito.
  • ^: Use letras maiusculas, sim é possível (nem todas as opções respeitam este modificador).
  • #: usar o caso oposto ao padrão para o, sim é possível (nem todas as opções respeitam este modificador).

Exatar o comando de data com opções de formatação

Mais dois truques engenhosos

Para obter a última vez para modificar um arquivo, Use o -r (referência) opção. Note que isso usa um - (roteiro) em vez de um % sinal, e não requer um + sinal. tente este comando em sua pasta de casa:

data -r .bashrc

Saia do comando de data com opção de tempo de modificação de arquivo

As configurações de TZ permitem que você altere seu fuso horário durante a duração de um único comando.

TZ=Data GMT +%c

Saia do comando de data para um fuso horário diferente

Usando a data em scripts

Habilitar um script de concha Bash para imprimir a hora e a data é trivial. criar um arquivo de texto com o seguinte conteúdo e salvá-lo como gd.sh.

#!/bin/bash

TODAY=$(encontro +"Hoje é %A, %d de %B")
TIMENOW=$(encontro +"O horário local é %r")
TIME_UK=$(TZ=Data BST +"O tempo no Reino Unido é %r")

echo $TODAY
echo $TIMENOW
echo $TIME_UK

Escriba el siguiente comando para establecer los permisos de ejecución y hacer que el script mar ejecutable.

chmod + x gd.sh

Execute o script com este comando:

./gd.sh

Saída do script Gd.sh

Podemos usar o comando de data para fornecer um carimbo de data / hora. O script mostrado criará um diretório com o carimbo de data / hora como seu nome. Em seguida, ele irá copiar todos os arquivos de texto da pasta atual para ela. Executando este script periodicamente, podemos tirar um instantâneo de nossos arquivos de texto. Com o tempo, vamos criar uma série de pastas com diferentes versões de nossos arquivos de texto.

Tenga en cuenta que este no es un sistema de copia de seguridad sólido, es solo para multas ilustrativos.

criar um arquivo de texto com o seguinte conteúdo e salvá-lo como snapshot.sh.

#!/bin / bash

# obtain the date and time
date_stamp=$(encontro +"%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"

# tudo feito, report back and exit
echo "Arquivos de texto copiados para diretório: "$date_stamp

Escriba el siguiente comando para establecer los permisos de ejecución y hacer que el script mar ejecutable.

chmod +x snapshot.sh

Execute o script com este comando:

./snapshot.sh

Efecto de ejecutar el script snapshot.sh

Ver que se ha creado un directorio. Su nombre es la fecha y hora en que se ejecutó el script. Dentro desse diretório, existem cópias dos arquivos de texto.

Com um pouco de reflexão e criatividade, mesmo o humilde date O comando pode ser usado de forma produtiva.

setTimeout(função(){
!função(f,b,e,v,n,t,s)
{E se(f.fbq)Retorna;n = f.fbq = função(){n.callMethod?
n.callMethod.apply(n,argumentos):n.queue.push(argumentos)};
E se(!f._fbq)f._fbq = n;n.push = n;n.loaded =!0;n.version = ’2.0′;
n.queue =[];t = b.createElement(e);t.async =!0;
t.src = v;s = b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, documento,'roteiro',
‘Https://connect.facebook.net/en_US/fbevents.js ’);
fbq('iniciar', ‘335401813750447’);
fbq('acompanhar', ‘PageView’);
},3000);

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.