PATH में इतने सारे कार्यक्रम क्यों रहते हैं?


10

एक चीज जो मुझे डेस्कटॉप लिनक्स के बारे में बताती है, कम से कम, वह यह है कि मेरे पाथ में बस सब कुछ है। हर चीज से मेरा मतलब है कि हर डेस्कटॉप एप्लिकेशन, जिसमें गनोम-कैरेक्टर-मैप और ग्लॉसी जैसी चीजें शामिल हैं। इनके पास बोलने के लिए कोई कमांड लाइन इंटरफेस नहीं है, इसलिए मैं ऐसे मामले के बारे में नहीं सोच सकता, जहां मैं नियमित रूप से इन्हें टर्मिनल से लॉन्च करूंगा - और उस असंभावित मामले के भीतर, मुझे उनके पूर्ण टाइप करने की आवश्यकता के कारण असुविधा होने की कल्पना नहीं की जा सकती है पथ। यह सिर्फ अव्यवस्था लगती है, लेकिन शायद एक अच्छा कारण है।

तो, ऐसा क्यों होता है? क्या प्रदर्शन या स्थिरता पर कोई उल्लेखनीय प्रभाव है?

जवाबों:


14

उपयोगकर्ता जो भी कमांड चलाना चाहते हैं वे सभी PATH में हैं। बस यही बात है। इसमें वे कमांड्स शामिल हैं जो आप सीधे चलाते हैं, कमांड्स जो अन्य लोग सीधे चलाते हैं, और कमांड्स जो आप या अन्य लोग अप्रत्यक्ष रूप से चलाते हैं क्योंकि वे अन्य कमांडों द्वारा लागू किए जाते हैं। यह टर्मिनल से चलने वाले कमांड तक सीमित नहीं है: GUI से चलने वाले कमांड को कमांड सर्च पथ (फिर से, यही है) में खोजा जाता है।

पूर्ण पथ टाइप करने की आवश्यकता भयानक होगी: आपको यह पता लगाना होगा कि पूर्ण पथ क्या है! आपको यह ट्रैक करने की आवश्यकता होगी कि क्या इसमें /usr/bin(जिसमें ऑपरेटिंग सिस्टम के साथ शिप किए गए अधिकांश प्रोग्राम हैं), या /usr/local/bin(जिसमें व्यवस्थापक द्वारा मैन्युअल रूप से इंस्टॉल किए गए प्रोग्राम हैं, साथ ही ऐसे प्रोग्राम जो कुछ पर कोर ओएस का हिस्सा नहीं हैं। यूनिक्स वेरिएंट), या कुछ अन्य सिस्टम-विशिष्ट निर्देशिका में, या उपयोगकर्ता के होम डायरेक्टरी में कहीं।

"प्रदर्शन या रखरखाव पर प्रभाव" के बारे में जवाब देना मुश्किल है क्योंकि आप यह नहीं कहते कि आप इसकी तुलना क्या कर रहे हैं। यदि आप हर जगह पूर्ण पथ टाइप करने के साथ तुलना कर रहे हैं, तो यह स्थिरता के लिए एक बुरा सपना है: यदि आप कभी भी किसी प्रोग्राम को स्थानांतरित करते हैं, या यदि आप ओएस के साथ आए एक नए संस्करण को स्थापित करना चाहते हैं या सिस्टम प्रशासक द्वारा स्थापित किया गया था, आपको हर जगह उस पूरे रास्ते को बदलना होगा। कुछ निर्देशिकाओं में नाम देखने का प्रदर्शन प्रभाव नगण्य है।

यदि आप विंडोज के साथ तुलना कर रहे हैं, तो यह और भी बुरा है: कुछ प्रोग्राम न केवल निष्पादन योग्य, बल्कि पीएटीएच के लिए सभी प्रकार की बकवास जोड़ते हैं, और आप एक मील-लंबी PATHचर के साथ समाप्त होते हैं जिसमें अभी भी सभी प्रोग्राम शामिल नहीं हैं, क्योंकि जब आप उन्हें स्थापित करते हैं तो कई प्रोग्राम सिस्टम PATH में खुद को नहीं जोड़ते हैं।


यह काफी तर्कसंगत तर्क की तरह दिखता है। विवरण के लिए आपका धन्यवाद! एक कार्यक्रम की जगह के बारे में थोड़ा बहुत समझ में आता है। मैंने उसके बारे में बिल्कुल नहीं सोचा था :) जो हिस्सा मेरे बारे में सोचता है, वह यह है कि जब मैं प्रोग्रामिंग के बारे में सोचता हूं तो मुझे छोटे और वर्णनात्मक नाम स्थान पसंद आते हैं, जबकि यहां सब कुछ एक ही वैश्विक नाम स्थान में है (और, जब हम करते हैं पूर्ण रास्तों को देखें, * / बिन) जैसे काफी नॉनडेस्क्रिप्ट स्थानों में। मुझे लगता है कि वे बहुत अलग चीजें हैं, हालांकि।
डायलन मैक्कल

4

पथ चर में निर्देशिका पथों की एक सूची होती है। जब उपयोगकर्ता पूर्ण पथ प्रदान किए बिना एक कमांड टाइप करता है, तो इस सूची की जांच की जाती है यदि इसमें एक पथ शामिल है जो कमांड की ओर जाता है। इसके बारे में कुछ भी स्वाभाविक रूप से टर्मिनल या कमांड-लाइन विशिष्ट नहीं है।

इसके अलावा इसके बारे में कुछ भी विशिष्ट डेस्कटॉप लिनक्स नहीं है। मेरे XP सिस्टम के PATH में % SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem सम्‍मिलित है, जो संभवतः विंडोज के अधिकांश बायनेरिज़ को कवर करता है।

PATH में निर्देशिकाओं को निर्दिष्ट क्रम में खोजा जाता है और एक मैच मिलते ही रुक जाता है। सिस्टम निर्देशिका आमतौर पर शुरुआत में उन्हें सर्वोच्च वरीयता देने के लिए होती हैं। उपयोगकर्ताओं को अंत में कस्टम खोज पथ जोड़ना चाहिए।

प्रदर्शन के लिए: अधिकांश आधुनिक गोले PATH की सामग्री को कैश करते हैं, इसलिए जब भी उपयोगकर्ता किसी कमांड में प्रवेश करते हैं, तो उन्हें डिस्क को स्कैन नहीं करना पड़ता है।


Windows PATH में Windows के साथ जहाज बनाने वाले अधिकांश बायनेरी शामिल होते हैं, लेकिन आपके द्वारा इंस्टॉल किए गए साधारण एप्लिकेशन आमतौर पर PATH में नहीं मिलते हैं। (ठीक है, एक कमांड-लाइन घटक वाले ऐप खुद को PATH में जोड़ लेंगे, लेकिन GUI-only वाले सामान्य रूप से नहीं करते हैं।)
cjm

कूल, मैंने हमेशा आदेश और इसके महत्व पर विचार किया। अंगूठे के एक नियम के बारे में कैसे? मैं (लगभग) के हर संयोजन है usr, local, bin, और sbin(मेरे उपयोगकर्ता होम निर्देशिका को छोड़कर)।
इमानुएल बर्ग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.