La commande Date est un programme bash externe qui permet de régler ou afficher la date et l’heure du système. Il fournit également plusieurs options de formatage. La commande Date est installée par défaut dans toutes les distributions Linux.
$ which date $ type -a date
Type commande date dans le terminal qui affichera la date et l’heure actuelles.
$ date
Modifier la date et l’heure du système Linux
En utilisant commande date, la date, l’heure et le fuseau horaire du système peuvent être modifiés et le changement doit être synchronisé avec l’horloge matérielle.
$ date --set="Thu Nov 12 13:06:59 IST 2020" $ hwclock --systohc
Options de formatage
Un bon endroit pour obtenir la liste des options de formatage sera la page de manuel.
$ man date
Voyons quelques-unes des options de formatage les plus courantes que nous utiliserons.
- Pour appliquer la mise en forme, utilisez « + suivi par « formateur«.
- Pour obtenir une liste des options de formatage pour GNU LINUX, jetez un œil au lien page de manuel.
- Pour obtenir une liste des options de formatage pour BSD, jetez un œil au lien page de manuel.
Les deux parties importantes de la commande date utilise le format +%
et l’option –date.
Maintenant, appliquons une mise en forme sur le commande date. Pour appliquer la mise en forme, ajoutez le signe plus (+)
suivi par %formatter
comme indiqué dans les exemples.
Gestion de la date sous Linux
Voyons comment utiliser les formateurs liés à la date dans un script shell simple appelé ‘date.sh».
# PRINT YEAR,MONTH,DAY AND DATE... echo "We are in the year = $(date +%Y)" echo "We are in the year = $(date +%y)" # Difference between %Y and %y is %Y will print 4 digits while %y will print the last 2 digits of the year. echo "We are in the month = $(date +%m)" echo "We are in the month = $(date +%b)" echo "We are in the month = $(date +%B)" # Difference between %B and %b is, %B will print full month name while %b will print abbreviated month name. echo "Current Day of the month = $(date +%d)" echo "Current Day of the week = $(date +%A)" echo "Current Day of the week = $(date +%a)" # Difference between %A and %a is, %A will print full Weekday name while %a will print abbreviated weekday name. # Instead of formatting to get the date, we can use %D which will print the date as %m/%d/%y or %F which prints in %Y-%M-%d format. echo "Date using %D = $(date +%D)" echo "Date using %F = $(date +%F)"
Temps de traitement sous Linux
Voyons comment utiliser temps formateurs associés dans un simple script shell appelé ‘time.sh».
# PRINT HOURS, MINS, SECONDS, NANO SECONDS echo Hours = $(date +%H) echo Minutes = $(date +%M) echo Seconds = $(date +%S) echo Nanoseconds = $(date +%N) echo Epoch Time = $(date +%s) echo "current time = $(date +%H:%M:%S:%N)" # can also use %T which displays Time in HH:MM:SS format. echo "current time in 24 hour format = $(date +%T)" # can also use %r to display time in 12 hour format. echo "current time in 12 hour format = $(date +%r)"
Avec –date ou -d indicateur
Avec --date
ou -d
L’entrée de l’indicateur peut être passée sous forme de chaîne et commande date sait comment le gérer intelligemment.
Voyons quelques exemples pour comprendre comment cela fonctionne.
# Print yesterday's date and time. echo "Yesterday = $(date -d "Yesterday")" # Print Tomorrow date and time. echo "tomorrow = $(date -d "tomorrow")" # Find what is the date and time before 10 days from now. echo "Before 10 days = $(date -d "tomorrow -10 days")" # Find last month and next month echo "Last month = $(date -d "last month" "%B")" echo "Next month = $(date -d "next month" "%B")" # Find last year and next year echo "Last Year = $(date -d "last year" "+%Y")" echo "Next Year = $(date -d "next year" "+%Y")" # Forecast the weekday echo "2 days away from today and it comes on weekdays? = $(date -d "Today +2 days" "+%A")
Opérations communes
calculer le nombre de jours entre 2 dates données.
$ echo $(( ( $(date -d "2020-11-10" "+%s") - $(date -d "2020-11-01" "+%s") ) / 86400))
Trouvez que l’année donnée est une année bissextile ou non.
$ for y in {2000..2020}; do date -d $y-02-29 &>/dev/null && echo $y is leap year; done
Affectation de la sortie de la commande de date à une variable.
$ TODAY=$(date +%Y-%m-%d) OR $ TODAY1=$(date +%F) $ echo $TODAY $ echo $TODAY1
Créez des fichiers journaux avec la date ajoutée au nom de fichier.
L’ajout de la date et de l’heure lors de la création de fichiers journaux, de sauvegarde ou de fichiers texte est une opération courante que nous rencontrerons le plus souvent. Prenons un exemple, pour faire une sauvegarde, nous avons créé un script shell.
Ce script effectuera une sauvegarde de 00h00 à 23h59 et sera exécuté quotidiennement à 00h00 le jour suivant. Nous voulons créer des fichiers journaux avec le format de date d’hier.
CUSTOM_FORMAT=$(date --date "Yesterday" "+%d-%y-%H:%M") LOG_FILE=/var/log/custom_application/application_${CUSTOM_FORMAT}.log echo "Script started" >> ${LOG_FILE} ... CODE BLOCKS ... echo "Script completed" >> ${LOG_FILE}
Voilà pour cet article. Dans cet article, nous avons vu comment utiliser la date et l’heure bash sous Linux. Faites-nous part de vos commentaires.
Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer:
TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, de guides et de livres Linux sur le Web. Des millions de personnes visitent TecMint! pour rechercher ou parcourir les milliers d’articles publiés disponibles GRATUITEMENT à tous.
Si vous aimez ce que vous lisez, pensez à nous acheter un café (ou 2) en guise de remerciement.
Nous sommes reconnaissants pour votre soutien sans fin.
.