जब मैं Ctrl + चरित्र कीबोर्ड शॉर्टकट का उपयोग करता हूं तो ^ C, ^ V आदि टर्मिनल में क्यों दिखाई देते हैं?


26

कभी कभी, जब आदेशों के उत्पादन से पाठ कॉपी-पेस्ट, मैं गलती से इस्तेमाल करेंगे Ctrl+ cके बजाय Ctrl+ Shift+ c

तो कमांड-लाइन इसकी व्याख्या करती है ^C...

ऐसा क्यों है? कमांड-लाइन controlइनपुट की व्याख्या क्यों करती है ^?

जवाबों:


35

यह वास्तव में वर्ण क्रम "^ C" नहीं डालता है। यह केवल अप्रमाणित ASCII नियंत्रण वर्णों के लिए एक प्रतिनिधित्व है, जैसे:

  • ^C → ETX (पाठ का अंत, एक किल सिग्नल भेजता है), ASCII 0x03
  • ^D → ईओटी (ट्रांसमिशन का अंत, इनपुट को समाप्त करता है), एएससीआईआई 0x04
  • ^H→ बीएस (बैकस्पेस \b), एएससीआईआई 0x08
  • ^J→ LF (लाइन फीड \n), ASCII 0x0A
  • ^L → एफएफ (फॉर्म फ़ीड, नया पृष्ठ, टर्मिनल को साफ करता है), एएससीआईआई 0x0 सी
  • ^M→ CR (कैरिज वापसी \r), ASCII 0x0D

यह संभव ASCII नियंत्रण वर्णों का केवल एक छोटा सा अर्क है जिसे कीबोर्ड का उपयोग करके डाला जा सकता है; आप यहां पूरी सूची पा सकते हैं ।

मुझे लगता है कि याद रखने के लिए सबसे महत्वपूर्ण हैं Ctrl+ C, Ctrl+ Dऔर Ctrl+ L


^"नियंत्रण" के प्रतीक के रूप में कैरेट का उपयोग प्री-ग्राफिक समय से पहले होता है जब टर्मिनल केवल-पाठ थे, और मेरा मानना ​​है कि इससे पहले भी जब हमारे पास कार्ड और कागज थे, तो कोई भी टर्मिनल नहीं था। मुझे यह जानकर अच्छा लगेगा कि कैरट को प्रतीक के रूप में क्यों चुना गया।
धान लैंडौ

8

क्योंकि CTRL+ KEYकॉम्बो की व्याख्या टर्मिनल द्वारा गैर-मुद्रण योग्य ASCII वर्णों के रूप में की जाती है, और उन गैर-मुद्रण योग्य होने के नाते आपको उनका प्रतिनिधित्व करने का एक तरीका चाहिए।

ANSI समर्थन के साथ VT टर्मिनलों से उपजी कन्वेंशन, एक कैरेट ( ) और के साथ प्रतिनिधित्व करने वाले CTRL+ KEYकॉम्बो का प्रतिनिधित्व CTRLकरना है ।^KEYKEY


5

जब एक टर्मिनल से / के लिए कॉपी और पेस्ट किया जाता है, तो क्रमशः शॉर्ट कट Ctrl+ Insertऔर Shift+ का उपयोग करना सबसे अच्छा अभ्यास है Insert

ये टर्मिनल उपयोग के लिए अधिक पारंपरिक शॉर्ट कट हैं, हालांकि आप ध्यान देंगे कि एक एक्स ग्राफिकल वातावरण में Ctrl+ Insertऔर Shift+ Insertएक ही Ctrl+ Cऔर Ctrl+ से बंधे हैं V

अधिकांश टर्मिनलों में Ctrl+ C(द्वारा दर्शाया गया ^C) एक प्रक्रिया के निष्पादन को रोकने के लिए उपयोग किया जाता है, इसलिए उस शॉर्ट कट के साथ चिपकाने से काम नहीं चलेगा।

त्वरित प्रतिलिपि बनाने और चिपकाने के लिए, आप जो भी पाठ कॉपी करना चाहते हैं, उसे हाइलाइट करके X का प्राथमिक बफर का उपयोग कर सकते हैं और फिर मध्य-क्लिक करके जहाँ आप इसे पेस्ट करना चाहते हैं। कोई कुंजीपटल की आवश्यकता है।


2
क्षमा करें, लेकिन आपने प्रश्न को गलत समझा। ओपी जानना चाहता था कि ^CCTRL + C (या CTRL + दूसरा अक्षर) दबाने पर स्ट्रिंग या समान क्यों दिखाई देते हैं। यह टर्मिनल में सामान को सही ढंग से कॉपी और पेस्ट करने के तरीके के बारे में नहीं है, जिसके लिए आपका उत्तर बहुत अच्छा होगा।
बाइट कमांडर

