GNU कमांड लाइन के बर्तन

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



, सामान्य विकल्प --help - ठीक है, आप आम तौर पर विकसित हुए हैं आदतों। मैं भी ऐसे लोगों से संबंधित हूं, और जब मुझे टर्मिनल.ऐप में दर्जनों कमांड टाइप करने की जरूरत पड़ी, तो 10 मिनट के बाद मैंने अपने सीने के बालों को फाड़ना शुरू कर दिया और घबरा गया और उस आदमी को पढ़ा, जिसने श्रम उत्पादकता में योगदान नहीं दिया।

थोड़ी देर बाद, मैंने सोचा - क्यों, वास्तव में, मैं उपयोगिताओं के GNU संस्करण का उपयोग नहीं कर सकता - सिर्फ इसलिए कि वे सिस्टम के साथ नहीं आते हैं? नहीं, यह कोई UNIX तरीका नहीं है!



खोज के कुछ मिनटों ने मेरे संदेह की पुष्टि की, और जिन उपयोगिताओं की मुझे आवश्यकता थी, वे संस्करण GNU कोरुटिल्स पर पाए गए। अब सवाल था कि उन्हें कैसे स्थापित किया जाए।

सामान्य तौर पर, मेरे पास दो विकल्प थे:



मैंने दूसरी विधि का उपयोग करना पसंद किया, हालाँकि यह हर किसी का निजी व्यवसाय है :-)

इसलिए, MacPort के लिए एक संक्षिप्त इंस्टॉलेशन गाइड आधिकारिक वेबसाइट पर पाया जा सकता है - यह प्रक्रिया बेहद सरल और सीधी है, आपको केवल Apple Developer Tools इंस्टॉल करना होगा (विशेष रूप से xcode)।

MacPort स्थापित होने के बाद, सरलतम स्थिति में, आपको टर्मिनल में केवल एक कमांड निष्पादित करना होगा:
  सूडो पोर्ट कोरुटिल्स स्थापित करते हैं 


सरलतम मामले में क्यों? बात यह है कि मैकपोर्ट डिफ़ॉल्ट रूप से फ़ाइल उपयोगिताओं को अधिलेखित नहीं करता है, और एक अलग नाम के साथ एक अलग निर्देशिका में इसके संस्करण स्थापित करता है:

/ ऑप्ट / स्थानीय / बिन / ls के बजाय / usr / बिन / ls

/ ऑप्ट / स्थानीय / बिन / / के बजाय / usr / बिन / पाते हैं

...


इस समस्या को हल करने के कई तरीके हैं, एक विशिष्ट को चुनना हर किसी का व्यवसाय है; मैं सिर्फ उन्हें सूचीबद्ध करूंगा।

  1. सबसे आसान है with_default_names विकल्प के साथ कोरयूटिल्स स्थापित करना:

      sudo port इंस्टॉल करें coreutils + with_default_names 
    इस स्थिति में, उपयोगिताओं को डिफ़ॉल्ट रूप से अधिलेखित कर दिया जाएगा। मैं इस पद्धति का उपयोग करने की अनुशंसा नहीं करूंगा, क्योंकि सिस्टम पूरी तरह से सराहना नहीं कर सकता है यदि सिस्टम उपयोगिताओं को संगत लोगों के साथ भी बदला जाएगा, लेकिन फिर भी अन्य प्रोग्राम।
  2. दूसरा विकल्प डिफ़ॉल्ट उपयोगिताओं का नाम बदलना है, और नए कार्यक्रमों के लिंक जोड़ना है:
      एमवी / यूएसआर / बिन / एलएस / यूएसआर / बिन / एमएल
     ln / opt / local / bin / gls / usr / bin / ls 
    इस मामले में, उपयोगिताओं का मूल संस्करण उपसर्ग "एम" के साथ नाम से उपलब्ध होगा। इसके अलावा सबसे अच्छा तरीका नहीं है, क्योंकि / usr / bin / ls बिना किसी अपवाद के सभी कार्यक्रमों को उपयोगिता का GNU संस्करण मिलेगा
  3. तीसरी विधि वैचारिक रूप से सबसे अधिक अनुभवी है। यह इस तथ्य में शामिल है कि लिंक "जी" उपसर्ग के बिना बनाए गए हैं, लेकिन /opt/local/bin



      ln / ऑप्ट / लोकल / बिन / gls / ऑप्ट / लोकल / बिन / ls 
    तब आपके स्थानीय ~/.bashrc



    आप अपने पथ में /usr/bin



    लिए यह पथ जोड़ते हैं:
      निर्यात पथ = / ऑप्ट / स्थानीय / बिन: $ पथ 
    वैकल्पिक रूप से, आप एक अलग निर्देशिका में सामान्य रूप से लिंक बना सकते हैं, और $ PATH से पहले इसे लिख सकते हैं। इस मामले में, केवल आप, और केवल अपने पसंदीदा शेल के साथ काम करना (जो, वैसे, मैकपोर्ट से भी स्थापित किया जा सकता है) उपयोगिताओं के GNU संस्करण का उपयोग करेगा। अन्य सभी कार्यक्रम और लोग अपने अस्तित्व के बारे में अनुमान भी नहीं लगाएंगे, और मानक बीएसडी-संगत फ़ाइलटाइल का उपयोग करेंगे।
  4. चौथा विकल्प grubozavr आदमी gribozavr (और मेरे भूरे बालों पर शर्म की बात है कि मैं खुद से पहले इस बारे में नहीं सोचा था) उर्फ ​​बनाने के लिए सलाह दी जाती है:
      उर्फ एलएस = '/ ऑप्ट / स्थानीय / बिन / gls' 
    और इसे अपने ~ / .bashrc में जोड़ें


इस प्रकार, हमें कमांड उपयोगिताओं का एक पूरी तरह से जीएनयू संस्करण मिलता है - जो कि लिनक्सॉयड के लिए बहुत सुविधाजनक होगा, जो ड्यूटी या ईमानदारी से आग्रह के मामले में मैक का उपयोग करते हैं (मैं गर्व से खुद को बाद में रैंक करता हूं)।



All Articles