Ilekroć otwieram nową instancję terminala, historia jest pusta. Dlaczego? Czy muszę coś skonfigurować? Jednak w bash nie ma takiej potrzeby.
zsh
command-history
Gilles „SO- przestań być zły”
źródło
źródło
zsh
, ale domyślniebash
zapisuje do swoich plików historii przy wyjściu , co oznacza, że jeśli nie używałeś go wcześniej i nie otworzyłeś niektórych powłok, wszystkie one będą teraz wyświetlać historię, dopóki przynajmniej jeden się nie wyloguje, zapisując w ten sposób swój plik historii.Odpowiedzi:
Bash i zsh mają różne ustawienia domyślne. Zsh domyślnie nie zapisuje historii w pliku.
Gdy uruchomisz zsh bez pliku konfiguracyjnego, wyświetli się interfejs konfiguracyjny. W tym interfejsie konfiguracyjnym wybierz
następnie przejrzyj proponowane ustawienia i wybierz
Powtórz te czynności dla pozostałych podmenu dla (2) zakończenia, (3) skrótów klawiszowych i (4) opcji, a następnie wybierz
z menu głównego.
Zalecane ustawienia związane z historią to
Użyłbym innej nazwy dla pliku historii, aby wskazać, że jest to plik historii zsh. W nowoczesnym systemie można zwiększyć 1000 linii.
Nawiasem
~/.zshrc
mówiąc, te linie wchodzą .źródło
Chociaż istniejąca odpowiedź jest poprawna, pomyślałem, że warto dodać, że istnieje prawdopodobnie lepsza opcja niż
appendhistory
zapisanie historii i tak jestSHARE_HISTORY
.Z dokumentów
SHARE_HISTORY
„oba importują nowe polecenia z pliku historii, a także powodują, że wpisane polecenia są dołączane do pliku historii”. Oznacza to, że muszle również znają swoją historię bez konieczności zamykania obecnej lub otwierania nowej.Więc razem ustawilibyście to w ten sposób:
źródło
INC_APPEND_HISTORY_TIME
, który zapisuje historię ze wszystkich terminali jak wyżej, ale ta historia „nie będzie dostępna od razu z innych instancji powłoki korzystających z tego samego pliku historii”. Ma to dla mnie większy sens, ponieważ wtedy mogę osobno przeglądać historię każdego terminala, ale nadal wszystko jest rejestrowane.INC_APPEND_HISTORY_TIME
może mieć to bardziej logiczny sens. Prawdopodobnie nie powinienem był mówić „lepiej”, myślę, że w tym momencie jest to tylko kwestia osobistych preferencji!kiedy po raz pierwszy przełączysz się z bash na zsh, twoja historia bash nie zostanie przeniesiona. Więc cała historia, którą miałeś w bash, jest nadal w pliku historii bash. Zsh zaczyna przechwytywać historię od momentu, gdy zaczniesz używać jej jako powłoki.
Jeśli nie skonfigurowałeś go do przechwytywania historii, możesz ponownie uruchomić kreatora konfiguracji i powiedzieć zsh, ile historii zapisać. Zmień nazwę ~ / .zshrc lub usuń ją, aby uzyskać nowe ujęcie kreatora.
źródło
Jeśli to nie działa, a masz to wszystko na swoim miejscu, spróbuj:
To zapisuje bieżącą historię do pliku historii. A jeśli otrzymasz:
nadszedł czas, aby sprawdzić uprawnienia do pliku i katalogu nadrzędnego.
źródło