Cómo poner la fecha y hora siempre visible en la terminal

[color=#000080]Dicen que una imagen vale más que mil palabras, es por ello que antes de explicarles algo, deben fijarse en la imagen que les dejo y allí verán cuál es el resultado del comando que más abajo indico.

Noten como en la esquina superior derecha nos aparece el día de la semana lun (lunes), el mes (dic), el día (23) así como la hora, minuto, segundo y año.

Es algo que se actualiza en tiempo real, o sea, cada un segundo se actualiza esa información, y siempre estará en la esquina superior derecha de la terminal.

Esto es algo útil pues, podemos estar editando un archivo con nano o vi, podemos estar instalando cualquier tipo de servicio o administrando lo que sea, y no necesitaremos detener lo que hacemos, ejecutar date en la terminal para así saber la fecha u hora, con este tip que les muestro siempre la tendremos presente.

Para lograr esto en una terminal pongamos lo siguiente:[/color]

[size=medium]while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &[/size]

[color=#000080]Esto como tal no es un comando o instrucción simple, sino más bien una unión de ellos … vamos, un script también podría ser. Explicarlo es un tanto complejo, no obstante haré mi mejor esfuerzo:

while sleep 1;do : Esto significa que cada un segundo se ejecutará lo siguiente
tput sc : Significa que se guardará la posición actual, o sea, que la posición de lo que vendrá a continuación se guardará, no volverá a ser necesario especificarla después de una vez.
tput cup 0$(($(tput cols)-29)) : Esto puede parecer complicado no obstante, no es tan difícil. Básicamente esto es lo que dice la posición, o sea, la esquina superior derecha. El parámetro cup especifica el espacio vertical que existirá, como ponemos 0 entonces significa “justo arriba, en el top”. Una vez definido la posición vertical nos queda ver la horizontal, de lo cual se encarga el resto de los parámetros, que para decirlo de forma simple… calcula las columnas existentes y se encarga de que esté justo en el borde derecho. Si lo desean cambien el número 29 por otros y notarán la diferencia.
date : Bueno esto es simple, date nos muestra la información que vemos … día, mes, hora, etc.
tput rc : Son tput sc guardamos la posición, ahora con tput rc la restauramos.
done : Aquí terminamos ya todo, lo que empezamos con el while.

Como pueden ver, la terminal es sin lugar a dudas un espacio maravilloso, si un comando no hace exactamente lo que queremos … podemos unir varios de ellos y lograr lo que deseamos. Vean cada comando como una herramienta, una herramienta (martillo) no puede hacernos una hermosa estatua, sin embargo, uniendo esta herramienta (martillo) con otras (madera y cincel) sí podemos llegar al resultado soñado.

Ah, por cierto… si desean que esto les aparezca siempre en la terminal sin necesidad de ejecutarlo cada vez que abran una consola, lo deben poner en .bashrc, o sea abrir Konsole y colocar:[/color]

[size=medium]echo “while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &” >> $HOME/.bashrc[/size]

[color=#000080]Luego si desean quitarlo, ejecuten lo siguiente:[/color]

[size=medium]sed -i “s/while sleep 1/#while sleep 1/” $HOME/.bashrc[/size]

[color=#000080]Bueno nada más que agregar, espero les haya sido de utilidad

Saludos [KZKG^Gaara - Desde Linux][/color]