किसी टर्मिनल में गलती से Ctrl-S दबाए जाने के बाद अनफेयर कैसे करें?


729

यह एक ऐसी स्थिति है जो मेरे साथ बहुत बार हुई है: मैं Ctrl-Sएक टर्मिनल में (एक अलग इरादे से) प्रेस करने के बाद , इसके साथ सहभागिता (इनपुट या आउटपुट) जमी हुई है। यह शायद एक तरह का "स्क्रॉल लॉक" या जो भी हो।

इसके बाद मैं टर्मिनल को कैसे अनफ्रीज करूं?

(इस बार, मैं के साथ काम कर रहा है apt-shellएक के अंदर bashअंदर urxvt--not यकीन है कि जो उनमें से की विशेष हैंडलिंग के लिए जिम्मेदार है Ctrl-Sमैं के साथ पीछे की ओर आदेशों के इतिहास खोज रहा था: C-rहमेशा की तरह ReadLine के लिए, लेकिन फिर मैं "वापस जाना चाहती थी "सामान्य रूप से इतिहास के माध्यम से आगे - कम से कम Emacs-- C-s( 1 , 2 , 3 ) में, लेकिन इससे टर्मिनल फ्रीज हो गया। ठीक है, पिछली चीजों को देखने के लिए स्क्रॉलिंग / पेजिंग करना अभी भी टर्मिनल में काम करता है, लेकिन कोई इंटरैक्शन नहीं। प्रक्रियाओं के साथ वहाँ चला।)


23
मैं काम कर रहा था vimऔर मैंने अपने संपादन को बचाने के लिए Ctrl-S दबाया। उह-ओहXD
ADTC

4
यह पहले स्थान पर क्यों है?
neverMind9

जवाबों:


862

Ctrl-Q

इसे पूरी तरह से अक्षम करने के लिए, stty -ixonएक स्टार्टअप स्क्रिप्ट में छड़ी करें । किसी भी कुंजी को फिर से बहने वाली चीजों की अनुमति देने के लिए, उपयोग करें stty ixany

ps: यह न तो टर्मिनल है और न ही शेल जो ऐसा करता है, बल्कि OS का टर्मिनल ड्राइवर है।


8
धन्यवाद! BTW, वहाँ उन्होंने सुझाव दिया Ctrl-C; यह भी काम करता है? (और में एक और जगह है, वे सुझाव Ctrl-Qकेवल आपके के रूप में,।)
इवान Zakharyaschev - IMZ

23
Ctrl-C काम करता है, लेकिन यह एक बाधा संकेत भी भेजता है, जिसे आम तौर पर कोई नहीं चाहेगा। (Btw, इन चीजों के लिए उपयोग की जा रही चाबियां सभी के माध्यम से विन्यास योग्य हैं stty।)
ak2

