Ctrl当我在终端中执行+时,我似乎无法找到我运行过的最近命令R,当我按下向上箭头时也看不到它们。
这是一个很长的命令。存储的内容是否有长度限制?我可能使用了 sudo。sudo 历史记录是否存储在其他地方?如果是,我该如何访问它?
答案1
这是你的问题吗?
HISTCONTROL 一个以冒号分隔的值列表,用于控制命令在历史列表中的保存方式。如果值列表包含“ignorespace”,则以空格字符开头的行不会保存在历史列表中。
如果命令的第一个字符是空格,则该命令不会保存到历史记录中。我很确定 Ubuntu 默认启用了此功能。
答案2
通过 sudo 成功运行的命令将以 syslog 优先级记录,notice
而失败的尝试将记录为alert
。
在大多数发行版中,日志记录定向到哪些文件是通过中的优先级来标识的/etc/syslog.conf
。
使用 bash,有各种环境变量会影响历史记录的运行方式。您可以运行该命令env
来查看 shell 环境中设置的当前变量。控制 bash 历史记录的大多数变量都以 为前缀,HIST
并记录在手册页。还有一些 shell 选项会影响其运行方式。还有一个 shell 内置命令,带有history
各种选项。影响历史记录在交互式 shell 中是否运行的主要因素之一是是否HISTFILE
设置了变量。还要注意的是,如果 shell 不是交互式的,则历史记录将自动不启用。
答案3
每个用户主文件夹中都有一个名为“.bash_history”的隐藏文件,其中包含从该用户帐户运行的命令的相当广泛的历史记录。 其中包括 sudo 命令。
如果您知道如何使用 Vi 文本编辑器,您可以在终端中输入以下内容来查看您帐户的命令历史记录:view ~/.bash_history
答案4
确保/home/greg/.bash_history
设置为 -rw------- 权限 (chmod 400)。这可能是问题所在。
另外,只需不断尝试rm /home/greg/.bash_history
。
仅在退出会话后,Bash 历史记录才会保存到该文件中(但 CTRL+R 可以对其进行操作)
最后,确保在空白控制台上按下 CTRL+R(不要先输入命令,而是在按下 CTRL+R 后再输入命令)