Mac की कमांड लाइन लिनक्स से कैसे तुलना करती है?


30

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

यह जानते हुए कि मैक यूनिक्स पर बनाया गया है, मुझे आश्चर्य होता है कि क्या यह उनके बीच का मधुर स्थान है। लेकिन मुझे आश्चर्य है: मैक की लाइन लिनक्स के बैश के समान कैसे है ? क्या मैं विम और बैश स्क्रिप्टिंग और गिट आदि का उपयोग करके सही उठा सकता हूं? क्या सामान्य आदेशों की तरह निर्देशिकाओं को बदलना अलग होगा? क्या कोई ऑनलाइन "तुलना और विपरीत" संसाधन जानता है?


जवाबों:


11

बैश बैश है इसलिए शेल और इसके बिल्ट-इन समान हैं। लेकिन इस बात से अवगत रहें कि कुछ उपकरणों का व्यवहार जैसे psया headविवरण में भिन्न हो सकता है इस प्रकार आपकी स्क्रिप्ट विफल हो सकती है।


5
ध्यान रखें कि यह एक मैक बनाम लिनक्स समस्या इतनी अधिक नहीं है, बल्कि यूनिक्स के विभिन्न स्वादों से चीजों को थोड़ा अलग समस्या है। आपको लिनक्स और (उदाहरण के लिए, एचपी-यूएक्स) के बीच समान (वास्तव में अधिक अंतर) मिलेगा।
कीथबी

2
आप linux और OSX के पार gnu binutils toolset पर मानकीकृत कर सकते हैं। Macports और homebrew दोनों OSX पर इंस्टॉल होंगे। यह कम से कम चीजों का मानकीकरण करेगा जैसे कि ls / tar / etc। ps अभी भी OS निर्भर है।
स्कारफेस

भी file: file -iलिनक्स पर जबकि file -Iऑक्स ☹️ में
एंथनी काँग

30

मैक ओएस एक्स एक यूनिक्स ओएस है और इसकी कमांड लाइन ९९.९% किसी भी लिनक्स वितरण के समान है। bashआपका डिफ़ॉल्ट शेल है और आप सभी समान कार्यक्रमों और उपयोगिताओं को संकलित कर सकते हैं। कोई उल्लेखनीय अंतर नहीं है। आप MacPorts जैसे विभिन्न प्रोजेक्ट भी पा सकते हैं जो मैक के लिए पैकेज प्रबंधन प्रदान करते हैं।


1
+1: उपरोक्त सत्य है। जब मौसम संकलन या पूर्व-निर्मित पैकेजों का उपयोग करने की बात आती है, तो आपको ध्यान में रखना होगा कि आपका मैक एक इंटेल या पावरपीसी प्रोसेसर का उपयोग करता है, मुझे लगता है कि नए मैक केवल इंटेल हैं लेकिन मैं गलत हो सकता हूं। typo @ w0rm: पैकेज * प्रबंधन। :-)
Sirex

2
यद्यपि आपकी स्क्रिप्ट संभवतः मैक और लिनक्स दोनों के लिए काम करेगी, लेकिन दोनों प्लेटफार्मों पर उन्हें परीक्षण करना हमेशा बुद्धिमान होता है। मैंने लिनक्स वितरण के बीच और यहां तक ​​कि एक ही लिनक्स संस्करण के विभिन्न संस्करणों के बीच काफी कुछ (सूक्ष्म) अंतर देखा है।
रोलेट

1
सटीक होने के लिए शुल्क।
अंजीर

6
@digit, बीएसडी संस्करण होना चाहिए जो वे चार्ज करते हैं? s / F / Fr /;)
जॉन टी

18
99.9% सही नहीं है। ओएस एक्स एक बीएसडी संस्करण है और इसमें जीएनयू उपयोगिताओं नहीं है। आप हमेशा उन्हें स्थापित कर सकते हैं लेकिन बहुत सारे कमांड में अलग-अलग विकल्प होते हैं। यह यूनिक्स है, लेकिन लिनक्स नहीं है।
माटेयो

12

यह बहुत समान है, लेकिन अगर आप किसी भी बीएसडी बनाम लिनक्स अंतर के बारे में जानते हैं, तो मैक से बीएसडी व्यवहार की अपेक्षा करें।


दिलचस्प। क्या आप उस पर और अधिक विस्तार कर सकते हैं? ऐसा क्यों है?
fat_mike

@fat_milke क्योंकि OSX BSD उपयोगिताओं का उपयोग करता है न कि GNU का उपयोग करता है जिसे Linix उपयोग करता है
user151019

b / c Mac OSX एक * nix कर्नेल (BSD पर आधारित NeXTSTEP) है जो लिनक्स से पहले Unix की शाखा से निकला है। इस प्रकार, उन्होंने कुछ बर्तनों के w / थोड़ा अलग कार्यान्वयन को समाप्त कर दिया। En.wikipedia.org/wiki/MacOS
नीत्शे


9

एक दो बातें - यह वास्तव में आप कमांड लाइन द्वारा क्या मतलब पर निर्भर करता है।

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

