OSP Lec 2

advertisement
‫‪Linux Admin‬‬
‫‪Second lec‬‬
‫‪Root @ Kali : ~ #‬‬
‫‪user‬‬
‫‪Roo t‬‬
‫‪variable of‬‬
‫‪System argument‬‬
‫التغير المسؤال عن نقل السكريبتات و الدوات‬
‫و تغشيلها ب النظام‬
‫النسخلة الخاصة‬
‫بيك فى لينكس‬
‫‪# ls -l ~/Desktop‬‬
‫‪$1‬‬
‫‪$2‬‬
‫دلوقتي علمة الشباك هتبدا تشوف نوع الداة اللي بعدها ف لقيت الداة‬
‫‪Listing‬‬
‫المهم هتروح فاتحا و بالتالي الداة ليستينج اداة خاصة ب عرض الملفات ف اول‬
‫حاجة هتسأل عليها هي ال مكان اللي هتنزل فية ف يروح الشباك حاطط قدامها‬
‫علمة الدولر و رقم ‪ 2‬فيكون دا المكاناللي هتعرضة بعدها بتسأل هوا فى امر محدد او‬
‫اداة زيادة هستخدمها ف ينزل ال دولر ‪ 1‬فيقوم البرنامج شاطب ال‬
‫‪Ls‬‬
‫ويسيب ال‬
‫‪-l‬‬
‫فيكون البرنامج معروض كالتي‬
‫‪# listing $2 $1‬‬
‫و هنا علمو الدولر بتكونمكان حجز المتغير اللي بينزل فية كل كلة فى الترمينال‬
‫مثلن ف مكان ال ديسك توب اتسجل فى‬
‫علمة الدولر برقم ‪2‬‬
‫اما التصريحات الخاصة ب البرنامج ف كانت دولر‪1‬‬
‫‪Setting A variables‬‬
‫بفرض تريد تسوية متغير ياخد قيمة رقيمة فنتكتب المر الدتي دون مسافات‬
‫‪a=5‬‬
‫تمام لو تريد عرض قيمتة هنا فتكتب المر التي ثم اسم المتغير‬
‫‪echo $a‬‬
‫هذا الجزء ثابت‬
‫بعد علمة الدولر‬
‫تكتب اسم المتغير‬
‫طب ب فرض تريد اجراء عملية جمع ب اضافة رقم ‪ 5‬على قيمة المتغير السابق ف‬
‫نكتب‬
‫)) ‪a=$(( a + 5‬‬
‫حيث علمة الدولر هنا تدل على استدعاء القيمة السابقة للمتغير‬
‫‪A‬‬
‫بس لحظ اذ قمت ب عملية الجمع ب هذة الطريقة و قمت ب عرض قيمة المتغير‬
‫فتكون ‪ 10‬و يثبت عليها‬
‫‪echo $a‬‬
‫فيكون الخارج من هذة العملية ‪10‬‬
‫ولكن اذ قمت ب عملية الجمع ب هذة الطريق فان المتغير تعود قيمتة ‪ 5‬لنها عملية‬
‫لحظية‬
‫))‪echo a=$((a+5‬‬
‫فتكون القيمة ‪ 10‬و لكنها تعود ‪ 5‬بعد انتهاء العملية‬
‫بفرض تريد اعطاء قيمة المتغير قيمة اداة ف هنا نستعمل القوس الواحد )( على عكس‬
‫القوسين المتتاليين فهم للعمليات الحابية ايا كانت اما القوس المنفردين )( فهم لجعل‬
‫قيمة متغير تساوي قيمة اداة كمثال ‪ -:‬التي‬
‫)‪a=(ls -l‬‬
‫فهنا انت قمت ب مساواة قيمة المتغفير ب ناتج خارج اداة العرض‬
‫‪Ls -l‬‬
‫فاذا قمت ب عرض قيمة المتغير‬
‫‪echo $a‬‬
‫يكون ناتج المتغير ب قيمة ناتج اداة العرض‬
‫‪Ls‬‬
‫بفرض الن نريد وضع قيمة المتغير بقيمة نصية فيكون هناك ‪ 3‬طرق‬
‫‪a=hellow world‬‬
‫و لكن هنا هنا اظهار قيمة المتغير يكون‬
‫‪Hellow‬‬
‫و لمعالجة هذة المشكلة يكون ك التي‬
‫“ ‪a=’ hellow world ‘ or A = “ hellow world‬‬
‫و هناك ‪ 3‬طرق لعرض النص و تكون كالتتي‬
‫‪echo hellow world‬‬
‫‪Output : hellow world‬‬
‫‪echo $a‬‬
‫‪Output : hellow world‬‬
‫‪echo $A‬‬
‫“ ‪Output : hellow world‬‬
‫و الفرق بي ال " وال ' يكون فى عرض المتغير ف مثلن لو نريد عرض قيمة متغير داخل‬
‫الخر بستخدام السينجل كوتيشن يكون الخارج ك التي‬
‫‘ ‪A=’ my life‬‬
‫’‪B=’this is $A‬‬
‫‪echo $B‬‬
‫‪Out put : this is $A‬‬
‫و لكن لو استخدمنا ال " يكون الناتج ك التي‬
‫”‪a=”my life‬‬
‫“ ‪B=” this is $a‬‬
‫‪echo $B‬‬
‫‪Output : this is my life‬‬
‫فعند استخدام ال “ يمكنط اضافة نص على الخير لكمال بعضهم وهذا سوف تحتاجة فى‬
‫كتابة السكربتات و اشياء اخري كثيرة مثل‬
‫‪Grep & sed‬‬
‫فى المستويات القادمة‬
‫‪Test :‬‬‫دي اداة موجودة ب لينكس و تتولي امر المقارانات ف مثلن فى‬
‫‪C++‬‬
‫تكون المقرنة ب علمة‬
‫== = =< => < >‬
‫و لكون اذا كتبت هنا‬
‫ممملممم عرفة خصائصها ‪Man test‬‬
‫فيكون الظاهر ك التي‬
‫‪-le‬‬
‫‪– less than or equal‬‬
‫اصغر من او يساومي‬
‫=<‬
‫‪-gt‬‬
‫‪– grater than‬‬
‫> اكبر من‬
‫‪-lt less than‬‬
‫< اصغر من‬
‫‪-ne not equal‬‬
‫ل يساوي‬
‫!‬
‫‪-e existance‬‬
‫اختبار وجود الملف ام ل‬
‫فمثلن لو ارددنا كتابة جملة‬
‫‪If statement‬‬
‫يكون ك التي‬
‫] ‪If [ -e foo‬‬
‫‪ enter‬ونضغط‬
‫فيظهر فى الترمينال علمة اكبر من تكتبت بجانبها فتكتب ب الشكل التي‬
‫] ‪If [ -e foo‬‬
‫‪>then‬‬
‫”‪echo “hellow‬‬
‫‪>else‬‬
‫“ ‪>echo “done‬‬
‫‪>fi‬‬
‫فيكون اول سطر بمعني تحقق من وجود الملف فوو ف لو كان موجود اخرج كلمة‬
‫‪Hellow‬‬
‫و اذا كان غير موجود فتخرج كلمة‬
‫‪Done‬‬
‫اما كلمة‬
‫‪Fi‬‬
‫فمعناها انهي ال‬
‫‪If statement‬‬
‫الن لنكتب اول سكريبت‬
‫نقوم ب الذهاب الي الترمينال و نعمل ملف كتابة اسمة‬
‫‪gedit Desktop.sh‬‬
‫عند فتح هذا الملف‬
‫نكتب التي‬
‫‪#!/bin/bash‬‬
‫هذا السطر معناة انك تدل ملف السكريبت على نوع الترمينال حقتة و هي الن‬
‫‪Bash shell‬‬
‫‪cd ~/Desktop‬‬
‫“ ‪Echo “hellow ser‬‬
‫ف سطر الول و السطران هذا بمعني اذهب للديسك توب و اخرج رسالة‬
‫‪Hellow ser‬‬
‫نص السكريب كامل من الداخل‬
‫‪#!/bin/bash‬‬
‫‪cd ~/Desktop‬‬
‫”‪echo “hellow ser‬‬
‫ثم نقم ب الحفظ‬
‫الن عند تنفيذ السكريبت لن يتم تنفيذة و هذا بسبب الصلحيات ف علينا تغير‬
‫صلحيتة و اعطاءة امكانية التنفيذ عن طريق‬
‫‪Chmod 700 Desktop.sh‬‬
‫والن يمكننا تشغيلة‬
‫عن طريق‬
‫‪./Desktop.sh‬‬
‫الل عند تشغيلة ب هذة الطريقة‬
‫يظهر كلمة هالو سير فقط و هذا لن امر التشغيل هذا معناة انهي السكريبت و اخرد الناتج‬
‫النهائي دون الذهاب ل اي مكان مكتوب ب الداخل ف لو اردت رؤيتة يعمل كامل‬
‫فعليك ب كتابة امر التشغيل هكذا‬
‫‪. Desktop.sh‬‬
‫و عندها تجدة نقلك الي مسار الديسك توب‬
‫ملحظة هيتم اعادة شرح‬
‫‪Exist status + PATHS‬‬
‫فى المحاضرة القادمة نظرا لن انا لو فكرت اكتبهم هطول على الفاضي يجي ‪ 15‬صفحة‬
‫ف نفهمها احسن‬
Download