Me gustaría mantener marcas de tiempo en los comandos registrados en mi Bash $ HISTFILE, ¿es posible?
No logré configurarlo usando man bash
como fuente de información.
Mis otras opciones son las siguientes:
function thebanana() {
local -r -a bash_commands=(
"ls"
# ... more coconut commands
)
for bash_command in "${bash_commands[@]}"; do
printf "${bash_command}"
printf ":"
done
}
export HISTFILE=banana
export HISTIGNORE="$(thebanana)"
export HISTSIZE=999999
export HISTFILESIZE=999999999
export HISTCONTROL=ignoredups:erasedups
Debería haber mencionado que estoy en OS X Mountain Lion (suspiro). uname -a
me da
Darwin CoconutMac.local 12.2.0 Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64
y echo $BASH_VERSION
me da
3.2.48(1)-release
Intenté agregar esto:
export HISTTIMEFORMAT='%b %d %I:%M:%S %p '
y solo antepone este tipo de marcas de tiempo a los comandos:
#1349057791
Intento repetir la variable ( echo $HISTTIMEFORMAT
), tiene el valor correcto.
¡Interesante!
Incluso eliminé .profile por completo para depurar esto. Todavía solo marcas de tiempo divertidas:
#1349058320
No sé cómo solucionar este problema ... :(
Solución : Estaba usando un script que lee el $ HISTFILE directamente, no el historial incorporado, por lo que la marca de tiempo basada en la época (segundos desde el Tiempo Universal Coordinado (UTC) del 1 de enero de 1970) no se tradujo utilizando la cadena de formato de fecha . Simple history
funciona bien, lo usaré en su lugar.
fuente
HISTTIMEFORMAT
?Respuestas:
Sí, pon esto en
~/.bashrc
:Luego, ejecute los siguientes comandos:
Se verá así:
Explicaciones de la salida:
id
fuente
source ~/.bashrc
?history
comando incorporado, no mire directamente el archivo de historial.history
comando, en su lugar uso un editor de texto para encontrar los comandos que estoy buscando, y sería bueno tener una referencia de fecha legible por humanos.