आप वास्तव में इस से टकरा सकते हैं - / बिन / बैश एक मैक पर 3.x को लाइसेंसिंग कारणों से पिन किया जाता है। यदि आपको 4 या 5 भी उपयोग किए जाते हैं, तो आपको मामूली संगतता समस्याएं मिल सकती हैं।

  1. bash अपने आप में 'कमांड लाइन' का एक छोटा उपसमूह है। उपयोगी होने के लिए आप आमतौर पर कुछ अन्य सामान्य UNIX उपयोगिताओं जैसे कि awk, या ls, या कट का उपयोग करते हैं। अपने इतिहास (क्योंकि यह BSD, लिनक्स या SystemV से नहीं उतरा है) के कारण, यूटिलिटीज के मैक संस्करण उन लोगों की तुलना में अलग होंगे जो आपके लिनक्स (उर्फ जीएनयू संस्करण) पर उपयोग किए जाते हैं। इनमें कम से कम कुछ ध्वज अंतर होंगे, और लिनक्स की तुलना में कुछ आउटपुट और कार्यक्षमता अंतर होंगे। इनका उपयोग करने वाले लिपियों को क्षतिपूर्ति करने के लिए बदलना होगा। BSD awk बनाम GNU gawk बहुत अलग है। या, आप इन GNU संस्करणों को macports या घर के काढ़े से प्राप्त कर सकते हैं, और अपने PATH को सेट कर सकते हैं ताकि ये डिफॉल्ट (संस्करणों में निर्मित) हों।

  2. MacOS X में कुछ नए कूल टूल्स भी हैं। openअच्छा है, यह वस्तु को खोल देगा जैसे कि आपने इसे डबल क्लिक किया है। defaultsआपको कुछ वरीयताओं को सेट करने की अनुमति देता है, कुछ जीयूआई वरीयताओं के पैनल में भी नहीं। textutilउपयोगी हो सकता है और sayमजेदार हो सकता है।


3

मैक और लिनक्स पर कमांड लाइन की कार्यक्षमता वास्तव में ओएस एक्स के समान है जो जीयूआई के नीचे यूनिक्स (जिसे डार्विन कहा जाता है) का स्वाद है जो आप देखते हैं।

ओएस एक्स पर डिफ़ॉल्ट शेल बैश है, इसलिए यदि आप इससे परिचित हैं तो आप अच्छी तरह से समायोजित कर लेंगे।

एक मैक पर, डिफ़ॉल्ट कमांड लाइन एप्लिकेशन टर्मिनल है। वहाँ कई अन्य एमुलेटर भी हैं, लेकिन समग्र टर्मिनल आपको लिनक्स में उपयोग किए जाने वाले शेल को एक समान रूप प्रदान करता है।

हालांकि मतभेदों के प्राथमिक स्रोत हैं:

  • कई बार अलग-अलग कमांड लाइन तर्क ( duउदाहरण के लिए देखें )। प्राथमिक कमांड जैसे cdया lsआदि समान हैं।
  • OS X के कुछ और हिस्से हैं जिन्हें हाथ से संपादित नहीं किया जाना चाहिए जैसा कि आप लिनक्स में कर सकते हैं। यह अपने आप में एक विषय है, लेकिन बस इस बात से अवगत रहें कि मैक चलाना वास्तव में कॉन्फ़िगरेशन और रखरखाव के संदर्भ में लिनक्स बॉक्स चलाने जैसा नहीं है।

कहा जा रहा है कि OS X में कमांड लाइन से बहुत सारे अच्छे हैक उपलब्ध हैं (जैसे opencommnand)। अधिक जानकारी के साथ पिछले थ्रेड और ब्लॉग पोस्ट के बहुत सारे हैं।

आप MacPorts, Fink या OS X के लिए कुछ अन्य पैकेज प्रबंधन प्रणालियों के माध्यम से ओपनसोर्स पैकेज (यानी git, hgइत्यादि) के एक समूह पर भी अपना हाथ प्राप्त कर सकते हैं । आप आवश्यक रूप से सिस्टम जैसे UNIX / Linux के लिए इच्छित अन्य स्रोत पैकेज भी बना सकते हैं। ।


0

यहाँ एक अंतर है। इस कमांड को Mac और Linux bash शेल दोनों में आज़माएँ

find /etc -name "*.conf"

मैक कुछ भी प्रदर्शित नहीं करता है, भले ही अंदर / .conf फ़ाइल बहुत हैं / आदि।


1
शायद आप लोगों को बता सकें कि ऐसा क्यों है।
मैड्स

1
यकीन नहीं होता, शायद POSIX में पाथने के विस्तार के साथ ऐसा हो गया है। यह कमांड काम करता है find /etc/* -name "*.conf"। फिर भी, कि MAC कमांड लाइन को LINUX कमांड लाइन के विपरीत एक उदाहरण के रूप में प्रदान किया गया था। -Ve वोट का कारण नहीं बन सकता।
एंटनी थॉमस

4
ऐसा इसलिए है क्योंकि OSX पर / etc एक प्रतीकात्मक लिंक है। यदि आप कोशिश find /etc/ -name "*.conf"करते हैं कि यह इंगित करता है / आदि एक फ़ाइल के बजाय एक निर्देशिका है। क्या findलिनक्स डिफ़ॉल्ट रूप से निर्देशिकाओं के लिए प्रतीकात्मक लिंक का इलाज करता है?
१०
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.