Чи можете ви відключити натискання клавіші Ctrl-S (XOFF) у Putty?


41

Я роблю багато ssh-ing, і періодично натискаю Ctrl+ S, що, природно, надсилає XOFFі викликає всілякі проблеми (не кажучи вже про те, що я потребує певного часу, щоб зрозуміти, що сталося, а потім ще час пам’ятати, що мені потрібно натиснути Ctrl+ Qдля відновлення.

Я б набагато скоріше доручив Putty ніколи не дозволяти мені друкувати XOFF.

Будь-які ідеї?


6
+1 для вказівки, що відновлення можливе за допомогою Ctrl + Q. Мені дуже допомогли!
Дементо

1
+1 за те, що насправді запитують, як відключити таку поведінку, оскільки вона повністю застаріла і марна для моїх цілей. Усі в Інтернеті мають документально підтверджений трюк CTRL + q, але ніхто не підтвердив, як відключити ключі взагалі.
andrew

1
майте на увазі, що ctrl+qвідновить кешований потік. Це означає, що якщо натиснути, ctrl+sа потім зійти з розуму, натискаючи ctrl+cабо що-небудь інше, коли ви натиснете ctrl+qвсе, що ви натискали раніше, буде відтворено.
gcb

Який ефект від XOFF?
Snowcrash

Відповіді:


35

Не знаєте про Putty, але ви можете використовувати:

stty -ixon

на віддаленому хості, щоб відключити сигнали START / STOP.


Дякую - будь-яка ідея, якщо чи як це впливає на консоль? Чи змінило б це поведінку програм оболонок? (Єдине, що я знаю про XON / XOFF, це те, що він використовується для послідовного контролю потоку). Звучить як хороша настройка для .bash_profile.
Сет

Так і має бути stty -ixon.
Відмінна думка

Вибачте. Оновлено мою публікацію, щоб виправити помилку друку.
Bartosz

1
Як я тільки що прокоментував BlakBat на його відповідь , що становить ^Sне відправляти XOFF, але тепер він ставить мене в i-searchрежим. Чи є спосіб, коли я можу отримати баш (або PuTTY) просто відмовитися від будь-якого ^S? Ще краще було б , якщо він міг звуковий сигнал і / або блимає у мене; о)
Оуен Blacker

1
Я додав stty -ixonдо своїх сценаріїв профілю. Я прочитав близько 100 статей про те, як при натисканні CTRL + s випадково все, що вам потрібно зробити, це CTRL + q відновитись знову ... але я не хочу, щоб моя оболонка перехоплювала CTRL + s / q взагалі оскільки я їх дуже часто використовую з vim. Дякую тобі за надання відповіді, що, здається, ніхто інший навіть не вважає.
andrew

29

Рішення PuTTY:

  1. перед створенням сеансу перейдіть до списку З'єднання-> SSH-> TTY.
  2. у спадному вікні "Режим" виберіть IXON (nb: станом на 0.60, цей список не впорядкований за алфавітом)
  3. ставимо "0" ( нуль ) як значення IXON .

Знімок екрана

Працює як шарм, навіть якщо ви відкриєте "GNU екран" поверх нього, SSH іншому хосту або "su" для іншого користувача

Якщо ви використовуєте GNU Bash, ctrl-S повинен дозволити вам зараз робити історію пошуку вперед (aka: i-search)

Ви можете побачити різницю у висновку "stty -a | grep -o" .ixon " : із налаштованою putty він друкує " -ixon " , без " ixon "


2
Гаразд, це змушує ^Sне надсилати XOFF, але тепер він переводить мене в i-searchрежим. Чи є спосіб, щоб я міг змусити PuTTY (або bash) просто відмовитися від будь-якого ^S? Ще краще було б, якби він міг подати звуковий сигнал та / або спалахнути на мене; o)
Оуен Блекер

Щоб вимкнути дію, ви можете прив’язати ^ S до нічого через bind '"\ Cs"'. Це змушує мою PuTTY моргати, оскільки дія не відображається.
BlakBat

1
Я втомився на шпаклівці 0,62 і вищевказані настройки не допомагають. Я намагався перемогти XON, XOFF і з різними значеннями, але нічого не змінилося.
Денніс C

