Возможно, ваш $ HISTFILE принадлежит root. Предполагая, что вы используете bash в качестве оболочки для входа. Вот как это проверить:
$ [ -z $HISTFILE ] && echo need to set HISTFILE || ls -l $HISTFILE
-rw------- 1 root root 36639 May 21 19:48 /home/joeb/.bash_history
По умолчанию для HISTFILE должно быть ~ / .bash_history, если вы видите ошибку «необходимо установить HISTFILE» или если $ HISTFILE не является ~ / .bash_history, то вам следует проверить ~ / .profile, ~ / .bash_profile или ~ /. Bashrc, чтобы убедиться, что он не устанавливается или сбрасывается неправильно.
Обычно он принадлежит только пользователю root, поэтому просто сбросьте его:
$ chown joeb.joeb $HISTFILE
$ ll $HISTFILE
-rw------- 1 joeb joeb 36639 May 21 19:48 /home/joeb/.bash_history
Выйдите, затем войдите.
$ history
Должен отображать последний набор команд, введенных до того, как файл стал владельцем root, а затем команды, введенные после изменения владельца файла.
shopt -s histappend
под/etc/bash/bashrc
. Тем не менее, любой нечистый выход запущенных оболочек теряет свою историю командной строки.