6

Насколько я могу судить, история отдельной оболочки добавляется в файл .bash_history только тогда, когда оболочка закрыта. Это означает, что я часто теряю историю отдельных оболочек при сбоях / панике ядра.

Почему история пишется только при закрытии сессии? Есть ли способ, чтобы каждая команда была написана во время выполнения? Есть ли какая-то причина, по которой мне не нужно писать каждую команду во время выполнения (например, проблемы с производительностью при записи в огромный файл bash_history)?

(Я использую Mac OS X 10.6 и запускаю множество терминалов с вкладками одновременно с iTerm. У меня есть гистапенд установлен вместе с некоторыми другими опциями.

export HISTSIZE=1000000
export HISTTIMEFORMAT="%d/%m/%y %T "
shopt -s histappend

)

1 ответ1

4

Вам не хватает одной строки в вашем .bashrc. Добавлять:

PROMPT_COMMAND="$PROMPT_COMMAND;history -a"

после

shopt -s histappend

PROMPT_COMMAND выполняется перед печатью следующего приглашения (IIRC). Кстати, когда вы пишете историю, вы правы. Измененная команда приглашения очистит историю.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .