A opção INC_APPEND_HISTORY
, se configurada, causa uma gravação mais imediata das entradas do histórico. Observe também SHARE_HISTORY
, que, se definido, pode fazer com que novos shells apareçam em algo que parece que você deseja remover do histórico. Reescrevendo o histórico ao vivo depende dessas opções, como se você não se importasse com outros comandos nessa instância específica do shell, e INC_APPEND_HISTORY
não está definido, simplesmente destrua o histórico desse shell com fc -R
:
% echo super secret password
super secret password
% echo whoopsie
whoopsie
% history -2
18030 echo super secret password
18031 echo whoopsie
% fc -R $HISTFILE
% history -3
36060 vim ~/.zshrc
36061 man readpassphrase
36062 mutt
%
Em seguida, confirme com $EDITOR $HISTFILE
que a senha super secreta não está no arquivo de histórico (também! observe que pode haver uma função zshaddhistory
(ou matriz de funções), caso em que você precisará inspecionar o que essa função (ou aquelas funções) faz (fazer)). Com INC_APPEND_HISTORY
, a entrada provavelmente está em $HISTFILE
, portanto, edite o arquivo de histórico para remover a entrada incorreta e, em seguida, fc -R $HISTFILE
deve limpá-lo do arquivo de histórico e do shell. Com INC_APPEND_HISTORY
e SHARE_HISTORY
e se você suspeitar que novos shells capturaram essa entrada de histórico ruim, você precisará fazer fc -R
em todos esses shells, ou fechá-los todos, verifique se nenhum deles escreveu a linha errada voltar para o arquivo de histórico, etc.