Bagaimana saya bisa menjaga kontrol + d dari memutuskan sesi saya?


26

Saya secara teratur ssh ke kotak centos 5. Entah bagaimana mereka memetakan kunci sehingga control+dakan mengeluarkan saya dari shell saya saat ini. Jika saya sudo'ed untuk penggunaan lain, itu menempatkan saya kembali ke pengguna sebelumnya. Jika saya tidak sudo'ed itu hanya memutus saya. Bagaimana saya bisa mencegah hal ini terjadi? Saya secara teratur menggunakan kontrol + d untuk membatalkan interpreter python dan terkadang saya secara tidak sengaja menekannya lebih dari sekali.


di csh, Anda lakukanset ignoreeof
Trevor Boyd Smith

Jawaban:


32

Anda sedang mencari IGNOREEOFvariabel lingkungan jika Anda menggunakan bash:

IGNOREEOF

Mengontrol aksi shell interaktif saat menerima karakter EOF sebagai input tunggal. Jika diatur, nilainya adalah jumlah karakter EOF berturut-turut yang harus diketik sebagai karakter pertama pada baris input sebelum bash keluar. Jika variabel ada tetapi tidak memiliki nilai numerik, atau tidak memiliki nilai, nilai defaultnya adalah 10. Jika tidak ada, EOF menandakan akhir input ke shell.

Jadi export IGNOREEOF=42, Anda harus menekan Ctrl+Dempat puluh dua kali sebelum benar-benar keluar dari shell Anda.

POSIX juga setmemiliki -o ignoreeofpengaturan. Jadi bacalah dokumentasi shell Anda untuk melihat apakah shell Anda memiliki ini (seharusnya), dan untuk memeriksa semantiknya yang sebenarnya.


Nice, memberikan pesan "Gunakan keluar untuk meninggalkan shell", setidaknya di Ubuntu. Menjadi su'd menjadi pengguna, Anda mungkin tidak ingin secara tidak sengaja meninggalkannya, terutama jika pengguna induk adalah tingkat root.
Fiasco Labs

1
Saya pribadi merasa itu sangat menjengkelkan, jadi saya tidak mengaturnya di mana pun. Mengetahui hal ini saat mencoba menonaktifkan perilaku itu :)
Mat

2
Saya tidak bisa menahan diri untuk menjadi pedant. IGNOREEOFadalah berapa kali EOF diabaikan sebelum akhirnya menerimanya. Jadi, dalam contoh Anda di atas, jika Anda export IGNOREEOF=42, Anda perlu menekan CONTROL-D 43 kali untuk keluar - bukan 42.
Alvin Thompson


0

Jika Anda benar-benar tidak suka memiliki Ctrl-d, maka Anda dapat menghapus eofkarakter di kontrol terminal.

stty eof undef

Setelah ini, Cntl-dakan ada karakter kontrol lainnya.


1
Saya baru saja mencobanya di terminal (urxvt) dengan bash, dan di konsol biasa, dan itu tidak berhasil.
Mat

Hmm ... yang dulu bekerja dan dokumen masih mengatakan itu. Alternatifnya adalah menggunakan <kbd> Ctrl- [</kvd>.
Arcege

2
Ini juga akan membuatnya tidak lagi keluar dari python.
psusi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.