मुझे पता है कि यह पहले से ही उत्तर दिया गया था, लेकिन जवाब यह नहीं समझाता है कि क्या चल रहा है।
Ctrl+ जैसे वर्ण अनुप्रयोगL द्वारा नियंत्रित किए जाते हैं । शेल में इनपुट दर्ज करने के मामले में, जैसे bash
, यह स्क्रीन को साफ करता है। कुछ एप्लिकेशन, जैसे emacs
, इसका उपयोग स्क्रीन को फिर से शुरू करने और / या कर्सर को पुन: प्रस्तुत करने के लिए करते हैं।
एक पासवर्ड प्रॉम्प्ट पर Ctrl+ जैसे अक्षर TTY लाइन अनुशासनU द्वारा नियंत्रित किए जाते हैं । वे किसी भी समय काम करेंगे इनपुट टर्मिनल "कैनोनिकल" लाइन-संपादन मोड में है, जो एक पासवर्ड दर्ज करते समय आपके प्रोग्राम किस मोड पर हैं। इस मोड में, यह लिनक्स कर्नेल ही है जो इन वर्णों की व्याख्या कर रहा है। आप यह देख सकते हैं कि किन कार्यों के लिए कौन से कार्य सौंपे गए हैं :stty -a
speed 38400 baud; rows 45; columns 128; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S;
susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
यहां, आप देख सकते हैं कि Ctrl+ Uको बांधा गया है kill
, जो ( स्टेंट मैन पेज के अनुसार ) "वर्तमान रेखा को मिटा देगा"। आप stty
इस मैपिंग को बदलने के लिए भी उपयोग कर सकते हैं :
stty kill ^E # make ctrl-e erase the line
यदि आप रुचि रखते हैं तो इस पृष्ठ में TTY परत के बारे में बहुत सारी जानकारी है।
तो चीजें काफी भ्रमित नहीं थे: जब एक इंटरैक्टिव की प्रॉम्प्ट पर bash
, आप वास्तव में कर रहे हैं नहीं "प्रामाणिक" लाइन संपादन मोड में। इसके बजाय, bash
प्रत्येक वर्ण को सीधे प्राप्त करते हुए , जैसा कि आप इसे टाइप करते हैं, और रीडलाइन लाइब्रेरी के माध्यम से, स्वयं नियंत्रण दृश्यों की व्याख्या करते हैं । यह लाइब्रेरी आपके टर्मिनल डिवाइस पर आपके द्वारा सेट किए गए मैपिंग का सम्मान करेगी , हालांकि, फिर भी आप stty
उन्हें बदलने के लिए उपयोग कर सकते हैं। या, आप अपनी फ़ाइल के अंदर संपत्ति bash
सेट करके उन्हें स्वतंत्र रूप से अंदर और अन्य रीडलाइन-आधारित कार्यक्रमों को अनुकूलित कर सकते unix-line-discard
हैं ~/.inputrc
। अधिक जानकारी के लिए बैश मैन पेज देखें ।
जब आप कोई प्रोग्राम चलाते हैं, तो bash
विहित लाइन संपादन मोड को फिर से सक्षम करता है ( stty icanon
यदि यह पहले सक्षम था, और फिर प्रोग्राम समाप्त होने पर इसे फिर से निष्क्रिय कर देता है ( stty -icanon
)।