คุณสามารถปิดการกดแป้น Ctrl-S (XOFF) ใน Putty ได้หรือไม่?


41

ฉันทำอะไรหลาย ๆ อย่างและฉันก็กดCtrl+ Sซึ่งส่งเป็นระยะXOFFและทำให้เกิดปัญหาทุกประเภท (โดยไม่ต้องพูดถึงมันใช้เวลาสักครู่หนึ่งสำหรับฉันที่จะคิดว่าเกิดอะไรขึ้นและอีกครั้งในขณะที่จำได้ว่าฉันต้องการ เพื่อกดCtrl+ Qเพื่อกู้คืน

XOFFฉันจะค่อนข้างมากสั่งสีโป๊วที่จะไม่เคยให้ฉันพิมพ์

ความคิดใด ๆ


6
+1 สำหรับการชี้ให้เห็นว่าการกู้คืนเป็นไปได้ด้วย Ctrl + Q ช่วยฉันมาก!
Demento

1
+1 สำหรับถามว่าจะปิดการใช้งานพฤติกรรมนี้เพราะมันเก่าและไร้ประโยชน์สำหรับวัตถุประสงค์ของฉัน ทุกคนบนเว็บมีเอกสารเคล็ดลับ CTRL + q แต่ไม่มีใครบันทึกวิธียกเลิกการผูกคีย์ทั้งหมด
แอนดรู

1
โปรดทราบว่าctrl+qจะคืนค่าการไหลของแคช นั่นหมายความว่าถ้าคุณกดctrl+sแล้วกดบ้า ๆctrl+cหรืออะไรอย่างอื่นเมื่อคุณกดctrl+qสิ่งที่คุณกดมาก่อนจะเล่น
gcb

ผลของการXOFFคืออะไร?
Snowcrash

คำตอบ:


35

ไม่ทราบเกี่ยวกับสีโป๊ว แต่คุณสามารถใช้:

stty -ixon

บนรีโมตโฮสต์เพื่อปิดใช้งานสัญญาณ START / STOP


ขอบคุณ - มีความคิดใด ๆ ว่าสิ่งนี้มีผลกับคอนโซลอย่างไร? มันจะเปลี่ยนพฤติกรรมของโปรแกรมเชลล์หรือไม่ (สิ่งเดียวที่ฉันรู้เกี่ยวกับ XON / XOFF คือมันใช้สำหรับการควบคุมการไหลแบบอนุกรม) เสียงเหมือนการตั้งค่าที่ดีสำหรับ. bash_profile
เซท

stty -ixonที่ควรจะเป็น
Oddthinking

ขอโทษ อัปเดตโพสต์ของฉันเพื่อแก้ไขการพิมพ์ผิด
Bartosz

1
เมื่อฉันเพิ่งแสดงความคิดเห็นกับBlakBatเกี่ยวกับคำตอบของเขานั่น^Sไม่ได้ส่งXOFFแต่ตอนนี้มันทำให้ฉันเข้าสู่i-searchโหมด มีวิธีที่ฉันสามารถทุบตี (หรือฉาบ) เพียงเพื่อละทิ้ง^Sหรือไม่ ยิ่งไปกว่านั้นถ้ามันสามารถส่งเสียงบี๊บและ / หรือส่งแฟลชมาให้ฉัน o)
Owen Blacker

1
ฉันเพิ่มลงstty -ixonในสคริปต์โปรไฟล์แล้ว ฉันได้อ่านบทความประมาณ 100 เรื่องเกี่ยวกับวิธีที่คุณกด CTRL + s โดยบังเอิญสิ่งที่คุณต้องทำคือ CTRL + q เพื่อกลับมาทำงานอีกครั้ง ... แต่ฉันไม่ต้องการให้เปลือกของฉันไปดัก CTRL + s / q เลย เนื่องจากฉันใช้พวกเขาด้วยเสียงเรียกเข้าค่อนข้างน้อย ขอบคุณมากสำหรับการให้คำตอบที่ไม่มีใครคิดว่าจะพิจารณา
แอนดรู

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 (หรือทุบตี) เพียงเพื่อละทิ้ง^S? ยิ่งไปกว่านั้นถ้ามันสามารถส่งเสียงบี๊บและ / หรือส่งแฟลชมาให้ฉัน o)
Owen Blacker

หากต้องการปิดใช้งานการกระทำคุณสามารถผูก ^ S กับอะไรก็ได้ผ่านการผูก '"\ Cs"' นี่ทำให้ PuTTY ของฉันกระพริบตาเพราะการกระทำไม่ได้ถูกแมป
BlakBat

1
ฉันเหนื่อยกับการฉาบ 0.62 และการตั้งค่าข้างต้นไม่ได้ช่วย ฉันพยายามแทนที่ XON, XOFF และด้วยค่าต่าง ๆ แต่ไม่มีอะไรเปลี่ยนแปลง
Dennis C

1
นอกจากนี้ยังใช้งานได้กับเซสชัน SSH ที่ซ้อนกันโดยใช้ openssh เป็นไคลเอนต์ที่ 2, 3 (ฯลฯ )
Felipe Alvarez

