Können Sie die Tastenkombination Strg-S (XOFF) in Putty deaktivieren?

41

Ich mache viel sshing und drücke in regelmäßigen Abständen Ctrl+ S, was natürlich ein sendet XOFFund alle Arten von Problemen verursacht (ganz zu schweigen davon, dass es eine Weile dauert, bis ich herausgefunden habe, was passiert ist, und dann noch eine Weile, bis ich mich daran erinnere, dass ich es brauche drücken Sie Ctrl+ Q, um sich zu erholen.

Ich würde Putty viel lieber anweisen, mich niemals tippen zu lassen XOFF.

Irgendwelche Ideen?

Seth
quelle
6
+1 für den Hinweis, dass eine Wiederherstellung mit Strg + Q möglich ist. Hat mir viel geholfen!
Demento
1
+1 für die Frage, wie dieses Verhalten deaktiviert werden soll, da es für meine Zwecke völlig veraltet und nutzlos ist. Jeder im Web hat den CTRL + q-Trick dokumentiert, aber niemand hat dokumentiert, wie die Tasten vollständig gelöst werden.
Andrew
1
Denken Sie daran, dass ctrl+qder zwischengespeicherte Datenfluss wiederhergestellt wird. Das heißt, wenn Sie drücken ctrl+sund dann verrückt werden ctrl+coder etwas anderes, wenn Sie ctrl+qalles drücken , was Sie zuvor gedrückt haben, wird abgespielt.
GCB
Was bewirkt ein XOFF?
Snowcrash

Antworten:

35

Keine Ahnung von Putty, aber Sie können verwenden:

stty -ixon

auf dem Remote-Host, um die START / STOP-Signale zu deaktivieren.

Bartosz
quelle
Danke - eine Idee, ob oder wie sich dies auf die Konsole auswirkt? Würde es das Verhalten von Shell-Programmen ändern? (Das einzige, was ich über XON / XOFF weiß, ist, dass es für die serielle Flusskontrolle verwendet wird). Klingt nach einer guten Einstellung für .bash_profile.
Seth
Das sollte stty -ixon.
Seltsamerweise
Es tut uns leid. Mein Beitrag wurde aktualisiert, um den Tippfehler zu beheben.
Bartosz
1
Wie ich gerade kommentiert BlakBat auf seine Antwort , das macht ^Seine nicht senden XOFF, aber es bringt mich jetzt in i-searchMode. Gibt es eine Möglichkeit, wie ich Bash (oder PuTTY) bekommen kann, nur um irgendwelche zu verwerfen ^S? Noch besser wäre es, wenn es bei mir piepen und / oder blinken könnte; o)
Owen Blacker
1
Ich habe stty -ixonmeinen Profilskripten hinzugefügt . Ich habe ungefähr 100 Artikel darüber gelesen, wie Sie bei versehentlichem Drücken von STRG + s lediglich STRG + q drücken müssen, um wieder fortzufahren. Ich möchte jedoch nicht, dass meine Shell STRG + s / q abfängt da ich sie mit vim ziemlich viel benutze. Vielen Dank, dass Sie uns eine Antwort gegeben haben, über die sich offenbar niemand Gedanken gemacht hat.
Andrew
29

Die PuTTY-Lösung:

  1. Navigieren Sie vor dem Erstellen der Sitzung zu Connection-> SSH-> TTY in der Liste.
  2. Wählen Sie im Dropdown-Feld "Modus" die Option IXON aus ( Anmerkung : Ab Version 0.60 ist diese Liste nicht alphabetisch sortiert).
  3. setze "0" ( Null ) als Wert von IXON .

Bildschirmfoto

Funktioniert wie ein Zauber, auch wenn Sie einen "GNU-Bildschirm" darüber öffnen, SSH für einen anderen Host oder "su" für einen anderen Benutzer

Wenn Sie GNU Bash verwenden, sollten Sie mit Strg-S jetzt die Möglichkeit haben, einen Vorwärtssuchverlauf (auch bekannt als: i-search) zu erstellen.

Sie können den Unterschied in der Ausgabe von "stty -a | grep -o" .ixon "sehen : Mit Putty wird " -ixon "ausgegeben , ohne " ixon ".

