it-swarm.asia

ما هو ملف .bashrc؟

قذائف يونكس عند بدء قراءة ملف .bashrc وتنفيذ الأوامر المكتوبة فيه. ما هو هذا الملف وماذا ينفذ؟

97
pineapple

في الواقع ، يقرأ bash على وجه التحديد .bashrc/etc/bash.bashrc). هناك الكثير من قذائف مختلفة.

إن { bash man page (بواسطة Brian Fox و Chet Ramey ؛ أيضًا صفحة معلومات "Bash Startup Files" ) هي المرجع الموثوق به:

عند بدء تشغيل Shell تفاعلي ليس تسجيل دخول Shell ، يقرأ bash الأوامر وينفذها من ~/.bashrc ، إذا كان هذا الملف موجودًا. قد يتم منع هذا باستخدام الخيار --norc. خيار ملف --rcfile سوف يجبر bash على قراءة وتنفيذ الأوامر من الملف بدلاً من ~/.bashrc.

عند بدء تشغيل bash بطريقة غير تفاعلية ، لتشغيل برنامج نصي Shell ، على سبيل المثال ، يبحث عن المتغير BASH_ENV في البيئة ، ويوسع قيمته إذا ظهر هناك ، ويستخدم القيمة الموسعة كاسم لملف للقراءة والتنفيذ . يتصرف Bash كما لو تم تنفيذ الأمر التالي:

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi  

لكن قيمة المتغير PATH لا تستخدم للبحث عن اسم الملف.

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

" ليس تسجيل الدخول Shell " يعني أشياء مثل إطلاق البرامج النصية وعادة ما يتم تشغيل النوافذ الطرفية بواسطة مديري النوافذ. في بعض الأحيان أقوم بإعداد أنظمة * nix بحيث يكون لها .bashrc و BASH_ENV فقط المصدر .profile. طالما أنك لا تبتعد عن أوامر POSIX Shell ، فستحصل على نفس التهيئة في أي Shell.

إنها قيمة بشكل خاص عندما يكون shbash ، والذي يحدث أحيانًا. للقيام بهذا الاستخدام:

. .profile

أحد الأسباب التي تجعل هذا الأمر معقدًا هو أنه في بعض الأحيان يضع الأشخاص الأشياء التي تنتج المخرجات في ملفات بدء تشغيل Shell ، أو أنهم يضعون مطالبات دون قيد أو شرط. هذا يسبب الكثير من المشاكل عند تشغيل برامج Shell وأوامر backtick داخل اللغات ، ناهيك عن system(3) من برامج C. ، على ما أعتقد ، تم تصميم طريقة بدء bash بحيث يكون هناك ملف واحد يكون فيه إعداد الإخراج والموجه على ما يرام وملف واحد حيث لا يوجد. تقليديًا ، سيتم إجراء اختبار وقت التشغيل لتمييز التفاعل ، على سبيل المثال ، التحقق لمعرفة ما إذا تم تعيين موجه.

64
DigitalRoss

عندما يبدأ Bash ، فإنه ينفذ الأوامر في مجموعة متنوعة من البرامج النصية المختلفة.

عندما يتم استدعاء Bash باعتباره تسجيل دخول تفاعلي Shell ، فإنه أولاً يقرأ وينفذ الأوامر من الملف/etc/profile ، إذا كان هذا الملف موجودًا. بعد قراءة هذا الملف ، يبحث عن ~/.bash_profile و ~/.bash_login و ~/.profile ، بهذا الترتيب ، ويقرأ وينفذ الأوامر من أول أمر موجود وقابل للقراءة.

عند إنهاء تسجيل دخول Shell ، يقرأ Bash الأوامر وينفذها من الملف ~/.bash_logout ، إذا كان موجودًا.

عند بدء تشغيل Shell تفاعلي ليس تسجيل دخول Shell ، يقرأ Bash الأوامر وينفذها من ~/.bashrc ، إذا كان هذا الملف موجودًا. قد يتم تثبيته باستخدام الخيار - norc. يفرض خيار الملف --rcfile على Bash قراءة وتنفيذ الأوامر من الملف بدلاً من ~/.bashrc.

http://en.wikipedia.org/wiki/Bash_(Unix_Shell)

إليك بعض الحيل والنصائح:

http://www.cyberciti.biz/tips/howto-linux-unix-bash-Shell-setup-Prompt.html

دعنا نحاول ضبط "موجه" حتى يمكن عرض تاريخ اليوم واسم المضيف:

PS1="\d \h $ "
12
randomx

يجب أن يحتوي على العديد من أوامر "التهيئة" لـ Shell ، على سبيل المثال:

  • إنشاء أسماء مستعارة مفيدة (على سبيل المثال alias ll='ls -l').
  • إضافة المزيد من الأدلة إلى PATH.
  • تحديد متغيرات البيئة الجديدة.
10
Roman Zeyde