当前位置: 首页>>技术教程>>正文


终端’incognito mode’?

, , , , ,

问题描述

我使用终端很多,有时我正在运行命令,这不是我不希望别人看到的东西,但是更多的命令,如果我不小心被引导并意外执行,会导致很多麻烦。

所以我想知道是否有,或者我可以做出某种终端’incognito mode’,这将允许我在执行某个命令时停止记录我的历史记录,然后在执行开始记录历史记录后才开始记录再次命令并退出’incognito mode’,或者我只需重新启动终端?

因为后来我发现自己正在从.bash_history中删除东西,那么如果我能够在第一时间停止记录,或者至少让它尝试将它记录在某个不适合的地方被允许,并且最终不会记录它。

最佳解决方案

运行一条命令而不将其放入历史记录中:

只需在命令前放置一个空格。 Bash将忽略具有预先占用空间的命令:

示例:Space echo "Some secret text"

注意:只有在HISTCONTROL变量设置为ignorespaceignoreboth时才有效。


暂时禁用历史记录

  • 运行Space set +o historySpace shopt -uo history禁用历史记录。

  • 运行set -o historyshopt -so history以再次启用它。


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

unset HISTFILE

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


从历史记录中删除命令:

运行Space history | grep "part of your secret command"

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

casa@portátil:~$  history | grep pkill
  302  pkill $$
  467  pkill gone-cal
  468  pkill actionaz
  500  pkill chrome
  550  pkill super

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

运行Space history -d <number>,其中<number>是删除条目的条目号。您可以粘贴该号码与Ctrl + Shift + V


其他有趣的答案:

次佳解决方案

您可以通过在工作后添加命令history -cw来简单地删除特定终端会话的历史记录。在发出命令之前不要关闭终端。

第三种解决方案

shopt -uo history应该做到最好。

删除HISTFILE(等)变量不会停止记录您的Up历史记录,它只是不会将其推送到磁盘。这对你来说可能有好处,也可能不对你有好处,但考虑到你提到它,我想你想要更好的东西。更改shopt历史记录设置会停止整个历史记录机制的触发。

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

请注意,命令本身可能会被记录下来,所以在清除变量之前,需要预留一个空格来阻止它被添加到历史记录中。

第四种方案

另一种杀死当前shell而不登录到历史文件的方法是:

kill -9 $$

这会导致bash(也可能是其他shell)将SIGKILL信号发送给自己,在现场杀死它并阻止它将任何内容写入磁盘。

第五种方案

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

unset HISTFILE

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

在相同的会话中反向(所有更改都将被记录)

HISTFILE=$HOME/.bash_history

第六种方案

您可以修改当前shell会话中的历史行。如果您回顾历史记录(例如,使用UpCtrl + P)并更改一行而不执行它,则只会保存该行的修改版本。你可以用你喜欢的任何方式修改它;好的选择将包括使用Ctrl + U完全清空行或使用Esc #在开始处放置#注释字符。

要在不执行的情况下留下一行,请记住不要点击Return(Enter)。我所做的是通过Esc >回到历史上最新的一行。

(而不是Esc,然后是>,在大多数终端中,您可以容纳Alt并按>;对于上面的Esc #建议也是如此)。

注意:您不能以这种方式永久修改以前会话中的条目。这些更改将不会在会议结束时应用于HISTFILE

第七种方案

您也可以制作.bash_history read-only。我会先清空文件,然后执行:

 chattr +i .bash_history

第八种方案

您可以在屏幕会话中执行敏感命令,然后在完成后摧毁会话。

或者,您可以保持该屏幕会话处于活动状态但已分离,并且只有在您确实希望能够向上提供其他危险命令时才能访问它。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/153.html,未经允许,请勿转载。