Bash: função para remover o último comando digitado do histórico

Eu uso o Bash todos os dias como minha concha preferida. Como tendo a digitar rapidamente, ocasionalmente digito incorretamente um comando e o executo acidentalmente antes de corrigir o erro de digitação, resultando no comando digitado incorretamente no meu histórico do bash (o que significa que preciso evitar quando pressionar a seta para cima). Da mesma forma, posso digitar um comando que é sintaticamente correto, mas resulta em um erro (e, portanto, pode não valer a pena manter o comando no histórico)

Então, escrevi uma pequena função Bash para remover o último comando do histórico do Bash, que entrará em vigor imediatamente. Você pode opcionalmente remover os últimos n comandos se passar um argumento inteiro. Eu chamo a função rmlastcmd.

Basta adicionar o seguinte ao seu .bashrcno Linux (ou .bash_profileno macOS):

# Also be sure to add rmlastcmd to your HISTIGNORE;
# otherwise, rmlastcmd will always remove itself
export HISTIGNORE
='rmlastcmd*'
# Remove last n commands from Bash history (n defaults to 1)
rmlastcmd
() {
local n="$([ -n "$1" ] && echo "$1" || echo 1)"
local i
for ((i=0; i<$n; i++)); do
history
-d "$((HISTCMD-1))"
done
}

A execução rmlastcmdé mais fácil se você tiver o bash-complete instalado e habilitado, já que pode simplesmente digitar rml<tab>. Aproveitar!