2
मुझे याद है कि अपने Apple पर इस संयोजन को आजमाना] [क्लोन, और यह वहाँ भी काम किया - Ctrl-Sऔर फिर फिर Ctrl-Qसे शुरू करने के लिए।
sashoalm

19
भगवान का शुक्र है !! यह कुछ वर्षों से मुझे परेशान कर रहा है। यह निश्चित नहीं है कि वीआईएम ने इसे जो कुछ भी किया है उसके बजाय इसे बचाने के लिए देशी शॉर्टकट के रूप में लागू नहीं किया है। यह जानने के लिए अच्छा है कि जेल से एक बच निकलता है जो CTRL + S (शार्टकट) के प्राकृतिक उपयोग के कारण जमी हुई VIM स्क्रीन है जो लगभग सभी अनुप्रयोगों में लागू होता है EXIMPT VIM।
क्रांग प्राइम

8
@SanuelJackson Ctrl-S "save शॉर्टकट" लगभग सभी DESKTOP एप्लिकेशन EXCEPT vim में लागू है। और Emacs को छोड़कर। और नैनो। और हर दूसरे "एप्लिकेशन" को आप टर्मिनल पर चला सकते हैं, बिल्कुल इसलिए क्योंकि यह पहले से ही टर्मिनल द्वारा प्रवाह नियंत्रण के लिए उपयोग किया जाता है। यही कारण है कि आपको Ctrl-Alt-FN शॉर्टकट का उपयोग करके लिनक्स डेस्कटॉप एप्लिकेशन नहीं मिलेगा: क्योंकि वे पहले से ही सिस्टम द्वारा उपयोग किए जाते हैं।
gerlos

384

Ctrl- Qवास्तव में जवाब है। मैंने सोचा कि मैं इसके बारे में थोड़ा इतिहास में टॉस कर सकता हूं जो कि ak2 के सही उत्तर के मार्जिन में फिट होने के लिए बहुत लंबा है ।

अंधेरे युग में, एक टर्मिनल उपकरण का एक बड़ा टुकड़ा था जो एक दूरस्थ डिवाइस से जुड़ा हुआ था (मूल रूप से एक और टर्मिनल क्योंकि टेलेटिप एक टेलीग्राफ कुंजी से संचालित करने के लिए सीखना बहुत आसान था) एक लंबे तार पर या मोडेम के साथ फोन लाइनों के माध्यम से। जब तक यूनिक्स विकसित हो रहा था, तब तक एएससीआईआई कोड पहले से ही अच्छी तरह से स्थापित था (हालांकि आईबीएम से प्रतिस्पर्धा करने वाला ईबीसीडीआईसी अभी भी एक ताकत था)।

आरंभिक टर्मिनलों ने प्राप्त प्रत्येक वर्ण का एक मुद्रित रिकॉर्ड रखा। जब तक अक्षर नहीं पहुंचे, तब तक प्रिंट हेड उन्हें टाइप नहीं कर सकता, कम से कम। लेकिन जैसे ही CRT आधारित टर्मिनल संभव हुए, यह समस्या उत्पन्न हुई कि CRT पर केवल 25 लाइनें फिट हैं, और 80 वर्णों की 25 पंक्तियों ने पर्याप्त RAM का प्रतिनिधित्व किया है, जो किसी ने उन पात्रों के लिए अधिक RAM प्रदान करने के बारे में गंभीरता से नहीं सोचा था जिन्होंने ऊपर से स्क्रॉल किया था स्क्रीन।

तो कुछ सम्मेलन को यह संकेत देने की आवश्यकता थी कि पाठक को पकड़ने के लिए भेजने का अंत रुकना चाहिए।

7-बिट एएससीआईआई कोड में 33 कोड पॉइंट होते हैं जो नियंत्रण पात्रों (0 से 31 और 127) के लिए समर्पित होते हैं। उन में से कुछ इस तरह के रूप वास्तव में अच्छी तरह से स्थापित उद्देश्यों, था NUL(सूत्रण, अंतराल, और splices के लिए खाली कागज टेप नेता), DEL( "को काटकर" कागज टेप पर अक्षर सभी सात छेद छिद्रण द्वारा इंगित), BEL(डिंग!), CR, LF, और TAB। लेकिन चार टर्मिनल डिवाइस पर ही (नियंत्रित करने के लिए स्पष्ट रूप से परिभाषित कर रहे थे DC1करने के लिए DC4उर्फ Ctrl + Q, Ctrl + R, Ctrl + S और Ctrl + T)।

मेरा सबसे अच्छा अनुमान है कि कुछ इंजीनियर ने सोचा था कि (के रूप में mnemonics जाओ), "एस" के लिए "बंद" और "क्यू" के लिए "जारी रखें" बहुत बुरा नहीं थे, और DC3इसका मतलब "कृपया भेजना बंद करें" और DC1इसका मतलब ठीक है , अब भेजना जारी रखें ”।

यहां तक ​​कि जब तक यूनिक्स विश्व में बाहर जाने के लिए बेल लैब्स में घोंसला छोड़ रहा था, तब तक यह सम्मेलन पहले से ही अच्छी तरह से स्थापित था।

सम्मेलन को सॉफ्टवेयर प्रवाह नियंत्रण के रूप में जाना जाता है, और यह वास्तविक धारावाहिक उपकरणों में बेहद आम है। इसे सही तरीके से लागू करना आसान नहीं है, क्योंकि यह संचार चैनल में किसी भी अन्य उद्देश्य के लिए उन वर्णों के उपयोग को रोकता है, और स्टॉप सिग्नल को किसी भी लंबित प्राप्त पात्रों से आगे संभाला जाना चाहिए ताकि प्राप्त अंत से अधिक भेजने से बचा जा सके। संभाल।

यदि व्यावहारिक, प्रवाह नियंत्रण के लिए धारावाहिक डेटा स्ट्रीम से बैंड से बाहर अतिरिक्त संकेतों का उपयोग करना काफी पसंद किया जाता है। सीधे वायर्ड कनेक्शन पर जो अतिरिक्त सिग्नल तारों को वहन कर सकता है, आपको उपयोग में हार्डवेयर हैंडशेक मिलेगा, जो अन्य उपयोगों के लिए उन वर्णों को मुक्त करता है।

बेशक, आज की टर्मिनल विंडो एक वास्तविक भौतिक सीरियल पोर्ट का उपयोग नहीं कर रही है, इसमें स्क्रॉल बार हैं, और वास्तव में बिल्कुल सॉफ्टवेयर हैंडशेकिंग की आवश्यकता नहीं है। लेकिन सम्मेलन कायम है।

मुझे यह दावा याद है कि रिचर्ड स्टालमैन को अपने एमएसीपी + एस को इंक्रीमेंटल-सर्च करने के लिए एमएसीएस के पहले रिलीज में शिकायत मिली थी, और वह किसी भी उपयोगकर्ता के लिए असंगत था, जिसे 7-बिट, सॉफ़्टवेयर फ़्लो नियंत्रित कनेक्शन पर निर्भर रहना पड़ता था।


2
थैंक .. बहुत दिलचस्प ... मैं सोच रहा था: क्यों पृथ्वी पर कोई भी "क्यू" के साथ एक प्रक्रिया जारी रखना चुन सकता है जो आमतौर पर क्विट के लिए उपयोग किया जाता है (अब) ... क्यूआरएसटी ग्रुपिंग इसे समझाता है .....
पीटर।

13
इतिहास के उस बिट के लिए बहुत बहुत धन्यवाद। मैं हाल ही में एक टर्मिनल एमुलेटर में डिफ़ॉल्ट रूप से प्रवाह नियंत्रण को अक्षम करता हूं जिसे मैं बनाए रखता हूं, लेकिन यूनिक्स परंपरावादियों के मुखर विरोध के बाद इसे जल्दी से बहाल करना पड़ा जो अभी भी इसका उपयोग करते हैं। मैंने इसके बजाय ixany बिट सेट किया है, इसलिए कम से कम लोग जो ^ S के बारे में जाने बिना ^ S दबाते हैं, वे अटकते नहीं हैं।
ak2

3
@Rerteig मैं बैकस्पेस और डिलीट के बारे में कुछ ऐसी ही सीख लेकर भागा। बैकस्पेस आधिकारिक तौर पर ^ H और डिलीट ^ है? कुछ लोग Emacs Developers (Stallman?) को फिर से चाहते थे ^ H सामान्य मदद के लिए शॉर्टकट जैसे मदद के लिए उपलब्ध था। भागने का क्रम ^ [[3 ~ या ऐसा कुछ है जो ^ को बदलने के लिए बनाया गया था? और बैकस्पेस अब पुराना डिलीट कैरेक्टर ^ हो गया है। वास्तव में, मैंने देखा है कि ncurses ने लिनक्स डिस्ट्रोस पर विशेष रूप से पैच किए थे, जो टर्मो में कीज को रीपैप करने के लिए थे, जबकि FreeBSD पर ncurses अप्रभावित होते हैं, जिससे कुछ कष्टप्रद भ्रम पैदा हो जाते हैं, जिससे बैकस्पेस काम नहीं कर पाता है।
पेंग्विन 359

23
मुझे आश्चर्य था कि जब तक मैंने पहली बार कुछ पेपर टेप और ASR33 के साथ खेला था, तब तक DEL के पास दूसरे नियंत्रण वर्णों के साथ कोड 127 होने के बजाय क्यों 127 था। एक बार मुझे एहसास हुआ कि इसमें सभी छेदों को छिद्रित करने का प्रभाव था, जिसका मतलब था कि इसे हटाने के लिए किसी भी पहले के छिद्रित चरित्र पर ओवरस्ट्रेक किया जा सकता है, इससे समझ में आया।
RBerteig

3
@SanuelJackson यह कुछ समय हो गया है जब से मैंने बारीकी से देखा, लेकिन कई वर्षों के लिए खिड़कियों के साथ जहाज वाले डिफ़ॉल्ट vimrc ने <Cs> से "अपडेट:" मैप किया है। मैं भी काफी हद तक निश्चित हूँ कि मैंने इसे पिछले कुछ समय में gvim के लिए कुछ distros पर देखा है। यदि आप किसी टर्मिनल में विम का उपयोग कर रहे हैं, हालांकि, यह इतिहास अभी भी बहुत प्रासंगिक है। आधुनिक टर्मिनल एमुलेटर अभी भी प्रवाह नियंत्रण कुंजियों को लागू करते हैं, इसलिए भले ही विम ने उन्हें मैप किया हो, लेकिन जब तक कि प्रत्येक उपयोगकर्ता स्वीकृत उत्तर में वर्णित प्रवाह नियंत्रण को अक्षम करने के लिए अपने रास्ते से बाहर नहीं चला जाता है।
आकर्षित किया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.