wyłącz okno CTRL-D zamknij w terminatorze (emulator terminala)

46

Często jestem zalogowany przez wiele sesji SSH. Aby wylogować się z sesji, naciskam CTRL+ d, dopóki nie wrócę na komputer lokalny.

Czasami jednak naciskam raz za dużo i mój terminal wychodzi.

Czy istnieje sposób na zablokowanie CTRL+ dprzed zamknięciem mojego terminala?

Używam terminatora jako emulatora terminala

Martin Vegter
źródło

Odpowiedzi:

50

Możesz także wyłączyć eof ogólnie w bash:

set -o ignoreeof

fanch
źródło
2
Ale jeśli zrobisz to bez rozróżnienia, będzie to miało zastosowanie również po zalogowaniu przez ssh.
Gilles „SO- przestań być zły”
3
Używam terminatora 0.97. Kiedy ustawię opcję -o ignoreeof, blokuje ctrl-d (nie wychodzi) 10 razy z komunikatem: Użyj „exit”, aby opuścić powłokę. Na 11 ctrl-d, wychodzi.
AAAfarmclub
OMG, dziękuję !! To (przypadkowe zaciski końcowe) było dla mnie ogromną irytacją. Dodano do ~ / .bashrc; działa w konsoli | xfce4-terminal | ... :-D
Victoria Stuart
@Gilles Dobry wkład, czy masz na to rozwiązanie?
Gauthier
34

Możesz użyć IGNOREEOFzmiennej środowiskowej w bash. Tak export IGNOREEOF=42i musisz nacisnąć Ctrl+Dczterdzieści dwa razy, zanim faktycznie przerywa powłokę.

POSIX też setma -o ignoreeofustawienie.

ryekayo
źródło
4
Czterdzieści trzy razy: pierwsze czterdzieści dwa są ignorowane, a ostatni faktycznie się kończy. :-)
deltab
Uznałem, że czterdzieści trzy razy byłoby zbyteczne. Zdecydowanie set -o ignoreeofbyłoby to bardziej praktyczne
ryekayo
3
Ale jeśli zrobisz to bez rozróżnienia, będzie to miało zastosowanie również po zalogowaniu przez ssh.
Gilles „SO- przestań być zły”
Ale musisz napisać polecenie za każdym razem, gdy otwierasz terminal. Jak to wyłączyć na stałe?
MycrofD,
2
@MycrofD Dodaj to do swojego .bashrclub .profile.
Jan Warchoł