इसके विपरीत bash, sshपासवर्ड प्रॉम्प्ट किसी भी विशेष टर्मिनल-इनपुट लाइब्रेरी का उपयोग नहीं करता है readline। लाइन-एडिटिंग फीचर्स सिर्फ बेसलाइन POSIX TTY लाइन-एडिटिंग फीचर हैं।
तो आपके पास "पका हुआ" मोड (कच्चा नहीं), उर्फ विहित मोड में एक पॉस टीटीवाई है, और एकमात्र पंक्ति संपादन जो उपलब्ध है वह कर्नेल द्वारा प्रदान किया गया है। देखें stty(1), और ध्यान दें
kill = ^U। यह वह जगह भी है जहां बैकस्पेस वर्ण परिभाषित किया गया है ( erase = ^?)। ^Wजब आप अंधे टाइप नहीं कर रहे हैं तब शब्द-मिटा ( ) सुविधाजनक है।
lnext = ^V इसका मतलब है कि आप शाब्दिक नियंत्रण-सी प्राप्त करने के लिए कंट्रोल-वी (फिर कंट्रोल-सी सहित) टाइप कर सकते हैं।
डिबग करने के लिए कि आप क्या कर रहे थे आँख बंद करके, चलाएं catया cat > /dev/nullअपने टर्मिनल में । सामान टाइप करें, फिर देखें कि क्या काम करता है और इसे संपादित करने के लिए क्या नहीं है।
readline(द्वारा प्रयुक्त bash) कच्चे चरित्र को पढ़ता है और उपयोगकर्ता-स्थान में लाइन-संपादन करता है। इसके डिफ़ॉल्ट बाइंडिंग डिफ़ॉल्ट TTY नियंत्रण वर्णों के साथ संगत हैं, हालांकि, संपादन सुविधाओं के सबसेट के लिए जो वे दोनों प्रदान करते हैं।
रीडलाइन एक सादे TTY की सरल रेखा संपादन से आगे जाती है। (उदाहरण के लिए एक TTY केवल पंक्ति के अंत में वर्णों को हटा सकता है, इसलिए कोई ^aऔर deleteया बाएँ / दाएँ तीर नहीं है)
जब bashअग्रभूमि में एक कमांड चलता है, तो यह TTY को पहले विहित मोड में डालता है (क्योंकि यह डिफ़ॉल्ट है)। तो चल रहा है stty -a(बिना पुनर्निर्देशन के) हमेशा अपने टर्मिनल को विहित मोड में देखेगा। लेकिन अगर आप कुछ अन्य TTY से इनपुट को पुनर्निर्देशित bashकरते हैं, जो उस पर चल रहे हैं, तो आप देख सकते हैं कि टर्मिनल सेटिंग्स ने bash + readline क्या लागू किया है। उदाहरण के लिए कच्चे मोड के लिए stty -a < /dev/pts/12दिखाता -icanonहै क्योंकि मेरे पास bashउस टर्मिनल पर चल रहा है । (मैंने दूसरे टैब पर स्विच किया और भाग गया tty, फिर पहले टर्मिनल से उस डिवाइस फ़ाइल पथ का उपयोग किया)। अगर मैं catउस दूसरे टर्मिनल में भाग गया, तो मैं icanonविहित मोड के लिए देखूंगा ।
संबंधित: TTY ध्वस्त
https://www.gnu.org/software/libc/manual/html_node/Canonical-or-Not.html
https://en.wikipedia.org/wiki/POSIX_terminal_interface