在Linux中连续记录命令历史记录

时间:2020-08-17 11:18:45

标签: linux ubuntu command-history

如果突然关闭了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"

还有其他想法吗?

0 个答案:

没有答案
相关问题