Ctrl-S คืออะไร


135

Ctrl+ Sหยุดการส่งออกทั้งหมดไปยังสถานีที่สามารถเริ่มต้นใหม่กับ+CtrlQ

แต่ทำไมCtrl+ Sมีอยู่ตั้งแต่แรก? ปัญหาอะไรที่พยายามแก้ไขโดยการวางลำดับการควบคุมนั้น


5
ดู: linusakesson.net/programming/tty (อ่านทั้งหมด แต่โดยเฉพาะอย่างยิ่งในส่วนที่เกี่ยวกับการควบคุมการไหล ... )
Olivier Dulac

8
ได้ใช้ Ctrl-S / Ctrl-Q เพื่อบันทึกเบคอนของฉันหลาย ๆ ครั้งเพื่อหยุดการส่งออกข้อความแสดงข้อผิดพลาดบนระบบที่ใช้งานได้จริงเพื่อที่ฉันจะได้เห็นว่ามันคืออะไร
DocSalvager

4
ตามบันทึกข้างผมมีแบบนี้ฉันจะปิดการใช้งานฟังก์ชั่นทั้งสอง:.bashrc stty stop ''; stty start '';สิ่งนี้ปล่อยให้ Ctrl-S ฟรีสำหรับใช้เป็นอักขระยกเว้นสำหรับscreenสิ่งนี้ในของฉัน.screenrc: escape ^Ss. ซึ่งหมายความว่าฉันสามารถใช้readlineทางลัดมาตรฐานCtrl-A สำหรับ "จุดเริ่มต้นของบรรทัด" (จับคู่กับ Ctrl-E สำหรับ "จุดสิ้นสุดบรรทัด" และเปราะบางต่อการจำลองเทอร์มินัลน้อยกว่าบ้านและปลาย) : D
IMSoP

คำตอบ:


155

นานก่อนที่จะมีคอมพิวเตอร์มีteleprinters (หรือที่เรียกว่า teletypewriters, aka teletypes) คิดว่าพวกเขาเป็นเทคโนโลยีเดียวกับโทรเลขอย่างคร่าว ๆ แต่ด้วยคีย์บอร์ดบางประเภทและเครื่องพิมพ์บางประเภทที่ต่อกับพวกเขา

เนื่องจาก teletypes มีอยู่แล้วเมื่อคอมพิวเตอร์ถูกสร้างขึ้นครั้งแรกและเนื่องจากคอมพิวเตอร์ในขณะนั้นมีขนาดเท่าห้องโทรศัพท์จึงกลายเป็นส่วนติดต่อผู้ใช้ที่สะดวกไปยังคอมพิวเตอร์เครื่องแรก - พิมพ์คำสั่งกดปุ่มส่งรอสักครู่และ ผลลัพธ์ของคำสั่งจะถูกพิมพ์ลงบนกระดาษด้านหน้าของคุณ

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

และการใช้งานนี้ยังคงอยู่ในระบบปฏิบัติการ Unix เพราะเทอร์มินัลอีมูเลเตอร์รุ่นใหม่มีการเลียนแบบเทอร์มินัลทางกายภาพ (เช่นvt100 ) ซึ่งมีการเลียนแบบ teletypes (ในบางวิธี)


29
ส่วนใหญ่ไม่ได้ "พิมพ์ลงบนแผ่นกระดาษ" แต่ "พิมพ์ไปยังกองซ้อนของ fanfold กระดาษ"
Dubu

3
หรือเพื่อม้วนเทปเจาะ!
mdpc

2
ผมไม่คิดว่าการควบคุม-S และการควบคุม-Q ถูกนำมาใช้ครั้งแรกในการเริ่มต้นและหยุดการส่งออกจากคอมพิวเตอร์ แต่จากผู้อ่านกระดาษเทปที่แนบมากับteletypes อื่น ๆ ฉันไม่คิดว่าจะมีความสนใจในการเชื่อมต่อโทรพิมพ์กับคอมพิวเตอร์จนกว่าระบบการแบ่งปันเวลาจะมาถึง ไม่เช่นนั้นเมื่อใดก็ตามที่คอมพิวเตอร์ใช้เวลารอให้ผู้ใช้พิมพ์บางอย่างก็ถึงเวลาที่ไม่ต้องทำอะไรที่มีประโยชน์
supercat

2
หรือม้วนกระดาษ 8½ʹʹ
สกอตต์

44
ย้อนกลับไปในปี 1987 ฉันสร้างโทรพิมพ์เครื่องสุดท้ายที่รอดชีวิตจากมหาวิทยาลัยของฉันขึ้นมาด้วยไฟ ใช้เป็นเครื่องพิมพ์อนุกรมและไม่ทราบว่าจะร้อนเกินไปหากถูกบังคับให้พิมพ์ 35 หน้าอย่างต่อเนื่อง ความร้อนสูงเกินไปมีกลิ่นไม่ดี แต่จากนั้นกระดาษก็ถูกไฟไหม้เพราะความร้อน จากนั้นพวกเขาก็บอกฉันว่าฉันควรจะให้ Ctrl-S ทุก ๆ 2 หน้าหรือมากกว่านั้นเพื่อให้ใจเย็น ๆ สักสองสามนาที
Tonny

25

มันเป็นตัวควบคุมจากเวลาของเทอร์มินัล VT100 และคล้ายกัน มีความสามารถในการเลื่อนที่ จำกัด (ถ้ามี) บนเทอร์มินัลเหล่านั้นเพื่อเริ่มต้นด้วย CTRL-S อนุญาตให้คุณตรึงเอาต์พุตเพื่อดูสิ่งที่อยู่บนหน้าจอในปัจจุบันโดยไม่ต้องถูกตัดออก

