7.7. बैश शैल स्टार्टअप फ़ाइलें
शैल प्रोग्राम / बिन / बैश (इसके बाद इसे "शेल" के रूप में संदर्भित किया गया है) चलाने के लिए एक वातावरण बनाने में मदद करने के लिए स्टार्टअप फ़ाइलों के संग्रह का उपयोग करता है। प्रत्येक फ़ाइल का एक विशिष्ट उपयोग होता है और लॉगिन और इंटरैक्टिव वातावरण को अलग तरह से प्रभावित कर सकता है। में फ़ाइलें /आदि निर्देशिका वैश्विक सेटिंग्स प्रदान करती है। यदि होम निर्देशिका में समकक्ष फ़ाइल मौजूद है, तो यह वैश्विक सेटिंग्स को ओवरराइड कर सकती है।
एक सफल लॉगिन के बाद एक इंटरैक्टिव लॉगिन शेल शुरू किया जाता है /बिन/लॉगिन, पढ़कर / Etc / पासवर्ड फ़ाइल। एक इंटरैक्टिव नॉन-लॉगिन शेल कमांड-लाइन पर शुरू किया गया है (उदाहरण के लिए, [संकेत]$/ बिन / बैश). जब कोई शेल स्क्रिप्ट चल रही होती है तो एक गैर-इंटरैक्टिव शेल आमतौर पर मौजूद होता है। यह गैर-इंटरैक्टिव है क्योंकि यह एक स्क्रिप्ट को संसाधित कर रहा है और कमांड के बीच उपयोगकर्ता इनपुट की प्रतीक्षा नहीं कर रहा है।
अधिक जानकारी के लिए देखें जानकारी बैश नीचे बैश स्टार्टअप फ़ाइलें और इंटरैक्टिव शैल अनुभाग।
फ़ाइलें / Etc / प्रोफ़ाइल और ~ / .bash_profile जब शेल को एक इंटरैक्टिव लॉगिन शेल के रूप में लागू किया जाता है तो पढ़ा जाता है।
आधार / Etc / प्रोफ़ाइल नीचे मूल भाषा समर्थन के लिए आवश्यक कुछ पर्यावरण चर सेट किए गए हैं। उन्हें ठीक से सेट करने पर परिणाम मिलता है:
• मूल भाषा में अनुवादित कार्यक्रमों का आउटपुट
• अक्षरों, अंकों और अन्य वर्गों में वर्णों का सही वर्गीकरण। इसके लिए ये जरूरी है खूब जोर से पीटना गैर-अंग्रेजी स्थानों में कमांड लाइन में गैर-ASCII वर्णों को ठीक से स्वीकार करने के लिए
• देश के लिए सही वर्णमाला क्रम
• उपयुक्त डिफ़ॉल्ट कागज़ का आकार
• मौद्रिक, समय और दिनांक मानों का सही स्वरूपण
बदलें वांछित भाषा के लिए दो-अक्षर कोड के साथ नीचे (उदाहरण के लिए, "एन") और उपयुक्त देश के लिए दो अक्षर वाले कोड के साथ (उदाहरण के लिए, "जीबी")। आपके चुने हुए स्थान के लिए कैनोनिकल चार्मैप से प्रतिस्थापित किया जाना चाहिए। वैकल्पिक संशोधक जैसे "@यूरो" भी मौजूद हो सकते हैं।
Glibc द्वारा समर्थित सभी स्थानों की सूची निम्नलिखित कमांड चलाकर प्राप्त की जा सकती है:
लोकेल-ए
लोकेल-ए
चार्मैप में कई उपनाम हो सकते हैं, उदाहरण के लिए, "ISO-8859-1" को "iso8859-1" और "iso88591" भी कहा जाता है। कुछ एप्लिकेशन विभिन्न समानार्थक शब्दों को सही ढंग से संभाल नहीं सकते हैं (उदाहरण के लिए, आवश्यक है कि "UTF-8" को "UTF-8" के रूप में लिखा जाए, न कि "utf8"), इसलिए अधिकांश मामलों में किसी विशेष स्थान के लिए विहित नाम चुनना सबसे सुरक्षित है। विहित नाम निर्धारित करने के लिए, निम्नलिखित कमांड चलाएँ, जहाँ द्वारा दिया गया आउटपुट है लोकेल-ए आपके पसंदीदा स्थान के लिए (हमारे उदाहरण में "en_GB.iso88591")।
LC_ALL = स्थानीय आकर्षण
LC_ALL = स्थानीय आकर्षण
"en_GB.iso88591" लोकेल के लिए, उपरोक्त कमांड प्रिंट होगा:
आईएसओ 8859-1
आईएसओ 8859-1
इसके परिणामस्वरूप "en_GB.ISO-8859-1" की अंतिम लोकेल सेटिंग प्राप्त होती है। यह महत्वपूर्ण है कि उपरोक्त अनुमान का उपयोग करके पाए गए स्थान को बैश स्टार्टअप फ़ाइलों में जोड़ने से पहले परीक्षण किया जाए:
LC_ALL= स्थानीय भाषा LC_ALL= लोकेल चार्मैप LC_ALL= स्थान int_curr_symbol LC_ALL= स्थान int_prefix
LC_ALL= स्थानीय भाषा LC_ALL= लोकेल चार्मैप LC_ALL= स्थान int_curr_symbol LC_ALL= स्थान int_prefix
उपरोक्त आदेशों में भाषा का नाम, स्थान द्वारा प्रयुक्त वर्ण एन्कोडिंग, स्थानीय मुद्रा और देश में प्रवेश करने के लिए टेलीफोन नंबर से पहले डायल करने के लिए उपसर्ग को प्रिंट करना चाहिए। यदि उपरोक्त में से कोई भी आदेश नीचे दिखाए गए संदेश के समान विफल हो जाता है, तो इसका मतलब है कि आपका लोकेल या तो अध्याय 6 में स्थापित नहीं था या Glibc की डिफ़ॉल्ट स्थापना द्वारा समर्थित नहीं है।
स्थान: LC_* को डिफ़ॉल्ट स्थान पर सेट नहीं किया जा सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं
स्थान: LC_* को डिफ़ॉल्ट स्थान पर सेट नहीं किया जा सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं
यदि ऐसा होता है, तो आपको या तो इसका उपयोग करके वांछित लोकेल स्थापित करना चाहिए localedef आदेश दें, या कोई भिन्न स्थान चुनने पर विचार करें। आगे के निर्देश मानते हैं कि Glibc से ऐसे कोई त्रुटि संदेश नहीं हैं।
एलएफएस से परे कुछ पैकेजों में आपके चुने हुए स्थान के लिए समर्थन की कमी भी हो सकती है। एक उदाहरण एक्स लाइब्रेरी (एक्स विंडो सिस्टम का हिस्सा) है, जो निम्न त्रुटि संदेश आउटपुट करता है यदि स्थान इसकी आंतरिक फ़ाइलों में वर्ण मानचित्र नामों में से किसी एक से बिल्कुल मेल नहीं खाता है:
चेतावनी: लोकेल Xlib द्वारा समर्थित नहीं है, लोकेल C पर सेट है
चेतावनी: लोकेल Xlib द्वारा समर्थित नहीं है, लोकेल C पर सेट है
कई मामलों में एक्सलिब उम्मीद करता है कि चरित्र मानचित्र को कैनोनिकल डैश के साथ अपरकेस नोटेशन में सूचीबद्ध किया जाएगा। उदाहरण के लिए, "iso8859" के बजाय "ISO-1-88591"। स्थानीय विनिर्देश के चार्मैप भाग को हटाकर एक उपयुक्त विनिर्देश खोजना भी संभव है। इसे चलाकर जांचा जा सकता है स्थानीय आकर्षण दोनों स्थानों पर कमांड। उदाहरण के लिए, इस स्थान को Xlib द्वारा मान्यता प्राप्त करने के लिए किसी को "de_DE.ISO-8859-15@euro" को "de_DE@euro" में बदलना होगा।
यदि स्थानीय नाम उनकी अपेक्षाओं को पूरा नहीं करता है तो अन्य पैकेज भी गलत तरीके से काम कर सकते हैं (लेकिन जरूरी नहीं कि कोई त्रुटि संदेश प्रदर्शित हो)। उन मामलों में, अन्य लिनक्स वितरण आपके लोकेल का समर्थन कैसे करते हैं, इसकी जांच से कुछ उपयोगी जानकारी मिल सकती है।
एक बार उचित स्थान सेटिंग्स निर्धारित हो जाने के बाद, बनाएं / Etc / प्रोफ़ाइल फ़ाइल:
बिल्ली > /आदि/प्रोफ़ाइल << "ईओएफ"
# आरंभ /आदि/प्रोफ़ाइल
निर्यात LANG=_ . <@संशोधक>
# अंत /आदि/प्रोफ़ाइल
EOF
बिल्ली > /आदि/प्रोफ़ाइल << "ईओएफ"
# आरंभ /आदि/प्रोफ़ाइल
निर्यात LANG=_ . <@संशोधक>
# अंत /आदि/प्रोफ़ाइल
EOF
"C" (डिफ़ॉल्ट) और "en_US" (संयुक्त राज्य अमेरिका के अंग्रेजी उपयोगकर्ताओं के लिए अनुशंसित) स्थान अलग-अलग हैं। "सी" यूएस-एएससीआईआई 7-बिट वर्ण सेट का उपयोग करता है, और उच्च बिट सेट वाले बाइट्स को अमान्य वर्ण मानता है। इसीलिए, उदाहरणार्थ, द ls कमांड उन्हें उस स्थान पर प्रश्न चिह्न से प्रतिस्थापित कर देता है। साथ ही, मट या पाइन से ऐसे पात्रों के साथ मेल भेजने का प्रयास करने पर गैर-आरएफसी-अनुरूप संदेश भेजे जाते हैं (आउटगोइंग मेल में वर्णसेट को "अज्ञात 8-बिट" के रूप में दर्शाया गया है)। इसलिए आप "सी" लोकेल का उपयोग केवल तभी कर सकते हैं जब आप आश्वस्त हों कि आपको कभी भी 8-बिट वर्णों की आवश्यकता नहीं होगी।
UTF-8 आधारित स्थान कुछ प्रोग्रामों द्वारा अच्छी तरह से समर्थित नहीं हैं। दस्तावेज़ बनाने और, यदि संभव हो, तो ऐसी समस्याओं को ठीक करने का कार्य प्रगति पर है, http://www.linuxfromscratch.org/blfs/view/9.0/introduction/locale-issues.html देखें।