ऐतिहासिक STTY
आदेश पर कुछ नोट्स अन्य उत्तर और संबंधित टिप्पणियों में कुछ अशुद्धियों को स्पष्ट करने के लिए :
इससे पहले DEC VT05 या VT50 और इससे पहले के टेलीप्रिंटर्स जैसे टर्मिनलों ने केवल ऊपरी मामले वर्णों का समर्थन किया था। इसका मतलब यह है कि कोई भी निचला मामला चरित्र उनसे इनपुट नहीं हो सकता है या वे ऊपरी मामले की तुलना में किसी अन्य पत्र को प्रदर्शित करने में सक्षम नहीं होंगे।
यूनिक्स केस संवेदनशील होने और अधिकांश कमांड लोअर केस होने के कारण, आप देख सकते हैं कि वहाँ एक मुद्दा है। यही कारण है कि उन लोगों को संभालने के लिए विशेष टर्मियो / टर्मिनस मोड्स हैं (और अभी भी आधुनिक यूनीसेज़ में हैं।
termio / termios क्रमशः पुराने और नए इंटरफेस हैं, जो यूनिक्स पर ट्टी ड्राइवर को नियंत्रित करने के लिए हैं। एक शब्दावली मेंioctl
, आप इनपुट, आउटपुट, कंट्रोल फ्लैग को निर्दिष्ट करते हैं ... यह निर्दिष्ट करते हैं कि एक सीरियल लाइन पर इलेक्ट्रिक सिग्नल को इनपुट और आउटपुट कैरेक्टर में कैसे संभाला जाना है और ड्राइवर के आंतरिक व्यवहार जैसे कि इको, लाइन एडिटर ... उनमें से अधिकांश आधुनिक यूनिक्स वीजीए कंसोल या छद्म टर्मिनलों जैसे आभासी टर्मिनलों पर लागू होते हैं।
कमांड लाइन इंटरफ़ेस termio(s)
हैstty
आदेश।
ऊपरी-मामले टर्मिनलों को संभालने के लिए, तीन termio(s)
झंडे शामिल हैं:
IUCLC
(इनपुट अपर केस टू लोअर केस): इनपुट के समय आने वाले वर्ण निचले मामले में परिवर्तित हो जाते हैं। इसका मतलब A
है कि टर्मिनल द्वारा भेजा गया एक माना जाता है a
। इसका मतलब है कि यह है कि इस पर साथ, मैं अब टाइप कर सकते हैं LS
मेरी VT50 पर, और खोल पढ़ा जाएगा ls
से /dev/ttyX
। मैं अब stty
कमांड भी चला सकता हूं ।
- अब,
IUCLC
अकेले और टर्मिनल के साथ echo
, जबकि मैं टाइप करता हूं LS
, तो चालक ls
टर्मिनल पर वापस भेज देगा (इसलिए मैं देख सकता हूं कि मैं क्या टाइप करता हूं) जिसे वह प्रदर्शित नहीं कर सकता है, इसलिए हमें भी आवश्यकता हैOLCUC
(आउटपुट लोअर केस टू अपर केस) की आवश्यकता है, हमें टर्मिनल पर भेजने से पहले किसी भी निचले मामले के पत्र को अपरकेस में बदलने की आवश्यकता है।
- अब, हम यूनिक्स को VT50 से संचालित कर सकते हैं, लेकिन क्या होगा अगर हम ऊपरी केस के पात्रों को इनपुट करना चाहते हैं? यही कारण है कि
xcase
स्थानीय ध्वज अंदर आता है। यह अनुमति देता है (केवल विहित इनपुट मोड में) A
टाइप करके एक ऊपरी मामला भेज रहा है \A
, और आउटपुट पर, एक ऊपरी मामले के A
रूप में प्रस्तुत किया गया है \A
। (यह एक लिनक्स पर लागू नहीं है)
stty
आदेश इसी है iuclc
, olcuc
और xcase
: सेटिंग्स और सभी तीन के लिए उपनाम lcase
। डिफ़ॉल्ट सेटिंग और उसके बाद आपको क्या मिलता stty sane
है lcase
।
इसलिए, जब आप वीटी 50 पर होते हैं, तो आपको बस इतना करना होता है:
stty lcase
कुछ भी करने में सक्षम होने के लिए। लेकिन पकड़ो, तुम कैसे करते हो जब तुम केवल बड़े अक्षर भेज सकते हो? यहीं आपको STTY
एक उपनाम के रूप में एक कमांड की आवश्यकता होती है stty
, और यही कारण stty
है LCASE
कि इसके लिए एक उपनाम के रूप में समर्थन करता हैlcase
।
ऐसा कोई SANE
अन्य उपनाम नहीं है क्योंकि आप ऐसा नहीं करना चाहते हैंstty sane
तब जब आपका टर्मिनल ऑल-अपरकेस हो।
यदि आप एक सामान्य टर्मिनल पर stty lcase
या stty olcuc
गलती से चलाते हैं (इसे xterm
या किसी भी आधुनिक टर्मिनल में देखें), तो वहीं आपको stty sane
सामान्य स्थिति में आने के लिए प्रवेश करना होगा। लेकिन उसके लिए आपको STTY
कमांड की जरूरत नहीं है। आप लिखते हैं, तो stty sane
, आप होगा देखें STTY SANE
वापस गूँजती है, लेकिन यह केवल प्रदर्शित पाठ (नहीं दर्ज की गई कमांड) कि अनुवाद किया गया है जाएगा, यह अभी भीstty sane
आदेश है कि चलाया जाएगा।
उन iuclc
, olcuc
, xcase
झंडे POSIX द्वारा निर्दिष्ट किया जाता था (और है कि शायद कारण है कि यह लिनक्स पर कार्यान्वित किया जाता है है, भले ही मैं गंभीरता से शक किसी को भी कभी भी एक Linux सिस्टम के लिए उन पुराने टर्मिनल (मनोरंजन के लिए के अलावा अन्य) के किसी भी जुड़ा हुआ है), लेकिन में हटा दिया गया है POSIX: 2001।