Pracuję nad celem x86 z Fedorą 9.
Za każdym razem, gdy go ponownie uruchamiam, moja historia wraca do pewnego stanu i nie mam poleceń, które wykonałem w sesjach przed ponownym uruchomieniem.
Co muszę zmienić, aby zaktualizować historię, którą miałem przed ponownym uruchomieniem?
Odpowiedzi:
Która historia bash-history? Jeśli tracisz historię bash i masz wiele sesji na raz, to dlatego, że każda sesja zastępuje historię innych sesji.
Prawdopodobnie chcesz powiedzieć bashowi, aby nie zastępował historii za każdym razem, ale raczej do niej dołączał. Możesz to zrobić, modyfikując plik .bashrc, aby działał
shopt -s histappend
.Możesz również zwiększyć rozmiar pliku historii, eksportując HISTSIZE do dużej liczby (jest on w bajtach, więc 100000 powinno być wystarczające).
źródło
HISTSIZE
to liczba poleceń do zapamiętania, a nie liczba bajtów.I cierpi z tego samego problemu - ale mój
.bashrc
plik już miałshopt -s histappend
i prawidłoweHISTFILE
,HISTSIZE
,HISTFILESIZE
.Dla mnie problem polegał na tym, że mój
.bash_history
plik był własnością root, a nie mojej nazwy użytkownika, więc mój użytkownik nigdy nie mógł zapisać tego pliku przy wyjściu.źródło
sudo chmod your_user_name .bash_history
zrobił to! Dzięki.sudo chown user_name:user_name ~.bash_history
rozwiązałem to!Wyszukaj zmienne środowiskowe HISTFILE, HISTSIZE, HISTFILESIZE.
źródło
Napisałem skrypt do ustawiania pliku historii na sesję lub zadania w oparciu o następujące.
Nie trzeba zapisywać każdego polecenia historii, ale zapisuje te, na których mi zależy, i łatwiej je odzyskać niż wykonać każde polecenie. Moja wersja zawiera także listę wszystkich plików historii i umożliwia przeszukiwanie ich wszystkich.
Pełne źródło: https://github.com/simotek/scripts-config/blob/master/hiset.sh
źródło
Napisałem kilka wierszy w moim .bashrc, które spełniają następujące warunki: Zapisz każdą sesję po każdym poleceniu do pliku. Będzie tyle plików historii, ile kiedykolwiek uruchomiłeś terminale. Po uruchomieniu nowego terminala, zaczynając od najnowszego pliku historii, ładuj wszystkie pliki historii z poprzednich sesji do bufora historii, aż do osiągnięcia progu liczby wierszy.
źródło
Zapewniłbym, że istnieje .bash_history. Jeśli tak się nie stanie, bash nie będzie mógł zapisać historii poleceń.
jeśli .bash_history nie istnieje, utwórz ją, uruchamiając touch:
to po prostu tworzy pusty plik .bash_history w twoim katalogu domowym, który wypełni się twoimi poleceniami i powinien pozostać między sesjami.
źródło
Moja instancja Amazon EC2 Ubuntu nie zapisywała historii.
.bashrc
miał wszystkie wymagane polecenia, jak wspomniano w innych odpowiedziach, ale brakowało tylko pliku. Musiałem go dotknąć, aby działał.źródło
Dobra odpowiedź na to pytanie jest tutaj:
http://linuxcommando.blogspot.com/2007/11/keeping-command-history-across-multiple.html
źródło