प्रत्येक लिनक्स आधारित वितरण में कौन से मानक कमांड उपलब्ध हैं?


39

मैं जानना चाहूंगा कि हर लिनक्स सिस्टम में कौन से मानक कमांड उपलब्ध हैं।

उदाहरण के लिए यदि आपको एक डेबियन / ubuntu / redhat / suse / arch / slackware आदि मिलता है, तो आपको हमेशा इस तरह के कमांड मिलेंगे:

cd, mkdir, ls, echo, grep, sed, awk, ping आदि।

मुझे पता है कि उल्लिखित कुछ कमांड शेल-बिल्डिन हैं, लेकिन अन्य नहीं हैं, लेकिन वे अभी भी वहां हैं (मेरे ज्ञान और अनुभव के आधार पर)।

दूसरी ओर, विभिन्न लिनक्स वितरणों में डिफ़ॉल्ट रूप से gawk, parted, traceroute और अन्य काफी प्रसिद्ध कमांड जैसे कमांड इंस्टॉल नहीं किए जाते हैं।

मैंने अलग-अलग वेब खोजें कीं लेकिन मुझे इसका सीधा उत्तर नहीं मिला।

उद्देश्य यह है कि मैं एक शेल स्क्रिप्ट बनाना चाहूंगा और अगर सिस्टम में स्क्रिप्ट का उपयोग किया जाता है, तो यह कुछ पवित्रता जाँचें करना चाहिए। यदि नहीं, तो उपयोगकर्ता को आवश्यक बायनेरिज़ को स्थापित करने के लिए संकेत देना चाहिए।


5
बस एक संकेत: " अगर यह स्क्रिप्ट में उपयोग किए गए कमांड सिस्टम में उपलब्ध है तो कुछ पवित्रता जांच करनी चाहिए " बहुत नारियल की तरह लग रहा है ।
sr_

निश्चित रूप से ऑटो-कॉन्फ़िगरेशन के लिए एक मामला ... या शायद इसके अधिक वैज्ञानिक चचेरे भाई, सिद्धांत का वादा करते हैं
वाइल्डकार्ड

@Wildcard, मेरा मानना ​​है कि किसी भी कॉन्फ़िगरेशन प्रबंधन प्रणाली ऐसे मामले के लिए एक ओवरकिल होगा, जब तक कि आप प्रारंभिक स्थापना के बाद भी सिस्टम की निरंतर जांच और स्वयं-चिकित्सा चाहते हैं।
वैंजेलिस तसोलस

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

1
@Wildcard, जब मैंने यह प्रश्न लिखा था तो मैं बाद के बारे में सोच रहा था: बस एक मशीन में स्थापना के दौरान स्वच्छता जांच चलाना चाहते हैं, ताकि यह सुनिश्चित हो सके कि सॉफ्टवेयर ठीक से चल रहा है। बेशक, यदि आप कई सर्वरों का प्रबंधन करना चाहते हैं और वितरित तैनाती आदि को संभालना चाहते हैं, तो मैं मानता हूं कि कॉन्फ़िगरेशन प्रबंधन लंबे समय तक चलने का तरीका है।
वेंगेलिस तसोलस

जवाबों:


41

दुर्भाग्य से कुछ भी उपलब्ध होने की कोई गारंटी नहीं है।

हालांकि, अधिकांश प्रणालियों में जीएनयू कोरुटिल होंगे । यह अकेले लगभग 105 कमांड प्रदान करता है। आप शायद उन पर भरोसा कर सकते हैं जब तक कि यह एक एम्बेडेड प्रणाली न हो, जो बजाए व्यस्त बॉक्स का उपयोग कर सकते हैं ।

तुम भी पर शायद भरोसा कर सकते हैं bash , क्रॉन , जीएनयू findutils , जीएनयू ग्रेप , gzip , iproute2 , iputils , आदमी-db , मॉड्यूल-init-उपकरण , नेट-उपकरण , पासवर्ड ( पासवर्ड या छाया ), procps , टार , और util- linux

ध्यान दें कि कुछ कार्यक्रमों में वितरण के बीच कुछ अंतर हो सकते हैं। उदाहरण के लिए gawk या mawk/usr/bin/awk हो सकता है । POSIX मोड में डैश या बैश हो सकता है । कुछ पुराने सिस्टम में, BIND संस्करण के समान सिंटैक्स नहीं है , इसलिए खुदाई का उपयोग करना बेहतर हो सकता है ।/bin/sh/usr/bin/host

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

इसके साथ ही, POSIX द्वारा मानकीकृत आदेशों की सूची सहायक हो सकती है।

