सवाल / बिन, / sbin, / usr / bin, / usr / sbin, / usr / local / bin, / usr / local / sbin के बीच अंतर


मेरे पास कमांड फाइलों के साथ छह निर्देशिकाएं हैं I य़े हैं /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin तथा /usr/local/sbin

इनके बीच मतभेद क्या हैं? अगर मैं अपनी स्क्रिप्ट लिख रहा हूं, तो मुझे उन्हें कहां जोड़ना चाहिए?


सम्बंधित:


223
2018-06-14 07:13


मूल


संबंधित प्रश्न: unix.stackexchange.com/questions/8656/... - Gabriel Staples
@ किलान आपका प्रश्न एक प्रश्न के करीब है जिसे मैंने एक साल पहले पोस्ट किया था: askubuntu.com/questions/830074/... - WinEunuuchs2Unix


जवाब:


कृपया देखें लिनक्स के लिए फाइलसिस्टम पदानुक्रम मानक (एफएचएस) इसके लिए।

  • /bin : इससे पहले उपयोग करने योग्य द्विआधारी के लिए /usr विभाजन घुड़सवार है। इसका उपयोग शुरुआती बूट चरण में उपयोग की जाने वाली छोटी बाइनरी या एकल-उपयोगकर्ता मोड को बूट करने में उपलब्ध होने की आवश्यकता होती है। जैसे बाइनरी के बारे में सोचो cat, ls, आदि।

  • /sbin  : वही, लेकिन साथ द्विआधारी के लिए superuser (रूट) विशेषाधिकारों की आवश्यकता है

  • /usr/bin : पहले के रूप में, लेकिन के लिए सामान्य प्रणाली-व्यापी बाइनरीज़

  • /usr/sbin : उपरोक्त के समान, लेकिन सुपरसियर (रूट) विशेषाधिकारों के साथ द्विआधारी के लिए आवश्यक है।


अगर मैं अपनी खुद की लिपियों को लिख रहा हूं, तो मुझे इन्हें कहां जोड़ना चाहिए?

इनमे से कोई भी नहीं। आपको उपयोग करना चाहिए /usr/local/bin या /usr/local/sbin सिस्टम-व्यापी उपलब्ध स्क्रिप्ट के लिए। local पथ का मतलब है कि यह सिस्टम संकुल द्वारा प्रबंधित नहीं है (यह है एक त्रुटि डेबियन / उबंटू पैकेज के लिए)।

के लिये उपयोगकर्ता-स्कोप्ड स्क्रिप्ट्स, उपयोग ~/bin (आपके घर निर्देशिका में एक व्यक्तिगत बिन फ़ोल्डर)।

एफएचएस के लिए कहते हैं /usr/local:

स्थानीय डेटा के लिए तृतीयक पदानुक्रम, इस मेजबान के लिए विशिष्ट। आमतौर पर और उपनिर्देशिकाएं हैं, उदाहरण के लिए, bin/, lib/, share/


293
2018-06-14 07:17



तो / बिन वह जगह है जहां सभी कोर फाइलें स्थापित हैं। एलएस, बिल्ली, पीडब्ल्यूडी, आदि की तरह? तो, / usr / bin वह है जहां उपयोगकर्ता स्थापित ऐप्स हैं? / usr / bin में क्या होना चाहिए इसके कुछ उदाहरण क्या हैं? - Patoshi パトシ
स्क्रिप्ट रखता है /bin किसी भी समस्या का कारण बनता है? मैंने अपनी लिपियों को आपके उत्तर के अनुसार स्थानांतरित कर दिया है लेकिन मैं अभी भी उत्सुक हूं - Rumesh
@ रुमेश सुधहरन आपको ऐसा नहीं करना चाहिए, क्योंकि यह पैकेज प्रबंधन द्वारा प्रबंधित किया जाता है। यदि कोई अन्य पैकेज भी उस पथ का उपयोग करना चाहता है, तो यह आपकी फ़ाइल को ओवरराइट कर देगा। पैकेज में फ़ाइलें कभी भी ओवरलैप नहीं हो सकती हैं (कम से कम आधिकारिक भंडारों के लिए), इसलिए स्थानीय पथ में इंस्टॉल करते समय आप अधिक सुरक्षित हैं। इसके अलावा, यह सिर्फ आपकी अपनी सुविधा और सुरक्षा के लिए है। स्थानीय पथ में आप इस तरह के खराब तरीके से सिस्टम को गड़बड़ नहीं कर सकते हैं और आप गलती से सिस्टम बाइनरी को प्रतिस्थापित नहीं कर सकते हैं। - gertvdijk
मुझे त्रुटि पृष्ठ पर स्पष्टीकरण पसंद है: Severity:Serious Certainty:Certain - cutrightjm
मैंने कुछ फाइलें / usr / local / bin में रखी हैं और मैं उन्हें निष्पादित कर सकता हूं, हालांकि मैं उन्हें संपादित नहीं कर सकता, ls -la कुछ भी नहीं दिखाता है - M. Reza Nasirloo


