العودة للبرمجة … ولكن بطريقة مختلفة !!!

السلام عليكم ورحمة الله وبركاته …

مضت حوالي أكثر من 4 أو 5 سنوات على آخر كود ++C كتبته … وأظن أيامها كان يخص مسألة الـ routing … البرمجة كانت أكثر الأمور التي عشقتها بكل معنى الكلمة … تعلمت البرمجة في البداية على لغة باسكال PASCAL وكان هذا عام 1997 … وكنت أحبها لدرجة كبيرة جدا خاصة وﻷني تعلمتها مع Flow Charts … فكنت أكتب المخطط الإنسيابي للبرنامج قبل أن أنذفذه على الحاسوب … فعلا أيام روعة … بعد ذلك تعلمت لغة ++C بعدها بحوالي سنتين وأستمريت بالكتابة عليها حتى نهاية سنة 2002 الذي تركت البرمجة فيها وبشكل نهائي وعزمت ووعدت نفسي بأن ﻻ أعود لها مجددا … الأسباب كثيرة وﻻ أريد الخوض فيها حاليا … وربما المقربين مني يعرفون السبب الحقيقي في ذلك … Anyway … قبل فترة ليست بالقصيرة وأنا أفكر في العودة للبرمجة خاصة لغة سي++ التي تمتعت حقيقتا بالعمل عليها … ولكن طبيعة عملي حاليا ليس بحاجة الى مبرمج … وأيضا ليس لي الفراغ الكبير مثل أول للبرمجة والجلوس ساعات على Class معين … ولهذا قررت:
العودة للبرمجة … ولكن بطريقة مختلفة !!!

نعم ها أنا أعود لها من جديد ولكن هذه المرة ليس من خلال بوابة لغة سي++ وإنما من خلال الــ Bash Script … أي سأرجع لكتابة أكواد ولكن هذه المرة هذه الأكواد تعتبر سكربتس أكثر من ما هي أكواد برمجية … والسبب إنه ﻻ تدخل على Compiler وإنما يتم تنفيذها من خلال Interpreter فقط … والذي هو نفسه الموجود داخل الــ Bash Shell … طبعا يوجد أسباب أخرى ﻻ تجعل الـ Bash Scripting تعتبر برمجة ولكن ﻻ أريد الخوض فيها حاليا …
سأقوم بوضع تقريبا جميع السكربتات التي سأقوم بكتابتها منذ أسخف سكربت فيهم والى أجل غير مسمى وﻻ يعلمه سوى الله … ولهذا أليكم هذه اول واحدة … أضغط هنا
سكربت بسيط جدا ستجد المعلومات اللازمة عنه في داخله … أتمنى إن كانت هناك افكار أو إقتراحات لكي أعملها على شكل سكربت أن تتكرموا علي بها … لي عودة قريبة إن شاء الله …

أخوكم [email protected]

