إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

معا نتعرف على البرمجه في باش bash

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • معا نتعرف على البرمجه في باش bash

    السلام عليكم

    تعلم اللغات النصيه وكتابة برامج تحتويها امر مهم في لينوكس، وذلك لما يوفره لك من تنفيذ مهام موكوله اليك وخاصه التي تكون بشكل متكرر... سأحاول شرح كيفية كتابة برامج تحتوي على اوامر نصيه في الباش والتعرف على قواعد اللغه الخاصه به. الموضوع سيكون بشكل متسلسل على ايام..ان وجدت نقاط غير مفهومه في الشرح ارجو ان لا تتردد في السؤال.
    ايضا هذا الموضوع كتب في الويكي... ارجو ممن لديه خبره او من يجد اخطاء ان يقوم بالتعديل عليها في الويكي مباشره ايضا هذا لا يمنع ان تضيف وتساعد بما تعرف وذلك ما ارجوه... كنت افضل ان يبقى الموضوع في الويكي ولكن اعتقد ان الكثير من الاشخاص لا يعرفون اين الويكي لحد الان.. على كلا الموضوع موجود على هذا الرابط في الويكي


    لنبدأ
    echo 'echo "Leastwise-Try-It-Your-Self!"' >> ~/.bashrc

  • #2
    تاريخ باش وماذا يحدث عند تشغيله

    باش (Bash) هو عباره عن صدفة يونكس unix shell كتب لمشروع جنو، وهو اخصار لـ .Bourne-again shell الإسم مقتبس من Bourne shell الذي طور من قبل ستيفن بورن Stephen Bourne ووزع مع الاصداره السابعه من ينوكس في سنة Version 7 Unix (V7) 1978.

    باش طور سنة 1987 حيث طوره براين فوكس Brian Fox. وفي سنة 1990 أصبح شيت رامي هو المطور الاساسي لهذا الشل، الآن باش هو الشل الافتراضي لمعضم التوزيعات الحال

    تتابع بدايه تشغيل باش
    عندما يبدأ باش فإنه ينفذ اوامر موجوده في اماكن مختلفه, والتي بدورها تقوم بوضع بعض المتغيرات الخاصه بالبيئه بالاضافه الى تشغيل بعض البرامج.

    عندما يدخل المستخدم كدخول تفاعلي interactive login shell او دخول غير تفاعلي non-interactive login shell مع خيار --login فإن باش يقوم بتنفيذ هذا الملف كبدايه
    كود:
    /etc/profile
    حيث هذا الملف هو افضل مكان لوضع المتغيرات العامه وايضا برامج البدايه، الإعدادت والمتغيرات التي تخص جميع مستخدمي النظام يفضل ان توضع هنا. ثم بعدها باش سوف يبحث عن أول ملف موجود وقابل للقرائه من الملفات التاليه وينفذه (الملفات حسب ترتيب البحث) :
    كود:
    ~/.bash_profile
    ~/.bash_login
    ~/.profile
    وبالتالي عند إيجاده لأول ملف من هذه الملفات فإنه يتجاهل الملفات الاخرى المذكوره سابقا. هذه الملفات ويظيفتها إضافة أو إعادة إعداد متغيرات و تنفيذ برامج تخص فقط مستخدم معين user-specific.

    عند طلب شل تفاعلي غير خاص بالدخول interactive shell that is not a login shell فإن باش يقوم بالبحث عن هذا الملف:
    كود:
    ~/.bashrc
    وينفذه في حالة كونه موجود وقابل للقراءه. يمكنك منع تنفيذ هذا الملف عن طريق تمرير الخيار --norc ايضا يمكنك ان تقوم بتنفيذ ملف اخر عوضا عن bashrc بإستخدام الخيار --rcfile filename

    عندما يتم تنفيذ باش عن طريق الأمر sh فإنه يحاول ان يقلد قدر المستطاع التقاليد القديمه لتشغيل sh.عند تطبيق الأمر sh في دخول المستخدم كدخول تفاعلي interactive login shell او دخول غير تفاعلي non-interactive login shell مع خيار --login، فإن باش يحاول تنفيذ الأوامر الموجوده في
    كود:
    /etc/profile
    ثم الاوامر الموجوده
    كود:
     ~/.profile
    يمكن منع هذا السلوك عن طريق تمرير الخيار --noprofile .... هناك بعض الامور لم استطع ان افهما في عملية تتابع تشغيل باش عن طريق sh ارجو ممن لديه معرفه عن ماذا يحدث عن استدعاء الامر sh في جميع حالات الدخول ان يوضحها..

    عند الخروج فإن باش يقوم بتنفيذ هذا الملف (ايضا في حالة كونه موجود وقابل للقراءه)
    كود:
    ~/.bash_logout
    بالعاده باش يقوم بتخزين الاوامر في هذا الملف
    كود:
    ~/.bash_history
    توضيح:
    دخول تفاعلي interactive login shell تعني دخول ناجح وذلك بفحص المستخدم وكلمة السر ثم الدخول.

    دخول غير تفاعلي non-interactive login shell وهي إستدعاء شل مثل /bin/bash أو إستخادم الأمر sh، وتسمى غير تفاعلي وذلك لإنها تنفذ بعض الاوامر ولا تنتظر مدخلات من المستخدم

    شل تفاعلي غير خاص بالدخول interactive shell that is not a login shell مثل الدخول لشل عن طريق xterm في الواجه الرسوميه

    صدفه تعني shell كما ذكر الاستاذ خالد حسني مشكور على ذلك

    ولنا تكمله ان شاء الله
    echo 'echo "Leastwise-Try-It-Your-Self!"' >> ~/.bashrc

    تعليق


    • #3
      بارك الله فيك .. دروس قيمه.. ارجو لك التوفيق..
      GCS

      تعليق


      • #4
        مشكور اخي العزيز XShape
        ان شاء الله ساحضر كل دروسك
        في انتظار المزيد.

        تعليق

        يعمل...
        X
        😀
        🥰
        🤢
        😎
        😡
        👍
        👎