如何在创建机器后查找shell命令的历史记录?
几个星期前我创建了一个Ubuntu虚拟机机器,从那以后一直在研究项目。
现在我想找到一周前我在终端输入的一些命令的语法,但是我已经打开并关闭了终端窗口,并多次重启机器。
如何让history
命令返回到我创建机器后输入的第一个命令?
或者是否有另一个地方将所有命令存储在Ubuntu中?
获得所有命令可能会也可能不会。 这取决于您执行了多少命令以及如何设置历史记录限制。
但是,您可以看到历史列表存储在此处
/home/
相关问题(用于处理多个shell历史记录):
是否有可能立即写入.bash_history?
您可能感兴趣的是如何搜索以前的命令历史记录。 您可以在命令行上反向搜索历史记录,方法是按Ctrl+r
,然后键入要匹配的字母。 如果您有多个匹配命令,请再次按Ctrl+r
。 要退出反向搜索,请按Ctrl+g
。
默认情况下,没有记录和保存所有命令的地方,尽管~/.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