Как защитить от чистки истории bash?

После ответа :

При одновременном закрытии нескольких экземпляров bash существует известное состояние гонки, которое может привести к очистке истории. Это происходит из-за отсутствия блокировки, используемой при записи файла истории bash.

Как я могу предотвратить эту проблему очистки истории bash?

Я использую i3wm, и я думаю, что это происходит в основном, когда я выключаю компьютер, прежде чем вручную закрыть терминалы urxvt . Команда, используемая (через keybind) для выключения – systemctl poweroff .

One Solution collect form web for “Как защитить от чистки истории bash?”

Источником состояния гонки является то, что bash записывает только файл истории, когда оболочка завершается. Кроме того, он будет записывать существующий файл истории, если запущены несколько оболочек, только верхний для выхода будет доминировать в истории.

Поэтому одним из решений является запись истории после команды EVERY. Там или какие-то негативные последствия для этого, например, вы сможете поднимать события истории стрелок, происходящие в других окнах, и, следовательно, выставлять всем открытым оболочкам (которым вы владеете), какие команды вы только что запускали. Скорее всего, это вас укусит, если вы выполняете повторяющийся набор команд, например «стрелка вверх N раз, а затем нажмите Enter» снова и снова. Если в закрытом окне заканчивается фоновый процесс, тогда вам нужно будет уделять больше внимания тому, какая команда действительно «стрелка вверх + 1 раз», рискуя запустить неправильную команду.

Чтобы включить «историю с каждой командой», попробуйте добавить их к вам .bashrc (количество строк истории для хранения – это просто примеры, вы можете изменить их для вашего удобства)

 HISTFILESIZE=400000000 HISTSIZE=10000 PROMPT_COMMAND="history -a" export HISTSIZE PROMPT_COMMAND shopt -s histappend 
  • Прояснение процедуры завершения работы
  • Umount сетевые диски с системойd перед выключением
  • Почему я не могу найти параметр -f для команды shutdown в man?
  • Shellscript! Синтаксическая ошибка, неожиданно "("
  • systemd: запуск сценария при завершении работы после того, как файловые системы установлены только для чтения
  • Linux Mint не закрывается
  • Запуск расписания с использованием ConsoleKit и Dbus
  • Как завершить работу с consolekit без sysvinit (но с systemd)
  • Причины, по которым сервер недостижим, Как расследовать?
  • «Завершение работы выполняется ...» при выключении
  • Gentoo portage продолжается после выключения
  • Interesting Posts

    Должен ли я изменить разрешения двоичных файлов?

    Проверьте версию FreeBSD в Makefile

    Клиент и сервер OpenVPN на одном компьютере – сервер не разрешает подключения, когда клиент подключен

    Накладные расходы Mutt или отсутствующие переключатели

    Что такое хороший баланс между надежным паролем sudo и длительной задержкой

    I / O приносит машину на колени

    Экспортировать выбор переменных окружения с правильным экранированием

    Точка доступа Linux (airmon-ng / airmon-ng) не работает

    Удалить дублирующую строку, если столбец 2 существует

    AIX NIM Master реплицирует / синхронизирует с альтернативным мастером

    Как изменить стиль аналоговых часов в XFce?

    он-лайн подсчет уникальных строк

    сеанс регистрации с помощью скрипта – как позже его прочитать?

    Для linux (nixos) xserver с помощью macbookpro, что я могу сделать, чтобы предотвратить перемещение мыши при нажатии

    Беспроводной контроллер Intel 8260 блокирует приостановку в ОЗУ в течение 10 секунд

    Linux и Unix - лучшая ОС в мире.