ทุกอย่างส่วนใหญ่ที่คุณเห็นในเทอร์มินัลสมัยใหม่นั้นถูกนำมาใช้เพื่อเลียนแบบระบบเทอร์มินัลรุ่นเก่าเหล่านั้น


นี่คือสิ่งที่ฉันเคยได้ยิน (แทนที่จะตอบ teleprinter แม้ว่ามันจะเป็นไปได้ (อาจเป็นไปได้) ว่านี่คือเหตุผลที่ฟังก์ชั่นดังกล่าวถูกเก็บรักษาไว้) ฉันใช้ Cntr-S เพื่อจุดประสงค์นี้เมื่อมีปัญหากับมากหรือน้อย
Lyndon White

2
ความต้องการเชิงกลในการเริ่ม / หยุดเอาต์พุตมาก่อนที่มนุษย์จะต้องสามารถอ่านได้!
TripeHound

@TripeHound: อันที่จริงมานานก่อนที่จะมีความคาดหวังใด ๆ ที่มนุษย์จะดูข้อมูลในขณะที่ได้รับ (ใครบางคนที่กำลังรอคอยเรื่องราวที่อาจดูเมื่อได้รับจากโทรพิมพ์ แต่ผู้ประกอบการมักจะมีสิ่งที่ดีกว่า ทำ).
supercat

21

BTW หากคุณแสดงรายการเอาต์พุตที่ยาวบนหน้าจอของคุณโอกาสที่คุณไม่จำเป็นต้องอ่านเร็วเท่ากับคอมพิวเตอร์ที่แยกเอาท์พุทออกมา การใช้ CTRL-S / CTRL-Q บนแมว (หรือหางที่ใช้งานอยู่) มีประโยชน์มากในการหยุดและเริ่มการทำงานต่อ


25
lessมากขึ้น
dotancohen

2
@dotancohen: ตลกมาก แม้moreไม่ได้รู้จักจนกระทั่งสี่หรือห้าปีแรกหลังจาก Unix (เนื้อเรื่องcat, แต่ไม่cat -v ) ได้รับการปล่อยตัว โปรดทราบว่ามีระบบปฏิบัติการไทม์แชร์ (แบบโต้ตอบ) อื่น ๆก่อนหน้า Unix เช่นRSTs
สกอตต์

2
@dotancohen ฉันชอบlessแต่คนบอกว่าในขณะที่lessเป็นmore, mostยังคงมากกว่าless!
Volker Siegel

1
@VolkerSiegel: ขอบคุณที่แนะนำให้ฉันmost! ในโอกาสที่คุณรู้ว่าโปรแกรมที่ให้ใครเห็นไฟล์รูปภาพ (gif, jpg, png) บน ssh บน cli ฉันชอบที่จะได้ยินเกี่ยวกับมัน ปัจจุบันฉันใช้asciiviewหรือimg2txtไม่พอใจ
dotancohen

2
@VolkerSiegel: ขอบคุณมากที่สุด ! ตามที่ผู้เขียนกล่าวว่า: "ทำไมต้องชำระน้อย?" apt-get install mostผู้ใช้สามารถ Debian
mivk

17

บนโทรศัพท์โบราณที่มีเครื่องอ่านเทปกระดาษใบเสร็จรับเงินของตัวควบคุม -Q จะเปิดเครื่องอ่านเทปกระดาษและเริ่มส่งตัวอักษรจากเทปราวกับว่าพวกเขาพิมพ์บนแป้นพิมพ์ Control-S จะปิดตัวอ่านเทปกระดาษ ถ้ามีคนคิดว่าเดิมทีโทรพิมพ์นั้นไม่ได้ตั้งใจจะพิมพ์ข้อมูลจากคอมพิวเตอร์ แต่จากเครื่องโทรพิมพ์อื่น ๆ มันควรจะค่อนข้างชัดเจนว่า "การปิดตัวอ่านเทปกระดาษ" สามารถตีความได้ว่าคล้ายคลึงกับ

อนึ่งการควบคุม -R จะเปิดการเจาะเทปกระดาษเช่นว่าอักขระทุกตัวที่ได้รับจากโทรพิมพ์ (หรือถ้าเปิดใช้งานเสียงสะท้อนในท้องถิ่นพิมพ์ที่แป้นพิมพ์) ก็จะต่อยกับเทปกระดาษ การควบคุม -T จะปิดการชกเทปกระดาษ ต่างจากการดำเนินการที่เกี่ยวข้องกับ control-S และ control-Q อย่างไรก็ตามการดำเนินการเหล่านั้นดูเหมือนจะไม่เทียบเท่าสมัยใหม่

นอกจากนี้ชื่อดั้งเดิมสำหรับ control-Q / R / S / T คือ DC1 / DC2 / DC3 / DC4 ("อุปกรณ์ควบคุม 1" ฯลฯ ) ในขณะที่ฉันไม่แน่ใจในประวัติศาสตร์การตั้งชื่อดังกล่าวจะแนะนำว่าพวกเขา แต่เดิม มีจุดประสงค์เพื่อเรียกใช้การกระทำบางอย่างที่ไม่ระบุ แต่สิ่งที่คนส่วนใหญ่ทำกับ DC1 และ DC3 คือการควบคุมเครื่องอ่านเทปกระดาษ

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