Al diagnosticar un problema intermitente, tener la hora exacta en la que una prueba arrojó un determinado resultado puede ser muy útil al momento de tratarlo con los proveedores o intercambiar información con otro técnico.
Por medio de cambiar el prompt PS1 de Bash he resuelto el problema de saber a qué hora ejecuté un comando.
Mi prompt anterior era el default de Ubuntu:
PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '
Para efectos de simplificar, eliminaré la parte ${debian_chroot:+($debian_chroot)}
. Bastará indicar que muestra la variable de entorno debian_chroot
entre paréntesis cuando ésta tenga un valor asignado. Desconozco más.
Digamos entonces que mi prompt anterior era:
PS1='u@h:w$ '
Y planteé como objetivos:
- Que me permitiera encontrar fácilmente la separación entre comandos ejecutados.
- Que me permitiera separar visual y fácilmente los componentes del prompt.
- Que me permitiera determinar cuándo exactamente ejecuté un comando (útil durante mantenimientos de emergencia).
- Que a pesar de tanta información, no se me acabe el renglón para escribir mi comando.
Así que:
- Incluí un
n
al principio del prompt para dejar una línea en blanco. - Incluí la fecha y hora con huso horario
d t D{%z}
. El huso horario es particularmente útil cuando hay que compartir un resultado con un tercero que pudiera estar en otro lugar. - Puse en verde el identificador de usuario y en azul el directorio actual
- Inicié el comando en una línea nueva. Una ventaja de esto fue que para documentar, puedo simplemente copiar toda la línea y no se incluye toda la información irrelevante.
Quedó como sigue:
SET_GREEN=`echo -e ' 33[01;32m'` SET_BLUE=`echo -e ' 33[01;34m'` UNSET_COLOR=`echo -e ' 33[0m'` PS1='n[d t D{%z} -- [$SET_GREEN]u@h[$UNSET_COLOR]:[$SET_BLUE]w[$UNSET_COLOR]]n$ '
En líneas posteriores en mi .bashrc, Debian y Ubuntu anteponen [e]0;u@h: wa]
para que el título cambie al establecer el prompt. Esto se habilita si la terminal es compatible con los cambios de título.
El resultado final es:
interesante, lo puse en mi bash haber que.
Esta interesante, sin embargo algunos le vemos un pero jejeje pero a otros les seria muy util 🙂
@tonymoyoy: gracias, me gustaría saber si le haces modificaciones cuáles fueron.
@mic: no entendí a cuál pero te refieres.
Muy bueno, algo asi utilizaba, más cuando doy soporte remoto con screen para clientes, para tener la evidencia, para que luego no salgan con que a no se hizo y no se que…. jejeje, la neta la neta como rifan los prompt de dos lineas, hay que hacer unas funciones o alias de bash para tener algo así:
$ set_bash_simple
y tener el clasico shell,
$ set_bash_multiline
y el prompt de dos lineas sin fecha, para cuando uno trabaja y no quiere tener la fecha, cero presion 🙂
y
$ set bash_soportes
Y pues ese como el que tu pones, esto les digo porque luego una vez se me olvido y deje el bash de dos lineas con un cliente y se andaban desmayando cuando lo vieron de dos lineas y con colores jejeejeje.