Disable history in Linux [closed]

2020-05-23 07:18发布

问题:

To disable a history in Linux environment I've executed the following commands:

export HISTFILESIZE=0
export HISTSIZE=0
unset HISTFILE

Is such command combination enough or I have to also execute history -c or something else?

Will this keep history disabled even when I reboot a server or such commands need to be executed after reboot again and again?

回答1:

Just add this command to a bash startup file which could be /etc/profile, ~/.bash_profile, ~/.bash_login, ~/.profile, or ~/.bashrc depending your target scope and distro that customizes bash. See the INVOCATION section of bash's manual (man bash).

shopt -u -o history

Or

set +o history

Which would disable history.

Although you have to clear your history once:

history -c

And also delete your ~/.bash_history file.



回答2:

For most usecases, unset HISTFILE should be enough.

That disables writing the history file, while it still allows to cycle through the last commands using up/down.
Changing HISTFILESIZE doesn't have any effect when you unset HISTFILE, as it only affects how many lines will be written to the history file when the shell exits. If set to 0 with HISTFILE set, then the file will be truncated to 0 at exit.
Changing HISTSIZE changes how many commands the current shell will remember.

To make this changes permanent, ~/.bashrc or ~/.profile are good places to insert the commands.



回答3:

If you want it to persist through reboots, you can add them to ~/.bashrc or /etc/profile.