Control + d'nin oturumumun bağlantısını kesmesini nasıl önleyebilirim?


26

Bir centos 5 kutusuna düzenli olarak ssh. Her nasılsa, onlar anahtarlar haritalandı, o yüzden control+dbeni şu anki kabuğumdan çıkaracaklar. Eğer başka bir kullanıma sudo'luysam, beni önceki kullanıcıya geri döndürür. Sudo'lanmadıysam, beni keser. Bunun olmasını nasıl önleyebilirim? Python yorumlayıcısını iptal etmek için düzenli olarak control + d tuşlarını kullanıyorum ve bazen yanlışlıkla bir kereden fazla basıyorum.


içinde csh, senset ignoreeof
Trevor Boyd Smith

Yanıtlar:


32

Eğer kullanıyorsanız, IGNOREEOFortam değişkenini arıyorsunuz bash:

IGNOREEOF

Tek giriş olarak EOF karakterinin alınması üzerine etkileşimli bir kabuğun hareketini kontrol eder. Ayarlanırsa, değer bash çıkmadan önce bir giriş satırındaki ilk karakterler olarak yazılması gereken ardışık EOF karakterlerinin sayısıdır. Değişken mevcutsa ancak sayısal bir değeri yoksa veya değeri yoksa, varsayılan değer 10'dur. Eğer yoksa, EOF kabuğun girişinin sonunu belirtir.

Bu yüzden kabuğundan ayrılmadan önce kırk iki kere export IGNOREEOF=42basmanız gerekecek Ctrl+D.

POSIX'in setde bir -o ignoreeofayarı var. Bu nedenle, kabuğunuzun buna sahip olup olmadığını (tam anlamını) kontrol etmek için kabuğunuzun belgelerine bakın.


Güzel, en azından Ubuntu'da "Kabuğu terk etmek için çıkışı kullan" mesajı veriyor. Bir kullanıcıyla karşılaşmak, muhtemelen üst kullanıcı kök düzeyindeyse, istemeden yanlışlıkla bırakmak istemezsiniz.
Fiasco Labs

1
Ben şahsen bunu gerçekten sinir bozucu buluyorum, bu yüzden hiçbir yere koymuyorum. Bu davranışı etkisizleştirmeye çalışırken bunları öğrendik :)
Mat

2
Bilgi sahibi olmaya dayanamıyorum. IGNOREEOFSon olarak kabul etmeden önce EOF'nin yok sayılma sayısıdır. Bu nedenle yukarıdaki örneğinizde, export IGNOREEOF=42çıkmak için CONTROL-D tuşlarına 43 kez basmanız gerekecek - 42 değil.
Alvin Thompson

2

tcsh set ignoreeofveya set ignoreeof=<any value not 1>çalışır


0

Gerçekten sahip olmaktan hoşlanmıyorsanız , terminal kontrollerindeki karakteri Ctrl-dkaldırabilirsiniz eof.

stty eof undef

Bundan sonra, Cntl-dbaşka herhangi bir kontrol karakteri olacaktır.


1
Ben sadece bash ile bir terminalde (urxvt) ve düz bir konsolda denedim ve işe yaramadı.
Mat

Hmm ... eskiden işe yarıyor ve doktorlar hala öyle olduğunu söylüyor Bir alternatif <kbd> Ctrl- [</kvd> kullanmak olacaktır.
Arcege

2
Bu da artık pitondan çıkmamasını sağlar.
psusi,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.