0

如果我的 Linux 机器突然关闭,在 Linux终端(我的操作系统是Ubuntu18 )中键入的命令不会保存。例如,我有一个VirtualBox Ubuntu18 VM。我工作了几分钟,执行了 50 命令。仅当我键入exit命令时,这些命令才会保存在.bash_history文件中,但如果我的机器突然关闭,这些命令将不会保存。(我同意我们总是照顾我们的系统,但我想考虑即使是我不应该的这种极端情况松开任何东西

我试图找到一种方法是,如果我在终端中键入命令(可以是任何帐户和任何 tty),输入的命令应立即记录到文件或.bash_history。我不在乎它是失败的命令还是可重复(重复)的命令。

我也尝试过脚本工具,但没有运气。还尝试使用我找到其他方法并保存在.bashrc中的功能。它也有用:

log_bash_persistent_history()
{
  [[
    $(history 1) =~ ^\ *[0-9]+\ +([^\ ]+\ [^\ ]+)\ +(.*)$
  ]]
  local date_part="${BASH_REMATCH[1]}"
  local command_part="${BASH_REMATCH[2]}"
  if [ "$command_part" != "$PERSISTENT_HISTORY_LAST" ]
  then
    echo $date_part "|" "$command_part" >> ~/.persistent_history
    export PERSISTENT_HISTORY_LAST="$command_part"
  fi
}
# Stuff to do on PROMPT_COMMAND
run_on_prompt_command()
{
    log_bash_persistent_history
}
PROMPT_COMMAND="run_on_prompt_command"

还有其他想法吗??

4

0 回答 0