Będąc zapalonym użytkownikiem Linuksa przed zakupem MacBooka Pro, zazwyczaj mam kilka kart terminalu otwartych jednocześnie.
W przeszłości awarie i restarty generalnie niszczyłyby mój przepływ pracy i większość historii moich kart. Szukałem sposobów rozwiązania tego problemu, ale zawsze wydawałem się pusty; oprócz różnych technik, które stosowane kombinacje narzędzi podoba ssh
, screen
, tmux
i wymagane wirtualny serwer prywatny (lub podobny).
Jedną z moich ulubionych rzeczy na temat używania mojego MacBooka Pro do pisania skryptów i używania narzędzi CLI itp .; jest to, że moje sesje terminali domyślnie trwają dłużej niż awarie i restarty. W rzeczywistości właśnie przywróciłem kopię zapasową sprzed prawie 2 lat, a kiedy zalogowałem się po raz pierwszy, otrzymałem mój stary pulpit i trzy bash
powłoki, które zawierały projekt, nad którym pracowałem cały czas temu.
Chciałbym wiedzieć, w jaki sposób OS X umożliwia tę funkcję. Czy ktoś tu ma wgląd w to, jak to działa?
/etc/bashrc_Apple_Terminal
? Szczególnie podoba mi się, że# The default behavior arranges to save and restore the bash command history independently for each restored terminal session. It also # merges commands into the global history for new sessions.
to coś, co próbowałem wcześniej wdrożyć, ale bezskutecznie.trap
do przechwytywania końca sesji i przechowywania jego historii w pliku specyficznym dla karty / sesji.O ile wiem, po prostu zapisuje tekst w buforze przewijania każdego okna. W rzeczywistości nie zapisuje stanu tego, co działało w terminalach; po prostu uruchamia nową powłokę po ponownym uruchomieniu.
W ramach eksperymentu zdefiniuj zmienną w swojej powłoce i sprawdź jej wartość:
Następnie uruchom ponownie i ponownie sprawdź wartość zmiennej. Zobaczysz, że nie jest już zdefiniowany.
źródło