Se você estava usando bash, em vez de zsh, você poderia usar essas técnicas para remover um comando do histórico:
Pressione a seta para cima para chegar à linha e pressione Ctrl-U para apagá-la. Não pressione ENTER, em vez disso, pressione a seta para cima ou para baixo para ir para outra linha do histórico.
A linha que você deseja apagar será substituída por uma linha vazia. Eu não sei se isso está documentado em algum lugar, eu percebi isso acidentalmente há vários anos ... Eu acho que o apagamento é apenas uma edição completa :) da linha histórica.
por exemplo, em vez de pressionar ^ U para limpar a linha, altere algo. NÃO ACESSE , pois isso criaria uma nova entrada de histórico. Pressione a seta para cima ou para baixo. A linha agora é alterada permanentemente no histórico, como você pode ver usando a seta para cima / para baixo para trazê-la de volta à exibição.
Por permanente, quero dizer que depois de pressionar as teclas de seta para cima / para baixo, a linha permanecerá alterada mesmo que você pressione Enter em um comando novo / editado. Somente a linha editada permanecerá no histórico substituindo o original e será salva em seu $ HISTFILE como de costume quando você sair desse shell.
Você pode pressionar ^ C para interromper uma edição ou uma exclusão, para impedir que ela afete o histórico.
Outro método é usar history -d
se você souber o número da linha do histórico. Por exemplo:
$ history | grep history | tail
[...irrelevant, deleted...]
10113 help history
10114 history | grep history | tail
$ history -d 10113
$ history | grep history | tail
[...irrelevant, deleted...]
10113 history -d 10113
10114 history | grep history | tail
A linha help history
foi excluída pelo history -d 10114