إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

من مصادر تعليم Linux, " الاوامر التعليميه"

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • من مصادر تعليم Linux, " الاوامر التعليميه"

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

    من فترة كتبت هذا الموضوع ، وقلت اضعه هنا


    مستخدمي النظام Linux ، اصبح بامكانهم التعامل مع كل خدمات وموارد النظام على اكمل وجه في التوزيعات الاخيره ، واقرب مثال على كلامي هو انظمة suse , fedora , mandrake لا اعلم عن ماندرك اذا كان الاسبلنق خطأ لاني ماقد جربتها وعجزان اروح لقوقل

    الزبده هو ان انظمة لينكس تطورت بشكل كبير وبالاحرى انها تتحدث بشكل شبه يومي وبدرجة كبيره في الايام الاخيره

    كثير من المستجدين على النظام Linux يواجهون مشاكل في البدايه ، وماهي الا نفس المشاكل التي تواجه المستجد على اي نظام بالعالم وليكن وندوز ، كثيرة الاخطاء والمشاكل اللي واجهتها قبل سنين عند بدايتي مع الحاسب الالي والوندوز

    لن اتكلم عن ماهو لينكس ولن اتكلم عن قدراته ، بل سأتكلم عن عدة اوامر تصنع منك خبير لينكس محترف مع مرور الايام

    بامكان المستخدمين الاستغناء عن جميع اوامر النظام ، بحيث يكتفي بالواجهه الرسوميه او الانترفيس وماتحمل من برامج كافيه للمستخدم الشخصي

    والاكيد انه مع مرور الايام ستضطر الى استخدام اوامر Linux سواء بتركب برنامج او بتركب اي شي لابد من اوامر لابد من اوامر

    وهنا حقاً تكمن متعة Linux ، وهنا كلمة من باب تجربتي القليله اوجهها الى اي مستجد على نظام لينكس

    " كلما زادت معرفتك بأوامر النظام ، زاد احترافك وخبرتك فيه "

    ومن اسهل مارأيت هي اوامر النظام Linux مع الاستمرار فيها يوماً بعد يوم تجد ان البديهيات لديك اصبحت كثيره وتجد ان بعض الاوامر كنت تراها في منتهى الصعوبه وانها للمحترفين فقط ، تلاحظ انها اصبحت بديهيه لديك ، وهذا مايوفره Linux لمستخدميه بشكل عام.

    فيقول : أطلبني واعطيك ولا تستحي مني biggrin.gif

    في الاونه الاخيره وجدت نفسي ملم المام كامل في نظام Linux واني اعمل كل ماريد على النظام دون صعوبه او مشاكل تذكر

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

    الا ان الخفايا كانت اكبر من ما كنت اتصور

    تكلمت بمافيه الكفايه عن النظام ، وسأدخل في الموضوع


    الشل او التيرمنال او سطر الاوامر او فاكهة لينكس كما يسميها البعض ، ماهي الا وسيط بين المستخدم والنواه
    المستخدم يعطي امر والشل يوصله للنواه وياخذ الاستجابه ويوصلها للمستخدم ، والاوامر كالتالي



    كود:
    cd, ls, mkdir

    كل امر له عمل معين ، والاوامر ماهي الا ادوات ( برامج ) وكل امر له استخدامه

    ما اريد الوصول اليه في هذا الموضوع هو " الاوامر التعليميه " ، هل تعلم ؟ ان Linux يملك اوامر تعليميه تجعل منك محترف وخبير ومدمن command line

    كل شي واي شي تبي تعرفه ايش هو وكيف هو وليش وايش و و و و و ....... بشرط وضمان كامل انك ستجد جواب على جميع اسألتك ، ستملأ كل فضول لديك من خلال سطر الاوامر

    ان اردت الاستفاده من هذا الموضوع عليك تطبيق الاوامر ، مجرد القراءة لاتنفع

    الامر whatis :

    من أجمل مارأيت في Linux هو الامر whatis ، هذا الامر لن تتعدى اجابته في الغالب سطر وحيد وملخص بقدر كبير

    يشبع فضولك ويعطيك الزبده عما سألت ، فلنجرب ونرى أفضل ، افتح سطر الاوامر واكتب whatis


    كود:
    [email protected]:~> whatis
    whatis what?
    [email protected]:~>

    اجابه شافيه whatis what عما ماذا تسأل !

    اي شي يخطر في بالك وتبي تعرف ايش هو فقط اسبقه بالامر whatis ، فل نسأل عن ls ونشوف ايش يقول لنا

    كود:
    [email protected]:~> whatis ls
    ls (1)               - list directory contents
    ls (1p)              - list directory contents
    [email protected]:~>
    هل رأيت ؟ هل رأيت كيف كانت الاجابه شافيه ؟

    لايجيني أحد ويقول كل شي انقليزي وانا ماعرف انقليزي ، خذ هذا سكربت ترجمه يمشي حالك ولايكثر
    http://www.arabsgate.com/trjm/

    اقسم بالله اني اعاني من هذا العذر الفاشل ، وهو انه انقليزي .

    كل شي انقليزي الحاسب مصدره الانقليز وهو بلغتهم ، انسى انك تحترف فيه من غير انقليزي هذي الزبده خذها مني

    جررب تستخدم الامر whatis عن اي شي يخطر في بالك ، وانا اضمن لك الاجابه الشافيه قبل مايضمنها سطر الاوامر لك

    ولاتحط حدود للأمر فهو اقوى مما تتخيل !

    ادعوا لتجربته لكل مهتم.


    الامر more :

    بمعنى زيادة ، بمعنى اريد المزيد ، بمعنى اريد ان اعرف المزيد عن ....

    يكمن جمال هذا الامر في اماكن كثيره وفي الغالب للاستفسار عن الملفات ، اي ملف ممكن انك تعرف عنه معلومات بهذا الامر

    لنفرض انه عندي ملف نصي باسم files نسخدم الامر more معه بالطريقه التاليه

    كود:
    [email protected]:~> more files
    http://10.0.0.2/1.tar.bz2
    http://10.0.0.2/2.tar.bz2
    http://10.0.0.2/3.tar.bz2
    http://10.0.0.2/4.tar.bz2
    تلاحظ انه قام بقراءة محتويات الملف وهو عباره عن ملفات رفعتها في جهازي الثاني على الشبكه وخزنتها عندي في ملف واحد عشان استخدم الملف مع الامر wget دون كتابه عناوين الملفات في كل مره smile.gif

    لو عندك اختصار لبرنامج ما واستخدمت معه الامر more راح يعطيك عن مكانه الاصلي وشوية معلومات عنه

    على سبيل المثال ابغى زيادة معلومات عن اختصار لبرنامج xchat وضعته على سطح المكتب لدي

    كود:
    [email protected]:~/Desktop> more xch*
    [Desktop Entry]
    X-SuSE-translate=true
    Encoding=UTF-8
    Name=XChat IRC
    Name[zh_TW]=網路清談
    Comment[de]=IRC-Client
    Comment[es]=Aplicación de IRC
    Comment[fi]=IRC-sovellus
    Comment[fr]=Client IRC
    Comment[hu]=IRC-kliens
    Comment[lt]=IRC klientas
    Comment[no]=IRC-klient
    Comment[pt_BR]=Cliente de IRC
    Comment[sl]=Odjemalec IRC
    Comment[sv]=IRC-klient
    Comment[ro]=Client de IRC
    Comment[zh_TW]=X-Chat 聊天程式
    Comment=IRC Client
    Exec=xchat
    Icon=xchat.png
    Terminal=false
    Type=Application
    Categories=Application;Network;IRCClient;
    --More--(47%)
    هل رأيت ؟ هذه كلها معلومات عن الملف xchat ، وكل ملف تطلع معلوماته حسب طبيعته ، سواء كان تنفيذي او نصي او ملف اعداد لبرنامج ما

    للمره الثانيه اقول ، لا تستهين بقوة هذا الامر more فهو اكبر مما تتصور



    يتبع

  • #2
    الامر man :

    هذا هو اقوى مرجع تعليمي داخل نظام Linux

    اي شي اي شي يخطر في بالك اسبقه بالامر man ، وهو اختصار لـ manual

    في الاوامر السابقه whatis, more كانت فقط تعطي معلومات خفيفه عن ما نريد ، اما في الامر man اختلاف كلي عن تلك الاوامر

    فهذا الامر يخزن فيه كل مايحتاجه مبرمج الـ shell script ، وكل مايحتاج معرفته المستخدم عن اي شي ، عن اي امر ، عن اي اداة ، عن اي برنامج ، عن اي خدمه ، لاتضع حدود لهذا الامر ابداً

    خلينا نتمرس شوي ونشوف whatis ايش يقول عن man

    كود:
    [email protected]:~> whatis man
    man (1)              - an interface to the on-line reference manuals
    man (7)              - macros to format man pages
    man (1p)             - display system documentation
    [email protected]:~>
    كما ترى اعطانا اجابه مختصره ، تابع معي

    يعتبر man من اهم الاوامر لمدير نظام Linux ، وقال لي احد الاصدقاء ان أردت احتراف Linux عليك بالاوامر التعليميه فهي تلبي كل ماتريد ، وفعلا كلامه عين الصواب وهذا ما اتحدث عنه في موضوعي هنا

    خلينا نطبق مثال باستخدام man على اي امر اي اداة اي برنامج ، انا بجرب على الامر ls


    كود:
    [email protected]:~> man ls
    عند كتابة هذا الامر ، سيذهب بك سطر الاوامر الى واجهه جديده تحمل كل شي يتعلق بالامر ls ، خلينا نلقي نظره تعريفيه على نتيجة الامر السابق

    كود:
    LS(1)                            User Commands                           LS(1)
    
    
    
    NAME
          ls - list directory contents
    
    SYNOPSIS
          ls [OPTION]... [FILE]...
    
    DESCRIPTION
          List  information  about  the FILEs (the current directory by default).
          Sort entries alphabetically if none of -cftuSUX nor --sort.
    
          Mandatory arguments to long options are  mandatory  for  short  options
          too.
    
          -a, --all
                 do not ignore entries starting with .
    
          -A, --almost-all
                 do not list implied . and ..
    
    Manual page ls(1) line 1
    لن اتكلم عن ماهو ls ، بل سأتكلم عن ماهي man

    في بداية الواجهه قال NAME وذكر ماهي ls وقال انها تستخدم لعرض قائمه بالملفات وهذا شي جميل

    ثم قال SYNOPSIS وهي طريقة الاستخدام كما ترى

    ثم قال DESCRIPTION وهي وصف امكانيات ls ، ثم تحدث عن خيارات الامر وكل خيار ماذا يعمل ؟

    هذه النافذه بها الكثير من المعلومات عن الامر المراد ، وفي مثالنا هو الامر ls

    ان كنت تريد ان ترى العجب في ls فقط استخدم السهم الى الاسفل لترى ماكان يخفى عليك !

    حتى الأمثله ، فهو يوفر لك كل ماتريد

    جرب الان ...


    كما رأيت انه هناك الكثير من الامكانيات للأمر ls وكثيره خيارات هذا الامر ، خذ الزبده مني

    اذا كان هدفك هو الالمام بأمكانيات الامر ls عليك قراءة جميع المعلومات فيه ، ولكن في الغالب لن تحتاج الا لخيار واحد او اثنين او ثلاثه حسب ماتريد

    من الصعب جداً ان تقرأ كل هذا الـ manual من اجل خيار او خيارين أو ثلاث ، هناك عشرات الخيارات كماترى

    وفي بعض الادوات تصل الخيارات الى المئات !

    هل يعقل ان تقرأ كل هذه الكلمات حتى تصل الى ماتريد ؟

    نعم يعقل ولكنها تبدو غبية بعض الشيء ، ولاتنسى قدر الوقت الذي ستهدره بقراءة مالا تريد

    في نفس النافذه اضغط على " / " ثم اكتب ماتريد البحث عنه ، وستجد اجابه عما تريد

    افرض انك تبي تبحث عن كلمة user او أي كلمة داخل محتويات الامر ls

    فقط اكتب التالي

    كود:
    /user
    ثم انتر ، ستظهر لك النتائج

    هذا هو Linux وهذه هي man وهنا متعة سطر الاوامر كما أرى ، لا اعرف ان كنت تراها متعة مثلي

    ستكتشف وتعرف كل شي كل شي عن اي شي smile.gif

    لن اتكلم اكثر من هذا عن الامر man هنا اكتفي بالحديث واترك الباقي لك كمستخدم Linux

    ملاحظه اخيره اذا اردت الخروج من نافذه man والعودة لسطر الاوامر فقط اضغط q بيدك اليسرى طبعاً biggrin.gif



    الامر info :

    اخر أمر سأتحدث عنه ، وهو شبيه بحد كبير للأمر man ، نجربه مع الامر او الاداة ls


    كود:
    [email protected]:~> info ls

    ستأخذك نتيجة هذا الامر الى نافذه جديده مثل man كما ذكرت ، ولكن باختلاف المحتويات

    انتظر الى الناتج

    كود:
    File: coreutils.info,  Node: ls invocation,  Next: dir invocation,  Up: Directo\ry listing
    
    10.1 `ls': List directory contents
    ==================================
    
    The `ls' program lists information about files (of any type, including
    directories).  Options and file arguments can be intermixed
    arbitrarily, as usual.
    
      For non-option command-line arguments that are directories, by
    default `ls' lists the contents of directories, not recursively, and
    omitting files with names beginning with `.'.  For other non-option
    arguments, by default `ls' lists just the file name.  If no non-option
    argument is specified, `ls' operates on the current directory, acting
    as if it had been invoked with a single argument of `.'.
    
      By default, the output is sorted alphabetically, according to the
    locale settings in effect.(1) If standard output is a terminal, the
    output is in columns (sorted vertically) and control characters are
    output as question marks; otherwise, the output is listed one per line
    and control characters are output as-is.
    --zz-Info: (coreutils.info.gz)ls invocation, 54 lines --Top---------------------Welcome to Info version 4.8. Type ? for help, m for menu item.
    هذا الامر info بالنسبة لي اعتبره المرشد المعلم الأفضل عن كل ما أريد

    لن اطيل بالتفاصيل اكثر من هذا


    ولكن ان اردت احتراف Linux عليك بهذه الااومر


    كود:
    whatis, more, man, info

    ولا اعلم ان كان هنالك اوامر تعليميه غيرها ، هذا ما عرفته خلال تجربتي

    حيث تكمن متعة الاستغناء عن الماوس ، خلال سطر الاوامر

    لاتنسى ان Linux هو أم البرمجيات وهو جد المعرفه والاحتراف في كل شي

    ولا تنسى دور المصادر المفتوحة في كل ذلك

    ان كنت تريد الاحتراف ، هذا انا أدلّك على طريقه خلال Linux

    الى هنا دمتم لينوكسيين حرّين تتعلمون و تعملون ماتريدون بلا قيود!

    السلام عليكم

    تعليق


    • #3
      السلام عليكم
      جزاك الله خيرا على هذا الموضوع المفيد حقا.
      تحياتي
      User N4m3 | FLoOoD HacKeR
      e-mail | e@Hotmail.com | zo@Hotmail.com
      ZoNe-H
      FaceBook

      تعليق


      • #4
        يعطيك ألف عافيه أخوي عبدالعزيز وصراحه حاجات توني أعرفها ، ولينوكس صراحةً عجيب بمعنى الكلمة

        وماقصرت جعل والديك في الجنه

        أطيب تحيه ،،
        http://www.flashfp.net/uploader/modu...99547aaab5.jpg

        u can live freedom but u can't live without it

        تعليق


        • #5
          السلام عليكم ورحمة الله وبركاته

          ياخي انتي شي يابوسعود

          طيب والي ناوي يزعجك بكم سوال ؟

          شرايك تشرح لنا كيف ربط الهاردسك الخارجي بالجهاز يعني تسوي له مونت

          اوضح لك كيف

          يعني مثلا انا ابي اثبت توزيعة بنتو الخاصة بالاستاذ محمد حجاج ومن ضمن الخطوات اني اثبتها عن طريق لايف سيدي

          ولنفرض انها مخزنه الان على هاردسك خارجي مقسم ثلاث اقسام

          كيف اربط بين الهاردسك الخارجي بالايف سيدي عشان اقدر ازبط باقي الانستاليشن ؟

          يعطيك الف الف عافية

          لك التحية والتقدير وبالانتظار

          تعليق


          • #6
            المشاركة الأصلية بواسطة [TupaC] مشاهدة المشاركة
            السلام عليكم ورحمة الله وبركاته

            ياخي انتي شي يابوسعود

            طيب والي ناوي يزعجك بكم سوال ؟

            شرايك تشرح لنا كيف ربط الهاردسك الخارجي بالجهاز يعني تسوي له مونت

            اوضح لك كيف

            يعني مثلا انا ابي اثبت توزيعة بنتو الخاصة بالاستاذ محمد حجاج ومن ضمن الخطوات اني اثبتها عن طريق لايف سيدي

            ولنفرض انها مخزنه الان على هاردسك خارجي مقسم ثلاث اقسام

            كيف اربط بين الهاردسك الخارجي بالايف سيدي عشان اقدر ازبط باقي الانستاليشن ؟

            يعطيك الف الف عافية

            لك التحية والتقدير وبالانتظار
            http://linuxac.org/showthread.php?t=499

            شوف الموضوع هذا ، وأي اشكالية اسأل هناك


            شكرا للجميع

            تعليق


            • #7
              ما شاء الله
              عمل جميل و رب الكعبة
              ...
              ..
              .

              تعليق


              • #8
                المشاركة الأصلية بواسطة عبد العزيز مشاهدة المشاركة
                اي شي يخطر في بالك وتبي تعرف ايش هو فقط اسبقه بالامر whatis ، فل نسأل عن ls ونشوف ايش يقول لنا

                كود:
                [email protected]:~> whatis ls
                ls (1)               - list directory contents
                ls (1p)              - list directory contents
                [email protected]:~>
                هل رأيت ؟ هل رأيت كيف كانت الاجابه شافيه ؟
                هذا الأمر في الحقيقة يقرأ قاعدة بيانات خاصة يتم بنائها من ملفات man pages باستخدام اﻷمر /usr/sbin/makewhatis لذا تأكد من تشغيل هذا اﻷمر إذالم تحصل على أي إجابات
                وهناك apropos أخوه في العمل.

                المشاركة الأصلية بواسطة عبد العزيز مشاهدة المشاركة

                لنفرض انه عندي ملف نصي باسم files نسخدم الامر more معه بالطريقه التاليه

                كود:
                [email protected]:~> more files
                http://10.0.0.2/1.tar.bz2
                http://10.0.0.2/2.tar.bz2
                http://10.0.0.2/3.tar.bz2
                http://10.0.0.2/4.tar.bz2
                more عبارة عن متصفح ملفات file pager يقرأ محتويات الملف ويطبعها على الشاشة، لكن بدلا من طباعتها للخرج القياسي مرة واحدة كما يفعل cat فإنها يطبعها صفحة بصفحة بحيث يمكنك قرائتها بالتتابع، العيب الرئيسي في more هو عدم امكانية الصعود لأعلى لقرائة الصفحة السابقة، لذا لم يعد يستعمل كثيرا لأن less استبدله وبه مميزات كثيرة عنه لذا أنصح الجميع باستخدام less بدلا عن more.

                تعليق


                • #9
                  ماشاء الله tux

                  معلومات تعتبر جديده بالنسبة لي

                  تعليق


                  • #10
                    المشاركة الأصلية بواسطة عبد العزيز مشاهدة المشاركة
                    الامر man :

                    هذا هو اقوى مرجع تعليمي داخل نظام Linux

                    اي شي اي شي يخطر في بالك اسبقه بالامر man ، وهو اختصار لـ manual

                    في الاوامر السابقه whatis, more كانت فقط تعطي معلومات خفيفه عن ما نريد ، اما في الامر man اختلاف كلي عن تلك الاوامر

                    فهذا الامر يخزن فيه كل مايحتاجه مبرمج الـ shell script ، وكل مايحتاج معرفته المستخدم عن اي شي ، عن اي امر ، عن اي اداة ، عن اي برنامج ، عن اي خدمه ، لاتضع حدود لهذا الامر ابداً

                    خلينا نتمرس شوي ونشوف whatis ايش يقول عن man

                    كود:
                    [email protected]:~> whatis man
                    man (1)              - an interface to the on-line reference manuals
                    man (7)              - macros to format man pages
                    man (1p)             - display system documentation
                    [email protected]:~>
                    كما ترى اعطانا اجابه مختصره ، تابع معي
                    يمكنك أيضا استخدام man man ليخبرك هو عن نفسه

                    في نفس النافذه اضغط على " / " ثم اكتب ماتريد البحث عنه ، وستجد اجابه عما تريد

                    افرض انك تبي تبحث عن كلمة user او أي كلمة داخل محتويات الامر ls

                    فقط اكتب التالي

                    كود:
                    /user
                    ثم انتر ، ستظهر لك النتائج
                    لنشرح عمل man ببساطة، أغلب برامج جنو/لينكس (وهذا سلوك ورثوه من يونكس) تأتي بملفات مساعدة تسمي man pages هذه الملفات مكتوبة بلغة markup شيء مثل HTML يسمي troff ، عندما تقوم أنت بتشغيل man طالبا المساعدة عن أمر ما يبحث هو في اﻷدلة التي تحتوي ملفات المساعدة عن ملف بهذا الإسم فإذا وجده يرسله الي برنامج يدعى groff يقوم بتنسيق النص في صورة مقروءة ثم يرسله الي متصفح الملفات (غالبا less) الذى يعرضه على الشاشة، فما تراه أمامك هو less وطريقة البحث هذه هي الطريقة المستخدمة في less اكتب سلاش / وبعدها الكلمة التي تبحث عنهل ولاحظ أيضا أن هذا البحث حساس لحالة اﻷحرف كبيرة أم صغيرة.

                    لماذا أقول كل هذا الكلام؟ ﻷن لي محاولة في عربآيز لترجمة ملفات اﻷدلة manpages وقد ترجمت بضعة وعشرين (أو وثلاثين) دليلا منها لكن أصبت بالإحباط بسبب أن برنامج groff لا يتعامل مع النصوص المرمزة باليونيكود جيدا مما يعني أن أحدا لن يستفيد من هذا الملفات في الوقت الحالي، الشباب في مشروع groff قالوا أنهم يعملون على هذا وهناك رقع لحل هذا ومازلت باتظار صدور هذه الإصدارة حتى اﻵن. لكن هناك "بريمج" صغير يحل هذه مؤقتا لكن ليس حلا عمليا ﻷنه لن يأتي مع أي توزيعة.
                    انظر هنا لتري بعضها
                    http://khalid_hosny.manalaa.net/imag...arabic_manpage
                    http://khalid_hosny.manalaa.net/node/20


                    الامر info :

                    اخر أمر سأتحدث عنه ، وهو شبيه بحد كبير للأمر man ، نجربه مع الامر او الاداة ls


                    كود:
                    [email protected]:~> info ls
                    info هو البديل الذى اخترعته جنو لنظام التوثيق القديم في يونكس (man) يتميز info بإمكانيات رائعة مثل تقسيم الموضوع لفصول ووجود روابط (تجد بجوارها *) حرك المؤشر في الطرفية لكون فوق أحدها ثم اضغط enter وسينقلك للصفحة التي يشير اليها الرابط وأشياء أخرى أجمل. كما يتميز بالتفصيل الممل لدرجة أنني كنت أتعلم برمجة سي بقرائة وثائق glibc التى تحتوي على أدق التفاصيل وأمثلة (بل ومقدمة عن كل شيء لمبرمج سي الجديد ويقول اذاكنت مبرمج قديم تخطي هذا)

                    تعليق


                    • #11
                      السلام عليكم ورحمة الله وبركاته

                      حبيت أضيف إضافة بسيطة بالنسبة للأوامر اللى تفضل بها جحولى وربنا يزيده من فضله قولوا آمييييين وإيانا طبعا

                      طبعا فى البداية احب اضيف بعض الأشياء اللى ممكن تكون مفيدة وهى فيما يعرف ب piping the output of command او بمعنى آخر يمكن تكون صعبة شوية بالفهم بالانجلزيى انك تستخدم خرج أمر ليكون دخل أمر تانى أو بمعنى اتصالاتى يسمى cascade stages :D

                      طيب نستعرض حاجة حلوة جدا بخصوص الأمر ls وهى اضافة ال option معاه

                      طبعا الكل يعلم الامر ls ممكن يكون معاه بعض الoptions اللى تستعرض بعض الامور المهمة

                      مثال : استعراض كافة الملفات على مجلد بما فيها تصاريح كل ملف نسخدم الصيفة التالية :

                      كود:
                      ls -l
                      هيكون الناتج عدة سطور مثلا على حسب عدد الملفات منها بيكون السطر كالتالى

                      -
                      كود:
                      [COLOR="Blue"]rw-r--r-- 1 l1nux3r l1nux3r    1147 2006-09-08 18:46 prefs.js
                      [/COLOR]
                      طعبا الخاصة l- بتعرض المالك للملف زى ما شفتوا والجروب وتاريخ الإنشاء والساعة وهكذا طيب لو حبينا بقى نعمل piping للأمر ls مع أمر تانى وليكن less بحيث اننا نستعرض الملفات على directory معين وفى نفس الوقت نعرض ال directory وملفاته من البداية هيكون مثلا الأمر بالشكل التالى

                      كود:
                      ls -l | less


                      هتكون النتيجة إنه يبدأ يرتب عرض الملفات ترتيب ابجدى ولكن بيجيب من أعلى وإنك تقدر تستعرض الملفات ملف ملف بالضغط على زر Enter ده فى حالة لو كان عدد الملفات اكبر من مساحة الشل المفتوح ولتجربة ذلك نتكب الأمر ده مثلا:

                      كود:
                      ls -l /bin | less


                      طبعا الفرق ساعتها ما بين ls -l | sort وبين ls -l | less


                      إنه نفس الوظيفة هتحصل ولكن ال sort بيعمل scroll لو عدد الملفات اكبر من مساحة الشل المفتوح والمؤشر بيكون عند نهاية الملف أما ال less بيجيب من البداية زى ما قلنا

                      وللتوضيح أكثر اكتب :

                      كود:
                      ls -l /bin | sort


                      الرمز | ده هو المسمى بال pipe

                      طبعا ممكن تسخدم باقى ال options الخاصة بالامر ls بنفس الطريقة

                      كمان من ضمن الاستخدامات المهمة للأمر ls اننا واحنا بنعمل استعراض للdirectory ممن فى نفس الوقت نبحث عن حاجة معينة باستخدام ال pipe ويكون خرج ال ls هو دخل ال grep

                      طيب الأول نفهم وظيفة الامر grep

                      وظيفته : أمر يقوم بالبحث عن نصوص داخل ملفات أو find text within files

                      طيب نستعرض بعض الأمثلة عليه بالإضافة لل options اللى ممكن تيجى معاه

                      فرضا اننا على directory معين وكان موجود عليه ملف اسمه myfile وانا عاوز ابحث عن كلمة linux داخل الملف هيكون الامر بالشكل التالى :
                      اول شىء نروح على المسار اللى موجود عليه الملف كالتالى :
                      كود:
                      cd directory


                      بعدين نكتب صيغة الأمر كالتالى :

                      كود:
                      grep 'linux' myfile


                      طيب نلاحظ حاجة مهمة إنه فى المثال السابق كتبنا النص اللى عاوزين نبحث عنه داخل single quote

                      طيب لو حبينا نوسع نظاق البحث أكتر بحيث إنه يشمل كل الملفات على ال directory بما فيهم ال directories التانية هيكون الامر بالشكل ده

                      كود:
                      grep -r 'linux' *
                      طيب نفصل الأمر واجدة واحدة ونفهم ال options اللى موجودة فيه

                      أولا : الr- ده بيقوم بالبحث داخل كل الملفات اللى موجودة على المجلدات الفرعية داخل المجلد الرئيسى

                      ثانيا : * دى بتقوم بالبحث عن النص داخل كل الملفات الموجودة على المجلد الرئيسى

                      طيب فى نقطة تانية وهى إنه الامر grep أثناء البحث ﻻزم تحدد ليه نظام البحث هل هو lowercase او uppercase لانه هتفرق كتير طبعا فى نتيجة البحث طيب لو عاوزين نتفادى الموضوع ده نستخدم الoption دى i- وهيكون الأمر بالشكل التالى :

                      كود:
                      [COLOR="Blue"]grep -i 'linux' *[/COLOR]
                      طبعا ممكن ندرج أكتر من option مع الأمر بحيث اننا نبحث داخل الملفات فى المجلد الرئيسى بالاضافة للمجلدات الفرعيةمع عدم التمييز هل هو lowercase او uppercase ويكون بالشكل التالى :

                      كود:
                      [COLOR="Blue"]grep -ir 'linux' *[/COLOR]
                      طيب دلوقتى نيجى على خاصية مهمة للأمر grep اللى بتسمى regular expressions او ما يسمى بال regexes طيب نفهم ياعنى ايه regexes ؟

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

                      فلنفرض انه عندك ملفين او اكتر من ملف واخدين مثلا ترتيب رقمى بالشكل دهmyfile_1draft.doc, myfile_2draft.doc فا انت عاوز تجيب اسماء الملفات دى عن طريق تحديد الارقام مثلا فى interval هيكون صيغة الأمر بالشكل ده :

                      كود:
                      [COLOR="Blue"]grep -i 'myfile_[1-9]draft\.doc' *[/COLOR]
                      طبعا من خلال معرفتنا بالامر grep زى ما أنا ذكرت فوق انك بتحدد النص ما بين single quote ولكن الجديد هنا اضافة ال brackets انك تحصر البحث مثلا فى الأرقام من 1ل 9 زى المثال اللى فوق وطبعا الشىء التانى الجديد وهو ال backslash "\" إنك قبل الامتداد بتاع الملفات حددت عنصر البحث وحصرته فى الأرقام من 1 ل 9 طيب لو مثلا الملف متكرر وواخد ترتيب رقمى او تصاعدى مثلا ملفات عندك باسم myfile1.doc,myfile2.doc,myfile3.doc وهكذا ممكن نستخدم الbrackets وال \ بالشكل التالى :

                      كود:
                      [COLOR="Blue"]grep 'myfile[12345]\.doc' *[/COLOR]
                      طيب نروح على نقطة تانية وهى اسخدام الأمر grep مع الامر ls بحيث نعمل piping مثلا عاوزين نستعرض الملفات الموجودة على مجلد معين باستخدام الامر ls مع الoption مثلا l- وفى نفس الوقت نعمل بحث عن كلمة linux فى الملفات الموجودة باستخدام ال grep هيكون الأمر بالشكل التالى:

                      كود:
                      ls –l | grep –i linux


                      طيب لو عاوزين نعمل خرج الأمر اللى فات وندخله على grep تانى بحيث يبحث فى الخرج على كلمة معينة يكون برده بالشكل التالى :

                      كود:
                      ls -l | grep -i linux | grep -i ubuntu


                      ياعنى كانت اضافات بسيطة أتمنى إنها تفيد وموضوع الpiping بحر وفيه اضافات اكتر من كده بكتير وإن شاء الله نتعرض ليها برده

                      وإن شاء الله المرة الجاية يكون لينا وقفة مع أوامر تانية مهمة

                      دمتم بحفظ الله وعنايته

                      السلام عليكم ورحمة الله وبركاته
                      شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير
                      | قناة المجتمع التعليمية | قناة المجتمع للفيديوهات | ويكي مجتمع لينوكس العربي | البريد الألكتروني (eMail) |

                      تعليق


                      • #12
                        أبو عبدالرحمن

                        الله يخليك كنت فين من زمان

                        والله قرأت كثير عن الـ pipe لكن المصادر الانقليزيه لم توضح بالشكل المطلوب كما كنت اتمنى

                        انت جيت انعشت الذاكره لدي واضفت معلومات جديده بارك الله فيك

                        بالنسبة للـ backslash دي / اللي وضعتها قبل الامتداد ، ماهو فائدة وجودها ؟

                        هل يعني لانها مسبوقه بهذا [123] ام لا ؟

                        يعني لو ماكنت ضايف [123] هل لازم اضع الـ backslash ام لا

                        يعطيك الف عافيه وخبرنا انت مين ومبروك الاسم الجديد ياعم

                        تعليق


                        • #13
                          السلام عليكم ورحمة الله وبركاته

                          جحولى يا بعد تسبدى الله يبارك فى عمرك يا رب أولا أنا MySQL سابقا

                          أما فائدة ال backslash هى أنك بتفصل عنصر البحث عن الامتداد حتى تتمكن من اظهار النتائج بشكل مطلوب لأنك لو شفت فى المثال احنا حطينا ال \ بعد ال brackets على طول ياعنى عموما لما تحب تعمل بحث عن اجزاء من اسماء ملفات تحط ال\ بعد عنصر البحث اللى كان فى المثال اعلى [12345]

                          وإن شاء الله نتعرض أكثر لل piping فى مشاركات قادمة

                          السلام عليكم ورحمة الله وبركاته
                          شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير
                          | قناة المجتمع التعليمية | قناة المجتمع للفيديوهات | ويكي مجتمع لينوكس العربي | البريد الألكتروني (eMail) |

                          تعليق


                          • #14
                            فهمت الان

                            شكرا على المداخلة الرائعه

                            تعليق


                            • #15
                              حقيقة أستفدت كثيراً من هذا الموضوع

                              ﻻسيما النقاش والمداخلات

                              ﻻتحرمنا من هذه المشاركات أستاذ عبد العزيز

                              أخوك محمد ،،،
                              RHCE


                              Before you asking


                              for q in $(ls /usr/bin/)
                              do man $q
                              done

                              تعليق

                              يعمل...
                              X