Answers:
Shell的历史记录保存在HISTFILE变量指示的文件中。所以:
unset HISTFILE
这也适用于zsh,但不适用于ksh,后者会一直保存到$HISTFILEshell启动时指示的文件中(相反,启动shell之后,您决定将历史记录保存在ksh中)。
简短答案:
在提示符下键入:
$ kill -9 $$
这将立即杀死您的shell,而shell无法执行任何操作,例如捕获信号,保存历史记录,执行~/.bash_logout,警告已停止的作业或任何此类好东西。
长答案:
注意:这些选项不是互斥的;它们可以一次全部使用。
选项1:
如果您在整理历史文件方面是一个完美主义者,那么您可以做的就是修改HISTIGNORE变量,使其包含不需要记录的命令。例如,如果您添加HISTIGNORE='ls*:cd*'到您的~/.bashrc那么任何实例ls和cd未插入到你的历史文件。
选项2:
如果要逐个命令控制历史记录中遗漏了哪些命令,则可以设置HISTCONTROL='ignorespace'将省略任何以空格开头的命令行。使用ignoreboth还将省略重复的行。然后,在输入命令之前点击空格键将导致它不会显示在历史记录文件中。
选项3:
如果您只是想这样做,那么当您关闭终端时,shell会立即退出,您可以trap发出信号,让终端程序发送shell(xterm例如,发送SIGHUP然后等待shell退出)并退出,而无需保存历史记录接收到此信号。将此添加到您的~/.bashrc:
# don't record history when the window is closed
trap 'unset HISTFILE; exit' SIGHUP
kill -9除了在其他情况都失败了的严峻情况下之外,不要在其他情况下推广使用是个好主意。
令我惊讶的是,history -c在此之前没有人提出建议exit。IINM(我不是专家)会做得很好。
history -r将重新读取历史记录文件,因此保存成为空手。
screen(1)?
scrollback=0。
Ctrl+a H也Ctrl+a :clear不会删除历史记录。你需要Ctrl+a :scrollback 0。您可以自己测试。开始一个新的屏幕会话。现在做一个cat /etc/passwd。现在,执行以上任何一项- Ctrl+a H或Ctrl+a :clear。现在,尝试使用donig Ctrl+a [和向上箭头从屏幕缓冲区进行复制,然后向上复制,查看可以复制多远。如果在a Ctrl+a :scrollback后面加上a clear,则将只走到当前窗口中可以看到的最深处,因为将没有任何回滚缓冲区。
set HISTFILE下次登录吗?(只说这是正确还是不正确)