没有历史记录的第二个终端

没有历史记录的第二个终端

我不知道是否可能,但我想使用第二个终端(如终结器)而不是使用当前的$HISTFILE.一个失忆的终端。

答案1

取决于外壳。在 Bash 中,您可以通过多种方式控制历史记录

  • 禁用保存历史记录使用set +o history并重新启用它set -o history(注意颠倒的加号和减号)。禁用历史记录后,输入的命令将不会保存在历史日志中,但以前的命令将可用。

  • HISTFILE通过设置(HISTFILE=~/somehistoryfile)来设置用于保存历史记录的文件。您可以通过使用 取消设置变量来完全禁用它unset HISTFILE。如果禁用历史记录文件,您仍然可以在 shell 运行时访问运行时历史记录。您还可以设置HISTFILESIZE控制文件中保存的命令数量。

  • 通过使用防止在历史记录中保存某些命令HISTCONTROL和/或HISTIGNORE。设置HISTCONTROLignorespace将告诉 shell 不保存以空格开头的命令行。HISTIGNORE可以包含不保存在历史记录中的命令模式。例如,HISTIGNORE='ls:ls *'将阻止保存仅包含lsls、空格及其后的任何内容的行。

对于“amnesiac”shell,您需要在打开 shell 时手动应用这些设置之一,或者在某些 shell 启动脚本中设置它们。

一种选择是创建,例如~/.bashrc.nohist

# include the standard startup files as --rcfile will override them
if [ -f /etc/bash.bashrc ] ; then
    . /etc/bash.bashrc 
fi
if [ -f ~/.bashrc ] ; then
    .  ~/.bashrc
fi
# disable history completely
HISTSIZE=0
# disable the history file
unset HISTFILE
# we could even set a reminder in the prompt
PS1="[nohist] $PS1"

然后安排 shell 启动bash --rcfile ~/.bashrc.nohist。调整脚本以适应口味。

答案2

为了不记录历史,可以输入unset HISTFILE当前会话(对于bash)

相关内容