मेरे पास एक साल पहले एक समान सवाल था: मेरी बैश स्क्रिप्ट्स रखने के लिए सबसे अच्छी निर्देशिका?

बाइनरी के लिए सिस्टम निर्देशिका

man hier (पदानुक्रम) सभी निर्देशिकाओं को सूचीबद्ध करता है। केवल बाइनरी के लिए उपयोग करने के लिए:

$ man hier | grep -E 'bin$|sbin$|^.{7}(/bin)|^.{7}(/sbin)' -A2

       /bin   This directory contains executable programs which are needed in single user
              mode and to bring the system up or repair it.

--
       /sbin  Like  /bin,  this  directory  holds commands needed to boot the system, but
              which are usually not executed by normal users.

--
       /usr/X11R6/bin
              Binaries  which  belong  to the X-Window system; often, there is a symbolic
              link from the more traditional /usr/bin/X11 to here.
--
       /usr/bin
              This  is the primary directory for executable programs.  Most programs exe‐
              cuted by normal users which are not needed for booting or for repairing the
--
       /usr/local/bin
              Binaries for programs local to the site.

--
       /usr/local/sbin
              Locally installed programs for system administration.

--
       /usr/sbin
              This directory contains program binaries for  system  administration  which
              are  not  essential  for the boot process, for mounting /usr, or for system

अपनी खुद की स्क्रिप्ट कहां रखना है?

सभी उपयोगकर्ताओं के लिए आपकी स्क्रिप्ट तक पहुंचने के लिए आप उन्हें अंदर डाल सकते हैं /usr/local/bin। ध्यान रखें कि आपको चाहिए sudo यहां फ़ाइलों को जोड़ने / बदलने के लिए उपयोग करें। देख: कस्टम लिनक्स स्क्रिप्ट रखने के लिए कोई मानक जगह है?

अपने स्वयं के उपयोगकर्ता आईडी स्क्रिप्ट के लिए उन्हें अंदर डाल दिया /home/YOUR_NAME/bin। ध्यान रखें कि आपको पहले इस निर्देशिका को बनाना होगा और पथ को स्वचालित रूप से सेटअप करने के लिए टर्मिनल को फिर से लॉन्च करना होगा ~/.profile। देख: कैसे / घर / उपयोगकर्ता नाम / बिन $ PATH जोड़ने के लिए?


मुझे क्या पता है मुझे नहीं पता

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

मैं सोच स्क्रिप्ट को स्थापित किया जाना चाहिए /usr/bin जो $ पाथ में है, लेकिन मुझे अभी तक उपयुक्त जगह पर यकीन नहीं है।


3
2018-06-11 23:44



मैं आपके प्रयास की सराहना करता हूं, लेकिन, "जो मुझे पता है मैं नहीं जानता" भाग को छोड़कर, आपने gertvdijk का जवाब दोहराया। - danzel
@ डांज़ेल मुझे लगता है कि मुख्य हिस्सा है man hier अनुभाग जो gertvdijk का जवाब पता नहीं था। यानी आप वेब पर इसे पढ़ने के लिए रिसॉर्ट किए बिना कमांड लाइन में डायरेक्टरी पदानुक्रमित संरचना प्राप्त कर सकते हैं (यानी यहां)। - WinEunuuchs2Unix
यह दिलचस्प जानकारी है, मैं सहमत हूं। लेकिन gertvdijk पहले से ही फाइल सिस्टम पदानुक्रम मानक का उल्लेख किया है (जो man hier आईएमओ का एक सूचनात्मक रूप से अपर्याप्त अंश है)। हालांकि, यह मेरी व्यक्तिगत राय हो सकती है। - danzel
@ डांज़ेल मैं सहमत हूं कि हमारी हार्ड ड्राइव पर क्या है, इसकी तुलना में वेबसाइटों में बहुत अधिक गहन विश्लेषण है। मैं केवल इंटरनेट का उपयोग किये बिना हमारी हार्ड ड्राइव पर जानकारी को इंगित करने की कोशिश कर रहा हूं। उद्धृत विकिपीडिया लिंक के अलावा है लापता  /usr/X11R6/bin तथा /usr/local/bin जिसमें शामिल है man heir। - WinEunuuchs2Unix