终端‘隐身模式’?

终端‘隐身模式’?

我经常使用终端,有时我会运行命令,这些命令并不是我不想让别人看到的东西,而是如果我不小心按到这些命令并意外执行它们,就会引起很多麻烦。

所以我想知道是否存在,或者我可以制作某种终端“隐身模式”,允许我在执行某个命令后停止记录我的历史记录,然后仅在我执行开始再次记录历史记录命令并退出“隐身模式”后才开始记录,或者我只需重新启动终端?

因为我发现自己后来会去从我的中删除一些东西.bash_history,而如果我一开始就阻止它在那里录制,或者至少让它尝试将它录制到不允许它录制的地方,而最终就不会录制它,那会容易得多。

答案1

运行命令但不将其放入历史记录中:

只需在命令前添加一个空格即可。Bash 将忽略带有前缀空格的命令:

例子:Spaceecho "Some secret text"

HISTCONTROL注意:仅当变量设置为ignorespace或 时才有效ignoreboth


暂时禁用历史记录:

  • 运行Spaceset +o historySpaceshopt -uo history禁用历史记录。
  • 运行set -o historyshopt -so history再次启用它。

禁用当前会话的历史记录(不会记住会话中的任何命令):

unset HISTFILE

注意:您将能够看到正在按下的命令,Up直到关闭终端。


从历史记录中删除命令:

跑步Spacehistory | grep "part of your secret command"

它将显示以前运行的命令列表,格式如下:

user@host:~$  history | grep pkill
  302  pkill $$
  467  pkill gone-cal
  468  pkill actionaz
  500  pkill chrome
  550  pkill super

选择命令左侧的条目编号。您可以使用++Ctrl复制它ShiftC

运行Spacehistory -d <number>where <number>is the entry number 来删除该条目。
您可以使用++Ctrl粘贴该号码ShiftV


其他有趣的答案:

答案2

你可以直接删除历史记录一个特定的终端会话history -cw通过在工作后添加命令。

发出此命令之前请勿关闭终端。

答案3

shopt -uo history应该做到最好。

删除HISTFILE(et al) 变量不会停止Up记录您的历史记录,只是不会将其推送到磁盘。这对您来说可能是好事,也可能不是好事,但既然您提到了这一点,我猜您想要更好的东西。更改shopt历史记录设置会阻止整个历史记录机制触发。

shopt -so history您可以使用(-s-u分别设置和取消设置)重新打开日志记录。

请注意,命令本身可能会被记录,因此在清除变量之前,请在命令前面添加一个空格以阻止将其添加到历史记录中。

答案4

要暂时禁用当前会话的命令历史记录,您可以暂时取消设置 HISTFILE 环境变量。

unset HISTFILE

会话处于活动状态时,您可以照常访问历史记录,但历史记录不会保存到磁盘。

在同一会话中撤销(所有更改都将被记录)

HISTFILE=$HOME/.bash_history

相关内容