Історія команд Bash не працює


13

Історія команд між сеансами не зберігається. Я використовую guake, і історія для сеансу працює чудово.

Я помітив, що .bash_history мав декілька команд, які я виконував у sudo -sрежимі, і спробував ще раз те ж саме, і всі команди, перебуваючи в сесії, збереглисяchmod 777 .bash_history

Тепер старі команди з’являються на початку сеансу, але нові команди не зберігаються

Дякую заздалегідь


2
Отже ... що саме ви намагаєтеся досягти? Ви, здається, не задаєте тут питання: /
Thomas Ward

4
Режим 777 непотрібний, він особливо не має нічого спільного з прапором "виконуваний" (режим за замовчуванням - 600). Опис ~/.bash_historyзаписується під час виходу з системи (для досягнення нових команд можна скористатися historyкомандою). Але я теж не бачу проблеми ..
Onedinkenedi

Відповіді:


16

Команди не видно, оскільки Bash зберігає історію у файлі .bash_history лише після закінчення оболонки, і це дуже рідко трапляється з Guake. Існує просте рішення, щоб змусити Bash додавати історію (замість перезапису файла) після кожної команди

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

4
Чистий дивовижний. Бажаю, я знав про це 5 років тому.
HDave

8

Пов’язано, як правило, це порушується, якщо ви подаєте команду до того, як у вас є файл .bash_history, оскільки тоді він буде створений у власності root замість вашого користувача.



2

Це може бути і цей корінь: root володіє вашою .bash_history (корінь повинен бути власником, ваш користувач повинен бути власником!).

#chown user:user .bash_history

Це, мабуть, може статися, якщо ви зробите sudo bashбагато!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.