238 configuration command-line gnome-terminal console history
我经常使用终端,有时我正在运行命令,这不是我不想让别人看到的东西,但是如果我不小心向上箭头并不小心执行了更多的命令会造成很多麻烦。
所以我想知道是否有,或者我可以制作某种终端“隐身模式”,它允许我在执行某个命令时停止记录我的历史记录,然后只有在我执行一个再次开始记录历史命令并退出“隐身模式”,或者我只是重新启动终端?
因为我发现自己稍后会从我的.bash_history.允许,并且最终不会记录它。
0x2*_*fa0 277
运行命令而不将其放入历史记录:
只需在命令前加一个空格即可。Bash 将忽略带有空格的命令:
例子: Spaceecho "Some secret text"
注意:这仅在HISTCONTROL变量设置为ignorespace或时才有效ignoreboth。
暂时禁用历史记录:
set +o history或Spaceshopt -uo history禁用历史记录。set -o history或shopt -so history再次启用它。禁用当前会话的历史记录(不会记住会话中的任何命令):
unset HISTFILE
Run Code Online (Sandbox Code Playgroud)
注意:在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
Run Code Online (Sandbox Code Playgroud)
选择命令左侧的条目编号。你可以把它复制Ctrl+ Shift+C
运行Spacehistory -d <number>where <number>is the entry number 删除条目。
您可以使用Ctrl+ Shift+粘贴该号码V
其他有趣的答案:
Oli*_*Oli 30
shopt -uo history 应该做到最好。
Nuking HISTFILE(et al) 变量不会停止Up记录您的历史记录,它只是不会将其推送到磁盘。这对你来说可能是也可能不是积极的事情,但是如果你提到它,我猜你想要更好的东西。更改shopt历史设置会阻止整个历史机制触发。
您可以打开日志记录回shopt -so history(在-s与-u分别设置和取消)。
请注意,命令本身可能会被记录,因此在清除变量之前在它前面加上一个空格以阻止它被添加到历史记录中。
小智 19
另一种在不记录到历史文件的情况下杀死当前 shell 的方法是:
kill -9 $$
Run Code Online (Sandbox Code Playgroud)
这会导致 bash(可能还有其他 shell)向自身发送 SIGKILL 信号,当场杀死它并阻止它向磁盘写入任何内容。
Bru*_*uni 14
要临时禁用当前会话的命令历史记录,您可以临时取消设置 HISTFILE 环境变量。
unset HISTFILE
Run Code Online (Sandbox Code Playgroud)
当会话处于活动状态时,您可以像往常一样访问历史记录,但不会将其保存到磁盘。
在同一会话中反转(将记录所有更改)
HISTFILE=$HOME/.bash_history
Run Code Online (Sandbox Code Playgroud)
ech*_*son 10
您可以修改当前 shell 会话中的历史记录行。如果您回溯历史(例如使用Up或Ctrl+ P)并更改一行而不执行它,则只会保存该行的修改版本。你可以用任何你喜欢的方式修改它;好的选择包括使用Ctrl+U完全空白行或使用在开头Esc#放置#注释字符。
要留下一行而不执行它,请记住不要点击Return( Enter)。我所做的是通过Esc>.
(在大多数终端中,您可以按住并按下,而不是Esc跟>在之后;上面的建议也是如此。)Alt>Esc#
注意:您不能以这种方式永久修改以前会话中的条目。这些更改将不会应用于HISTFILE会话结束时的 。
小智 6
您也可以将 .bash_history 设为只读。我会先清空文件,然后执行以下操作:
chattr +i .bash_history
Run Code Online (Sandbox Code Playgroud)