I want to clear all previous commands from the history of my server. I used history -c
and it seems all things are cleared but when I ssh to the server, all the commands are still there.
How can I clear them permanently?
I want to clear all previous commands from the history of my server. I used history -c
and it seems all things are cleared but when I ssh to the server, all the commands are still there.
How can I clear them permanently?
The file
~/.bash_history
holds the history.To clear the bash history completely on the server, open terminal and type
Other alternate way is to link
~/.bash_history
to/dev/null
However,
One annoying side-effect is that the history entries has a copy in the memory and it will flush back to the file when you log out.
To workaround this, use the following command (worked for me):
What to do:
In every open bash shell (you may have multiple terminals open):
Why: As noted above,
history -c
empties the file~/.bash_history
. It is important to note that bash shell does not immediately flush history to the bash_history file. So, it is important to (1) flush the history to the file, and (2) clear the history, in all terminals. That's what the commands above do.Reference: http://www.giannistsakiris.com/index.php/2007/09/13/how-to-clear-bash-history-and-what-to-watch-out-for/
execute the following commands to clear history forever
good luck!
There's another much simpler one: running
history -c
on the terminal prompt and gone are all entries in thebash_history
file.Clear the current shell's history:
When you log out, your current shell's history is appended to ~/.bash_history, which is a cache of previous shells' histories, to a maximum number (see HISTFILESIZE in "man bash").
If you want to remove the history altogether, then you essentially have to empty out ~/.bash_history which many of the above entries have suggested. Such as:
This clears the current shell's history and then forces the current shell's history (empty) to overwrite ~/.bash_history....or to be more accurate, it forces it to overwrite HISTFILE (which defaults to ~/.bash_history).
Hope this helps.
Another way to do this is deleting the
~/.bash_history
file by usingrm ~/.bash_history
command. When you login another time, the.bash_history
file will be automatically created.Now log back in and witness that your arrow-up doesn't give you anything.
Try this one
edit your
.profile
and add the line below at the end of the filethis way, every time you login, it will delete your .bash_history file automatically for you. Adding the -r recursive remove option seems dangerous and not needed.
If you want the history not to be saved in the first place, you should add this to your
~/.profile
:That's it.
All new invocations of bash (if you re-login) will not log anything. After that you can delete the old
~/.bash_history
file as well if you want.