Mientras trabaja en la línea de comandos de Linux, es posible que se encuentre en situaciones en las que necesite mostrar (o incluso cambiar) la hora actual del sistema. No solo eso, si trabaja en un equipo con miembros en diferentes zonas horarias, es posible que desee mantenerse actualizado con información relacionada con la hora para las zonas en las que están sentados otros miembros.
Si está buscando una herramienta que le permita hacer todo esto (y mucho más), le alegrará saber que existe un comando denominado fecha - que hace todo esto. En este tutorial, discutiremos los conceptos básicos del comando 'fecha' y cómo puede usarlo. Pero antes de hacerlo, vale la pena mencionar que todos los comandos e instrucciones mencionados aquí han sido probados en Ubuntu 16.04 LTS.
Comando de fecha de Linux
Esta es la sintaxis genérica del comando de fecha:
date [OPTION]... [+FORMAT]
Y esto es lo que dice la página de manual de la herramienta al respecto:
date - print or set the system date and time
Display the current time in the given FORMAT, or set the system date.
Los siguientes ejemplos de estilo de preguntas y respuestas le darán una buena idea de cómo funciona este comando.
P1. ¿Cómo obtener información de fecha/hora del sistema usando el comando de fecha?
Ese es el comportamiento predeterminado de la herramienta. Para conocer la fecha y hora de su sistema, todo lo que tiene que hacer es ejecutar la herramienta de la siguiente manera (sí, sin ninguna opción):
date
Aquí está el comando en acción:
Para que pueda ver que la información como el día, la fecha, la hora, la zona horaria y el año se muestran en la salida.
Q2. ¿Cómo obtener la fecha correspondiente a un día?
La mayoría de las veces, consultamos los calendarios para saber qué fecha es en un día particular de la semana. Por ejemplo, el requisito podría ser saber la fecha del 'próximo martes'. Te alegrará saber que esto también es posible usando el comando 'fecha'.
La -d o --fecha opción de línea de comando sería de ayuda en este caso:
date -d "next Tuesday"
Aquí está el comando anterior en acción:
Entonces, como puede ver, el comando reveló que el próximo martes es el 4 de julio.
La entrada a la opción -d/--date puede ser de diferentes tipos. Así es como lo describe la página man:
The --date=STRING is a mostly free format human readable date string such as
"Sun, 29 Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next Thursday".
A date string may contain items indicating calendar date, time of day, time zone, day of week,
relative time, relative date, and numbers. An empty string indicates the beginning of the day.
The date string format is more complex than is easily documented here but is fully described in
the info documentation.
Para acceder a la documentación de información para la fecha, use el siguiente comando:
info date
P3. ¿Cómo mostrar información de fecha/hora en formato ISO 8601?
En caso de que desee que la herramienta muestre información de fecha/hora en formato ISO 8601, puede utilizar --iso-8601 opción de línea de comando. Esta opción requiere que especifique un formato.
--iso-8601[=FMT]
Así es como la página de manual explica 'formato':
FMT='date' for date only (the default), 'hours', 'minutes', 'seconds', or 'ns' for date and time to
the indicated precision. Example: 2006-08-14T02:34:56-0600
Por ejemplo, probé el siguiente comando:
date --iso-8601=seconds
Y aquí está el resultado que produjo:
2017-06-27T14:20:39+05:30
P4. ¿Cómo mostrar la fecha/hora en formato RFC 3339?
Como habrás adivinado, también hay una opción de línea de comando dedicada para esto:--rfc-3339 . Al igual que la opción discutida en la sección anterior, esta también requiere que ingrese un especificador de formato.
La siguiente captura de pantalla muestra esta opción en acción:
Del mismo modo, puede utilizar --rfc-2822 opción para mostrar la salida en ese formato.
P5. ¿Cómo usar la fecha para mostrar la hora de la última modificación de un archivo?
También puede usar el comando de fecha para mostrar la hora de la última modificación de un archivo. -r de la herramienta opción le permite hacer esto. He aquí un ejemplo:
date -r file1
P6. ¿Cómo configurar la fecha/hora del sistema usando el comando de fecha?
Para establecer la fecha/hora del sistema en un valor diferente, use -s opción de línea de comando. Esta opción requiere una cadena que se usará como entrada para configurar la fecha/hora del sistema.
date -s STRING
NOTA:Las opciones disponibles que puede usar como STRINGS ya se explican en la Q2 anterior.
Aquí hay un ejemplo de cómo usamos la -s Opción para configurar fecha y hora de nuestro sistema:
date -s "2017-06-27 14:53:00"
Tenga en cuenta que es posible que deba usar 'sudo' para que funcione la opción -s. Para aquellos que no están seguros de qué es sudo, diríjanse aquí.
P7. ¿Cómo mostrar la hora actual de alguna otra ubicación?
Para hacer que el comando 'fecha' muestre la hora actual de alguna otra ubicación, por ejemplo, Melbourne en Australia, utilícelo de la siguiente manera:
TZ="Australia/Melbourne" date
Aquí está el comando anterior en acción:
Nota :Puede usar el comando 'tzselect' para encontrar el valor que necesita pasar a TZ.
P8. ¿Cómo imprimir o establecer la hora universal coordinada (UTC)?
Para ello, utilice la -u opción de línea de comando. Por ejemplo, el siguiente comando mostrará la información en UTC:
date -u
Conclusión
Como la mayoría de ustedes estaría de acuerdo, el comando de fecha no es nada difícil de entender y usar. Además, el hecho de que también se pueda usar al tratar con múltiples ubicaciones geográficas lo convierte en una importante herramienta de línea de comandos. Hemos discutido la mayoría de las opciones de la línea de comandos de la herramienta aquí, así que pruébelas en su sistema. Para obtener más información, diríjase a la página de manual del comando.