Chcę, aby mój .bash_history
plik był nieograniczony. np. Więc zawsze mogę wrócić i zobaczyć, jak coś zbudowałem / skonfigurowałem, czym było to fajne polecenie lub jak jakieś polecenie złamało się kilka tygodni temu. Jak mogę zmienić to ustawienie?
350
Odpowiedzi:
Ustaw
HISTSIZE
iHISTFILESIZE
w .bashrc na pusty ciąg:W wersji bash 4.3 i nowszych możesz także użyć
HISTSIZE=-1 HISTFILESIZE=-1
:źródło
HISTSIZE= HISTFILESIZE=
powoduje całkowite wyłączenie historii bash, przynajmniej dla mnie.HISTSIZE=-1 HISTFILESIZE=-1
wyłączyło moją historię, podczas gdy załatwiło sprawęHISTSIZE= HISTFILESIZE=
. CentOS 7 tutaj.HISTSIZE= HISTFILESIZE=
powinieneśexport HISTSIZE=
export HISTFILESIZE=
Po wielu dużych, brzydkich iteracjach i dziwnych przypadkach na przestrzeni lat, teraz mam zwięzłą sekcję mojego .bashrc poświęconą temu.
Najpierw musisz skomentować lub usunąć tę sekcję .bashrc (domyślnie dla Ubuntu). Jeśli tego nie zrobisz, niektóre środowiska (takie jak uruchamianie
screen
sesji) nadal będą obcinać Twoją historię:Po drugie, dodaj to na dole swojego .bashrc:
Uwaga: każde polecenie jest zapisywane natychmiast po uruchomieniu, więc jeśli przypadkowo wkleisz hasło, nie możesz po prostu „zabić -9 %%”, aby uniknąć zapisu historii, musisz je usunąć ręcznie.
Pamiętaj również, że każda sesja bash załaduje pełny plik historii do pamięci, ale nawet jeśli Twój plik historii powiększy się do 10 MB (co zajmie dużo czasu), nie zauważysz dużego wpływu na czas uruchamiania basha.
źródło
HISTFILESIZE=
iHISTSIZE=
puste zamiast -1 i upewnij się, że nie masz innych deklaracji tych parametrów w .bashrc lub .bash_profile lub .profile..bashrc
, miałem tę konfigurację później na innym pliku załadowanym przez .bashrc ..., teraz działa! dzięki!cat ~/.bash_history >>~/.bash_eternal_history
HISTFILESIZE
(i ewentualnieHISTSIZE
) przyniesie natychmiastowy skutek .Jak wspomniano powyżej Jörg Beyer
HISTSIZE
iHISTFILESIZE
są kluczowe.Ponadto zdecydowanie powinieneś sprawdzić zmienną środowiskową
HISTCONTROL
, która pozwala robić fajne rzeczy, takie jak nie przechowywać zduplikowanych poleceń historii (HISTCONTROL=erasedups
). Nie ma sensu mieć nieograniczonej historii, jeśli musisz przeglądać setki liniicd ..
lub tym podobnych.Linki: tutaj i praca z historią bash . Warto również przejrzeć często zadawane pytania dotyczące zmiennych bash .
źródło
Ctrl-r
NiektóreCtrl-o
Ctrl-o
Ctrl-o
Ctrl-o
. Dlatego przechowuję duplikaty w historii.Ctrl-o
?Ctrl-o
uruchamia polecenie w wierszu polecenia i natychmiast wyświetla polecenie zaraz po poprzednim w historii. Jedną z korzyści jest to, że po użyciuCtrl-r
do znalezienia starego polecenia (być może za pomocą strzałki w górę i w dół, aby przejść do sąsiednich poleceń w historii), wystarczy przytrzymaćCtrl
naciśnięty i nacisnąćo
kilkakrotnie, aby ponownie uruchomić poprzednią serię poleceń, nawet w nieskończonej pętli Jeśli chcesz. Zobacz także GNU Readline - WikipediaIstnieją (przynajmniej) dwa odpowiednie zmienne środowiskowe:
Myślę, że możemy się zgodzić, że termin nieograniczony jest często taki sam, jak bardzo duży (czy masz nieograniczoną ilość miejsca na pliki?). Więc po prostu ustaw wartości bardzo duże.
źródło