BlakBat
quelle
2
Ok, das macht ein ^Ssenden nicht XOFF, aber es bringt mich jetzt in den i-searchModus. Gibt es eine Möglichkeit, PuTTY (oder Bash) dazu zu bringen, irgendwelche zu verwerfen ^S? Noch besser wäre es, wenn es bei mir piepen und / oder blinken könnte; o)
Owen Blacker
Um eine Aktion zu deaktivieren, können Sie ^ S mit '"\ Cs"' an nichts binden. Dadurch blinkt mein PuTTY, weil die Aktion nicht zugeordnet ist.
BlakBat
1
Ich habe auf Kitt 0,62 müde und die obige Einstellung hilft nicht. Ich habe versucht, XON, XOFF und mit unterschiedlichen Werten zu überschreiben, aber es hat sich nichts geändert.
Dennis C
1
Dies funktioniert auch für verschachtelte SSH-Sitzungen, bei denen openssh als 2., 3. (usw.) Client verwendet wird
Felipe Alvarez,
1
Wenn Sie diese Antwort als beste Möglichkeit zum Deaktivieren der Software-Flusssteuerung bewerten. Zur Steuerung des Terminalverhaltens ist der Terminalemulator der beste Ort, um es zu konfigurieren. Das Deaktivieren der XON / XOFF-Flusssteuerung in Putty bedeutet, dass SSH-Server diese Einstellung beim Zuweisen des Pseudoterminals berücksichtigen, wenn ein Pseudoterminal von einem Remotehost angefordert wird. Siehe tools.ietf.org/html/rfc4254#section-6.2
Anthony G - Gerechtigkeit für Monica
5
.bashrc Beispiel:
#
# Verhindern Sie, dass Putty XOFF / XON mit Strg-S / Strg-Q ausführt
# SOURCE: http://raamdev.com/recovering-from-ctrls-in-putty (Morgy, 14.07.08)
#
# stty ixany
# stty ixoff -ixon
### Wenn Sie für einige Apps Strg-S hören müssen, verwenden Sie stattdessen diese beiden:
stty stop undef
stty start undef
Jack Hamilton
quelle
5

Ich habe das gegenteilige Problem. Hin und wieder sendet der Host ein XOFFan PuTTY, aber niemals das entsprechende XONan PuTTY. In diesem Fall wird PuTTY durch nichts, was Sie tun (außer durch Neustarten), entkoppelt. In diesem Fall werden alle Tastatureingaben an den Host blockiert, der Host kann jedoch weiterhin Daten an PuTTY senden.

Das Deaktivieren der Flusskontrolle in PuTTY funktioniert nicht.

Der Weg, um dieses Problem zu beheben, ist zu verwenden

stty -ixoff

in deinem .profile. Dies verhindert, dass der Host XON/ sendet XOFF. Beachten Sie, dass die Namen der Optionen völlig verwirrend sind. ixon/ -ixonbedeutet, dass die Flusskontrolle auf der Client-Seite aktiviert / deaktiviert wird (was bedeutet, dass der Client keine Flusskontrolle ausstellen kann), ixoff/ -ixoffbedeutet, dass die Flusskontrolle auf der Host-Seite aktiviert / deaktiviert wird (was bedeutet, dass der Host keine Flusskontrolle ausstellen kann).

Übrigens sind der ASCII-Code für Ctrl- Sund XOFF dasselbe ASCII-Zeichen (Code 19, 0x13). Es gibt keinen Unterschied. Die Einstellungen ändern die Interpretation dieses ASCII-Zeichens.

Mark Lakata
quelle
Oh man, ich habe überall nach einer Erklärung für ixon und ixoff gesucht. Das Senden von XON / XOFF vom Client zum Host ist sinnvoll. Ich bin jedoch immer noch verwirrt, in welchen Situationen sendet der Host XON / XOFF an die Client-Ablaufsteuerung? Ich sehe "wenn die Eingabewarteschlange fast leer / voll ist"? Geschieht dies bei modernen Computern, wenn keine Verbindung zu langsamen Druckern hergestellt wird? Aber was heißt das konkret? Was passiert mit der Terminal-Benutzeroberfläche?
CMCDragonkai
Die Flusskontrolle funktioniert in beide Richtungen. Ein moderner Computer erledigt immer eine Million anderer Dinge und kann kritische Aktivitäten "blockieren". Während dieser Zeit kann der serielle Port nicht bedient werden und der serielle Port läuft über, es sei denn, das Terminal wird heruntergefahren. Der Host sendet also XOFF an das Terminal und fordert es auf, das Senden zu beenden. Sobald der Druck weg ist, sendet der Host XON. (Übrigens, serielle Computeranschlüsse haben normalerweise nur einen kleinen Hardware-Puffer, z. B. 16 Byte.) Auch wenn dies eine alte Technologie ist, "hängt" alles, was nicht für Echtzeit ausgelegt ist, gelegentlich, sodass eine Flusssteuerung erforderlich ist.
Mark Lakata
Übrigens habe ich Fälle gefunden, in denen ein winziger kleiner 20-MHz-Mikrocontroller einen 3-GHz-Hostcomputer überlaufen lässt, aber nicht umgekehrt. Dies liegt daran, dass der Mikrocontroller nur eine Aufgabe erfüllt und auf Echtzeit ausgelegt ist, der Host-Computer jedoch nicht.
Mark Lakata
4

Öffne dein .bash_profileund lege:

stty -ixon

Der Wert -xionfunktioniert bei mir nicht. Sie können den Mann Eintrag sehen: man stty.

Fids
quelle
+1 für stty -xion funktioniert auf meinen Centos nicht, aber stty -ixon funktioniert.
Jichao
0

Führen Sie diesen Befehl im Terminal aus, um ihn für die aktuelle Sitzung zu deaktivieren, oder fügen Sie ihn zu .bashrc hinzu, um ihn dauerhaft zu deaktivieren

stty -ixon

Aldrin Bennet
quelle