Linux Tutoriels

Comment afficher la date et l’heure dans le terminal Linux (et l’utiliser dans les scripts Bash)

La commande date se trouve dans le shell Bash, qui est le shell par défaut dans la plupart des distributions Linux et même macOS. Ce didacticiel vous montre comment maîtriser la date sur la ligne de commande et comment vous pouvez l’utiliser dans des scripts shell pour faire plus que simplement imprimer l’heure.

Exécutez la commande date pour voir ces informations. Il imprime la date et l’heure actuelles de votre fuseau horaire:

date

Sortie de la commande de date

Le formatage par défaut semble un peu loufoque. Pourquoi l’année n’est-elle pas imprimée après le mois et le jour, au lieu d’être taguée à la fin, derrière le fuseau horaire? N’ayez pas peur: si vous contrôlez le format de la sortie que vous souhaitez, la date le livre à la pelle. Il existe plus de 40 options que vous pouvez transmettre à ce jour pour lui demander de formater sa sortie exactement comme vous le souhaitez.

Pour utiliser l’une des options, tapez date, un espace, un signe plus + et l’option incluant le signe de pourcentage de début. L’option% c (données et heure au format local) entraîne l’impression de la date et de l’heure dans le format normalisé associé à vos paramètres régionaux. Vos paramètres régionaux sont définis par les informations géographiques et culturelles que vous avez fournies lors de l’installation de votre système d’exploitation. Les paramètres régionaux régissent des éléments tels que le symbole monétaire, les formats de papier, le fuseau horaire et d’autres normes culturelles.

date +%c

Sortie de la commande date avec option c

L’année apparaît maintenant dans une position plus naturelle dans la production.

Vous pouvez passer plusieurs options à ce jour à la fois. Une séquence d’options est appelée une chaîne de format. Pour voir le nom du jour (% A), le jour du mois (% d) et le nom du mois (% B), utilisez cette commande:

date +%A%d%B

Sortie de la commande de date avec options A d B

Cela a fonctionné, mais c’est moche. Pas de problème, nous pouvons inclure des espaces tant que nous mettons toute la chaîne de format entre guillemets. Notez que le + sort des guillemets.

date +"%A %d %B"

Sortie de la commande de date avec option A d B avec espaces

Vous pouvez ajouter du texte à la chaîne de format, comme ceci:

date +"Today is: %A %d %B"

Sortie de la commande de données avec texte ajouté par l'utilisateur

Faire défiler la date de haut en bas page de manuel la recherche de l’option souhaitée devient vite fastidieuse. Nous avons réparti les options en groupes pour vous aider à vous y retrouver plus facilement.

Options d’affichage de la date et de l’heure

% c: imprime la date et l’heure au format de vos paramètres régionaux, y compris le fuseau horaire.

  4 meilleures alternatives Microsoft Access pour les utilisateurs Linux

Sortie de la commande de date

Options d’affichage de la date

% D: imprime la date au format mm / jj / aa.
% F: imprime la date au format aaaa-mm-jj.
% x: imprime la date au format de vos paramètres régionaux.

Sortie de la commande de date avec options DF x

Options d’affichage du jour

% a: imprime le nom du jour, abrégé en lun, mar, mer, etc.
% A: imprime le nom complet du jour, lundi mardi, mercredi, etc.
% u: imprime le numéro du jour de la semaine, où lundi = 1, mardi = 2, mercredi = 3, etc.
% w: imprime le numéro du jour de la semaine, où dimanche = 0, lundi = 1, mardi = 2, etc.
% d: imprime le jour du mois, avec un zéro non significatif (01, 02… 09) si nécessaire.
% e: imprime le jour du mois, avec un espace au début («1», «2»… «9») si nécessaire. Notez que les apostrophes ne s’impriment pas.
% j: imprime le jour de l’année, avec jusqu’à deux zéros non significatifs, si nécessaire.

Sortie de la commande date avec les options A uwdej

Options d’affichage de la semaine

% U: imprime le numéro de semaine de l’année, en considérant le dimanche comme le premier jour de la semaine. Par exemple, la troisième semaine de l’année, la vingtième semaine de l’année, etc.
% V: imprime le numéro de semaine ISO de l’année, en considérant le lundi comme le premier jour de la semaine.
% W: numéro de semaine de l’année, en considérant le lundi comme premier jour de la semaine.

Sortie de la commande de date avec les options UVW

Options d’affichage du mois

% b ou% h: imprime le nom du mois abrégé en janvier, février, mars, etc.
% B: imprime le nom complet du mois, janvier, février, mars, etc.
% m: imprime le numéro du mois, avec un zéro non significatif si nécessaire 01, 02, 03… 12.

Sortie de la commande date avec options bh B m

Options d’affichage de l’année

% C: imprime le siècle sans l’année. En 2019, il en imprimerait 20.
% y: imprime l’année sous forme de deux chiffres. en 2019, il en imprimera 19.
% Y: imprime l’année sous forme de quatre chiffres.

  Comment se déconnecter à distance de Netflix

Sortie de la commande de date avec options C y Y

Options d’affichage de l’heure

