Як я можу тримати контроль + d від відключення сеансу?


26

Я регулярно ssh до коробки centos 5. Якось вони ключі відображаються так, що control+dвийдуть із моєї поточної оболонки. Якщо я отримав рішення про інше використання, це поверне мене до попереднього користувача. Якщо я не суджусь, це просто відключає мене. Як я можу не допустити цього? Я регулярно використовую control + d для скасування інтерпретатора python, а іноді випадково натискаю його не один раз.


in csh, you doset ignoreeof
Тревор Бойд Сміт

Відповіді:


32

Ви шукаєте IGNOREEOFзмінну середовища, якщо використовуєте bash:

IGNOREEOF

Керує дією інтерактивної оболонки на отримання символу EOF як єдиного вводу. Якщо встановлено, значення - це кількість послідовних символів EOF, які повинні бути введені як перші символи у рядку введення до виходу bash. Якщо змінна існує, але не має числового значення або не має значення, значення за замовчуванням дорівнює 10. Якщо її не існує, EOF означає кінець введення в оболонку.

Отже, export IGNOREEOF=42і вам доведеться натиснути Ctrl+Dчотиридцять два рази, перш ніж він фактично закриє вашу оболонку.

POSIX також setмає -o ignoreeofналаштування. Тому зверніться до документації вашої оболонки, щоб побачити, чи є в оболонці це (слід), і щоб перевірити його точну семантику.


Приємно, дає повідомлення "Використовувати вихід, щоб залишити оболонку", принаймні, на Ubuntu. Якщо ви користуєтеся користувачем, ви, ймовірно, не хочете ненавмисно залишити його, навіть якщо батьківський користувач є кореневим рівнем.
Лабораторії Фіаско

1
Мені особисто це здається дратує, тому я його ніде не встановлюю. Дізнайтеся про це, намагаючись відключити таку поведінку :)
Мат

2
Я не можу чинити опір бути педантом. IGNOREEOF- це кількість ігнорування EOF, перш ніж остаточно його прийняти. Тож у вашому прикладі вище, якщо вам export IGNOREEOF=42потрібно буде натиснути CONTROL-D 43 рази, щоб вийти - не 42.
Елвін Томпсон


0

Якщо вам насправді не подобається Ctrl-d, ви можете видалити eofсимвол у контрольних терміналах.

stty eof undef

Після цього Cntl-dз'явиться будь-який інший контрольний символ.


1
Я просто спробував це в терміналі (urxvt) з bash, і в звичайній консолі, і це не вийшло.
Мат

Гм ... що раніше працювали, а документи все ще говорять, що це так. Альтернативою може бути використання <kbd> Ctrl- [</kvd>.
Арседж

2
Це також дозволило б більше не виходити з python.
psusi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.