1
การถอนคำตอบนี้เป็นวิธีที่ดีที่สุดในการปิดใช้งานการควบคุมการไหลของซอฟต์แวร์ สำหรับการควบคุมพฤติกรรมการทำงานเทอร์มินัลอีมูเลเตอร์เป็นสถานที่ที่ดีที่สุดในการกำหนดค่า การปิดใช้งานการควบคุมโฟลว์ XON / XOFF ใน Putty หมายความว่าเมื่อมีการร้องขอสถานีหลอกจากโฮสต์ระยะไกลเซิร์ฟเวอร์ SSH จะปฏิบัติตามการตั้งค่านั้นเมื่อทำการจัดสรรสถานีหลอก ดูtools.ietf.org/html/rfc4254#section-6.2
Anthony G - ความยุติธรรมสำหรับโมนิก้า

5
ตัวอย่าง. bashrc:
#
# หยุดโป๊วจากการทำ 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
ยกเลิกการเริ่ม stty

5

ฉันมีปัญหาตรงข้าม ทุกครั้งในขณะที่โฮสต์ส่งXOFFไปยัง PuTTY แต่ไม่เคยส่งที่สอดคล้องXONกับ PuTTY ในกรณีนี้ไม่มีสิ่งใดที่คุณทำกับ PuTTY (ขาดการรีสตาร์ท) จะเป็นการคลี่คลาย ในกรณีนี้อินพุตคีย์บอร์ดทั้งหมดไปยังโฮสต์ถูกบล็อค แต่โฮสต์ยังสามารถส่งข้อมูลไปยัง PuTTY ได้

การปิดใช้งานการควบคุมการไหลใน PuTTY ไม่ทำงาน

วิธีการแก้ไขปัญหานี้คือการใช้

stty -ixoff

ใน. profile ของคุณ นี้ห้ามโฮสต์จากการส่ง/XON XOFFโปรดทราบว่าชื่อของตัวเลือกมีความสับสนโดยสิ้นเชิง ixon/ -ixonหมายถึงเปิด / ปิดใช้งานการควบคุมการไหลของฝั่งไคลเอ็นต์ (หมายถึงว่าลูกค้าไม่สามารถออกการควบคุมการไหล) ixoff/ -ixoffหมายถึงเปิด / ปิดการใช้งานการควบคุมการไหลในฝั่งโฮสต์ (หมายถึงโฮสต์ไม่สามารถออกการควบคุมการไหล)

Btw, รหัส ASCII สำหรับCtrl- Sและ XOFF เป็นอักขระ ASCII เดียวกัน (รหัส 19, 0x13) ไม่มีความแตกต่าง การตั้งค่าเปลี่ยนการตีความตัวละคร ASCII นั้น


โอ้มนุษย์ฉันค้นหาทุกคำอธิบายสำหรับ ixon และ ixoff การส่ง XON / XOFF จากไคลเอ็นต์ไปยังโฮสต์นั้นสมเหตุสมผลแล้ว อย่างไรก็ตามฉันยังคงสับสนในสถานการณ์ที่โฮสต์ส่งไปยังไคลเอนต์โฟลว์คอนโทรล XON / XOFF? ฉันเห็น "เมื่อคิวอินพุตใกล้ว่าง / เต็ม"? สิ่งนี้เกิดขึ้นกับคอมพิวเตอร์สมัยใหม่หรือไม่ในขณะที่ไม่ได้เชื่อมต่อกับเครื่องพิมพ์ที่ช้า แต่นั่นหมายถึงอะไรจริง? จะเกิดอะไรขึ้นกับ UI เทอร์มินัล
CMCDragonkai

การควบคุมการไหลของข้อมูลทำงานได้ทั้งสองทิศทาง คอมพิวเตอร์สมัยใหม่มักทำสิ่งอื่น ๆ อีกนับล้านและมันสามารถ "ล็อค" ทำกิจกรรมที่สำคัญได้ ในช่วงเวลานี้จะไม่สามารถให้บริการพอร์ตอนุกรมและพอร์ตอนุกรมจะล้นได้เว้นแต่ว่าเครื่องจะปิดตัวลง ดังนั้นโฮสต์จะส่ง XOFF ไปยังเทอร์มินัลเพื่อขอให้หยุดส่ง เมื่อความดันดับลงโฮสต์จะส่ง XON (btw พอร์ตอนุกรมของคอมพิวเตอร์มักจะมีบัฟเฟอร์ฮาร์ดแวร์ขนาดเล็กเพียง 16 ไบต์เท่านั้น) แม้ว่านี่จะเป็นเทคโนโลยีโบราณก็ตามสิ่งใดก็ตามที่ไม่ได้รับการออกแบบตามเวลาจริงจะ "หยุด" เพื่อควบคุมการไหล
Mark Lakata

BTW ฉันพบกรณีที่ไมโครคอนโทรลเลอร์ขนาดเล็ก 20 MHz สามารถล้นคอมพิวเตอร์โฮสต์ 3 GHz ได้ แต่ไม่ใช่ในทางกลับกัน นั่นเป็นเพราะไมโครคอนโทรลเลอร์ทำสิ่งเดียวและออกแบบโดยคำนึงถึงเวลาจริงขณะที่โฮสต์คอมพิวเตอร์ไม่
Mark Lakata

4

เปิดของคุณ.bash_profileและใส่:

stty -ixon

ค่าใช้-xionงานไม่ได้สำหรับฉัน man sttyคุณสามารถดูรายการคนที่:


+1 สำหรับ stty -xion ไม่ทำงานบน centos ของฉัน แต่ stty -ixon ใช้ได้
Jichao

0

รันคำสั่งนี้ในเทอร์มินัลเพื่อปิดการใช้งานสำหรับเซสชันปัจจุบัน / เพิ่มลงใน. bashrc เพื่อปิดใช้งานอย่างถาวร

stty -ixon

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.