% T: imprime l’heure sous la forme HH: MM: SS.
% R: imprime les heures et les minutes au format HH: MM sans seconde, en utilisant l’horloge de 24 heures.
% r: imprime l’heure en fonction de vos paramètres régionaux, en utilisant l’horloge de 12 heures et un indicateur am ou pm.
% X: imprime l’heure en fonction de vos paramètres régionaux, en utilisant l’horloge de 24 heures. Prétendument. Notez que pendant le test, cette option s’est comportée exactement comme le fait% r, comme indiqué ci-dessous. Sur une machine Linux configurée pour les paramètres régionaux du Royaume-Uni et réglée sur GMT, il imprimait l’heure, en utilisant l’horloge de 24 heures sans indicateur AM ou PM, comme prévu.

Sortie de la commande de date avec options TR r X

Options d’affichage de l’heure

% H: imprime les heures 00, 01, 02… 23.
% I: imprime l’heure au format 12 heures, 00, 01, 02… 12, avec un zéro non significatif si nécessaire.

Sortie de la commande de date avec options HI

Options d’affichage des minutes

% M: imprime la minute, 01, 02, 03… 59, avec un zéro non significatif si nécessaire.

Sortie de la commande de date avec options M

Options d’affichage des secondes

% s: imprime le nombre de secondes depuis 1970-01-01 00:00:00, le début de Époque Unix.
% S: imprime les secondes, 01, 02, 03… 59, avec un zéro non significatif si nécessaire.
% N: imprime les nanosecondes.

Sortie de la commande de date avec s options SN

Options d’affichage des informations sur le fuseau horaire

% z: imprime le décalage horaire entre votre fuseau horaire et UTC.
%: z: imprime le décalage horaire entre votre fuseau horaire et UTC, avec un: entre les heures et les minutes. Notez le: entre le signe% et z.
% :: z: imprime le décalage horaire entre votre fuseau horaire et UTC, avec un: entre les heures, les minutes et les secondes. Notez le :: entre le signe% et z.
% Z: imprime le nom du fuseau horaire alphabétique.

Sortie de la commande de date avec les options de fuseau horaire

Options liées au formatage

% p: imprime l’indicateur AM ou PM en majuscules.
% P: imprime l’indicateur du matin ou de l’après-midi en minuscules. Notez la bizarrerie avec ces deux options. Un p minuscule donne une sortie en majuscule, un P majuscule donne une sortie en minuscule.
% t: imprime un onglet.
% n: imprime une nouvelle ligne.

Sortie de la commande de date avec indicateur AM PM et options de formatage

Options pour modifier d’autres options

Ces modificateurs peuvent être insérés entre le% et la lettre d’option d’autres options pour modifier leur affichage. Par exemple,% -S supprimerait le zéro non significatif pour les valeurs de secondes à un chiffre.

  Qu'est-ce que la mise au point du bouton retour?

-: Un seul trait d’union empêche le remplissage de zéro sur les valeurs à un seul chiffre.
_: un seul trait de soulignement ajoute des espaces de début pour les valeurs à un seul chiffre.
0: fournit des zéros non significatifs pour les valeurs à un chiffre.
^: Utilise des majuscules, si possible (toutes les options ne respectent pas ce modificateur).
#: Utilisez le cas contraire du cas par défaut pour l’option, si possible (toutes les options ne respectent pas ce modificateur).

Sortie de la commande de date avec options de formatage

Deux autres astuces intéressantes

Pour obtenir l’heure de la dernière modification d’un fichier, utilisez l’option -r (référence). Notez que cela utilise un – (trait d’union) au lieu d’un signe%, et qu’il ne nécessite pas de signe +. Essayez cette commande dans votre dossier personnel:

date -r .bashrc

Sortie de la commande de date avec option heure de modification du fichier

Le paramètre TZ vous permet de modifier votre fuseau horaire pour la durée d’une seule commande.

TZ=GMT date +%c

Sortie de la commande de date pour un fuseau horaire différent

Utilisation de la date dans les scripts

L’activation d’un script shell Bash pour imprimer l’heure et la date est triviale. Créez un fichier texte avec le contenu suivant et enregistrez-le sous gd.sh.

#!/bin/bash

TODAY=$(date +"Today is %A, %d of %B")
TIMENOW=$(date +"The local time is %r")
TIME_UK=$(TZ=BST date +"The time in the UK is %r")

echo $TODAY
echo $TIMENOW
echo $TIME_UK

Tapez la commande suivante pour définir les autorisations d’exécution et rendre le script exécutable.

chmod +x gd.sh

Exécutez le script avec cette commande:

./gd.sh

Sortie du script gd.sh

Nous pouvons utiliser la commande date pour fournir un horodatage. Le script affiché créera un répertoire avec l’horodatage comme nom. Il copiera ensuite tous les fichiers texte du dossier actuel dans celui-ci. En exécutant ce script périodiquement, nous pouvons prendre un instantané de nos fichiers texte. Au fil du temps, nous créerons une série de dossiers contenant différentes versions de nos fichiers texte.

Notez que ce n’est pas un système de sauvegarde robuste, c’est juste à des fins d’illustration.

Créez un fichier texte avec le contenu suivant et enregistrez-le sous snapshot.sh.

#!/bin/bash

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

# all done, report back and exit
echo "Text files copied to directory: "$date_stamp

Tapez la commande suivante pour définir les autorisations d’exécution et rendre le script exécutable.

chmod +x snapshot.sh

Exécutez le script avec cette commande:

./snapshot.sh

Effet de l'exécution du script snapshot.sh

Vous verrez qu’un répertoire a été créé. Son nom est la date et l’heure auxquelles le script a été exécuté. Dans ce répertoire se trouvent des copies des fichiers texte.

Avec un peu de réflexion et de créativité, même la commande de date modeste peut être utilisée de manière productive.