u-p*_*nkt 271
用空格开始命令,它不会包含在历史记录中.
请注意,这确实需要设置环境变量$HISTCONTROL.
检查以下命令是否返回ignorespace或
ignoreboth
#> echo $HISTCONTROL
Run Code Online (Sandbox Code Playgroud)要在缺少的情况下添加环境变量,可以将以下行添加到bash配置文件中.例如%HOME/.bashrc
export HISTCONTROL=ignorespace
Run Code Online (Sandbox Code Playgroud)在再次获取配置文件后,将不会写入空格前缀命令 $HISTFILE
Miq*_*uel 50
在任何给定的bash会话中,通过键入以下内容将历史文件设置为/ dev/null:
export HISTFILE =/dev/null
请注意,正如评论中所指出的,这不会将该会话中的任何命令写入历史记录!
请不要弄乱你的系统管理员的辛勤工作;)
[更新] @Doodad的解决方案更优雅,只需取消设置变量:( unset HISTFILE谢谢!)
小智 32
echo "discreet";history -d $(history 1)
Run Code Online (Sandbox Code Playgroud)
小智 16
@John Doe和@ user3270492答案的延伸.但是,这似乎对我有用.
<your_secret_command>; history -d $((HISTCMD-1))
Run Code Online (Sandbox Code Playgroud)
您不应该在历史记录中看到该命令的条目.
这是解释..
'history -d'删除历史记录中提到的条目.
HISTCMD存储下一个要执行的command_number.因此,(HISTCMD-1)指的是最后执行的命令.
https://superuser.com/a/529193
Bas*_*tch 10
您可能会考虑使用没有历史记录的shell
/bin/sh << END
your commands without history
END
Run Code Online (Sandbox Code Playgroud)
(也许/bin/dash或者/bin/sash可能更合适/bin/sh)
甚至更好地使用批处理实用程序,例如
batch << EOB
your commands
EOB
Run Code Online (Sandbox Code Playgroud)
那么历史将包含sh或batch不具有意义
你可以开始你的会议
export HISTFILE=/dev/null ;history -d $(history 1)
Run Code Online (Sandbox Code Playgroud)
然后继续你的偷偷摸摸的行为.将histfile设置为/dev/null将记录到历史文件中,但此条目将很容易删除,并且不会显示任何跟踪(至少在历史文件中).
此外,这是非永久性的.
如果您使用的是Z shell ( zsh),您可以运行:
setopt histignorespace
Run Code Online (Sandbox Code Playgroud)
设置后,每个以空格开头的命令都将从历史记录中排除。
您可以使用别名在.zshrc关闭此开/关:
# Toggle ignore-space. Useful when entering passwords.
alias history-ignore-space-on='\
setopt hist_ignore_space;\
echo "Commands starting with space are now EXCLUDED from history."'
alias history-ignore-space-off='\
unsetopt hist_ignore_space;\
echo "Commands starting with space are now ADDED to history."'
Run Code Online (Sandbox Code Playgroud)
正如Doodad 在评论中提到的,unset HISTFILE这样做很好,但如果您还想删除一些历史记录,请执行echo $HISTFILE获取历史记录文件位置(通常~/.bash_history)unset HISTFILE、 和编辑~/.bash_history(或其他任何内容HISTFILE- 当然现在unset这样您就可以了)不读)。
$ echo $HISTFILE # E.g. ~/.bash_history
$ unset HISTFILE
$ vi ~/.bash_history # Or your preferred editor
Run Code Online (Sandbox Code Playgroud)
然后您编辑了您的历史记录,以及您编辑它的事实!
| 归档时间: |
|
| 查看次数: |
83929 次 |
| 最近记录: |