|
إنضمامك إلي منتديات استراحات زايد يحقق لك معرفة كل ماهو جديد في عالم الانترنت ...
انضم الينا
#1
| ||
| ||
سلام عليكم اليوم ان شاء الله ابدا معاك فى شرح بسيط عن البرمجه على السرفرات طبعا طريقه الشرح دي انا اللى مخترعها مقصدش حقوق الملكيه لكن اقصد ان لو فيها اخطاء معليش اعذروني انا أول مره اشرح حاجه بالشكل ده فى الاول لما بنيجي نعمل سكربت شيل لازم يكون الفكره واضحه فى دماغك وانت راسمها يدويا كدا وفاضل انك تكتب الكود ده يعتبر نص الشغل يعني لو قولنا ان اننا عايزين سكربت يغير بسوردات المواقع كلها مره وحده ويبعتهالك الخطوات بالبلدي كدا نعرف اليوزرات كلها نشوف هنعمل عليهم عمليه كل واحد ازاى هنغير البسورد نعرض البسورد اللى اتغير نبعتها على الميل مثلا بس علشان نعمل كدا لازم نفهم الشل سكربت ده بيشتغل ازاى هنتكلم عن شويه حاجات مهمه المتغيرات var loops مش عارف معانها بالعربي الصراحه الFunctions الدوال الخوارج والمداخل وشويه عك كدا المتغيرات الاول دلوقتي انت عايز تعمل عمليه على نتيجه امر معين يعني عايز تعمل عرض لأسماء اليوزرات الموجوده فى الموقع بطريقه الشيل سكربت هتقوله ان اليوزرات مثلا بتجبهم بالامر ده cat /etc/passwd | cut -d : -f1 فكره المتغير انه ياخد النتيجه دي يحزنها ولما تنادي عليه يعرضها انت ممكن تقول users=`cat /etc/passwd | cut -d : -f1` كدا لما تكتب echo $users هيقوم جاي عارض لك كل اليوزرات سيبك من شكل الأمر المطلوب دلوقتي فكره المتغير توصل لكم وهيا عموما زيها زي باقي لغات البرمجه بس لذيذه موت لما تحب تعمل متغير اما بيكون بقيمه انت بتحطها او بيكون نتيجه أمر حاجه ثابته تقوله مثلا backup=/home/backup/4me علشان لو عايز تستخدمه كتير بعد كدا ومش كل شويه تكتب المسار وعلشان متغلطش فيه كمان وعلشان يكون سهل التغير بعد كدا مش هتغير فى كل سطر موجود فيه الكلام ده وممكن يكون نتيجه أمر كأن يكون root@xen6 [~]# myos=` cat /etc/redhat-release` root@xen6 [~]# echo $myos CentOS release 5.2 (Final) root@xen6 [~]# احنا قولنا له ان المتغير اللى اسمه myos بيساوي ناتج الأمر بتاع cat /etc/redhat- لو في اي حاجه فى المتغير قولولي لان البرمجه دي بتقوم بشكل قاعده الهرم كدا لو مفهمتش الأساس مش هتعرف تكمل ودي من الأساسيات الLoops هو جوجل ترجمها بالعربي بالحلقات المهم انا هشرحها بص يا سيدي لو انت مثلا عندك وظيفه واحده او عدة وظائف عايز تنفذها على كذا عنصر مثلا عايز تحذف كل مجلد اسمه محمد من كل فلورد موجود جوه الهوم وعايز تنفذ القصه دي بالشيل اسكربت هتعمل ايه فيه طريقه بتعمل بيها العمليه على العنصر بشكل تسلسلي هنستخدم حاجه اسمها for القانون بتاعها بيتكتب كدا for var in command do commands to be done done لكل var القادم من ناتج command افعل كذا وكذا تم نقول بشكل عملي شويه for x in `cat /etc/passwd ` do; echo $x done بنقوله ان لكل قيمه تخرج من امر cat /etc/passwd والقيمه بتتحسب بالسطر اعمل echo $x يعني اعرضه وخلاص done المتغير اللى اسمه x ده المحتوي بتاعه هو القيمه الخارجه من الأمر هنعمل احنا عرض لكل سطر ممكن بئا تعمل اي حاجه فى النص مثلا باك اب لكل ملفات الhome تقوله for يعني لكل x اسم المتغير وممكن يكون اي عفريت تاني يعني x y z in يعني في ls /home/ محتوي ملفات الهوم do يعني افعل الآتي tar -czf $x.tar.gz $x يعني اعمل باك اب لكل مسار فى ملف بنفس الاسم على نفس المسار نكتبه بشكل ينفع للشيل هنقوله for x in `ls /home/` ;do tar -czp $x.tar.gz $x done وفي كذا loop بئا do while افعل كذا بينما القيمه الفلانيه بتساوي كذا دي هنشرحها ادام شويه الدوال functions الدوال دي عباره عن ايه شويه اوامر بتجمعهم مع بعض علشان الاختصار ولما تحب تنادي عليهم تكتب اسم الداله وخلاص بدل ما تكتب الأوامر كلها مره وحده وفيه حاجه مقدمه شويه انك تمرر فيها متغير يتنفذ عليه الأوامر اللى جوه بس دي هنشرحها ادام برضو طريقه كتابه القانون بتاعها كدا function zeko { ls /tmp ls /var/log mount df -h } الكلمه الاولانيه انت بتقول للنظام ان الكلام اللى جاي ده داله علشان ميفهمكش غلط ويبهدل الدنيا زيكو ده اسم الدالة ان شاء الله الأقواس دي طريقه الكتابه كدا تفتح القوس وتكتب اللى انت عايزه وبعدين تقفله بس أقواس من النوع ده الكلام اللى في النص دي الأوامر اللى هتتنفذ لما تستدعي الدالة دي وتستعديها ازاى تكتب اسمها وخلاص zeko لو كتبتها فى الشيل هتلاقيه نفذ الكلام اللى جوه اسم الداله انت حر تقدر تسميه ايه حاجه بس يكون حروف سمول فقط الكلام اللى جوه اكتب اى امر انت عايزه الدوال عموما حاجه زي المتغيرات بس بشكل متقدم شويه الدواخل والخوارج والعك بئا بص يا سيدي فى النظام فى تلت مخارج للأمر بتاعك لما بتنفذه او تلت أنفاق لما بتكتب مثلا ls /root /rooty اللى انا عملت اني استخدمت الامر ده علشان يعرض ليا الملفين دول الاول موجود والتاني مش موجود الامر ده بيروح للكرينال وهيا اللى بترد وبترد بئا الكرينال دي على تلت أنفاق حاجه اسمها stdin stdout stderr الأول ده بيطلع فيه النواتج الصحيحه التاني ده بيكون فيه المداخل وهنشرحها فى باقي الدرس ان شاء الله التالت ده المخرج بتاع الخطا ولما تحب تحول الناتج بدل ما يطلعلك على الشاشه تقوله < دي معناها حول اللى طالع فى المكان الفلاني ls /root /rooty > tmp/myls هتلاقي فى الملف ده ناتج الأمر الاول بس لكن الأمر التاني هو طلع من نفق الغلط وده بيكون فى 2> بكدا بنكون وصلنا لنهايه حلقتنا انهاردا وان شاء الله نكمل باقي الدرس هنشرح فيه 2> /dev/null positional parameter وهنعمل سكربت يعمل اى فكره بسيطه حد يقترحها علينا اسف على طريقتي العاميه فى الكتابة سلام عليكم __DEFINE_LIKE_SHARE__ |
مواقع النشر (المفضلة) |
| |
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
Attempted cross-site scripting attack! | محروم.كوم | منتدى أخبار المواقع والمنتديات العربية والأجنبية | 0 | 10-30-2009 05:30 AM |
VB Scripting Issue? | محروم.كوم | منتدى أخبار المواقع والمنتديات العربية والأجنبية | 0 | 09-17-2009 11:40 AM |
3.8.4 Scripting Error in VB.NET WebBrowser Control | محروم.كوم | منتدى أخبار المواقع والمنتديات العربية والأجنبية | 0 | 08-20-2009 05:50 PM |
[شرح] : ترقيع ثغره جديده في منتديات 3.8.2 .. vBulletin 3.8.2 adminCP Cross-Site Scripting | محروم.كوم | منتدى أخبار المواقع والمنتديات العربية والأجنبية | 0 | 04-17-2009 12:00 AM |
اساسيات لتحصل على بيت مرتب !! | صدى السنين- الهاملية | اثاث و ديكور المنازل والمطابخ والصالات | 8 | 12-13-2008 09:52 PM |