如何在创建机器后查找shell命令的历史记录?

几个星期前我创建了一个Ubuntu虚拟机机器,从那以后一直在研究项目。

现在我想找到一周前我在终端输入的一些命令的语法,但是我已经打开并关闭了终端窗口,并多次重启机器。

如何让history命令返回到我创建机器后输入的第一个命令?
或者是否有另一个地方将所有命令存储在Ubuntu中?

获得所有命令可能会也可能不会。 这取决于您执行了多少命令以及如何设置历史记录限制。

但是,您可以看到历史列表存储在此处

/home//.bash_history

相关问题(用于处理多个shell历史记录):

是否有可能立即写入.bash_history?

您可能感兴趣的是如何搜索以前的命令历史记录。 您可以在命令行上反向搜索历史记录,方法是按Ctrl+r ,然后键入要匹配的字母。 如果您有多个匹配命令,请再次按Ctrl+r 。 要退出反向搜索,请按Ctrl+g

http://www.ice2o.com/bash_quick_ref.html

默认情况下,没有记录和保存所有命令的地方,尽管~/.bash_history包含过去几个命令(如果你使用bash ,这是Ubuntu中的默认shell)。

如果你想要永久记录bash输入的每个命令,你必须自己设置它。 例如,您可以将以下内容放在~/.bashrc文件中,以将bash shell中键入的所有命令记录到文件~/.command_log

 # log every command typed and when if [ -n "${BASH_VERSION}" ]; then trap "caller >/dev/null || \ printf '%s\\n' \"\$(date '+%Y-%m-%dT%H:%M:%S%z')\ \$(tty) \${BASH_COMMAND}\" 2>/dev/null >>~/.command_log" DEBUG fi 

以上在DEBUG上设置了一个陷阱,它在执行普通命令之前执行。 内置caller用于测试命令是在交互式shell中键入还是通过~/.bashrc 。 值${BASH_COMMAND}包含当前正在执行的命令。

您只能在设置历史限制时返回; 一旦达到这一点,历史将开始被覆盖。 但是,未来可能会有更大的历史规模。 把它放在.bashrc中并指定一个值(我的设置为1000):

 export HISTSIZE=1000