मेरे पास कमांड फाइलों के साथ छह निर्देशिकाएं हैं। ये हैं /bin
, /sbin
, /usr/bin
, /usr/sbin
, /usr/local/bin
और /usr/local/sbin
।
इनमें क्या अंतर हैं? अगर मैं अपनी स्क्रिप्ट लिख रहा हूं, तो मुझे उन्हें कहां जोड़ना चाहिए?
सम्बंधित:
मेरे पास कमांड फाइलों के साथ छह निर्देशिकाएं हैं। ये हैं /bin
, /sbin
, /usr/bin
, /usr/sbin
, /usr/local/bin
और /usr/local/sbin
।
इनमें क्या अंतर हैं? अगर मैं अपनी स्क्रिप्ट लिख रहा हूं, तो मुझे उन्हें कहां जोड़ना चाहिए?
सम्बंधित:
जवाबों:
कृपया इसके लिए लिनक्स के लिए फाइलसिस्टम पदानुक्रम मानक (FHS) देखें ।
/bin
: /usr
विभाजन माउंट होने से पहले प्रयोग करने योग्य बायनेरिज़ के लिए । इसका उपयोग बहुत प्रारंभिक बूट चरण में उपयोग किए जाने वाले तुच्छ बायनेरिज़ के लिए किया जाता है या जिन्हें आपको सिंगल-यूज़र मोड में बूट करने के लिए उपलब्ध होना चाहिए। जैसे बाइनरी के बारे में सोचो cat
, ls
आदि
/sbin
: वही, लेकिन सुपरसियर (रूट) विशेषाधिकारों के साथ बायनेरिज़ के लिए आवश्यक ।
/usr/bin
: पहले के समान, लेकिन सामान्य सिस्टम-वाइड बायनेरिज़ के लिए ।
/usr/sbin
: ऊपर के समान, लेकिन आवश्यक सुपरसुसर (रूट) विशेषाधिकारों के साथ बायनेरिज़ के लिए।
अगर मैं अपनी स्क्रिप्ट लिख रहा हूं, तो मुझे इनको कहां जोड़ना चाहिए?
इनमे से कोई भी नहीं। आपको सिस्टम-वाइड उपलब्ध स्क्रिप्ट का उपयोग करना चाहिए /usr/local/bin
या करना चाहिए /usr/local/sbin
। local
पथ मतलब है कि यह प्रणाली पैकेज (यह वह जगह है द्वारा प्रबंधित नहीं कर रहा है एक त्रुटि Debian / Ubuntu के पैकेज के लिए)।
के लिए उपयोगकर्ता-स्कोप लिपियों , का उपयोग ~/bin
(अपने घर निर्देशिका में एक व्यक्तिगत बिन फ़ोल्डर)।
FHS कहता है /usr/local
:
स्थानीय डेटा के लिए तृतीयक पदानुक्रम, इस होस्ट के लिए विशिष्ट है । आमतौर पर आगे उपनिर्देशिका, जैसे, है
bin/
,lib/
,share/
।
/bin
किसी समस्या के कारण स्क्रिप्ट रखना ? मैंने आपके उत्तर के अनुसार अपनी स्क्रिप्ट को स्थानांतरित कर दिया है लेकिन मैं अभी भी उत्सुक हूं
Severity:Serious Certainty:Certain
ls -la
कुछ भी नहीं दिखाता है
मैंने एक साल पहले खुद से इसी तरह का सवाल किया था: मेरी बैश स्क्रिप्ट लगाने के लिए सर्वश्रेष्ठ निर्देशिका?
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 में / home / username / bin कैसे जोड़ें?
मैं उबंटू में अपनी कुछ और जटिल बैश स्क्रिप्ट लेने और उन्हें स्थापित स्क्रिप्ट के साथ स्थापित करने पर विचार कर रहा हूं github
। यहाँ कुछ उदाहरण हैं:
मुझे लगता है कि स्क्रिप्ट को /usr/bin
$ PATH में स्थापित किया जाना चाहिए , लेकिन मैं अभी तक उपयुक्त जगह पर सुनिश्चित नहीं हूं।
man hier
अनुभाग है जिस पर gertvdijk का जवाब पता नहीं था। यानी आप कमांड लाइन में निर्देशिका पदानुक्रमित संरचना प्राप्त कर सकते हैं, बिना इसे वेब पर पढ़ने के लिए (यानी यहां)।
man hier
IMO का एक सूचनात्मक अपर्याप्त अंश है) का उल्लेख किया है । हालाँकि, यह मेरी निजी राय हो सकती है।
/usr/X11R6/bin
और /usr/local/bin
जो इसमें शामिल है man heir
।
/usr/local/bin
जब से तुम पैकेज मैनेजर नहीं हो?