الوقت ياجماعه سؤال مهم جداً هو احنا بنعرف نستعمل باش صح ولا بنستعملها كده اي كلام ؟
بالتأكيد كل واحد له نقاط قوه وليه نقاط ضعف مش شرط تكون ملم بكل حاجه ولا شرط انك تكون معاك كل الإختيارات ولا كل الأوبشنز المهم انك ساعه ما تحب تعمل حاجه تعرف تعملها وده المهم :
نخش في المفيد على طول :
الوقت عشان تعرف تعمل سكربتات لابد انك تعرف يعني ايه File Prossessing
يعني ايه الكلمه دي معناها ببساطه يعني ايه اني اعمل عمليات معالجه لملف او لنتيجة امر او لأي حاجه عشان اقدر اوظفها لإستخدامي الشخصي او في سكربتات او اي حاجه .
خد بالك باش سكربت ممكن تستخدم في كل حاجه بحسب درايتك انت وبحسب علمك وبحسب رغبتك :
اولاً نعرف بعض الحاجات الأساسيه عن باش وهي :
1- افرض عايز تنفذ امر ثم انفذ امر تاني ينفذ الأولاني وبعدين ينفذ التاني تعمل ايه ؟
كود:
cat /etc/redhat-release && date
الأمر اللي فات ده هيوريك انت شغال على نسخة ايه وبعد كده هيطلعلك التاريخ والساعه وكده يعني .
او ممكن بردو تعمل نفس الكلام من خلال الأمر ده :
كود:
cat /etc/redhat-release ; date
من خلال العلامه ; او && ممكن انك تنفذ الأمر ده والامر اللي وراه متتاليين
2- افرض عايز تنفذ امر والنتيجه بتاعته تستعملها في امر تاني :
كود:
cat /etc/passwd | grep root
من خلال العلامه | ممكن تستخدم نتيجة الامر الاولاني في انك تستخدمها كمدخل للأمر التاني في الحاله اللي فاتت قلتله اعرض المستخدمين اللي عالسيستيم وبعد كده خد الملف ده كله واسحبلي منه بس المستخدم روت واعرضه على الشاشه
3- افرض انك عايز تنفذ الأمر ده او ده بمعنى لو الأولاني فشل نفذ التاني :
كود:
cat /opt/file || cat /etc/passwd
الأمر ده هيجرب يعرض الملف الاولاني اللي اسمه /opt/file لو ملقاهوش هيعرض الملف اللي اسمه /etc/passwd
طبعاً في الحاله اللي فاتت دي هيطلع خطأ في الملف الاولاني لأنه مش موجود هنعرف الوقت نعمل ايه عشانم نشيل رسائل الخطأ يعني اه هيحصل خطأ بس مش هتيجي عالشاشه
طبعاً اي امر عايزتنفذه وتبتعه عالخلفيه background ويسيبلك البرومبت فاضي ممكن تكتب اي امر عادي وراه &
مثال :
خد بالك الأمر اللي فات ده لو طبقته هيعرضلك كل الملفات على جهازك خد بالك اكيد هيطول جداً وخد بالك كمان لأنك بتنفذه في الخلفيه يعني هو شغال وانت مش واخد بالك .
طيب ندخل في نقطه تانيه اللي هي :
* افرض اني عايز ادخل النتيجه دي في ملف معين بحيث الملف ده هستفيد منه بعد شويه او سكربت معين هسيتعمل الملف ده لأي سبب اياً كان الحل بسيط جداً :
اعمل الأمر اللي انا عايزه اياً كان حتى لو بكتب امر date
كود:
date > /root/datefile
وبعد كده اعمله append او تطبيق على الملف اللي هو في المسار اللي مكتوب ده او غيره زي ما تحب
خد بالك من نقطه مهمه جداً لو نفذت الأمر اللي فات ده بإستعمال
تفرق عن :
الفرق ان الأولى بيضيف بس الجديد على الملف لكن الملف لازم يكون موجود التانيه بيكتب من اول الملف حتى لو مكنش موجود بينشأه وبيبدأ يكتب جواه .
طيب الوقت افرض في رساله خطأ ومش عايزها تظهر لحد ايه العمل خد بالك من نقطه تانيه :
لو هتعمل ابند على ملف لازم تعرف مجموعة حاجات :
1- /dav/null لو عملت ابند على الملف ده كده هتحذف الأوتبوت او بمعنى اصح اللي هيتوجه على الملف ده ولا كأن له اي اثر بالتاكيد رسائل الخطأ هتتوجه على الملف ده
2- بخصوص بعض السكربتات بنحتاج ظهور النتيجة فقط ومش عايزين اي رسائل اخطاء وبعض السكربتات بنعوز رسائل الخطأ بس وفي بعض السكربتات لا بنحتاج فيها لا رسائل صح ولا غلط بس هتفهموا ده بعدين وقدام شويه :
A- في حالة اني عايز بس رسائل النتيجة بدون اي خطأ طبعاً مع تغيير الأمر لأني هكتب امر date وغيره بقى لحاجتك الشخصيه :
كود:
date >/root/datefile 2>/dev/null
ده معناه انه هيحط التاريخ في الملف اللي اسمه /root/datefile ولو في اي رسالة خطأ يوجها على الملف null طبعاً ده كلام مجازي لأنه مش ممكن يديك رسالة خطأ في التاريخ
B- في حالة اني عايز رسائل الخطأ بس ومش عايز رسائل الأوتبوت للأمر ودي نادر جداً لما هتستعملها :
كود:
date >/dev/null 2>/root/error_file
كده هتحط ملف الخطأ فقط في ملف اما النتيجة العاديه مي هتتحط في اي حته هتتحذف
C- لو مش عايز نتيجة الملف ده او ده تظهر خالص طبيعي جداً هنوجههم على ال null
كود:
date >/dev/null 2>/dev/null
خد بالك دي هتستفيد منها قدام جداً هتفهمها قدام وهتستفيد منها جداً قدام
D- انك بقى تظهر نتيجة الأمر وتحطه في ملف ونتيجة الخطأ وتحطه في ملف وده وارد جداً وشائع جداً :
كود:
date >/root/datefile 2>/root/error_file
كده حطيت ملف الخطأ في ملف وملف التاريخ في ملف اه ممكن ادمج الكل في ملف واحد بإني اوجه ال2 على نفس الملف من خلال الأمر التالي :
كود:
date >/root/datefile 2>/root/datefile
بكده ممكن نحط كل النتيجة اللي بتطلع على الشاشه في ملف واحد ،،،
لازم كمان ناخد بالنا من اتجاه ال append لأن < تفرق عن > ده بيوجه على حاجه وده بيوجه على حاجه لازم تاخد بالك كويس جداً توجيهك على ايه ،،،
نكمل بعدين بأمر الله ،،، واللي عنده تعليق او اسئله او اضافات يتفضل مشكوراً ،،، وبلاش مشكور ،،،

،،،