سؤال الاختلافات بين / bin ، / sbin ، / usr / bin ، / usr / sbin ، / usr / local / bin ، / usr / local / sbin


لدي ستة الدلائل مع ملفات الأوامر. هؤلاء هم /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
Keelan سؤالك قريب من سؤال نشرته قبل سنة +: askubuntu.com/questions/830074/... - WinEunuuchs2Unix


الأجوبة:


يرجى الرجوع إلى نظام الملفات التسلسل الهرمي القياسي (FHS) لنظام التشغيل Linux لهذا.

  • /bin : لثنائيات قابلة للاستخدام قبل /usr هو شنت التقسيم. يستخدم هذا للثنائيات البسيطة المستخدمة في مرحلة التمهيد الأولى أو تلك التي تحتاج إلى توفرها في وضع المستخدم المفرد. فكر في الثنائيات مثل cat، lsوما إلى ذلك

  • /sbin  : نفسه ، ولكن مع الثنائيات مع امتيازات مستخدم متميز (الجذر) المطلوبة.

  • /usr/bin : نفس الأول ، ولكن ل ثنائيات عامة على مستوى النظام.

  • /usr/sbin : نفس النحو الوارد أعلاه ، ولكن بالنسبة للثنائيات مع امتيازات المستخدم الخارق (الجذر) المطلوبة.


إذا كنت أكتب نصوصي الخاصة ، فأين يجب أن أضيف هذه؟

لا شيء مما بالأعلى. يجب عليك استخدامها /usr/local/bin أو /usr/local/sbin للنصوص المتوفرة على مستوى النظام. ال local مسار يعني أنها لا تدار من قبل حزم النظام (وهذا هو خطا لحزم دبيان / أوبونتو).

إلى عن على سكربتات المستخدم، استعمال ~/bin (مجلد بن الشخصي في دليل منزلك).

يقول FHS ل /usr/local:

التسلسل الهرمي العالي للبيانات المحلية محددة لهذا المضيف. يحتوي عادةً على أدلة إضافية ، على سبيل المثال ، bin/، lib/، share/.


293
2018-06-14 07:17



لذلك / بن حيث يتم تثبيت كافة الملفات الأساسية. مثل ls، cat، pwd، etc؟ لذا ، / usr / bin هو المكان الذي توجد فيه التطبيقات المثبتة من قبل المستخدم؟ ما بعض الأمثلة لما يجب أن يكون في / usr / bin؟ - Patoshi パトシ
لا وضع البرامج النصية في /bin تسبب أي مشاكل؟ لقد نقلت نصوصي وفقًا لإجابتك ولكني ما زلت أشعر بالفضول - Rumesh
RumeshSudhaharan يجب أن لا تفعل ذلك ، لأنها تدار من قبل إدارة الحزم. إذا أرادت أي حزمة أخرى استخدام هذا المسار ، فستحل محل ملفك. لا يمكن أبدًا أن تتداخل الملفات الموجودة في الحزم (على الأقل مع المستودعات الرسمية) ، لذا فأنت أكثر أمانًا عند التثبيت في المسار المحلي. أيضا ، انها فقط من أجل راحتك وسلامة. في المسار المحلي ، لا يمكنك تعطيل النظام بطريقة سيئة ولا يمكنك استبدال نظام ثنائي عن طريق الخطأ. - 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 الوصول إلى إضافة / تغيير الملفات هنا. نرى: هل هناك مكان قياسي لوضع برامج نصية مخصصة لنظام التشغيل Linux؟

لكتابة معرف المستخدم الخاص بك وضعها في /home/YOUR_NAME/bin. ضع في اعتبارك أنه يجب عليك إنشاء هذا الدليل أولاً وإعادة تشغيل الجهاز للحصول على الإعداد تلقائيًا بواسطة المسار ~/.profile. نرى: كيف تضيف / home / username / bin إلى $ PATH؟


ما أعلم أنني لا أعرف

أنا أفكر في أخذ بعض أكثر من مخطوطاتي bash الأكثر تعقيدًا في اسأل أوبونتو وإعدادها مع تثبيت البرامج النصية على github. فيما يلي بعض الأمثلة:

أنا يفكر يجب تثبيت البرامج النصية في /usr/bin في PATH $ ، لكنني لست متأكدًا من المكان المناسب بعد.


3
2018-06-11 23:44



أنا أقدر مجهودك ، ولكن ، باستثناء الجزء "ما أعرفه لا أعرفه" ، كررت إجابة gertvdijk. - danzel
danzel أعتقد أن الجزء الرئيسي هو man hier القسم الذي لم يعالج إجابة gertvdijk. أي يمكنك الحصول على الهيكل الهرمي للدليل في سطر الأوامر دون الحاجة إلى اللجوء إلى قراءته على شبكة الإنترنت (أي هنا). - WinEunuuchs2Unix
هذه معلومات مثيرة للاهتمام ، أوافق. لكن gertvdijk ذكر بالفعل المعيار التسلسل الهرمي للملفات (والذي man hier هو مقتطف غير كافٍ من المعلومات عن المنظمة البحرية الدولية (IMO). ومع ذلك ، قد يكون هذا رأيي الشخصي. - danzel
danzel أوافق على مواقع الويب لديها تحليلات معمّقة أكثر بكثير مما هو موجود على محركات الأقراص الثابتة لدينا. أحاول فقط أن أشير إلى أن المعلومات على محركات الأقراص الصلبة الخاصة بنا دون اللجوء إلى الإنترنت. إلى جانب رابط ويكيبيديا المقتبس هو مفقود  /usr/X11R6/bin و /usr/local/bin التي تم تضمينها في man heir. - WinEunuuchs2Unix