История команд Bash, не работающая

История команд между сессиями не становится сохраненной. Я использую землетрясение, и история для сессии хорошо работает.

Я заметил, что .bash_history имел некоторые команды, в которых я выполнился sudo -s режим и попробованный то же снова и все команды, в то время как на сессии был сохранен так, я попробовал chmod 777 .bash_history

Теперь старые команды появляются в начале сессии, но никакие новые команды не становятся сохраненными

Заранее спасибо

13
задан 24 March 2012 в 01:37

4 ответа

Команды не отображаются, потому что Bash сохраняет историю в файл .bash_history только после выхода из оболочки, и это очень редко случается с Guake. Существует простой обходной путь , чтобы заставить Bash добавлять историю (вместо перезаписи файла) после каждой команды

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
0
ответ дан 24 March 2012 в 01:37

Связано, как правило, с этой ошибкой, если вы выполняете команду до того, как у вас есть файл .bash_history, так как тогда она будет создана владельцем root, а не вашим пользователем.

0
ответ дан 24 March 2012 в 01:37

См. http://mywiki.wooledge.org/BashFAQ/088 , как избежать потери линий истории, и объяснение побочных эффектов от этого.

0
ответ дан 24 March 2012 в 01:37

Это также может быть root: root владеет вашей .bash_history (ROOT НЕ ДОЛЖЕН БЫТЬ ВЛАДЕЛЬЦЕМ, ВАШ ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН БЫТЬ ВЛАДЕЛЕЦ!), В этом случае вам необходимо:

#chown user:user .bash_history

очевидно, это может произойти, если вы сделаете sudo bash много!

0
ответ дан 24 March 2012 в 01:37

Другие вопросы по тегам:

Похожие вопросы: