Answers:
Shell的历史记录保存在HISTFILE
变量指示的文件中。所以:
unset HISTFILE
这也适用于zsh,但不适用于ksh,后者会一直保存到$HISTFILE
shell启动时指示的文件中(相反,启动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
下次登录吗?(只说这是正确还是不正确)