Wczoraj wydałem wiele poleceń w moim CentOS 7. Ale kiedy chciałem dzisiaj odzyskać te polecenia, stwierdziłem, że nie było żadnego rekordu. Kiedy otworzyłem plik .bash_history
, nadal nie mogłem znaleźć poleceń, które wydałem wczoraj, ale wiele starych poleceń znalazłem kilka dni temu. Dlaczego ostatnie polecenia nie zostały zapisane? Jak mogę zwiększyć możliwości historii?
bash
command-history
Jacek
źródło
źródło
Odpowiedzi:
Najbardziej prawdopodobną przyczyną, aby elementy historii nie były wyświetlane, nie jest ustawienie
HISTFILE
naHISTSIZE
zero lub na zero, jest to poprzez dwukrotne zalogowanie się na tę samą maszynę i wyjście z drugiej instancji bash (w której zrobiłeś niewiele lub nic) po tej, w której dużo zrobiłeś. Domyślnie Bash nie łączy historii, a drugie wyjście Bash zastępuje to,.bash_history
co było tak ładnie zaktualizowane przez pierwsze wyjście Bash.Aby temu zapobiec, możesz dołączyć do pliku historii zamiast nadpisywania, możesz użyć
histappend
opcji powłoki:Więcej szczegółów w tej odpowiedzi tym, jak używać
HISTSIZE
,HISTFILESIZE
iHISTCONTROL
kontrolować wielkość, itp duplikatyźródło
Aby zmodyfikować historii korzystają z filtrów dwie zmienne BASH
HISTSIZE
,HISTFILESIZE
(zazwyczaj określone w.bashrc
).Opis ze strony podręcznika BASH:
Jako przykład mam następujące ustawienia w moim
.bashrc
pliku:źródło
Tak się stało, ale rozwiązania nie wymieniono tutaj. Przyczyną był po prostu problem z kopiowaniem i wklejaniem. Kopiowałem polecenie z innego dokumentu i miałem trochę białego miejsca w schowku. Z jakiegoś powodu spowodowało to, że Ubuntu nie zapisało polecenia w pliku historii.
Powyższe zdjęcie było poleceniem, które miałem w moim schowku z dokumentów Google. To polecenie działało, ale zostało pominięte w mojej historii. Właśnie wróciłem i wybrałem polecenie bez białych znaków, a potem pojawiło się ono w historii bash.
źródło
Sprawdź, czy
HISTCONTROL
zmienna środowiskowa nie jest ustawiona naignorespace
lubignoreboth
.Możesz go zmodyfikować, ustawiając wartość w swoim
~/.bash_profile
lub swoim~/.profile
pliku:Ze
bash
strony podręcznika:źródło