बहुत सारी जगहों पर, निर्भर करता है
आभासी टर्मिनलों और वास्तविक टर्मिनलों पर, TERMपर्यावरण चर को उस प्रोग्राम द्वारा सेट किया जाता है जिसे चेन करते हैं login, और एक बार लॉग ऑन करने के बाद इंटरैक्टिव शेल के साथ-साथ सभी तरह से विरासत में मिला है। जहां, ठीक है, यह सिस्टम से सिस्टम में भिन्न होता है, और टर्मिनल के प्रकार के अनुसार।
तार के दूसरे छोर पर क्या है, इसके अनुसार रियल, सीरियल, टर्मिनल प्रकार में भिन्न हो सकते हैं। इसलिए पारंपरिक रूप से gettyकार्यक्रम को एक तर्क के साथ लागू किया जाता है जो टर्मिनल प्रकार को निर्दिष्ट करता है, या TERMसेवा प्रबंधक के सेवा कॉन्फ़िगरेशन डेटा से प्रोग्राम को पारित किया जाता है ।
कर्नेल वर्चुअल टर्मिनल, जैसा कि आपने नोट किया है, एक निश्चित प्रकार है। NetBSD के विपरीत, जो कि कर्नेल वर्चुअल टर्मिनल प्रकार को फ़्लाय, लिनक्स पर अलग-अलग कर सकता है और अन्य BSD में कर्नेल के अंतर्निहित टर्मिनल इम्यूलेशन प्रोग्राम में लागू एक एकल टर्मिनल टर्मिनल होता है। लिनक्स पर, वह प्रकार linuxटर्मोफ डेटाबेस से मेल खाता है। (FreeBSD के कर्नेल टर्मिनल इम्यूलेशन xtermसंस्करण 9 से एक सीमित उपसमूह है।)
- सिस्टम पर
mingettyया vc-get-tty(नोश पैकेज से) प्रोग्राम "जानता है" कि यह केवल एक वर्चुअल टर्मिनल से बात कर सकता है, और वे प्रोग्राम के लिए संकलित ऑपरेटिंग सिस्टम के लिए उपयुक्त "ज्ञात" वर्चुअल टर्मिनल प्रकारों को हार्डवेअर करते हैं।
- सिस्टमड सिस्टम पर, कोई इसे
/usr/lib/systemd/system/getty@.serviceयूनिट फाइल ( /lib/systemd/system/getty@.serviceअन-मर्ज किए गए सिस्टम पर) में देख सकता है, जो पढ़ता हैपर्यावरण = अवधि = linux
वातावरण में TERMचर सेट करने के लिए पारित कर दिया agetty।
कर्नेल वर्चुअल टर्मिनलों के लिए, कोई टर्मिनल प्रकार नहीं बदलता है। कर्नेल में टर्मिनल एमुलेटर प्रोग्राम बिल्कुल नहीं बदलता है। यह है गलत प्रकार बदलने के लिए। विशेष रूप से, यह कर्सर / संपादन कुंजी CSI अनुक्रम मान्यता को पेंच करेगा। linuxलिनक्स कर्नेल टर्मिनल एमुलेटर द्वारा भेजे गए सीएसआई दृश्यों को अलग हैं xtermया vt100दिसम्बर वीटी मोड में जीयूआई टर्मिनल एमुलेटर प्रोग्राम द्वारा भेजा सीएसआई दृश्यों।
आपका GUI टर्मिनल एमुलेटर कई कार्यक्रमों में से एक है, SSH d tomon से screen, कि छद्म टर्मिनलों का उपयोग करता है। टर्मिनल प्रकार क्या निर्भर करता है, जो छद्म टर्मिनल के मास्टर साइड पर टर्मिनल एमुलेटर प्रोग्राम चल रहा है, और यह कैसे कॉन्फ़िगर किया गया है। अधिकांश GUI टर्मिनल एमुलेटर एक TERMचर के साथ दास पक्ष पर कार्यक्रम शुरू करेंगे, जिसका मूल्य मास्टर साइड पर उनके टर्मिनल इम्यूलेशन से मेल खाता है। एसएसएच सर्वर जैसे कार्यक्रम कनेक्शन के क्लाइंट छोर पर मौजूद टर्मिनल प्रकार को "पास" करने का प्रयास करेंगे। आमतौर पर टर्मिनल एमुलेशन के बीच चयन करने के लिए कुछ मेनू या कॉन्फ़िगरेशन विकल्प होता है।
पकडने वाला हाथ
रंग क्षमता का पता लगाने का सही तरीका आपकी स्क्रिप्ट में टर्मिनल प्रकारों की एक सूची को हार्डवेअर करना नहीं है। रंग का समर्थन करने वाले बहुत सारे टर्मिनल प्रकार हैं।
सही तरीका यह है कि आपके टर्मिनल प्रकार के बारे में क्या कहा जाता है।
रंग = 0
यदि tput सह> / dev / null 2> & 1 है
फिर
परीक्षण "` tput Co` "-gt 2 && रंग = 1
elif tput रंग> / देव / अशक्त 2> & 1
फिर
परीक्षण "` tput रंग '"-gt 2 और& रंग = 1
फाई
आगे की पढाई
- जोनाथन डी बॉयने पोलार्ड (2018)।
TERM। nosh गाइड । सॉफ्टवेयर्स।