Как я могу восстановить историю Bash, когда я случайно набрал перезагрузку -f
Сценарий:
После работы на моем сервере Linux [CentOS 7] я набрал reboot -f
в моем терминале можно ли восстановить историю bash после перезагрузки?
Я это понимаю reboot -f
принудительно перезагрузит машину. Это похоже на нажатие кнопки питания процессора. Выключение не происходит. Система мгновенно перезагрузится.
Согласно справочной странице:
При вызове с параметром --force или на уровне выполнения 0 или 6 этот инструмент вызывает сам системный вызов reboot(2) (с переданным аргументом REBOOTCOMMAND) и непосредственно перезагружает систему. В противном случае это просто вызывает инструмент shutdown(8) с соответствующими аргументами без передачи аргумента REBOOTCOMMAND.
Теперь мой вопрос: возможно ли восстановить историю Bash после reboot -f
?
2 ответа
Нет, насколько я знаю, bash поддерживает историю в памяти и записывает или добавляет новые элементы истории только при выходе из оболочки.
Когда вы "нажимаете кнопку питания" (или запускаете shutdown -f
) очевидно, что оболочка не выходит изящно, и вы теряете любую новую историю из этого сеанса, поскольку она существует только в памяти. Previous history items from other sessions of course still persist as a reboot does not remove the existing history file.
Many terminal emulators keep a scrollback buffer from which you may recover some commands and others can even be configured to log everything.
В вашем .bashrc
или тому подобное, добавить PROMPT_COMMAND='history -a'
, Это сбрасывает историю на диск каждый раз, когда появляется подсказка. Это также полезно для синхронизации истории между несколькими оболочками.
Это не поможет вам с уже потерянными данными, но поможет сохранить историю ваших команд в будущем.