Po wpisaniu dowolnego polecenia w terminalu nie pojawia się ono w moim ~/.bash_history
pliku, dopóki nie zakończę sesji.
Ponadto, gdy ręcznie edytuję ~/.bash_history
plik (na przykład usuwam trzy ostatnie polecenia), po wpisaniu history
nadal wyświetla polecenia, które usunąłem z ~/.bash_history
pliku. Dopiero po zakończeniu sesji i ponownym zalogowaniu się znikają.
W jaki sposób mój ~/.bash_history
plik i history
polecenie są synchronizowane?
command-line
bash
bash-history
sys0dm1n
źródło
źródło
Odpowiedzi:
Po otwarciu terminalu bash ładuje zawartość
~/.bash_history
i buduje historię aktywnej powłoki (w pamięci RAM), dodając do niej każde polecenie wykonane w tej powłoce - i tylko do niej, a nie do pliku.Dopiero po zamknięciu terminalu bash jego historia jest dołączana do
~/.bash_history
pliku.Opcje
history
:Opcje
~/.bashrc
plikuJeśli chcesz zmienić to zachowanie, aby historia tymczasowa była zapisywana
~/.bash_history
bezpośrednio po wykonaniu polecenia, dodaj następujący wiersz:Jeśli dodatkowo chcesz, aby każdy terminal automatycznie ładował
~/.bash_history
plik po każdym wykonaniu polecenia, dodaj ten wiersz:Jeśli chcesz wykluczyć niektóre polecenia (np. Wszystko zaczynające się od
sudo
icat
) z zapisywania, dodaj ten wiersz:źródło