1
Це також працює для вкладених сеансів SSH, використовуючи openssh як 2-й, 3-й (тощо) клієнт
Феліпе Альварес,

1
Охвалення цієї відповіді найкращим способом відключити управління потоком програмного забезпечення. Для управління поведінкою терміналу найкращим місцем для його налаштування є емулятор терміналу. Вимкнення керування потоком XON / XOFF у Putty означає, що коли псевдотермінал запитується від віддаленого хоста, SSH-сервери будуть шанувати цей параметр при розподілі псевдотерміналу. Дивіться tools.ietf.org/html/rfc4254#section-6.2
Ентоні Г - справедливість для Моніки

5
.bashrc приклад:
#
# Stop Putty робити XOFF / XON за допомогою Ctrl-S / Ctrl-Q
# ДЖЕРЕЛ: http://raamdev.com/recovering-from-ctrls-in-putty (Morgy, 7/14/08)
#
# stty ixany
# stty ixoff -ixon
### Якщо вам потрібно прослухати Ctrl-S для деяких додатків, скористайтеся цими двома:
stty stop undef
stty start undef

5

У мене протилежна проблема. Час від часу хост надсилає XOFFPuTTY, але ніколи не надсилає відповідну XONPuTTY. У цьому випадку нічого, що ви зробите для PuTTY (якщо не перезапустити), це відключить його. У цьому випадку весь вхід клавіатури на хост блокується, але хост все ще може надсилати дані на PuTTY.

Відключення контролю потоку в PuTTY не працює.

Спосіб вирішення цієї проблеми - це використання

stty -ixoff

у вашому .profile. Це забороняє хосту надсилати XON/ XOFF. Зауважте, що назви варіантів абсолютно заплутані. ixon/ -ixonозначає включити / вимкнути управління потоком на стороні клієнта (означає, що клієнт не може видавати управління потоком), ixoff/ -ixoffозначає включити / вимкнути управління потоком на стороні хоста (що означає, що хост не може видавати управління потоком).

До речі, код ASCII для Ctrl- Sі XOFF - той самий символ ASCII (код 19, 0x13). Немає різниці. Параметри змінюють інтерпретацію цього символу ASCII.


О людино, я всюди шукав пояснення для ixon та ixoff. Надсилати XON / XOFF з клієнта на хост має сенс. Однак я все ще розгублений, в яких ситуаціях хост надсилає клієнтові управління потоком XON / XOFF? Я бачу "коли черга вводу майже порожня / повна"? Чи трапляється це з сучасними комп’ютерами, як при не підключенні до повільних принтерів? Але що це практично означає? Що відбувається з термінальним інтерфейсом?
CMCDragonkai

Контроль потоку працює в обох напрямках. Сучасний комп’ютер завжди робить мільйон інших речей, і він може «замикатись», займаючись критичною діяльністю. За цей час він не може обслуговувати послідовний порт, і послідовний порт буде переповнений, якщо термінал не завершиться. Тож хост посилає XOFF до терміналу з проханням припинити його надсилання. Як тільки тиск вимкнений, господар приймає XON. (btw, послідовні комп'ютерні порти зазвичай мають лише невеликий апаратний буфер, скажімо, 16 байт.) Хоча це стародавня технологія, все, що не розроблено в режимі реального часу, час від часу "висить", тому потрібен контроль потоку.
Марк Лаката

До речі, я виявив випадки, коли крихітний мікроконтролер 20 МГц здатний переповнювати хост-комп'ютер 3 ГГц, але не навпаки. Це тому, що мікроконтролер робить лише одне і розроблений з урахуванням реального часу, тоді як хост-комп'ютер - ні.
Марк Лаката

4

Відкрийте свій .bash_profileі поставте:

stty -ixon

Значення не -xionпрацює для мене. Ви можете побачити запис людини: man stty.


+1 для stty -xion не працює на мої центоси, але stty -ixon працює.
Jichao

0

Запустіть цю команду в терміналі, щоб відключити її для поточного сеансу / додати її до .bashrc, щоб назавжди відключити її

stty -ixon

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