When accidentally pasting a file into the shell it puts a ton of ugly nonsense entries in the bash history. Is there a clean way to remove those entries? Obviously I could close the shell and edit the .bash_history
file manually but maybe there's some kind of API available to modify the history of the current shell?
Bash – Delete last N lines from bash history
bashcommand history
Best Answer
As of
bash-5.0-alpha
, thehistory
command now takes a range for the delete (-d
) option. See rastafile's answer.For older versions, workaround below.
You can use
history -d offset
builtin to delete a specific line from the current shell's history, orhistory -c
to clear the whole history.It's not really practical if you want to remove a range of lines, since it only takes one offset as an argument, but you could wrap it in a function with a loop.
Call it with
rmhist first_line_to_delete last_line_to_delete
. (Line numbers according to the output ofhistory
.)(Use
history -w
to force a write to the history file.)