Я использую несколько терминалов Konsole. И я хочу, чтобы все команды, которые я набираю на каждом терминале, были сохранены в истории команд, чтобы в следующей открытой консоли все они были. Чтобы запретить каждому терминалу перезаписывать историю команд другого терминала, я дал следующие настройки в моем.bashrc
# avoid duplicates and commands starting with space
export HISTCONTROL=ignoredups:erasedups:ignorespace
# append history entries..
shopt -s histappend
#My machine reboots without warning sometimes.Hence to save commands instantaneously.
export PROMPT_COMMAND="history -a"
export HISTSIZE=1000
PS1="\[\e[1;34m\]\! \[\e[0m\]"$PS1
Я дал последнюю строку, чтобы увидеть номер команды в моем приглашении. Команда № никогда не превышал 600, но некоторые из моих старых команд исчезают из истории. Есть много команд, которые даются повторно, но, как и следовало ожидать ignoredups, никогда не увеличивает команду no in prompt. Все же старые команды все еще исчезают. И количество команд в истории всегда остается чуть больше 500.
.bash_historyФайл по- прежнему содержит много дублей, несмотря на ignoredups.
PS: вывод эха $HISTSIZEи $HISTFILESIZEоба=1000
Обновление: я обнаружил проблему в записи выше .bashrc. Просто позвонив history -aв PROMPT_COMMANDпросто дописывает последнюю новую команду к .bash_history. Так что ignoredupsи не erasedupsимеют никакого эффекта.
Есть ли способ, я все еще могу писать в .bash_history без дубликатов из каждого терминала? Я не хочу загружать всю историю в каждой командной строке history -rи снова записывать ее обратно history -w, потому что команды, которые я дал в одном терминале, появятся и в другом параллельно работающем терминале. Я хочу, чтобы объединенные команды появлялись только в новом терминале.
Загадка, почему моя история была урезана до 500, решена. Я заметил, что это происходит каждый раз, когда я захожу в эту машину. Создание .bash_profileсо следующей записью решило эту проблему.
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Теперь мой .bashrc выполняется каждый раз, когда я тоже ssh. И размер файла истории теперь монотонно увеличивается.