Я запускаю Ubuntu 12.04, и по какой-то причине bash не сохраняет историю команд. ~/.bash_history
файл содержит только три команды , которые я напечатал несколько месяцев назад.
Как я могу это исправить?
РЕДАКТИРОВАТЬ:
вот соответствующее содержание моего .bashrc
:
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
.bashrc
./bin/bash
~/.bash_history
Ответы:
Это также может быть root: root владеет вашей .bash_history ( ROOT НЕ ДОЛЖЕН БЫТЬ ВЛАДЕЛЕЦ, ВАШ ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН БЫТЬ ВЛАДЕЛЕЦ! ), В этом случае вам необходимо:
По-видимому, это может произойти волшебным образом, когда вы много делаете sudo bash!
источник
Предполагая, что вы используете gnome-терминал ??, если это так, возможно, проверьте разрешения на .bash_history. Так должно быть
-rw-r--r--
Для этого в терминале
ls -la |grep .bash
все 3 файла должны иметь указанные выше разрешения. В противном случае попробуйте удалить .bash_history, перезапустить и посмотреть, будет ли записана историяОбратите внимание, что история записывается только после закрытия терминала или выхода.
источник
Как указано выше, это можно исправить с помощью изменения прав пользователя root-> user. Первоначальные разрешения могут быть от
-rw-r--r--
или любого другого варианта и права root.В моем случае я
.bash_history
владел только root, но это все .bash_ *, которое должно принадлежать пользователю.источник