Как автоматически очищать историю GNU Bourne-Again SHell при выходе из оболочки shell?
Отключите переменную оболочки HISTFILE при входе в систему, чтобы история команд не сохранялась при выходе из оболочки.
$ echo "unset HISTFILE" | sudo tee /etc/profile.d/unset_histfile.sh
При необходимости установите для переменной оболочки HISTSIZE значение 0 при входе в систему, чтобы выполненные команды не сохранялись в списке истории.
Внимание, это очень неудобно, так как полностью отключит историю в оболочке входа в систему.
$ echo "HISTSIZE=0" | sudo tee /etc/profile.d/disable_histsize.sh
Создайте /etc/bash.bash_logout файл, который будет выполняться при выходе из шелла.
Используйте его для очистки истории.
Не волнуйтесь, он будет выполнен после отдельного файла очистки оболочки входа ~/.bash_logout.
$ echo "history -c" | sudo tee /etc/bash.bash_logout
Обратите внимание, он не будет записывать пустой список истории в файл истории.
Добавление второй команды для записи списка истории в файл истории не будет работать, так как переменная оболочки HISTFILE не была установлена.
Это также означает, что список истории не будет инициализирован из файла истории при запуске.
Удалите существующий файл истории ~ /.bash_history, чтобы все было в порядке.
Но помните о других пользователях.
Вы всегда можете сохранить список истории в специальный файл.
Обратите внимание, что это добавит текущий список истории в файл.
$ HISTFILE=session_history.txt history -w
$ cat session_history.txt cat .bash_history HISTFILE=session_history.txt history -w
2020-08-30T14:26:11
Скрипты