Czasami nieumyślnie wychodzę z sesji terminala (zwykle dlatego, że myślę, że jestem podłączony do systemu zdalnego, kiedy nie jestem), więc przechodzę do tego punktu:
Jak mogę ponownie uruchomić sesję w tym momencie? Nie chcę zamykać okna ani karty, ponieważ mam kilka kart skonfigurowanych do normalnego przepływu pracy, więc chcę po prostu przywrócić sesję do bieżącej karty (tj. Wrócić do monitu bash).
Jedynym rozwiązaniem, które do tej pory znalazłem, jest całkowite zamknięcie Terminala i ponowne otwarcie go, ale jest to dalekie od ideału, ponieważ oczywiście zakłóca wszystko, co robię w innych oknach / kartach Terminalu.
^t 8
na przykład) dla danego kontekstu, zamiast wizualnego liczenia, którą kartę kliknąć lub (lub ile ctrl-pgup trafić) .cd
edytowanych do kodu źródłowego, kiedy pracuję nad kodem, więc to pasuje do twojego użycia.ssh
gdzieś indziej. Właśnie przyzwyczaiłem się do korzystania z ekranu i używania go lokalnie, a także na sesjach zdalnych. Jak rozumiem, jeśli jeszcze nie maszscreen
w pamięci mięśni, naucz się tmux, ponieważ ekran jest stary i kruchy. Prawdopodobnie mógłbym się przełączyćtmux
i skonfigurować, aby używać tych samych skrótów klawiszowych, których używamscreen
, ale ekran nadal działa dla mnie dobrze.Odpowiedzi:
W tym momencie nie ma możliwości odzyskania karty. Sesja terminalu jest zamknięta i nie ma już TTY. Po prostu nie ma sposobu, aby odwołać się do zakładki, aby zrobić coś sprytnego. Sugeruję dodanie tej funkcji do twojego .bashrc lub .profile, abyś nie miał problemu w przyszłości:
lub, dla tych z nas, którzy używają powłoki Z (dodaj ją do swojego .zshrc):
To miła bariera między tobą a tą irytującą komendą wyjścia! Pan wie, że robiłem to samo wiele razy w przeszłości.
źródło
-t 5
opcja) polecenie odczytu zakończy się niepowodzeniem, co spowoduje uruchomienie polecenia wyjścia po nim.exit
jeśli używasz Bash. Możesz umieścić swój skrypt~/.bash_logout
..bash_logout
?logout
i ustawić wartośćIGNOREEOF
większą niż 1 (lub ponownie powiązać ^ D).Skrypt Williama T Froggarda nie zrobił tego, czego potrzebowałem, ponieważ ogólnie jedynym sposobem, w jaki dostaję się do tej sytuacji, jest ^ D ( ctrl+ D), a przedefiniowanie
exit
niczego nie zrobiło w tej sytuacji. Dla mnie propozycja Dennisa WilliamsonaIGNOREEOF
była wystarczająca. Właśnie dodałem:do mojego
~/.bashrc
pliku i teraz (jeśli jestem w powłoce najwyższego poziomu i wychodzę z terminala) pierwsza ^ D generuje odpowiedź:Jeśli natychmiast wypiszę ^ D, powłoka zostanie zamknięta, więc wyjście z niego, kiedy chcę, jest wciąż łatwe, ale teraz pojedyncze ^ D ostrzeże mnie. (Jeśli chcesz, możesz ustawić
IGNOREEOF
wyższą liczbę, aby wymagać dodatkowych kolejnych ^ D).Również pomocne, jeśli jestem w podpowłoce, pierwsza ^ D generuje odpowiedź:
Ponownie wydostanie mnie dodatkowe ^ D, a teraz mogę odróżnić wyjście z podpowłoki od wyjścia z powłoki najwyższego poziomu.
źródło