Trucs de geek : la commande date

Vous voulez connaître la date ? Ouvrez un terminal et saisissez :

$ $ date

donne :

$ vendredi 27 septembre 2013, 13:56:11 (UTC+0200)
et en plus c'est marqué en français !

On peut faire plus. Vous pouvez indiquez la date à afficher dans ce format :

$ date --date="09/25/2000" (Attention, c'est un format anglais !)

donne

$ lundi 25 septembre 2000, 00:00:00 (UTC+0200)

Cela fonctionne aussi avec des dates entières et alors cela supporte des formats plus français :

$ date --date="25 sept 2000"

donne

$ lundi 25 septembre 2000, 00:00:00 (UTC+0200)

On peut connaître la date dans un mois :

$ date

qui donne

$ vendredi 27 septembre 2013, 14:03:39 (UTC+0200)

et donc

$ date --date="25 sept 2000"

qui donne

lundi 25 septembre 2000, 00:00:00 (UTC+0200)

Pour avoir la date du mois précédent :

$ date --date="1 day ago"

qui donne :

$ jeudi 26 septembre 2013, 14:07:09 (UTC+0200)

Pour hier :

$ date --date="yesterday"

qui donne

$ jeudi 26 septembre 2013, 14:07:57 (UTC+0200)

Il y a 3 secondes :

$ date --date='3 seconds ago'

qui donne :

$ vendredi 27 septembre 2013, 14:08:48 (UTC+0200)

et pour l'année dernière :

$ date --date="1 year ago"

qui donne :

$ jeudi 27 septembre 2012, 14:09:28 (UTC+0200)

Pour fixer (set) la date on utilise la commande -s ou -set

$ sudo date -s "26 sept"

et vous êtes le :

$jeudi 26 septembre 2013, 00:00:00 (UTC+0200)

Pour l'heure c'est le même principe :

$ sudo date -s "14:10"
Vous fais passer l'heure à 14 et 10 minutes.

Pour remettre tout d'aplomb on se règle sur un serveur de temps avec la commande :

$ sudo ntpdate mon.serveur.de.temps.org

Pour régler l'heure en temps universel on utilise l'option : -u ou -utc.

Enfin il existe des commutateurs permettant de récupérer une partie seulement de la date :

      %%     a literal %

       %a     locale's abbreviated weekday name (e.g., Sun)

       %A     locale's full weekday name (e.g., Sunday)

       %b     locale's abbreviated month name (e.g., Jan)

       %B     locale's full month name (e.g., January)

       %c     locale's date and time (e.g., Thu Mar  3 23:05:25 2005)

       %C     century; like %Y, except omit last two digits (e.g., 20)

       %d     day of month (e.g., 01)

       %D     date; same as %m/%d/%y

       %e     day of month, space padded; same as %_d

       %F     full date; same as %Y-%m-%d

       %g     last two digits of year of ISO week number (see %G)

       %G     year of ISO week number (see %V); normally useful only with %V

      %h     same as %b

       %H     hour (00..23)

       %I     hour (01..12)

       %j     day of year (001..366)

       %k     hour, space padded ( 0..23); same as %_H

       %l     hour, space padded ( 1..12); same as %_I

       %m     month (01..12)

       %M     minute (00..59)

       %n     a newline

       %N     nanoseconds (000000000..999999999)

       %p     locale's equivalent of either AM or PM; blank if not known
      %P     like %p, but lower case

       %r     locale's 12-hour clock time (e.g., 11:11:04 PM)

       %R     24-hour hour and minute; same as %H:%M

       %s     seconds since 1970-01-01 00:00:00 UTC

       %S     second (00..60)

       %t     a tab

       %T     time; same as %H:%M:%S

       %u     day of week (1..7); 1 is Monday

       %U     week number of year, with Sunday as first day of week (00..53)

       %V     ISO week number, with Monday as first day of week (01..53)

       %w     day of week (0..6); 0 is Sunday

       %W     week number of year, with Monday as first day of week (00..53)

       %x     locale's date representation (e.g., 12/31/99)

       %X     locale's time representation (e.g., 23:13:48)

       %y     last two digits of year (00..99)

       %Y     year

       %z     +hhmm numeric time zone (e.g., -0400)

       %:z    +hh:mm numeric time zone (e.g., -04:00)

      %::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)

       %:::z  numeric time zone with : to necessary precision (e.g., -04, +05:30)

       %Z     alphabetic time zone abbreviation (e.g., EDT)

Ainsi pour avoir le jour on saisit :

$ date +%A

qui donne :

$ vendredi

Fait le ... C'est déja bien marqué.