Сценарий:
После работы на моем сервере Linux [CentOS 7] я набрал reboot -f
в моем терминале можно получить мои история bash после перезагрузки?
Я это понимаю reboot -f
принудительно перезагрузит машину. Это похоже на нажатие кнопки питания процессора. Выключение не происходит. Система мгновенно перезагрузится.
Согласно странице руководства:
При вызове с параметром --force или на уровне выполнения 0 или 6 этот инструмент вызывает сам системный вызов reboot (2) (с переданным аргументом REBOOTCOMMAND) и напрямую перезагружает систему. В противном случае это просто вызывает инструмент shutdown (8) с соответствующими аргументами без передачи аргумента REBOOTCOMMAND.
Теперь мой вопрос: Можно ли получить историю bash после reboot -f
?
Нет, насколько мне известно, так как bash сохраняет историю в памяти и только записывает или добавляет новые элементы истории при выходе из оболочки.
Когда ты "нажмите кнопку питания" (или беги shutdown -f
) очевидно, что оболочка не завершается корректно, и вы теряете любую новую историю из этого сеанса, поскольку она существует только в памяти. Предыдущие элементы истории из других сеансов, конечно, все еще сохраняются, поскольку перезагрузка не удаляет существующий файл истории.
Многие эмуляторы терминала содержат буфер обратной прокрутки, из которого вы можете восстанавливать некоторые команды, а другие можно даже настроить для регистрации всего.
В твоем .bashrc
или тому подобное, добавьте PROMPT_COMMAND='history -a'
. Это сбрасывает историю на диск каждый раз, когда появляется запрос. Это также полезно для синхронизации истории между несколькими оболочками.
Это не поможет вам с уже потерянными данными, но поможет сохранить вашу историю команд в будущем.