@ बाइटकमांडर, ठीक है तुम! मेरी क्षमा याचना, हालांकि, मैं अपना उत्तर छोड़ दूंगा, क्योंकि ऐसा लगता है कि प्रश्न का पहले ही ठीक से उत्तर दिया जा चुका है :) कोई व्यक्ति इस पर ठोकर खा सकता है और मुझे जो उपयोगी लिखा है वह मिल जाएगा।
कीफेर रोरके

-2

आप चाहिए का उपयोग किया Ctrl+ Cऔर नहीं Shift+ Ctrl+ C, क्योंकि कमांड लाइन पर, वे एक ही बात करते हैं (और Ctrl+ Cकी तुलना में आसान है Shift+ Ctrl+ C)। यह कुछ ग्राफिकल वातावरणों में सही नहीं हो सकता है, जहां जीयूआई कुछ कीस्ट्रोक्स को कैप्चर करता है और कुछ विशेष करता है, लेकिन अगर कीस्ट्रोक्स को वास्तव में कमांड लाइन में भेजा जाता है, तो कोई अंतर नहीं है। यही कारण है कि एक सीकेस के बजाय सी Ctrl+ Cकैपिटल कैपिटल के रूप में दबाया जा सकता है। कमांड लाइन कोई भेद नहीं करती है, जिस पर आपने दबाया था (और अपरकेस को संभवतः पढ़ने के लिए आसान होने का अनुमान लगाया गया था)। यह अक्षरों के लिए सच है; अन्य पात्रों के लिए, इसका Shiftप्रभाव हो सकता है।)

दबाने वाला Ctrl- CASCII कोड भेजता है जो कि ASCII तालिका में अपरकेस अक्षर की स्थिति से 64 कम है (और ASCII तालिका में लोअरकेस अक्षर की स्थिति से 96 कम)। इसलिए Ctrl- c(लोअरकेस) ASCII कोड 3 (जो कि C67 के ASCII कोड से 64 कम है) भेजता है । कई वातावरणों में, आप पकड़ सकते हैं Altऔर फिर 3numpad पर दबा सकते हैं (और फिर 3कुंजी छोड़ें , और फिर Altकुंजी छोड़ें ) और आपको समान प्रभाव मिल सकता है।

^ C के संबंध में, ^ " Ctrl" कुंजी के लिए एक प्रसिद्ध शॉर्टहैंड है । इसी तरह, M- " Alt" कुंजी के लिए एक शॉर्टहैंड है । इर, हाँ। M शब्द "मेटा" के लिए खड़ा है, जो कि जो Altकुछ भी आता है, उसे दबाकर Escऔर कभी-कभी दबाकर (और जारी करके Esc) और फिर जो भी आता है उसे दबाकर दर्ज किया जा सकता है । "नियंत्रण कुंजी" पर विकिपीडिया का लेख: "नोटेशन" अनुभाग इसे "पारंपरिक अंकन" के रूप में वर्णित करता है। इसे कैरक्ट नोटेशन ( कैरेट नोटेशन पर विकिपीडिया का लेख , यूनिक्स स्टैक एक्सचेंज: कैरनेट नोटेशन के बारे में ryvnf के प्रश्न ) के रूप में भी जाना जाता है ।

आखिरी सवाल के बारे में, कमांड शेल एक केयरटेप होने के लिए कुछ भी "व्याख्या" नहीं कर रहा है। दूसरे शब्दों में, शेल कुछ भी नहीं पढ़ रहा है, और यह मानते हुए कि यह एक देखभाल है। क्या हो रहा है कि शेल आउटपुट के लिए प्रसिद्ध कैरेट नोटेशन का उपयोग कर रहा है। एक अन्य उदाहरण के रूप में, आप जाने-माने पेजर को देख सकते हैं, "कम", चलाकर कैरेट नोटेशन का उपयोग करें:dd if=/dev/zero bs=64 count=1 | less

("नैनो" टेक्स्ट एडिटर अपनी ऑनलाइन मदद में कैरेट नोटेशन का भी उपयोग करता है, जिसमें ^ जी, उर्फ Ctrl- दबाने के बाद दिखाई गई ऑनलाइन स्क्रीन की पूरी स्क्रीन भी शामिल है g।)


4
DevRobot विशेष रूप से कॉपी और पेस्ट के संदर्भ में Ctrl-C (या Shift-Ctrl-C) का उपयोग करने के बारे में पूछ रहा है, जो एक GUI टर्मिनल का अर्थ है। आप आवश्यक रूप से गलत नहीं हैं, लेकिन आप स्पष्टीकरण दे रहे हैं निश्चित रूप से किसी GUI- उपयोगकर्ता के दृष्टिकोण से आने वाले लोगों के लिए भ्रामक है।
आरएम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.