आपकी समस्या का एक और तरीका प्रत्येक वितरण के पैकेजिंग टूल (जैसे कि Red Hat के लिए RPM, डेबियन के लिए DEB, इत्यादि) का उपयोग करके अपनी स्क्रिप्ट को पैकेज करना है और आपको किसी अन्य प्रोग्राम या पैकेज पर निर्भरता की घोषणा करना है। यह थोड़ा सा काम है, लेकिन इसका मतलब है कि उपयोगकर्ताओं को एक मित्रवत त्रुटि संदेश दिखाई देगा, उन्हें बताएंगे कि न केवल क्या गायब है, बल्कि उन्हें क्या पैकेज स्थापित करने की आवश्यकता है।

और जानकारी:


पैकेज और ऐड-निर्भरता -idea महान है, नीचे Autoconf हाथों में डाइविंग धड़कता है:)
sr_

2
महान जवाब, मैं सब कुछ के साथ सहमत हूँ। मैं एक अतिरिक्त सावधानी कदम जोड़ूंगा: अपने द्वारा उपयोग किए जा रहे कमांड के विशेष संस्करण के अतिरिक्त विशिष्ट विकल्पों को ध्यान में रखें ... वे सभी संस्करणों पर काम नहीं कर सकते हैं (यह एक परियोजना में मैंने काम किया है)।
जोसनोफेरेरा

मुझे नहीं लगता कि इन आदेशों की सूची के साथ कहीं भी एक सादे फ़ाइल है? pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html अपेक्षाकृत आसानी से इसे परिवर्तित किया जा सकता है, लेकिन अभी भी सामान का एक गुच्छा गायब है।
डायलन निकोलसन

7

गैर-एम्बेडेड लिनक्स सिस्टम पर, आप आमतौर पर अधिकांश GNU उपयोगिताओं पर भरोसा कर सकते हैं:

प्लस उपयोग - लिनेक्स सूट और मिक्स सूट । ध्यान दें कि /bin/shहमेशा बैश नहीं होता है, यह कम सुविधाओं के साथ एक शेल हो सकता है जैसे कि राख के कई कांटों में से एक ।

लिनक्स स्टैंडर्ड बेस सुविधाओं है कि सभी अनुरूप सिस्टम पर उम्मीद कर रहे हैं के साथ आम उपयोगिताओं का एक सेट को परिभाषित करता है। आप पोसिक्स द्वारा निर्दिष्ट अधिकांश उपयोगिताओं की भी उम्मीद कर सकते हैं । एक उल्लेखनीय अपवाद है pax, जो कई वितरणों की डिफ़ॉल्ट स्थापना का हिस्सा नहीं है।

यदि आप चीजों को सरल रखना चाहते हैं, तो lsb_releaseपैकेज की स्थापना का अनुरोध करें । कई वितरणों में ऐसा पैकेज होता है जो एलएसबी द्वारा अपेक्षित सभी निर्भरता में खींचता है।

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


6

सभी लिनक्स वितरण नहीं तो सबसे अधिक आदेशों का एक सेट है, और इस मामले के लिए, यूनिक्स वितरण भी प्रदान करेगा। ये POSIX मानक द्वारा निर्दिष्ट अनिवार्य आदेश हैं ।

आदेशों का हवाला देते हैं आप में से अधिकांश ( cd, mkdir, ls, echo, grep, sed, awk, आदि) इसके बारे में कर रहे हैं। pingव्हाइटवॉटरवॉल्फ के रूप में अपवाद को सही टिप्पणी दी गई।


1
दरअसल pingPOSIX का हिस्सा नहीं है ...
व्हाइटवर्थवुल्फ

POSIX होमपेज पर कहा गया है कि वे यह सुनिश्चित करने पर ध्यान केंद्रित "स्रोत कोड के स्तर पर आवेदन पोर्टेबिलिटी" , यानी। मेरी समझ के अनुसार वे सिस्टम एपीआई, सिस्टम (शेल सहित) व्यवहार और आज्ञाओं में रुचि रखते हैं जिनका उपयोग किसी एप्लिकेशन को कॉन्फ़िगर करने, संकलित करने और स्थापित करने और इसके स्रोत कोड को संभालने के लिए किया जा सकता है।
व्हाइटवूडवुल्फ़

वे नेटवर्किंग उपयोगिताओं के बारे में परवाह नहीं है ( "सिस्टम विन्यास और संसाधनों की उपलब्धता" स्पष्ट रूप हैं बाहर के दायरे), जैसे इतना सर्वव्यापी आदेशों ping, ifconfig, telnetबस, आदि इस मानक (और न ही किसी अन्य एक AFAIK का हिस्सा नहीं हैं, वे एक सर्वोत्तम प्रयास के आधार पर "ऐतिहासिक कार्यान्वयन" के साथ संगतता का लक्ष्य रखें )।
व्हाइटवूडवुल्फ़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.