سؤال ما هي الاختلافات الوظيفية بين .profile .bash_profile و. bashrc


ما هي الاختلافات الوظيفية بين .profile، .bash_profile و .bashrc الملفات؟


120
2018-04-20 15:42


الأصل




الأجوبة:


.bash_profile و .bashrc محددة ل bash، بينما .profile تتم قراءة العديد من الأصداف في حالة عدم وجود ملفات تهيئة خاصة بها. (.profile كان يستخدم من قبل بورن قذيفة الأصلي.) .bash_profile أو .profile يقرأ بواسطة قذائف تسجيل الدخول ، جنبا إلى جنب مع .bashrc. subshells للقراءة فقط .bashrc. (بين السيطرة على العمل وأنظمة النوافذ الحديثة ، .bashrc في حد ذاته لا يعتاد الكثير. إذا كنت تستخدم screen أو tmuxعادةً ما تشغل الشاشات / النوافذ حشوات فرعية بدلاً من قذائف تسجيل الدخول.)

الفكرة وراء هذا هو أن الإعداد لمرة واحدة تم من قبل .profile (أو إصدار خاص بقذيفة) ، ومواد لكل قذيفة بواسطة .bashrc. على سبيل المثال ، كنت ترغب فقط في تحميل متغيرات البيئة بشكل عام مرة واحدة لكل جلسة بدلاً من الحصول عليها في أي وقت تقوم فيه بإطلاق دالة فرعية داخل جلسة ، بينما تريد دائمًا أن تكون الأسماء المستعارة (التي لا يتم نشرها تلقائيًا مثل متغيرات البيئة).

ملفات تهيئة shell البارزة الأخرى:

/etc/bash_profile (تراجع /etc/profile) تقرأ قبل المستخدم .profile للتكوين على مستوى النظام ، وبالمثل /etc/bashrc في subshells (لا احتياطي لهذا واحد). العديد من النظم بما في ذلك Ubuntu تستخدم أيضا /etc/profile.d الدليل الذي يحتوي على shell scriptlets ، والتي هي . (source) من /etc/profile. الأجزاء هنا هي لكل قذيفة ، مع *.sh تطبق على جميع قذائف بورن / POSIX متوافقة وغيرها من الملحقات تنطبق على تلك قذيفة معينة.


102
2018-04-20 15:51





.الملف الشخصي

.profile هو للأشياء التي لا ترتبط على وجه التحديد Bash، مثل متغيرات البيئة PATH والأصدقاء ، ويجب أن تكون متاحة في أي وقت.

فمثلا، .profile يجب أيضًا تحميله عند بدء جلسة عمل سطح مكتب رسومية.


.bashrc

.bashrc هي لتهيئة استخدام Bash التفاعلي ، مثل Bash aliases، وضع المفضلة لديك editor، وضع Bash promptوما إلى ذلك


.bash_profile

.bash_profile هو التأكد من أن كلا من الأشياء في .profile و .bashrc يتم تحميلها ل login shells.

فمثلا، .bash_profile يمكن أن يكون شيء بسيط مثل

. ~/.profile
. ~/.bashrc

إذا كنت ستحذف .bash_profile، فقط .profile سيتم تحميلها.


33
2018-04-17 06:15



هذا أجاب سؤالي عن نظام التشغيل Mac OS X - Jake Toronto


وفقًا لصفحة "باش مان" ، يتم تنفيذ ملف .bash_profile لتسجيل الدخول إلى shell ، بينما يتم تنفيذ bashrc للأغلفة التفاعلية غير القابلة لتسجيل الدخول.

إذن ، ما هي قسيمة الدخول أو عدم تسجيل الدخول؟

عند تسجيل الدخول (اكتب اسم المستخدم وكلمة المرور) عبر وحدة التحكم ، إما الجلوس على الجهاز ، أو عن بعد عبر ssh: يتم تنفيذ .bash_profile لتكوين shell الخاص بك قبل موجه الأوامر الأولي. ولكن ، إذا قمت بالفعل بتسجيل الدخول إلى جهازك وفتح نافذة طرفية جديدة (xterm) داخل Gnome أو KDE ، فسيتم تنفيذ bashrc قبل موجه أوامر النافذة. يتم تشغيل .bashrc أيضًا عند بدء تشغيل نسخة باش جديدة عن طريق كتابة / bin / bash في جهاز طرفي.

والاستثناء من إرشادات نافذة المطراف هو Terminal.app الخاص بـ Mac OS X ، والذي يقوم بتشغيل shell تسجيل الدخول بشكل افتراضي لكل نافذة طرفية جديدة ، حيث يقوم بالاتصال بـ .bash_profile بدلاً من .bashrc. قد تقوم المحاكيات الطرفية الأخرى لـ GUI بنفس الشيء ، ولكن معظمها لا يميل إلى القيام بذلك.

المزيد هنا http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html


21
2018-04-03 12:52