Сохранение истории команд в bash


stasikos - Posted on 20 Май 2008

Часто бывает, что мы пользуемся шеллом одновременно из нескольких открытых окон терминала. При этом не менее часто бывает, что удобную и длинную команду из истории шелла из одного терминала случайно затерла история шелла из другого терминала. Избежать этого может помочь добавление следующих строк в .bashrc:

shopt -s histappend
PROMPT_COMMAND='history -a; history -n'

Первая опция заставляет шелл не перезаписывать файл истории, а добавлять записи в него. Вторая команда будет вызывать добавление содержимого истории в файли и перечитывание файла истории сразу при выводе приглашения командной строки, а не после выхода из шелла.

0
Ваша оценка: Ничего

идея неплохая, но:
1. не работает в GNU bash, version 3.00.15(1)-release (i686-redhat-linux-gnu). почему не работает пока еще на разбирался, может тупо баг в баше.
2. переменная PROMPT_COMMAND уже может содержать чего-то (и часто содержит подсветку PS1), потому логичнее бы ее не переписывать, а дополнять
PROMPT_COMMAND="history -a; history -n; ${PROMPT_COMMAND}"

отличный хинт. спасибо !