J'aimerais garder des horodatages sur les commandes enregistrées dans mon Bash $ HISTFILE, est-ce possible?
Je n'ai pas réussi à le configurer en utilisant man bash
comme source d'information.
Mes autres options sont les suivantes:
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
J'aurais dû mentionner que je suis sur OS X Mountain Lion (soupir). uname -a
Donne moi:
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
et echo $BASH_VERSION
me donne:
3.2.48(1)-release
J'ai essayé d'ajouter ceci:
export HISTTIMEFORMAT='%b %d %I:%M:%S %p '
et il préfixe uniquement ce type d'horodatage aux commandes:
#1349057791
J'essaie de renvoyer la variable ( echo $HISTTIMEFORMAT
), elle a la bonne valeur.
Intéressant!
J'ai même supprimé complètement .profile pour déboguer cela. Toujours des horodatages amusants:
#1349058320
Je ne sais pas comment résoudre davantage ce problème ... :(
Solution : j'utilisais un script qui lit directement $ HISTFILE, pas l'historique intégré, donc l'horodatage basé sur l'époque (en secondes depuis le temps universel coordonné (UTC) du 1er janvier 1970) n'était pas traduit à l'aide de la chaîne de formatage de la date . Plain-old history
fonctionne très bien, je vais l'utiliser à la place.
la source
HISTTIMEFORMAT
?Réponses:
Oui, mettez ceci dans
~/.bashrc
:Ensuite, exécutez les commandes suivantes:
Il ressemblera à ceci :
Explications de la sortie:
id
la source
source ~/.bashrc
?history
commande intégrée, ne regardez pas directement le fichier historique.history
commande, à la place j'utilise un éditeur de texte pour trouver les commandes que je recherche, et ce serait bien d'avoir une référence de date lisible par l'homme.