Я хотел бы сохранить временные метки для команд, зарегистрированных в моем Bash $ HISTFILE, это возможно?
Мне не удалось настроить его, используя man bash
в качестве источника информации.
Мои другие варианты заключаются в следующем:
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
Я должен был упомянуть, что я на OS X Mountain Lion (вздох). uname -a
дает мне:
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
и echo $BASH_VERSION
дает мне:
3.2.48(1)-release
Попробовал добавить это:
export HISTTIMEFORMAT='%b %d %I:%M:%S %p '
и это только префикс этого вида временных меток к командам:
#1349057791
Я пытаюсь вернуть обратно переменную ( echo $HISTTIMEFORMAT
), она имеет правильное значение.
Интересный!
Я даже удалил .profile полностью, чтобы отладить это. Еще только смешные метки времени:
#1349058320
Я не знаю, как решить эту проблему ... :(
Решение : Я использовал скрипт, который читает $ HISTFILE напрямую, а не встроенную историю, поэтому временная метка, основанная на эпохе (секунды с UTC) 1 января 1970 года, не переводилась с использованием строки форматирования даты , Обычный старый history
работает хорошо, я буду использовать это вместо этого.
источник
HISTTIMEFORMAT
?Ответы:
Да, вставьте это в
~/.bashrc
:Затем выполните следующие команды:
Это будет выглядеть так:
Пояснения к выводу:
id
источник
source ~/.bashrc
?history
встроенную команду, а не смотрите на файл истории напрямую.history
команду, вместо этого я использую текстовый редактор, чтобы найти нужные мне команды, и было бы неплохо иметь удобочитаемую ссылку на дату.