Я використовую кілька терміналів 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
, вона ніколи не збільшує команду "ні" у відповідь. Проте старі команди все ще зникають. А кількість команд в історії завжди залишається трохи більше 500.
.bash_history
Файл по- , як і раніше містить багато дублів, незважаючи на ignoredups.
PS: Вихід ехо $HISTSIZE
і $HISTFILESIZE
обидва=1000
Оновлення: Проблему я знайшов у вищенаведеному записі .bashrc
. Просто зателефонувавши history -a
в PROMPT_COMMAND
просто дописує останню нову команду до .bash_history. Тож ignoredups
і erasedups
не мають ніякого ефекту.
Чи є якийсь спосіб, я все ще можу писати в .bash_history без дублікатів з кожного терміналу? Я не хочу завантажувати всю історію в кожному командному рядку history -r
і записувати її знову назад history -w
, тому що команди, які я видав в одному терміналі, також з'являться в іншому паралельному запущеному терміналі. Я хочу, щоб комбіновані команди відображалися лише в новому терміналі.
Загадка, чому мою історію доводили до 500, вирішена. Я помітив, що це траплялося кожного разу, коли я впадаю в цю машину. Створення a .bash_profile
із наступним записом вирішило цю проблему.
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Тепер мій .bashrc виконується кожного разу, коли я також ssh. А розмір файлу історії тепер монотонно збільшується.
bug-bash
списку розсилки через рік після опублікування цього питання: list.gnu.org/archive/html/bug-bash/2013-07/msg00092.html