Chciałbym zachować znaczniki czasu dla poleceń zalogowanych w moim Bash $ HISTFILE, czy to możliwe?
Nie udało mi się skonfigurować go man bash
jako źródła informacji.
Moje inne opcje są następujące:
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
Powinienem wspomnieć, że jestem na OS X Mountain Lion (westchnienie). uname -a
daje mi:
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
i echo $BASH_VERSION
daje mi:
3.2.48(1)-release
Próbowałem dodać to:
export HISTTIMEFORMAT='%b %d %I:%M:%S %p '
i tylko przedrostki tego rodzaju znaczników czasu do poleceń:
#1349057791
Próbuję powtórzyć echo zmiennej ( echo $HISTTIMEFORMAT
), która ma właściwą wartość.
Ciekawy!
Nawet całkowicie usunąłem .profile, aby to debugować. Wciąż tylko śmieszne znaczniki czasu:
#1349058320
Nie wiem, jak rozwiązać ten problem ... :(
Rozwiązanie : korzystałem ze skryptu, który bezpośrednio odczytuje $ HISTFILE, a nie wbudowanej historii, więc znacznik czasu oparty na epoce (sekund od uniwersalnego czasu koordynowanego (UTC) z 1 stycznia 1970 r.) Nie był tłumaczony przy użyciu ciągu formatującego datę . Zwykłe stare history
działa dobrze, użyję tego zamiast tego.
źródło
HISTTIMEFORMAT
?Odpowiedzi:
Tak, wstaw to
~/.bashrc
:Następnie uruchom następujące polecenia:
Będzie to wyglądać tak:
Objaśnienia danych wyjściowych:
id
źródło
source ~/.bashrc
?history
wbudowanego polecenia, nie patrz bezpośrednio na plik historii.history
polecenia, zamiast tego używam edytora tekstu, aby znaleźć polecenia, których szukam, i byłoby miło mieć odniesienie do daty czytelne dla człowieka.