|
||||||
|
للتسجيل اضغط
هـنـا
« آخـــر الــمــواضــيــع » |
|
||||||||||
|
||||||||||
|
||||||||||
| أصول برمجة دروس ومشاريع برمجية php - c - asp - perl - python - java script - ajax - bash |
![]() |
|
|
LinkBack | أدوات الموضوع | انواع عرض الموضوع |
|
|
#1 (permalink) |
|
عضو نشيط
![]() ![]() ![]() تاريخ التسجيل: Apr 2009
العمر: 24
المشاركات: 104
![]() ![]() ![]() ![]() ![]() ![]() |
خلونا نبدأ نتعرف على كيفية استخدام لغة البرمجه باش او عشان كلامي يكون دقيق هي لغة سكربتات
طيب ايه الفرق بين ال2 البرنامج هو عباره عن برنامج متكامل بيكون له كود وبعد كده تعمله كومبايل للسورس كود بيتحول الى ملف غير مقروء وبعدها تقدر انك تديه لأي حد من غير ما يقدر يقرأ الكود بتاعك طبعاً قبل ما انسى : بما ان ده اول موضوع في القسم خلونا نأكد ان اللينكس هو نظام شغل الخاص بالباش يعني مفيش باش على الويندوز - عايز بقى الناس المبرمجين بتوع الويندوز ينافسونا بقى ويعملوا موضوع للبرمجه تحت الويندوز طبعاً الباش مش كده خالص الكود بتاعك هيكون قدام الكل لأنها لغه ممكن تعتبها : 1- مجموعة اوامر ورا بعض 2- ممكن تعتبرها بدايات لغة برمجه متطوره مع فارق ان السورس مع الكل ومفيش كومبايل 3- ممكن يتعمل تشفير للملف ببرامج معينه مع العلم ان ممكن يتفك السورس والناس تقرأه بردو يعني من الآخر متفكرش في تشفير ده على حد علمي وفوق كل ذي علم عليم نبدأ نتكلم عن الباش : عشان نبسط الأمور اي لغة برمجه بتتكون من ايه : 1- ثوابت ومتغيرات 2- لوب او دوران او التفاف - سموها زي ما تحبوا loop 3- شروط - شرط 4- ممكن بعض الأدوات المساعده زي functions عشان تقلل تكرار الأوامر او سلسلة اوامر الوقت هنبدأ نتعرف على لة البرمجه باش عشان بالتاكيد هنستفيد منها في شغلنا كتير : 1- في عندنا متغيرات كتير في اللينكس من الممكن نستخدمها وبدون ما تزعج نفسك انك تدور على النتيجه دي او هتجيبها منين لأنها موجودة اصلاً : في عندنا المتغيرات قسمين : environmental variables و local variables ايه الفرق هنوضح الوقت : environmental variables زي لو جيت في سكرت وكتبت كود:
echo $HOME لو كنت يوزر وإسمه ahmed يبقى الهوم بتاعك في /home/ahmed متغير تاني اسمه $SHELL ده هيعرفك انت شغال شيل ايه في انواع شيلات كتير في bash - csh - ssh - zsh - tzshell وغيرها في متغير تاني على النظام اسمه $LOGNAME ده هيديك اسم المستخدم اللي داخل الوقت كود:
$UID كود:
/etc/passwd او /etc/shadow كود:
$SP1 في عندنا متغيرات تانيه اسمها : local variables المتغيرات دي احنا اللي بنعملها للنظام عشان يفهمها هو : بإختصار لما باجي اكتب : كود:
a=linux b=is c=the d=best كود:
acho $a $b $c $d كود:
linux is the best عايز تلغي متغير بقى ممكن تستعمل امر unset كود:
unset a كده لو نفذت امر الطباعه اللي فات هيطبع كود:
is the best كود:
~/.bashrc نتكلم عن اول كلمتين بالظبط في الباش ونقف بقى عشان عايز اطلع انام : بداية اي سكربت لازم يكون : كود:
#!/bin/bash خد بالك ممكن تكتب اي مسار اي شيل يعني ممكن تكتب كود:
#!/bin/sh كود:
#!/bin/bash 1- انك الملف يبدأ بالسطر اللي فات ده ( الشيبانج ) 2- الملف يكون له صلاحيات تنفيذ مش شرط عشان هيكون ملف تنفيذي تعمله 777 يعني ممكن يبقى 755 وممكن يكون 705 عادي يعني على حسب ما انت شايف ان ده الصح 3- اي وقت حبيت تعمل كومنت او تعليق او حبيت تضيف اي حاجه لا تؤثر على الكود اللي مكتوب ممكن تستخدم # يعني لو كتبت مثلاًَ كود:
# your comments 4- لو في تعديل في السكربت وانت عايز تجرب حاجه وعايز تعطل وظيفة حاجه معينه مش شرط تمسح السطر وترجع تعيده تاني بعدين لا طبعاً اعمله تعليق # نبدأ بقى نعرف يعني ايه باش بس في المشاركه الجايه بس اعذروني هتكون قصيره شويه ،،، وعشان حاسس اني طولت عليكم ،،، ،،،
التعديل الأخير تم بواسطة NabeeliumAttack ; 04-29-2009 الساعة 06:50 AM |
|
|
|
|
|
#3 (permalink) |
|
أصــ(ملكة)ــول
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() تاريخ التسجيل: Jun 2004
المشاركات: 8,479
![]() ![]() ![]() ![]() ![]() ![]() |
ربنا يبارك فيك اخي الكريم اللي بتعملو مجهود كبير كتير وان شاء الله حتلاقي رودو تتفاعل مع هالموضوع جزاك الله كل خير
__________________
لبــــــــنان شو بحبك أنا . . يا جبين عالي وما نحنى ![]() وبموت كرمالك أنا . . لو دء عبابك خطر
|
|
|
|
|
|
#4 (permalink) |
|
عضو نشيط
![]() ![]() ![]() تاريخ التسجيل: Apr 2009
العمر: 24
المشاركات: 104
![]() ![]() ![]() ![]() ![]() ![]() |
بصوا ياجماعه انا مش هقعد اكتب اكواد زي ما الناس بتعمل واقعد اقولكم ايه اللي حصل
انا طريقتي اخليك فاهم كل شيء اول بأول في الآخر هنعمل تطبيق او 2 او اكتر زي ما تحبوا ونعلق عليهم براحتنا طبعاً اتفقنا اننا هنعمل ملف ونبدأ الكود ب : كود:
#!/bin/bash بعد كده مثلاً هنكتب سكربت يكون بيعرض تفاصيل مستخدم معين : انا هكتب السكربت مش كامل سطر سطر هنفصصه وبعدها هتتصوروا انتم السكربت هيكون عامل ازاي : كود:
echo "your name is $LOGNAME" كود:
echo "your USERID is $UID" كود:
echo "mail in $MAIL" كود:
echo "your home is in $HOME" كود:
echo "Time now is `date`" لما تحب تنفذ اي امر وانت جوه ايكو ممكن تستعمل القوسين اللي على حرف ال"ذ" بكده هينفذ الأمر ويعرضه على الشاشه كود:
echo "today is `cal`" كود:
echo "What is your name ?" كود:
read name كود:
echo "welcome $name" بس كده اول درس خلص اسيبكو على خير وتصبحوا على خير ،،، ،،،
التعديل الأخير تم بواسطة NabeeliumAttack ; 04-29-2009 الساعة 06:48 AM |
|
|
|
|
|
#5 (permalink) |
|
رجل أقـل معـرفـة
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() تاريخ التسجيل: Jun 2004
الدولة: مــصـــــر
العمر: 29
المشاركات: 1,160
![]() ![]() ![]() ![]() ![]() ![]() |
السلام عليكم
بارك الله فيك أخي نبيل علي هذا المجهود الكبير .. اسمح لي بإضافة بسيطة علي موضوعك .. بالنسبة لدالة echo فلها بعض المعاملات الاضافية والتي يمكن استخدامها مثل : أولا الصورة العامة للأمر أو الدالة echo كود:
echo [options] [string, variables...] معاملات الأمر أو الدالة : -n لإلغاء اخراج القيم في سطر جديد . -e لالغاء السلاش في نهاية السطور .. اذا اسنخدمنا \n أو غيرها .. \a للتنبيه الصوتي عند اكتمال تنفيذ الامر او عملية معينة . \b للمسح \n لسطر جديد \t لعمل تاب tab وكمثال علي ما سبق : كود:
echo -e "Oswol is My home page today \n" أما عن -e فإن لم نستخدمها في المثال السابق فلن تعرض الجملة السابقة في سطر منفرد وسوف تظهر \n ولكن باستخدام -e تم تنفيذ \n وبالتالي عدم ظهورها في الجملة . نبذة سريعة أيضا عن المتغيرات وهناك نوعين كما ذكرت أخي نبيل ولكني سوف أسميهم تسمية مختلفة System variables UDF / User Defined Vars. الأول وهو متغيرات النظام نفسه وكما شرحت بالمثال HOME$ ومتغيرات النظام كل حروفها كبيرة capital أما النوع الثاني udf وهي المتغيرات التي يقوم بعملها اليوز الموجود علي السيستم علي منصة الباش مباشرة أو بداخل سكريبت الباش وللمتغيرات هذه الشروط: أمثلة للمتغيرات SYSTEM_VERSION HOME osowl 1- يجب ان يكون المتغير حروف او ارقام صحيحة ويسمح بتضمين أندر سكور ( _ ) في اسم المتغير . 2- عدم وضع مسافات في اسم المتغير او بينه وبين قيمته او بينه وبين علامة ( = ) : أمثلة n =10 <<< خطأ n= 10 <<< خطأ n = 10 <<< خطأ n=10 <<< صحيح . 3- المتغيرات حساسة لحالة الاحرف .. فالمتغير n غير المتغير N . 4- يمكننا انشاء متغير بدون اعطاءه أية قيم .. مثل 5- عدم استخدام اي علامات مثل ( ؟ - * .. إلخ ) عند تسمية المتغيرات . ======================================== * كيف يتم استدعاء قيم المتغيرات ؟ يتم استدعاء قيمة المتغير بالشكل التالي .. نعطي المتغير hamada القيمة prof hamada=prof ثم يتم استدعاءه هكذا echo $hamada سوف يطبع لنا علي الشاشة القيمة prof وهكذا .. سؤال : كيف يتم طباعة ناتج العملية 6+3 ؟ اذا كتبنا الامر هكذا echo 6+3 فسوف يطبع 6+3 ولن يطبع الرقم 9 .. ولذلك فسوف نستخدم الامر EXPR بدلا من echo فيكون الامر علي هذه الصورة .. كود:
echo `expr 3+ 6` مع ملاحظة المسافات الموجودة في الأمر . أعتذر عن الإطالة في مداخلتي معك .. وبارك الله فيك ونفع بك اخوك المحترف ,
__________________
![]() قيل : الدنيا كلها ظلمات إلا موضع العلم … والعلم كله هباء إلا موضع العمل … والعمل كله هباء إلا موضع الإخلاص … وقيل .. قيّدوا العلم بالكتب .. وقيدوا النعم بالشكر . |
|
|
|
|
|
#6 (permalink) | |
|
عضو نشيط
![]() ![]() ![]() تاريخ التسجيل: Apr 2009
العمر: 24
المشاركات: 104
![]() ![]() ![]() ![]() ![]() ![]() |
اقتباس:
لو تسمحلي بقى اكمل الموضوع واضيف اي حاجه :الوقت احنا وقفنا عند كيفية اننا نعمل سكربت بسيط ويستعمل متغيرات الجهاز وطبعاً عرفنا اننا ممكن نعمل متغيرات من خلال استخدام : كود:
read كود:
read name ملحوظه ياجماعه انا بحب اعمل كده دايماً في سكربتاتي : لما بتستعمل read بيقف على اول السطر وبيكون السطر فاضي وبصراحه مش بيعجبني شكلها انا عندي اضافه ممكن تعجب ناس وممكن ناس تقول عليها بايخه : ممكن تستعملوا الطريه دي : كود:
echo "please put your name ...!" echo -n "Your Name is ==>" read name كود:
Your Name is ==>(_________) ![]() كده اعتقد الشكر هيكون احسن ولو ان كل واحد وراحته طبعاً ده ببعض الإقتباس من كلام الأخ حماده عشان كده مدخلتش في تفصيل قوي . ممكن في طرق تانيه لعمل متغيرات ياجماعه ازاي بقى : ممكن من خلال الطريقه دي : كود:
Variable=`cat /erc/redhat-release` طبعاً نقطه مهمه جداً ان اي امر عايز نتيجته تكون متغير استعملها مع العلامه اللي على حرف الذال ` طيب نتكلم بقى عن اساسيات باش : وهي ازاي نستخدم الباش اصلاً : هنقول ده في الرد الجاي بأمر الله بعد شويه بذن الله ،،، ،،،
|
|
|
|
|
|
|
#7 (permalink) |
|
عضو نشيط
![]() ![]() ![]() تاريخ التسجيل: Apr 2009
العمر: 24
المشاركات: 104
![]() ![]() ![]() ![]() ![]() ![]() |
الوقت ياجماعه سؤال مهم جداً هو احنا بنعرف نستعمل باش صح ولا بنستعملها كده اي كلام ؟
بالتأكيد كل واحد له نقاط قوه وليه نقاط ضعف مش شرط تكون ملم بكل حاجه ولا شرط انك تكون معاك كل الإختيارات ولا كل الأوبشنز المهم انك ساعه ما تحب تعمل حاجه تعرف تعملها وده المهم : نخش في المفيد على طول : الوقت عشان تعرف تعمل سكربتات لابد انك تعرف يعني ايه 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 طبعاً في الحاله اللي فاتت دي هيطلع خطأ في الملف الاولاني لأنه مش موجود هنعرف الوقت نعمل ايه عشانم نشيل رسائل الخطأ يعني اه هيحصل خطأ بس مش هتيجي عالشاشه طبعاً اي امر عايزتنفذه وتبتعه عالخلفيه background ويسيبلك البرومبت فاضي ممكن تكتب اي امر عادي وراه & مثال : كود:
ls -R / & طيب ندخل في نقطه تانيه اللي هي : * افرض اني عايز ادخل النتيجه دي في ملف معين بحيث الملف ده هستفيد منه بعد شويه او سكربت معين هسيتعمل الملف ده لأي سبب اياً كان الحل بسيط جداً : اعمل الأمر اللي انا عايزه اياً كان حتى لو بكتب امر date كود:
date > /root/datefile خد بالك من نقطه مهمه جداً لو نفذت الأمر اللي فات ده بإستعمال كود:
>> كود:
> طيب الوقت افرض في رساله خطأ ومش عايزها تظهر لحد ايه العمل خد بالك من نقطه تانيه : لو هتعمل ابند على ملف لازم تعرف مجموعة حاجات : 1- /dav/null لو عملت ابند على الملف ده كده هتحذف الأوتبوت او بمعنى اصح اللي هيتوجه على الملف ده ولا كأن له اي اثر بالتاكيد رسائل الخطأ هتتوجه على الملف ده 2- بخصوص بعض السكربتات بنحتاج ظهور النتيجة فقط ومش عايزين اي رسائل اخطاء وبعض السكربتات بنعوز رسائل الخطأ بس وفي بعض السكربتات لا بنحتاج فيها لا رسائل صح ولا غلط بس هتفهموا ده بعدين وقدام شويه : A- في حالة اني عايز بس رسائل النتيجة بدون اي خطأ طبعاً مع تغيير الأمر لأني هكتب امر date وغيره بقى لحاجتك الشخصيه : كود:
date >/root/datefile 2>/dev/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 كود:
date >/root/datefile 2>/root/datefile لازم كمان ناخد بالنا من اتجاه ال append لأن < تفرق عن > ده بيوجه على حاجه وده بيوجه على حاجه لازم تاخد بالك كويس جداً توجيهك على ايه ،،، نكمل بعدين بأمر الله ،،، واللي عنده تعليق او اسئله او اضافات يتفضل مشكوراً ،،، وبلاش مشكور ،،، ،،،
التعديل الأخير تم بواسطة NabeeliumAttack ; 04-30-2009 الساعة 05:33 AM |
|
|
|
|
|
#8 (permalink) |
|
سيدة القصر
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() تاريخ التسجيل: Nov 2008
المشاركات: 541
![]() ![]() ![]() ![]() ![]() ![]() |
تسلم ايدك اخى الكريم على هذا المجهود الرائع
وتسلم ايدك اخى الغالى المحترف وشكلى كدا هتعلم الباش بسرعة وباحتراف منكم شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .
__________________
رفاق الدرب ما زلتم بقلب القلب أحبابا
وان غبتم وان غبنا فان الحب ما غابا هى التقوى تجمعنا وحب الله قد طابا رضا الرحمن غايتنا وللفردوس طلابا |
|
|
|
![]() |
| مواقع النشر (المفضلة) |
| الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
عدد الأعضاء الذين شاهدوا هذا الموضوع : 9
|
|
| , , , , , , , |
| أدوات الموضوع | |
| انواع عرض الموضوع | |
|
|
المواضيع المتشابهه
|
||||
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
| مربعات الحوار الرسوميه في bash - Zenity | NabeeliumAttack | أصول برمجة | 6 | 07-02-2009 05:28 PM |
| مربعات الحوار في الباش bash - dialog | المحترف | أصول برمجة | 8 | 05-23-2009 12:09 AM |
| لديك عضو مفتقدة ادخل و اسئل عنه؟ | ساموراى القمة | أصول العام | 7 | 03-28-2009 08:44 PM |
| فن ومهارة الردود ..مهم لأعضاء اصول | بنت يافا | بنت يافا | 6 | 03-09-2009 01:22 AM |
| اسوأ - أفضل - أجمل .... | ELKAPOS | أصول العام | 2 | 01-22-2006 11:36 PM |
![]() |
![]() |