क्या कोई तरीका है ^C
जब आप हिट करते हैं CTRL+ Cशेल में Red Hat Enterprise Linux 6 ("सैंटियागो") शामिल है? मुझे अपना स्वयं का संपादन करने की अनुमति है .bash_profile
।
क्या कोई तरीका है ^C
जब आप हिट करते हैं CTRL+ Cशेल में Red Hat Enterprise Linux 6 ("सैंटियागो") शामिल है? मुझे अपना स्वयं का संपादन करने की अनुमति है .bash_profile
।
जवाबों:
अपनी ~/.inputrc
फ़ाइल संपादित करें (या बनाएं) । एक लाइन जोड़ें
set echo-control-characters Off
यह GNU रीडलाइन लाइब्रेरी (जो बैश का उपयोग करता है) को स्क्रीन पर किसी भी नियंत्रण वर्ण को आउटपुट (इको) नहीं करने का निर्देश देगा। इसके बाद सभी नए बैश सत्रों में (और रीडलाइन लाइब्रेरी का उपयोग करने वाली किसी भी अन्य उपयोगिता में) सेटिंग सक्रिय होगी।
ध्यान दें कि यदि आपका यूनिक्स सिस्टम रीडलाइन लाइब्रेरी (आमतौर पर /etc/inputrc
) के लिए सिस्टम-वाइड कॉन्फ़िगरेशन फ़ाइल के साथ आता है , तो आपकी व्यक्तिगत कॉन्फ़िगरेशन फ़ाइल को उस फ़ाइल को शामिल करना होगा:
$include /etc/inputrc
set echo-control-characters Off
एक अन्य विकल्प सिस्टम-वाइड कॉन्फ़िगरेशन फ़ाइल की एक व्यक्तिगत प्रतिलिपि बनाना और फिर उसे संशोधित करना है।
sleep 180
और CTRL + C
~/.inputrc
पहले से मौजूद नहीं है, तो बस फ़ाइल बनाने से कुछ मौजूदा सेटिंग्स खो सकती हैं। मेरे मामले में मैंने पहली बार देखा कि ctrl + left और ctrl + right ने काम करना बंद कर दिया था। ~/.inputrc
इस लाइन से मेरी शुरुआत होनी थी $include /etc/inputrc
। यह केवल cp /etc/inputrc .inputrc
वांछित के रूप में और संपादित करना भी संभव है ।
निम्नलिखित प्रयास करें:
stty -echoctl
स्पष्टीकरण के लिए स्टीफन चेज़लस के इस महान और विस्तृत पोस्ट को देखें जिसमें कुछ अन्य stty
विशेषताएं भी बताई गई हैं ।
यदि आप उस परिवर्तन को स्थायी बनाना चाहते हैं (और आप bash
अपने प्रश्न में निहित हैं) तो यह आपके लिए सबसे अच्छा है कि टिप्पणी में jlmg.bashrc
द्वारा नोट किया जाए (इसलिए यह सभी इंटरैक्टिव गोले पर लागू होता है)।
.bash_profile
उस फ़ाइल को केवल लॉगिन शेल द्वारा पार्स किया गया है। इसके .bashrc
बजाय इसे रखा जाना चाहिए , इसलिए यह सभी इंटरैक्टिव इनवोकेशन द्वारा पढ़ा जाता है।
^[[A
stty -echo
। निश्चित रूप से यह सब कुछ के रूप में अच्छी तरह से गूंज को रोकने के लिए जा रहा है, जो शायद इस जवाब को एक नो-गो बनाता है यदि आप चाहते थे कि सभी को छिपाना है ^C
।
^C
हमेशा अंत में मैं आपसे सहमत हो सकता था। लेकिन उस ^C
वसीयत को प्रिंट किया जाएगा जहां कभी कर्सर था, जो कमांड में कहीं भी एक जोड़ी अक्षर को ओवरराइट कर सकता है। इसका मतलब है कि अगर आपको उस आदेश के कुछ हिस्सों को कॉपी-पेस्ट करने की आवश्यकता है, तो आप कुछ गड़बड़ कर सकते हैं। और ^C
टर्मिनल को देखते समय आसानी से पहचाना नहीं जाता है जैसे कि यह कमांड के अंत में होता है।
यदि आप ऐसा कॉन्फ़िगरेशन ढूंढने का प्रयास कर रहे हैं, जो सामान्य इकोलिंग (सहित echoctl
) की अनुमति देगा और सिगनल-जनरेटिंग वर्णों की गूँज को शांत करेगा, और आपको यकीन है कि यह संभव होना चाहिए, क्योंकि आपने इसे इस तरह से पहले देखा है ...
आपने शायद इसे इस तरह से देखा हो। लेकिन यह अब संभव नहीं है, क्योंकि यह प्रतिबद्ध है :
प्रतिबद्ध ec5b1157f8e819c72fc93aa6d2d5117c08cdc961
N_TTY लाइन अनुशासन (जैसे ctrl-C "के रूप में दिखाई देगा INTR / QUIT / SUSP को चालू करें (यदि stty echoctl सेट किया गया है और ctrl-C INTR के रूप में सेट है)।
लिनक्स केवल यूनिक्स जैसा ओएस प्रतीत होता है (हाल ही में मैंने सोलारिस, बीएसडी और मैक ओएस एक्स पर इसे सत्यापित किया है) जो इस तरह से व्यवहार नहीं करता है , और मैं वास्तव में इसे एक कार्यक्रम के बीच की एक अच्छी दृश्य पुष्टि के रूप में याद करता हूं कंसोल या xterm में। मुझे याद है यह उन कई यूनिक्स से है जो मैंने वर्षों से उपयोग किए हैं। इसे लिनक्स में लाना भी एक अच्छा तरीका लगता है, जो इसे मानक यूनिक्स जैसे व्यवहार के साथ और अधिक अनुरूप बनाता है।
तुम्हें याद प्यार से कैसे लिनक्स का उपयोग किया है करने के लिए नहीं है कि गूंज ^C
, पुराने व्यवहार वापस पाने के लिए एक ही रास्ता अपने कर्नेल पैच करने के लिए है। हाल के संस्करणों में, सिग्नल-जनरेटिंग कैरेक्टरों की गूंज 1215-1218 ड्राइवरों / tty / n_tty.c की तर्ज पर है ।
set echo-control-characters off