42 thoughts on “العودة للبرمجة … ولكن بطريقة مختلفة !!!

  1. وعليكم السلام .

    ماشالله … راعي سوابق برمجيه ابو محمد :D ..

    اعجبني بساطة السكربت .. بانتظار المزيد عشان اطور من نفسي ببعض الاوامر ..

    بالتوفيق .

  2. أضحكتني بكلمة سوابق :) حسيت حالي كنت بجوانتناموا …
    أي والله يا سامي كانت أحلى شي عندي البرمجة … الله ﻻ يوفق الي صار السبب …
    المهم إن شاء الله راح أستمر بالسكربتس هذه وإن شاء الله يكون هناك تعاون بيننا لتطوير انفسنا …
    وألف شكر على المرور والتعقيب الجميل منك …

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

  4. هلا أخوي pasem_haj …
    والله يا خوي البرمجة فعلا تحرك الدماغ نوعا ما لكن ﻻ تنسى إنه الدراسات أثبتت إنه عقل الإنسان البشري ﻻ يصلح أكثر من 5 سنوات كمبرمج … يعني بعد الــ 5 سنوات من البرمجة المفروض ينتقل لشيء آخر مثل التحليل … هذا مرة برنامج تابعته على قناة الجزيرة … والله أعلم …
    أشكرك على المرور والتشجيع لي بارك الله فيك وأتمنى التوفيق للجميع …

  5. التمرين الأول : هذا التمرين يبين كيفية الاستفادة من المعلومات الموجودة في الملفات log files في هذا التمرين المطلوب معرفة المستخدمين (USER IDs) الذين فشلت محاولاتهم في الولوج إلى النظام . في حالة كون عدد المحاولات الولوج الفاشلة لا تتجاوز مرتين فإننا نعتبر هذه الحالة طبيعية، حيث يمكن أن يخطأ المستخدم في إدخال كلمة المرور الخاصة به، أما في حالات الولوج التي تتجاوز ذلك فقد تكون محاولات دخول إلى النظام بشكل غير شرعي. خصوصاً للحسابات الخاصة بالنظام (root, sys..).
    من المفيد أيضاً معرفة عناوين الانترنت التي جرت منها محاولات الدخول، فقد توصلنا لمعرفة شخصية المقتحم أو تفيدنا في تهيئة الجدار الناري Firewall
    سنستخدم المعلومات الموجودة في الملف /var/log/secure حيث تمثل الأسطر التي تحوي عبارة:
    “invalid user” محاولة دخول فاشلة إلى النظام.
    بما أن الملف /var/log/secure خاص بمدير النظام root ولا صلاحية للمستخدمين العاديين بقراءته، فإننا سنقوم بنسخ هذا الملف إلى الدليل الخاص بكل مستخدم باسم login.log.

    المطلوب: كتابة script shell)) أو مجموعة تعليمات بلغة ) shellأو سطر واحد باستخدام التوجيه pipeline) يتم فيه إظهار user ID و عنوان IP لأكثر 5 محاولات ولوج فاشلة إلى النظام باستخدام الملف login.log
    ملاحظة 1: ستحتاج إلى استخدام التعليمات: grep , sort , cut , uniq , sed , head
    ملاحظة 2: حاول الحل على مراحل، بداية من فحص الملف ومعرفة صيغته ثم استخراج الأسطر التي تحوي المحاولات الفاشلة فقط، من ثم محاولة استخلاص ملف يحوي user ID وعنوان IP فقط من ثم يمكن فرز الملف حسب اسم الحساب (login name) ثم حساب عدد التكرارات لكل حساب، ومن ثم فرز النتائج حسب عدد التكرارات واستعراض الأسطر الخمسة الأولى من الملف الناتج.
    ملاحظة 3: يجب على الطالب شرح عمل كل خطوة مع ملف النتائج في حسابه الخاص على مخدم لينوكس.

    التمرين الثاني: المطلوب كتابة script shell)) باسم calc.sh يقوم بعمليات الحساب الأساسية الأربعة ( + ،- ، x، %) وذلك بقراءة نوع العملية
    a for add, s for substract, d for divide, m for multiply
    والرقمين الواجب إجراء العملية عليهما (يتم إدخال جميع هذه القيم من قبل المستخدم) ومن ثم إظهار النتيجة.
    ملاحظة 1: على البرنامج التحقق من عدد القيم المدخلة من قبل المستخدم (3 فقط) وان القيمة الأولى هي أحد الأحرف الأربعة (a,s,d,m) أما القيم الثانية والثالثة فيجب أن تكون عبارة عن أرقام، وإظهار رسائل الخطأ المناسبة للمستخدم وإعادة الطلب منه إدخال القيم الصحيحة.
    ملاحظة 2: كلما كان البرنامج تفاعلياً وواضحاً للمستخدم كلما سيتم إعطاء علامة أعلى للحل.
    ملاحظة 3: يحتاج حل التمرين لمراجعة بعض معرفة أساسيات البرمجة بلغة SHELL
    ملاحظة 3: يجب على الطالب شرح عمل كل خطوة (عن طريق وضع تعليق ضمن البرنامج) وأن يقدم البرنامج shell script في حسابه الخاص على مخدم لينوكس.
    ملاحظات

  6. أخي محمد قبل أن أجيب على شيء … هل هو سؤال إختبار للقدرات أم إنك بحاجة الى المساعدة !!!

    أتمنى أن تجيبني على سؤالي أولا …

  7. اخي العزيز [email protected] تحية طيبة وبعد
    انا ادرس لينوكس وعندي اختبار وهذه الاسئلة متوقعة في الاختبار
    لذلك الرجاء ارسال الحل على الايميل الخاص بي
    [email protected]
    ولك جزيل الشكر

  8. أخي محمد أليك جزء بسيط من الحل للسؤال الثاني وما عليك إﻻ أن تضيف الجمل التي تقوم بإختبار وعمل الـ error detection …
    #/bin/bash
    declare -i VAL1
    declare -i VAL1
    declare -i SUM

    echo “Enter ‘a’ for Addition”
    echo “Enter ‘s’ for Subtraction”
    echo “Enter ‘d’ for Devition”
    echo “Enter ‘m’ for Multiplication”
    read OPER

    echo “Enter Value #1: ”
    read VAL1
    echo “Enter Value #2: ”
    read VAL2

    case $OPER in
    a ) SUM=$[VAL1+VAL2];;
    s ) SUM=$[VAL1-VAL2];;
    d ) SUM=$[VAL1/VAL2];;
    m ) SUM=$[VAL1*VAL2];;
    esac

    echo “SUM= $SUM”;
    exit 0;

  9. بخصوص السؤال الأول أرجوا أن تمهلني بعض الوقت أوﻻً ﻷنه اليوم جمعة ومشغول مع الأهل والأصدقاء وثانيأً لأني لازلت أتعلم لغة الشل سكربتينغ هذه ولم أصل الى مرحلة الإحتراف …

    فهل لك أن تخبرني متى آخر موعد ؟ وإن شاء الله الذي أقدر عليه أقوم به … وإن لم تستطع عمل الـ error detection سأقوم بها لك أيضاً … الى ذلك الحين … أقول لك الى اللقاء …

  10. اخي [email protected] جزاك الله كل خير وانا بانتظار الحل الثاني
    مششششششششششششششكور

  11. اما بالنسبة لاخر موعد فهو 28/6 /007
    ملاحظة : الرجاء ارفاق الشرح مع الحل اذا امكن
    وفقك الله ياسيد [email protected]
    ولقد اخجلتنا باهتمامك السريع لاسئلتنا

  12. إن شاء الله يا أخي محمد أحاول أتفرغ لحل السؤال هال يومين …
    لأنه عندي إمتحان ويجب أن أستعد له أنا الثاني …

  13. اخي العزيز [email protected] وفقك الله وكان لك خير معين
    انشاالله بتنجح وبتحقق مرادك
    على كل حال مجرد ردك على تساؤلاتنا هو اكبر دليل على اهتمامك
    وانشالله يكون النجاح هو حليفك دائماً و
    شككككككككككككككككككككككككككككراً

  14. أخي العزيز محمد … جزاك الله خير على دعاءك هذا لي وأتمنى لك المثل إن شاء الله … وأتمنى تتابع بين الحين والآخر وسأحاول أن أكتب لك الحل في أقرب فرصة ممكنة وقبل تاريخ 28 إن شاء الله …
    شاكر لك زيارتك ودعائك مرة أخرى …

  15. اخي العزيز [email protected] انا ناطر من الحل
    ووفقك الله لخير العمل
    وشككككككككككككككراً

  16. اخي العزيز [email protected] الرجاء ارسال الحل اليوم اذا امكن
    لانو اليوم هو 27/6 ومباقي الا اليوم ولك جزيل الشكر

  17. ملاحظة : انا بحثت عن الحل للسؤال الاول ولم اجد الحل وانا
    مضطر للحل جدا
    وماتواخذنا على استعجالي لانو الوقت بلش يخلص

  18. اخي العزيز binary
    اني باشد الحاجة للحل والرجاء ارساله اذا امكن اليوم او صباح غد
    اخوك محمد
    الرجاء لاتكسفني
    وشكرا

  19. والله يا أخي محمد أنا الذي خجلان منك …
    صدقني وقتي ليس كما تتصور … ويعلم الله ما لاقي الوقت المناسب للتفكير بالحل … لكن سأحاول أن أرى اليوم هل لي بجلسة والمحاولة أم لا … أرجوا أن تتفهم وضعي فوالله ليس بيدي حيلة ::17

  20. أخي محمد جرب هذه:
    #/bin/bash
    #authentication failure
    echo USER=`cat /var/log/messages | grep “FAILED LOGIN” | awk ‘{print $12}’ | awk -F: ‘{print $1}’`
    echo FROM=`cat /var/log/messages | grep “FAILED LOGIN” | awk ‘{print $10}’ | awk -F: ‘{print $1}’`

    exit 0;

    حيث تجلب لك المستخدم والمكان الذي حاول الدخول منه … لكنه سيختلف الرقم الذي بداخل أقواس الـ awk حسب كيفية اللوغات تكتب على توزيعتك ولهذا ما عليك سوى التلاعب بها لتحصل على حقل معيين من بين هذه الحقول التي داخل اللوغ … هذه مجربة على openSuSE …

    طبعاً الشكر للأخ سفاح النت … وأتمنى أن تضيف عليها ما يلزمك …

  21. اخي العزيز [email protected] وفقك الله ووفق سفاح النت على هذا المجهود الذي تبذله من
    اجل الاخرين وجزاك الله كل خير على هذا العمل
    بصراحة اني لا استطيع ان اعبر لك على مدى سروري بهذا العمل
    الا ان اقول لك جزاك الله خيرا ووفقك الى خير العمل
    مشششششششكككككككور
    ::14 ::14 ::14 ::14 ::14 ::14
    اخوك محمد

  22. حياك الله أخي محمد … لم أفعل شيء صراحة … والأخ سفاح النت هو من قام بحل السؤال الأول لك … أنا من يشكرك على دعواتك هذه وأتمنى لك المثل إن شاء الله …

    وأعدك يا محمد هناك مفاجئة ستسرك قريباً …
    تحياتي لك وأتمنى أن تزور الزون بإستمرار …

  23. اخي العزيز [email protected] انا دائما ممنون لك
    واتمنى لك التوفيق الدائم
    وانا متوقع منك اكثر من المتوقع
    مشكككككككككككككككككككككككككككككككككككككككككككككككووووووووووووووووووورر ::17 ::17 ::14 ::14 ::6 ::6

  24. بس بدي قول للاخ محمد عيب عليك يعطيك الدكتور او المهندس عمر دعنة وظيفة وتروح تاخد حللا هي طريقة غير مقبولة للغش
    وشكرا

  25. و سمحلي قلك لا تستغل طيبة قلب الشباب بالمنتدى و تسرق الحل.. بس لو اعرف هالزميل يلي الي يلي بيعمل هيك لكنت عن جد خانقتو نحنا عم ندرس لناهد شهادتنا بالتعب و بعرق جبينا مو بطريقة الضحك على اللحى!!
    بعدين المهندس عبد الله عيسى وعمر دهنة ما رح كتير يكونو مبسوطين من الحل لانو ناقص او بالاحرى لا يعتمد على ما طلبوه
    شكرا الكن يا شباب ع مساعداتكن

  26. أخي SVU الأخ محمد لم يأخذ الحل بالكامل ولو لاحظت الحل لرأيت إنه منقوص وليس كاملاً … ولهذا أرجوا أن لا يكون هناك تجريح لأحد …

  27. أخي SVU لا داعي يا أخي للزعل الى هذه الدرجة أنت تتعب لتتعلم والأخ محمد ربما لم يستطع حل هذه المسألة وطلب المساعدة أين الغش في ذلك ؟ وأين العيب فيه أيضاً ؟ خاصة وإنه بإعترافك تقول إن الحل ناقص وهو فعلاً كذلك … بالنهاية أخي الكريم إنت من سيستفيد في تعبك وليس هو … لك مني خالص الود والتقدير …

  28. شكرا لك اخي العزيز وشكرا لردك الجميل لكن يا اخي تعبنا و نحنا مندرس وغيرنا ياخذ الحلول بطرق متعددة و بالاخير يكون التققيم ظالما لنا لان الدكاترة يقيمون ع اساس الناس الجايبين علامات عالية و معظمن بالغش
    على كل انت يا اخي الله يعطيك الف عافية
    وشكرا ويا ريت تعتبروني صديقة للمنتدى

  29. الأخت SVU كما قلت لك لا داعي لأن تحزني على مسألة التقييم … أتعلمين لماذا ؟ لأنها بالنهاية أرقام لا تقدم ولا تؤخر والعبرة بما تعلمتي وليس بما أخذت من علامات … وصدقيني ياما ناس أخذوا علامات ولكنهم لا يفهموا شيء وياما ناس أخذوا علامات وهم يفهمون وبالنهاية لم يحصلوا على شيء أيضاً … يعني هونيها يا بنت الحلال تهون … ما يهمني هو شو تعلمت أنا !!! وليس شو أخذ غيري ::18

    وأكيد نتشرف بوجودك كصديقة وكمتابعة لما أكتبه … أشكرك جزيل الشكر على مرورك بإستمرار وإبداء رأيك في ما أكتبه … وإن شاء الله لن تجدي إلا كل ما يسرك دائماً ::20

  30. شكرا لك يا اخي ما بعرف كيف بينادوك هون يمكن باينري رغم انو انك تقاس بالغيغا بايتات ..
    اخي العزيز عم اشترك بس ما عم يرسلولي رمز التفعيل لايميلي و ما بعرف السبب ممكن تعطيني فكرة
    شكرا الك مرة تانية بس انا حابة اعرف شو جنسية حضرتك؟

  31. أنا بدي اتشكر الأخ يلي حل الأسئلة وبيد اقول للطالب يلي اخد الحل انو الجحل تعمم على كل الجامعة فيا ريت تلعب غيرها لأنو قمت بارسال الحلول للكل و بتمنى انو هالأساليب ما تتبعوها وما تستغلوا طيبة الناس لحاجات انانية وبدي خبرك انو هاد الحل موجود على النت ومو من حل صاحبك يلي خبرك انو حلك يا ه فدير بالك
    وشكر يا اخي يلي حليت الأسئلة لأنو نحنا في جامعة وهوا اشتغل طيبتك وخلاك تنشغل فيو

  32. هلا بالأخت SVU …
    أنا نعم الكل يناديني [email protected] أو Binary أو باينري … ألي ترينه مناسب ناديني فيه عادي ::20
    ما هي مشكلة كود التفعيل ؟ وأين قمتي بالإشتراك في أي منتدى تقصدين ؟ وما هي إسم العضوية لكي أحل لك المشكلة ؟
    بالنسبة لي جنسيتي هي: إبن الإسلام، إبن كل العرب، إبن الرافدين العراق …

    تحياتي لك …

  33. Svu good man ما فهمت على فكرة ولا شي !!! ::9

  34. يا اهلا بابن العراق الغالي جيراننا واهلنا
    انا من سوريا و صدقا عنا عيلتين عراقيات ببيتنا و منحبن كتير كما لو اننا اهل..
    انا يا اخي العزيز اشترك بالمنتديات الاساسية من الصفحة الرئيسية و ما بعتولنا المز صدقني حابة كتير كون معكن المنتدى هاد راقي وجميل جدا
    شكرا الك مرة تانية

  35. الله يخليك يارب … هذا من العشم فيكم يا أهل سوريا … ونتشرف بك دائماً … العراقيين في سوريا كثيرون جداً هربوا من الظلم والقتل والخطف والإضطهاد الذي يعاني منه البلاد …

    بس يا بنت الحلال للحين ما خبرتيني أي منتدى تقصدين أنت ؟ إن كان قصدك هذاا ؟ فهو ليس منتدى وإنما مدونتي الخاصة … فهل لك أن توضحي لي ؟

    وشكراً لك ولكلماتك الراقية …

  36. مرحبا اخي العزيز
    صدق كنت مفكرة هاد منتدى !!
    كيفك ان شاء الله تكون بخير وسلامة و هل انت ما زلت بالعراق ام انك في بلد عربي اخر
    اتمنى زيارتك لسوريا قريبا اذا لم تكن فيها
    … ::17 ::17 ::17 ::17 ::17

  37. أهلا أختي الكريمة SVU …
    عادي ولا يهمك إعتبريه منتدى ::20
    الله يسلمك يارب، أنا لا لست بالعراق حالياً مقيم خارج العراق حالياً … أما عن سوريا فالصراحة الصراحة سوريا من أعز البلدان على قلبي وحين أتجول فيها أحس نفسي وسط العراق … الله يحفظ لكم بلدكم ويوفكم وإن شاء الله لي زيارة قريبة الى هناك ::18

  38. Pingback: [email protected] » أرشيف المدونة » لغة Python وشكر خاص للأخ StrikerX

Comments are closed.