как сохранить историю bash после каждой команды


Осмелюсь предположить, что вам часто приходилось закрывать терминал без завершения сессии.

Это влечет за собой потерю истории всех введенных в нём команд.

Этого можно избежать в bash. Если заглянуть в man, то там возможно найти такую переменную окружения, как PROMPT_COMMAND

С помощью этой переменной можно задать выполнение определённых команд перед каждым первичным приглашением. Т.е. перед тем. как показать ваш любимый цветной PS1 выполнится некая команда, например можно задать команду sudo halt. Шучу.

Мы зададим вот эту в наш ~/.bashrc, чтоб надолго:

export PROMPT_COMMAND='history -a'

Опция -a добавляет команду в историю после её выполнения.

Вот и всё, теперь можно закрыть терминал как угодно и вся его история будет доступна из новых терминалов.

Есть один минус у этого решения — вся история будет запутанной и невозможно будет определить из какой сессии выполнялась эта команда. Но лично я по этому поводу не заморачиваюсь.

Источник.