Moja historia bashów w tajemniczy sposób przestała działać i nie mam pojęcia, jak to naprawić. Tak wygląda mój .bashrc:
HISTSIZE=500
HISTFILESIZE=500
HISTFILE=$HOME/.bash_history
Jednak po uruchomieniu echo $HISTFILE
drukuje się /Users/myusername/.bash_sessions/EE8689E5-7DAD-4018-817E-0AF1DE36082A.historynew
.
Jestem właścicielem pliku .bash_history, więc nie jestem pewien, jak bym rozwiązał ten problem.
Dzięki!
$HISTFILE
, nie interesując się? Nie mam.bashrc
OSX iecho $HISTFILE
donosi o miejscu, którego bym się spodziewał - czy komentowanie linii ma jakiś wpływ?HISTFILE="$HOME/.bash_history”
. Bez cudzysłowów Twoja wersja będzie nieważna, jeśli ścieżka do katalogu domowego zawiera spacje (lub ewentualnie inne znaki specjalne).Odpowiedzi:
Terminal przypisuje każdej sesji terminala unikalny identyfikator i przekazuje go za pośrednictwem zmiennej środowiskowej TERM_SESSION_ID, dzięki czemu programy działające w terminalu mogą zapisywać / przywracać stan specyficzny dla aplikacji podczas zamykania i ponownego uruchamiania terminala z włączonym wznowieniem.
Nowy folder (~ / .bash_sessions /) służy do przechowywania plików HISTFILE i .session, które są unikalne dla sesji.
Podczas uruchamiania powłoki wykonywany jest plik sesji. Stare pliki są okresowo usuwane.
Domyślne zachowanie umożliwia niezależne zapisywanie i przywracanie historii poleceń bash dla każdej przywróconej sesji terminala. Łączy także polecenia z globalną historią dla nowych sesji.
Możesz wyłączyć to zachowanie i udostępnić jedną historię, ustawiając
Jeśli zdefiniowano HISTTIMEFORMAT, historia poszczególnych sesji jest domyślnie wyłączona (czytaj więcej w / private / etc / bashrc_Apple_Terminal)
Mechanizm zapisywania / przywracania jest wyłączony, jeśli istnieje następujący plik:
Apple zmieniło już pewne zachowanie od czasu wydania El Capitan, więc lepiej przeczytać więcej na ten temat tutaj
less /private/etc/bashrc_Apple_Terminal
źródło
~/.bash_sessions_disable
Plik służy jako ostateczność w przypadku istnieje problem, który nie może być rozwiązany w szczególności. Wyłącza więcej niż tylko historię poleceń na sesję i można wyłączyć tylko historię poleceń na sesję. Zobacz komentarze w,/etc/bashrc_Apple_Terminal
aby uzyskać szczegółowe informacje.export SHELL_SESSION_HISTORY=0
.bashrc
and.bash_profile
unix.stackexchange.com/a/310150/15362Zauważyłem coś podobnego po aktualizacji El Capitan. Po prostu dodanie pliku
.bash_sessions_disable
pliku do katalogu domowego wyłącza nowe sesje bash i.bash_history
jest z powrotem w użyciu.Ten wątek Reddit zawiera więcej informacji i dalsze linki.
źródło
~/.bash_sessions_disable
Plik służy jako ostateczność w przypadku istnieje problem, który nie może być rozwiązany w szczególności. Wyłącza więcej niż tylko historię poleceń na sesję i można wyłączyć tylko historię poleceń na sesję. Zobacz komentarze w,/etc/bashrc_Apple_Terminal
aby uzyskać szczegółowe informacje.SHELL_SESSION_HISTORY=0
na górze~/.bash_profile
.Możesz rozwiązać problem RVM poprzez aktualizację do najnowszej wersji RVM lub wykonanie tego:
Aby uzyskać więcej informacji, zobacz https://github.com/rvm/rvm/issues/3540
źródło
Ta odpowiedź z wątku Reddit uratowała mnie:
źródło
Jeśli jest to komputer Mac, domyślnie jest to domyślna powłoka logowania
bash
i działa ona.profile
zamiast.bashrc
. Edytowałeś niewłaściwy plik.źródło
$HISTFILE
w różnych częściachprofile
? Być może źródło innego skryptu, który zmienia zmienną? Sprawdziłem zarównoTerminal
aiTerm
,bash
3
i4
obie mają swoje domyślne$HOME/.bash_history
.$HISTFILE
zmian. Dlatego po prostu ustaw dwaecho $HISTFILE
otaczające kod. Musisz znaleźć fragment kodu, w którym$HISTFILE
zmienia się, przesuwając obieecho $HISTFILE
linie coraz bliżej siebie, linia po linii, aż coś się ujawni. To wszystko.echo $HISTFILE
na każdą linię, żeby zobaczyć, czy są jakieś różnice. Jednak wydrukował/Users/username/.bash_history
zaledwie niezliczoną ilość razy. Potem pobiegłemecho $HISTFILE
w powłoce i wyszedł/Users/nelsonliu/.bash_sessions/CD275A29-1DF1-4ED8-B8CE-F706B11B812F.historynew
.Widziałem ten problem w High Sierra. Jakoś moja własna .bash_history stała się własnością roota i nawet nie miała uprawnień do odczytu dla innych użytkowników (gdy zawartość katalogu domowego przeglądana za pomocą ls -al)
W tym pliku .bash_history nie było żadnych konsekwencji, więc zrobiłem sudo rm .bash_history, a następnie dotknąłem .bash_history, aby utworzyć nowy.
Wszystko wydaje się teraz dobrze
źródło
~/.bash_profile
pliku:export HISTTIMEFORMAT='%F %T '