Historia poleceń Bash nie działa


13

Historia poleceń między sesjami nie jest zapisywana. Używam guake, a historia sesji działa dobrze.

Zauważyłem, że .bash_history ma kilka poleceń, które wykonałem w sudo -strybie i spróbowałem tego samego ponownie, a wszystkie polecenia podczas sesji zostały zapisane, więc spróbowałemchmod 777 .bash_history

Teraz stare polecenia pojawiają się na początku sesji, ale nowe polecenia nie są zapisywane

Z góry dziękuję


2
Więc ... co dokładnie próbujesz osiągnąć?
Thomas Ward

4
Tryb 777 jest niepotrzebny, nie ma w szczególności nic wspólnego z flagą „wykonywalną” (tryb domyślny to 600). ~/.bash_historyZostanie napisany po wylogowaniu (aby dotrzeć do nowszych poleceń, można użyć historypolecenia). Ale nie widzę też problemu ...
Onedinkenedi,

Odpowiedzi:


16

Polecenia nie są widoczne, ponieważ Bash zapisuje historię w pliku .bash_history dopiero po zamknięciu powłoki, co zdarza się bardzo rzadko w przypadku Guake'a. Istnieje proste obejście problemu, dzięki któremu Bash dołącza historię (zamiast nadpisywania pliku) po każdym poleceniu

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

4
Czysto niesamowite. Chciałbym wiedzieć o tym 5 lat temu.
HDave

8

Powiązane, zazwyczaj to się psuje, jeśli sudo wyda polecenie przed utworzeniem pliku .bash_history, ponieważ wtedy zostanie utworzony jako własność root zamiast użytkownika.



2

Może to być również ten root: root jest właścicielem twojej .bash_history (ROOT NIE POWINIEN BYĆ WŁAŚCICIELEM, TWÓJ UŻYTKOWNIK POWINIEN BYĆ WŁAŚCICIELEM!), W takim przypadku musisz:

#chown user:user .bash_history

To może się zdarzyć, jeśli zrobisz sudo bashdużo!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.