Ubuntu – Bash – 如何按Ctrl + R

当我在terminal上执行Ctrl + R时,似乎无法find最近运行的命令,而且当我点击向上箭头时,也不能看到它们。

这是一个长期的命令。 存储的内容是否有长度限制? 我可能已经使用sudo。 sudo历史是否存储在别的地方? 如果是的话,我如何访问它?

这是你的问题吗?

HISTCONTROL以冒号分隔的值列表,控制如何将命令保存在历史列表中。 如果值列表包含“忽略空间”,则以空格字符开头的行不会保存在历史logging列表中。

如果你有一个空格作为命令的第一个字符,它将不会被保存到你的历史logging中。 我很确定Ubuntu默认有这个function。

通过sudo成功运行的命令以系统日志notice优先级logging,不成功的尝试logging为alert

在大多数发行版中,日志logging所指向的文件是通过/etc/syslog.conf的优先级标识的。

使用bash,会有多种环境variables影响历史logging的运行。 您可以运行命令env来查看在shell环境中设置的当前variables。 控制bash历史logging的大多数variables都以HIST为前缀,并logging在手册页中 。 还有一些shell选项会影响它的运行。 还有一个shell内置的命令,其中包含各种选项的history 。 如果HISTFILEvariables被设置,将影响历史logging是否在交互式shell中运行的主要事件之一。 还值得注意的是,如果shell不是交互式的,历史将自动不被启用。

每个用户主文件夹中都有一个名为“.bash_history”的隐藏文件,其中包含从该用户帐户运行的相当丰富的命令历史logging。 这包括sudo命令。

如果您知道如何使用Vi文本编辑器,则可以在terminal中键入以下内容以查看帐户的命令历史logging:view〜/ .bash_history

确保/home/greg/.bash_history设置为-rw ——-权限(chmod 400)。 这可能是问题所在。

另外,只需尝试rm /home/greg/.bash_history试。

Bash历史保存到该文件后退出会话(但CTRL + R将在其上工作)

最后,请确保在空白控制台上按CTRL + R(不要先input命令,按CTRL + R后键入)