Me preguntaba si era posible agregar marcas de tiempo a las indicaciones de la terminal, y si es así, ¿cómo podría lograr esto?
Me preguntaba si era posible agregar marcas de tiempo a las indicaciones de la terminal, y si es así, ¿cómo podría lograr esto?
Respuestas:
Agregue esta línea al ~/.bashrc
archivo:
export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "
Entonces la salida será algo así como:
[07:00:31] user@name:~$
date
comando, puede reemplazar +%H:%M:%S
con +%T
.
Mi solución fue usar http://bashrcgenerator.com/ para generar esta línea PS1 para poner en .bashrc:
export PS1="\t [\u@\h \W]\\$ \[$(tput sgr0)\]"
Que se verá como
13:05:54 [chad@work-laptop:~/Downloads]$ ls -al
Usar PROMPT_COMMAND me confunde el historial. Cuando aparece una línea más larga mientras recorre el historial, corta el final de la solicitud por la misma cantidad de caracteres que la marca de tiempo que se agregó al frente. p.ej
13:14:38 [chad@work-laptop:~/Doexport PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\\] "
Y esta línea no se puede editar porque no muestra los caracteres en el lugar correcto, ya que no está escribiendo donde parece que está escribiendo.
Supongo que podría hacerse con PROMPT_COMMAND, tal vez usando esa parte [$ (tput sgr0)], pero PS1 funciona.
En lugar de agregar la fecha a la solicitud en sí, puede agregar la fecha justo antes de la solicitud colocando la siguiente línea en la parte superior de su .bashrc
. Para que funcione también necesitará instalar cowsay
. Es una forma divertida de mostrar la fecha manteniendo un breve aviso:
cowsay "Welcome $USER! It's now $(date '+%A %B %d %Y %r')"
En su forma actual, funcionará en el sistema de cualquier persona sin enmiendas, ya que lee $USER
la date
variable y la del entorno actual.
Como no tengo suficientes puntos de reputación para agregar un comentario a la respuesta para mejorarlo. Parece que la única forma en que puedo agregar información es crear una segunda respuesta. Entonces, repetiré lo que se dijo como respuesta y construiré sobre eso.
Edite el archivo .bashrc para el usuario para el que desea modificar el sello de fecha.
Si ve "user @ host: ~ $" está en el directorio de inicio de su usuario actual. El archivo .bashrc es un archivo oculto ya que está prefijado con el punto ".". Para verlo en una lista, deberá usar una lista larga.
Puede usar "ls -a" y luego debería ver el archivo ".bashrc".
Edite el archivo con un editor de texto. Por ejemplo, "nano .bashrc", "vim .bashrc", "vi .bashrc", "pico .bashrc" o cualquier editor que desee utilizar.
Si desea escribir esto y planea agregarlo a muchos shells para muchos usuarios, puede ser beneficioso usar el comando "echo" junto con el operador ">>" anexar. Por ejemplo,
echo "export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"" >> .bashrc
Si utiliza ese método, asegúrese de estar en el directorio de trabajo actual del usuario para el que desea modificarlo. Para verificar esto, puede usar el comando "pwd" o imprimir el directorio de trabajo.
Si no le gusta el espacio extra entre el corchete final "]" y el nombre de usuario, use esta expresión regular ligeramente modificada:
export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"
Use esto si está editando directamente el archivo.
Abre tu .bashrc
via
vim ~/.bashrc
y luego agregue lo siguiente a .bashrc
:
#PS1="[\A \u@\h \W\a]$"
donde \A
es por tiempo ( \W
solo para el final de la ruta, elimine si desea toda la ruta actual del directorio de trabajo). Luego escribe
source ~/.bashrc
Verás algo como esto:
[16:04 trwood@cobalt04 ~/MCEq_dev]$
\W
no mostrará ninguna ruta en absoluto. \w
dará el camino completo.
Solo para agregar a la respuesta de @ devav2:
Un comando echo más fácil de leer para los novatos sería:
export PROMPT_COMMAND='echo -n "$(date +%H:%M:%S) "'
En lugar de
export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "
Debido a que el comando echo no está destinado a ser evaluado en el momento de la exportación, tiene más sentido usar comillas simples para comillas literales en lugar de comillas dobles. El uso de comillas simples para citar todo el comando le permite usar comillas dobles para citar el argumento del comando echo, eliminando la necesidad de escapar de caracteres especiales como ,
[
y$
Creo que la forma correcta de proceder es ubicar en $HOME/.bashrc
los códigos que establece PS1
, comentarlos y agregar los personales. Este es mi bloque, por ejemplo:
PS1_DATE="\D{%Y-%m-%d %H:%M:%S}"
if [ "$color_prompt" = yes ]; then
PS1="[$PS1_DATE \[\e]0; \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[\033[00m\]\[\033[01;34m\]\w \[\033[00m\]\$] "
#PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='[$PS1_DATE ${debian_chroot:+($debian_chroot)}\w \$] '
#PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
Salida:
[2019-06-18 15:54:29 ~/Desktop $] echo "It's late!"
La sintaxis más fácil para mostrar una marca de tiempo en un símbolo del sistema probablemente sería:
PS1='\D{%F} \t $...'
dónde
\D{format}
tiene formato de fecha (consulte man bash
la sección PROMOCIÓN) como
%F
fecha completa igual que% Y-% m-% d (ver man date
sección FORMATO), y
\t
es la hora actual en formato HH: MM: SS de 24 horas (consulte man bash
la sección PROMOCIÓN)
nano ~/.bashrc
hacer cambios a las variables de PS1 como se muestra arriba
source ~/.bashrc
Mi tiempo es similar a la cowsay
respuesta anterior. Debe poner now
su ~/.bashrc
pero también puede llamarlo desde la terminal escribiendo now
.
Aquí hay una captura de pantalla:
El código bash se publica en esta respuesta muy detallada:
export PROMPT_COMMAND="echo -n \[\$(date +%F-%T)\]\ "
export HISTTIMEFORMAT="%F-%T "
al menos me parece útil.