Linux Shells

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

المشرف: Karam

Linux Shells

مشاركة غير مقروءةبواسطة Karam » الاثنين مارس 15, 2010 10:24 pm

منقول عن "خالد محمد عطية"

ما هي الصدفة shell ؟

‫كثيرا من المستخدمين لنظام لينوك ‪ Linux system‬لا يعرفوا مفهوم كلمة الصدفة ‪ shell‬بالرغم أنهم ل يستطيعون التعامل مع لينوكس‬
‫بدون هذه الصدفة ‪.... shell‬وحتى تعرف أكثر عن هذه الصدفة ‪ shell‬وما أهميتها ما عليك فقط إل أن..........تستمر في القراءة.

‫تعتبر الصدفة ‪ shell‬حلقة الوصل بين المستخدم وبين نواة نظام التشغيل لينوكس ‪. Linux kernel‬حيث أن أي أمر تكتبه في المحث ‫‪ prompt‬تقوم الصدفة ‪ shell‬بأخذ المر ‪ command‬وتفسيره ثم يمرر النتيجة إلى قلب النظام التشغيل لينوكس Linux Kernel
‫‪.‬وكما قلت أن الصدفة ‪ shell‬عبارة عن مفسرة للوامر والصدفة ‪ shell‬تحتوي في الأساس على أوامر خاص بها، ويمكن للصدفة أن تستخدم جميع البرامج والدوات المتوفرة على النظام.‬

‫ولكي يكون الكلام أكثر دقة ، فالصدفة تستطيع أن تعتبرها ‪، macro processor‬بحيث أنك عندما تدخل لها سطر أمر فإنها تقوم بمعالجة هذا‬ ‫السطر بحيث أنها تقوم بتقسيم هذا السطر إلى عدة أجزاء وكل جزء من الجزاء يتم ترجمته إلى تعليمات يفهمها نظام التشغيل .‬

‫وقبل أن ندخل في التفاصيل يجب أن أنوه إلى شيء مهم وهو أنه بمجرد أن تضغط زر التشغيل الخاص بالحاسب فإن هذه العمليات تحدث بالترتيب لكي تتمكن من التعامل مع النظام أو (النواة) في حالتنا هذه، والعمليات بالترتيب هي كالتي:‬

‫1- يقوم ‪ BIOS‬بتحميل أول مقطع ‪ sector‬في القرص الصلب ، حيث أنه يوجد برنامج تحميل النواة ‪ LILO‬أو ‪ ، GRUB‬يتم تحميله‬ إلى الذاكرة الرئيسية ‪ RAM‬ومن ثم يتم تنفيذ أي منهما ثم تظهر لك قائمة بها نظم التشغيل التي توجد بحاسبك ، طبعا في حالتنا هذه سوف نختار‬ نظام لينوكس (بغض النظر عن التوزيعة المستخدمة .‬
‫2- يتم تحميل النواة من القرص الصلب إلى الذاكرة ، وهو عبارة عن ملف مضغوط يدعى ‪. image‬‬
‫3- يتم فك ضغط هذا الملف ، ثم يتم تنفيذ الوامر الخاصة ببدء العمليات المكلفة بإدارة الجهاز.‬
‫4- تقوم النواة بعمل فحص للجهزة الموجودة وبدء تشغيلها .‬
‫5- تقوم النواة بتفعيل ‪ mount‬نظام الملفات الجذرية ‪ ، root file system‬ولنقل مثل ‪/dev/hda‬‬
‫6- تقوم النواة بتنفيذ ‪ ،/ sbin/init‬حيث أن هذا البرنامج أول برنامج تنفذه النواة ، لذلك فإن ‪ PID‬الخاص به يساوي 1 .‬
‫7- تقوم ‪ init‬بتنفيذ كل الملفات النصية التنفيذية ‪ script‬الخاصة بمستوى التشغيل ‪ ، run level
‫8- تقوم ‪ init‬بإنتاج برامج ‪ getty‬لكل طرفية ‪. terminal‬‬
‫9- ‪ getty‬هو المحث الذي يظهر لك، ويطلب منك أن تدخل اسم المستخدم و كلمة المرور ، ومن ثم ينفذ المر ‪ /bin/login‬للتأكد من صحة‬ ‫المدخلت.‬
‫01- وفي النهاية يقوم المر ‪ login‬ببدء عمل الصدفة ‪. shell‬‬


kernel.png



كيف تعمل الصدفة؟‬

‫والشكل التالي يوضح كيف تقوم الصدفة ‪ shell‬بتفسير الأمر.‬

workt.png



‫هذا الشكل يوضح الخطوات التي تتخذها الصدفة ‪ shell‬لتقرر ما الذي ستفعله مع الأوامر التي يكتبها المستخدم،وأول خطوة تقوم بها الصدفة shell‬ أنه تحدد ما إذا كان الأمر الذي كتبه المستخدم من الوامر الأساسية للصدفة أم لا، فإذا لم تكن من الوامر الأساسية فإنها ترى ما إذا‬ ‫كانت من البرامج التطبيقية،والبرامج التطبيقية تنقسم إلى قسمين هما:‬

  • ‫برامج خدمية خاصة بالنظام مثل ‪ ls,rm‬أو برامج تطبيقية للمستخدمين سواء كانت هذه البرامج تجارية أو عامة.‬
  • ‫والصدفة ‪ shell‬تحاول في أن تجد هذه البرامج التطبيقية وذلك بالنظر في جميع الفهارس والتي توجد في مسار بحثك، وهذا المسار عبارة عن قائمة‬ ‫من الفهارس حيث توجد فيها البرامج القابلة للتنفيذ،وإذا لم يكن الأمر المدخل من أوامر الصدفة ‪ shell‬الداخلية أو ملفا قابل للتنفيذ في المسار‬الذي توجد عليه فإنه سوف يظهر لك رسالة خطأ.أما إذا كان أمرا من أوامر الصدفة ‪ shell‬الأساسية أو ملفا قابل للتنفيذ فإنهما سوف يذهبان‬ ‫إلى ‪ system calls‬ثم يتم تمريرهما إلى قلب النظام ‪. system kernel‬‬



‫وتتميز الصدفة بمفسر للغة البرمجة ‪ interpretive programming language‬قوي،ولغة برمجة الصدفة‬ shell programming language
‫تحتوي على معظم أدوات لغات البرمجة عالية المستوى مثل لجمل التكرارية والدوال والمتغيرات‬ والمصفوفات .

‫يمكن أن تكتب أوامر وتستخدم معها الأدوات البرمجية الخاصة بالصدفة في ملف نصي عادي ، وهذه الوامر تقوم مثل بأحد المهام الحيوية بالنسبة لك‬ ‫أو لبرامجك ، ثم تقوم بحفظ هذا الملف الذي كتبت فيه هذه الوامر بامتداد ‪ ، sh‬وبالتالي يسمى هذا الملف بملف نصي تنفيذي ‪ . script‬وفي كل‬
‫مرة تنفذ هذا الملف يقوم بتنفيذ كل الوامر التي كتبتها فيه بدون أن تكتبها أنت بنفسك مرة أخرى ، بمعنى أنه وفر عليك عناء كتابة عدة سطور قد تصل‬
‫إلى اللف في كل مرة تريد تنفيذ فيها هذه المهمة .‬

‫قبل أن أكمل أحب التنويه على شيء مهم قد يكون غائبا أو غامضا للكثيرين منا ، وهو عبارة عن سؤال ، ما هو الفرق بين سطر الوامر الذي اكتبه أنا‬
‫وبين الملف النصي التنفيذي؟‬
‫والاجابة هي أن سطر الوامر ل تستطيع أن تقوم بالعمليات البرمجية ذات المستوى العالي ، مثل الجمل التكرارية ، لذلك فإننا نلجأ لحل مثالي وهو الملف‬ ‫النصي التنفيذي ‪. script‬‬


هل دراسة برمجة الصدفة ‪ shell programming‬شيء مهم؟

‫هذا السؤال من السئلة المهمة التي قد أو تواجه مستخدمي أنظمة يونكس بشكل عام و لينوكس بشكل خاص.‬
‫وإجابة هذا السؤال كالتالي:‬
‫بالنسبة لمدير النظام يجب أن يكون ملماً ببرمجة الصدفة حتى يفهم تلك الملفات النصية التنفيذية ، حيث أن هذه الملفات مكتوبة بلغة الصدفة ، وبالتالي لا ‫يستطيع مدير النظام أن يفهم هذه الملفات و لا كيف تتم سير العمليات في النظام إل من خلل معرفته باللغة التي كتبت بها هذه الملفات.‬

‫وأبسط مثال لذلك ، عندما يتم تحميل نظام لينوكس فإن النواة تقوم بتنفيذ الملفات النصية التنفيذية الموجودة في الفهرس ‪ ، /etc/rc.d‬حيث أنه من‬ ‫خلل هذه الملفات تستطيع أن تهيء النظام بالطريقة التي تناسبك ، وتستطيع أن تزود خدمات خاصة بك.‬

‫أما بالنسبة للمبرمجين وخصوصا محللي نظم التشغيل وخصوصا أنظمة يونكس وبالخص جدا نظامي ‪ linux‬و ‪ ، GNU/hurd‬فبرمجة الصدفة‬ بالنسبة لهم مهمة جدا لأنهم سيحتاجونها لعمل بعض العمليات التي قد تفيد برامجهم، كأدوات مساعدة لتلك البرامج ، وأيضا لفهم البرامج الموجودة‬‫ أصل لكي يتسنى لهم تطوير هذه البرامج ، وأيضا لتحليل النظام نفسه وتتبع سير العمليات به لفهم طريقة عمله ولتطويره واستكشاف الخطاء‬ ‫وإصلحها ، وما إلى ذلك من الأمور البرمجية . ويجب التنبيه هنا ،بأنك تستطيع أن تغير محتويات هذه الملفات كما يحلو لك ، ولكن احذر بأن تغير‬ ‫محتويات ملفات هامة قد تؤثر في تشغيل النظام نفسه.‬


‫متى ل نستطيع أن نستخدم الملفات النصية التنفيذية الخاصة بالصدفة؟

  • ‫في العمليات التي نريدها أن تنفذ بأكبر سرعة ممكنة والتي يعتبر الوقت فيها من العوامل الرئيسة المهمة، مثل عمليات الفرز والبحث و..........‬
  • ‫في العمليات الرياضية المعقدة والتي تحتاج لدقة حسابية عالية .‬
  • ‫في التطبيقات المعقدة ، والتي تطلب وجود لغات برمجية مثل لغة ++‪ ، C / C‬حيث أنك تستطيع أن تقوم فيها بإنشاء دوال ذات صفات خاصة‬ ‫وتتيح لك أدوات برمجية أخرى ومهمة ل تجدها في الصدفة.‬
  • ‫عندما تريد أن تنشئ تطبيقا يقوم بحماية النظام ضد عمليات الهجوم وما شابه ذلك .‬
  • ‫عندما تحتاج أن تنشيء مصفوفة متعددة البعاد.‬
  • ‫عندما تحتاج لبناء البيانات ‪. data structure‬‬
  • ‫عندما تحتاج إلى إنشاء واجهة رسومية أو حتى تريد أن تتعامل معها.‬
  • ‫عندما تريد أن تتعامل مع الجهزة الموجودة بالنظام بصورة مباشرة.‬
  • ‫عندما تحتاج إلى ‪ port‬أو ‪ socket‬في عمليات الدخال والخراج.‬
  • ‫عندما تريد أن تستخدم المكتبات.‬
  • ‫عندما تريد أن تنشيء تطبيقا غير متاح المصدر، حيث أن الملفات التنفيذية النصية تكون دائما مفتوحة المصدر ول يمكن غلقها.‬


‫الصدفات الكثر شيوعا‬



ubu.png



  • ‫الصدفة ‪Bourne shell‬‬
    ‫قام بإنشائها ‪، Steven Bourne‬وهي الصدفة الصلية لنظام يونكس وتعتبر هذه الصدفة جيدة جدا في برمجة الصدفة تحت نظام يونكس ولكنها‬ ‫لديها قصور في التعامل مع المستخدمين عن الصدفات الخرى.‬
  • ‫الصدفة ‪C shell‬‬
    ‫هذه الصدفة قام بإنشائها ‪، Bill Joy‬وتتميز هذه الصدفة بسرعة استجابتها في التعامل مع المستخدمين وتفاعلتهم، وتتميز أيضا بخاصية إتمام‬
    ‫سطر الأوامر وهذا ليس موجودا في الصدفة ‪ . Bourne shell‬ولكن برمجة الصدفة تحت ‪ C shell‬ليست بمثل سهولة البرمجة تحت ‪Bourne‬‬
    ‫‪ shell‬ولكنها تستخدم بكثرة عن طريق المبرمجين بلغة ‪ C‬لن الصدفة ‪ C shell‬تتشابه مع لغة ‪ C‬من حيث كتابتها لذلك فهي سميت بـ C shell
  • ‫الصدفة ‪Korn shell
    ‫هذه الصدفة تم كتابتها عن طريق ‪، Dave Korn‬حيث أنه أخذ مميزات الصدفتين ‪ Bourne shell‬و ‪ C shell‬وضمهم في صدفة وتعتبر‬
    ‫هذه الصدفة ملئمة تماما مع الصدفة ‪. Bourne shell‬والصدفة ‪ ksh‬صدفة فعالة وتمتلك واجهة تفاعلية جيدة وواجهة برمجية أيضا جيدة.‬
  • ‫الصدفة ‪BASH shell‬‬
    ‫كلمة ‪ bash‬اختصار لـ ‪. bourne again shell‬
    ‫تتميز هذه الصدفة بأن بها كل مميزات الصدفات السابقة ،بالضافة بأن هناك مميزات أخرى تتميز هي بها.وهي الصدفة القياسية لنظمة ‪ GNU‬كما‬ ‫أنها تعتبر أشهر وأهم صدفة في أنظمة يونكس بشكل عام.‬
  • ‫وبالضافة إلى هذه الصدفات يوجد هناك صدفات اخرى وتتميز بما تتميز بها الصدفات السابق ذكرها ومن هذه الصدفات: ‪ tcsh‬وهي تعتبر امتداد‬ ‫للصدفة ‪ ، ، csh‬والصدفة ‪ Public Domain Korn Shell‬واختصارها ‪ pdksh‬وهي امتداد للصدفة ‪. ksh‬‬


يمكن لنظتم التشغيل أن يحتوي أكثر من صدفة في الوقت ذاته . . . ولمعرفة الصدفات shell الموجودة نقوم بكتابة الأمر التالي :

CODE: تحديد الكل
echo $SHELL


‫وسوف تكون المخرجات إما ‪ sh‬أو ‪ csh‬أو ‪ ksh‬أو ‪ ، bash‬حيث أن ‪ sh‬تدل على الصدفة ‪ Bourne‬و ‪ csh‬تدل على صدفة ‪ ، C‬و ‪ksh‬‬ ‫تدل على صدفة ‪ korn‬و ‪ bash‬تدل على الصدفة ‪. bash‬‬

‫لو كنت تعمل تحت صدفة معينة وأردت أن تنتقل إلى صدفة أخرى ما عليك إل أن تكتب اسمها ، فلو أردت مثل أن تنتقل إلى الصدفة ‪ bash‬اكتب الأمر‬
‫‪ ، bash‬ولو أردت الرجوع إلى الصدفة الصلية ما عليك إل أن تكتب المر ‪. exit‬لو ظهر ت لك رسالة ‪ not found‬فهذا يدل على أن نظامك‬ لا يحتوي على هذه الصدفة.‬

مثال :

1.png


‫لو أردت أن تعرف أين مكان الصدفة ‪ bash‬في النظام فاكتب أحد الأوامر التالية: ‪ whereis bash‬أو ‪whence bash‬ أو ‪،which bash‬‬
‫أو اكتب المر التالي:‬

CODE: تحديد الكل
‫‪grep bash /etc/passwd | awk -F: '{print $7}' | sort -u‬‬


‫وسوف تكون النتيجة كالتالي:‬

‫‪ /bin/bash‬أو ‪/usr/local/bin/bash‬‬

‫كما علمت فإنه يمكن أن يكون في نظامك أكثر من صدفة ، لنفرض أن الصدفة الافتراضية التي تعمل عندما تدخل إلى النظام هي ‪ ، C‬فهل يمكنك أن‬ ‫تجعل الصدفة ‪ bash‬هي الفتراضية بحيث أنك إذا دخلت إلى النظام تكون هي الصدفة الفتراضية بدل من ‪ C‬؟‬
‫نعم ، يمكنك ذلك باستخدام المر ‪ ، chsh bash_name‬حيث أن ‪ bash_name‬هي المكان أو المسار التي توجد فيه الصدفة والتي نتجت‬ ‫من تنفيذ المر الذي كتبناه منذ قليل :‬

CODE: تحديد الكل
‫‪grep bash /etc/passwd | awk -F: '{print $7}' | sort -u‬‬


‫وبالتالي سيكون الشكل النهائي للمر ‪ chsh‬كالتالي:‬

CODE: تحديد الكل
‫‪% chsh /usr/local/bin/bash‬‬


أو

CODE: تحديد الكل
‫‪% chsh /bin/bash‬‬


وإذا لم توجد أي صدفة فسوف تظهر رسالة خطأ
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: Linux Shells

مشاركة غير مقروءةبواسطة Karam » الثلاثاء مارس 16, 2010 12:06 am

هي مجموعة من الكتب القيمة ..
كتير مهمة كخطوة أولى على الـ shell programming


  • Linux from Scratch
    Linux from Scratch.pdf

  • BASH Programming − Introduction HOW−TO
    Bash-Prog-Intro-HOWTO.pdf

  • Shell Scripting Tutorial
    shellscriptingbook-sample.pdf

  • Advanced Bash-Scripting Guide
    abs-guide.pdf
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: Linux Shells

مشاركة غير مقروءةبواسطة Karam » الثلاثاء مارس 16, 2010 9:14 pm

cover.jpg



BASHPC

BASH Programming Course



قبل أنا نبدأ بتعلّم الأوامر الخاصة بالـ bash :
هذا الرابط هام جداً click here
يوجد داخل الموقع كل الـ bash commands ومثال وشرح على كل أمر
وشرح لقواعد الكتابة bash syntax
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: Linux Shells

مشاركة غير مقروءةبواسطة Karam » الثلاثاء مارس 16, 2010 10:09 pm

1th Lesson



سوف نقوم باستعراض أوامر أساسية وذات أهمية كبيرة لمستخدمي Linux



  • man command

    1 . يعرض هذا الأمر عند تنفيذه جميع المعلومات المتعلقة بأي أمر آخر نريده
    مثال :

    CODE: تحديد الكل
    man ls


    وتكون النتيجة :

    CODE: تحديد الكل
    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 -cftuvSUX 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 ..

           --author
                  with -l, print the author of each file

           -b, --escape
                  print octal escapes for nongraphic characters

           --block-size=SIZE
                  use SIZE-byte blocks

           -B, --ignore-backups
                  do not list implied entries ending with ~

           -c     with -lt: sort by, and show, ctime (time of last modification of
                  file status information) with -l: show ctime and  sort  by  name
                  otherwise: sort by ctime

           -C     list entries by columns

           --color[=WHEN]
                  control  whether  color is used to distinguish file types.  WHEN
                  may be `never', `always', or `auto'

           -d, --directory
                  list directory entries instead of contents, and do not  derefer‐
                  ence symbolic links

           -D, --dired
                  generate output designed for Emacs' dired mode

           -f     do not sort, enable -aU, disable -ls --color

           -F, --classify
                  append indicator (one of */=>@|) to entries

           --file-type
                  likewise, except do not append `*'

           --format=WORD
                  across  -x, commas -m, horizontal -x, long -l, single-column -1,
                  verbose -l, vertical -C

           --full-time
                  like -l --time-style=full-iso

           -g     like -l, but do not list owner

           --group-directories-first
                  group directories before files.

                  augment with a --sort option, but any use  of  --sort=none  (-U)
                  disables grouping

           -G, --no-group
                  in a long listing, don't print group names

           -h, --human-readable
                  with -l, print sizes in human readable format (e.g., 1K 234M 2G)

           --si   likewise, but use powers of 1000 not 1024

           -H, --dereference-command-line
                  follow symbolic links listed on the command line

           --dereference-command-line-symlink-to-dir
                  follow  each  command line symbolic link that points to a direc‐
                  tory

           --hide=PATTERN
                  do not list implied entries matching shell  PATTERN  (overridden
                  by -a or -A)

           --indicator-style=WORD
                  append indicator with style WORD to entry names: none (default),
                  slash (-p), file-type (--file-type), classify (-F)

           -i, --inode
                  print the index number of each file

           -I, --ignore=PATTERN
                  do not list implied entries matching shell PATTERN

           -k     like --block-size=1K

           -l     use a long listing format

           -L, --dereference
                  when showing file information for a symbolic link, show informa‐
                  tion  for  the file the link references rather than for the link
                  itself

           -m     fill width with a comma separated list of entries

           -n, --numeric-uid-gid
                  like -l, but list numeric user and group IDs

           -N, --literal
                  print raw entry names (don't treat e.g. control characters  spe‐
                  cially)

           -o     like -l, but do not list group information

           -p, --indicator-style=slash
                  append / indicator to directories

           -q, --hide-control-chars
                  print ? instead of non graphic characters

           --show-control-chars
                  show  non  graphic  characters  as-is (default unless program is
                  `ls' and output is a terminal)

           -Q, --quote-name
                  enclose entry names in double quotes

           --quoting-style=WORD
                  use quoting style WORD for entry names: literal, locale,  shell,
                  shell-always, c, escape

           -r, --reverse
                  reverse order while sorting

           -R, --recursive
                  list subdirectories recursively

           -s, --size
                  print the allocated size of each file, in blocks

           -S     sort by file size

           --sort=WORD
                  sort  by  WORD  instead of name: none -U, extension -X, size -S,
                  time -t, version -v

           --time=WORD
                  with -l, show time as WORD instead of modification  time:  atime
                  -u,  access  -u,  use  -u, ctime -c, or status -c; use specified
                  time as sort key if --sort=time

           --time-style=STYLE
                  with -l, show times using style STYLE: full-iso, long-iso,  iso,
                  locale,  +FORMAT.   FORMAT is interpreted like `date'; if FORMAT
                  is FORMAT1<newline>FORMAT2, FORMAT1 applies to non-recent  files
                  and FORMAT2 to recent files; if STYLE is prefixed with `posix-',
                  STYLE takes effect only outside the POSIX locale

           -t     sort by modification time

           -T, --tabsize=COLS
                  assume tab stops at each COLS instead of 8

           -u     with -lt: sort by, and show, access time with  -l:  show  access
                  time and sort by name otherwise: sort by access time

           -U     do not sort; list entries in directory order

           -v     natural sort of (version) numbers within text

           -w, --width=COLS
                  assume screen width instead of current value

           -x     list entries by lines instead of by columns

           -X     sort alphabetically by entry extension

           -Z, --context
                  print any SELinux security context of each file

           -1     list one file per line

           --help display this help and exit

           --version
                  output version information and exit

           SIZE  may  be (or may be an integer optionally followed by) one of fol‐
           lowing: kB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T,
           P, E, Z, Y.

           By  default,  color is not used to distinguish types of files.  That is
           equivalent to using --color=none.  Using the --color option without the
           optional  WHEN  argument  is  equivalent to using --color=always.  With
           --color=auto, color codes are output only if standard  output  is  con‐
           nected  to  a  terminal  (tty).  The environment variable LS_COLORS can
           influence the colors, and can be set easily by the dircolors command.

       Exit status:
           0      if OK,

           1      if minor problems (e.g., cannot access subdirectory),

           2      if serious trouble (e.g., cannot access command-line argument).

    AUTHOR
           Written by Richard M. Stallman and David MacKenzie.

    REPORTING BUGS
           Report ls bugs to bug-coreutils@gnu.org
           GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
           General help using GNU software: <http://www.gnu.org/gethelp/>

    COPYRIGHT
           Copyright © 2009 Free Software Foundation, Inc.   License  GPLv3+:  GNU
           GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
           This  is  free  software:  you  are free to change and redistribute it.
           There is NO WARRANTY, to the extent permitted by law.

    SEE ALSO
           The full documentation for ls is maintained as a  Texinfo  manual.   If
           the  info and ls programs are properly installed at your site, the com‐
           mand

                  info coreutils 'ls invocation'

           should give you access to the complete manual.

    GNU coreutils 7.4                October 2009                            LS(1)



    كما لاحظنا أعطانا الأمر man كل المعلومات حو الأمر ls بكل تفاصيله

    2 . ولكن إذا أردنا معرفة عمل أمر دون قراءة معلومات مفصّلة عنه .. نقوم باستعمال man -f
    مثال :

    CODE: تحديد الكل
    man - f ls


    وتكون النتيجة :

    CODE: تحديد الكل
    ls (1)               - list directory contents


    أي أنَّ الأمر ls يستعمل لعرض محتويات مجلد | "سنتكلم عنه بالتفصيل لاحقا"

    2 . لمعرفة جميع الأوامر التي تؤدي إلى غرض معين نستعمل man -k
    مثال :

    CODE: تحديد الكل
    man -k eject


    وتكون النتيجة :

    CODE: تحديد الكل
    cupsaccept (8)       - accept/reject jobs sent to a destination
    cupsreject (8)       - accept/reject jobs sent to a destination
    eject (1)            - eject removable media
    mzip (1)             - change protection mode and eject disk on Zip/Jaz drive


    مفاتيح التحكم بالـ manual page
    • down
      للنزول سطر
    • up
      للرجوع سطر إلى الأعلى
    • pg dn
      للنزول صفحة
    • pg up
      للرجوع صفحة إلى الأعلى
    • q
      للخروج

    ملاحظة :
    في البداية يجب أن تعرف أنّ لكل أمر في Linux OS رقم يتراوح بين 1 - 9 يُستخدم لتقسم لتقسيم الأوامر إلى مجموعات حسب وظيفتها ..
    والمجموعات هي :
    رقم ( 1 ) :أوامر تقليدية يمكن لأي مستخدم تنفيذها
    رقم ( 2 ) : أوامر خاصة بال kernel
    رقم ( 3 ) : أوامر خاصة بالمكتبات "توابع البرمجيات"
    رقم ( 4 ) : أوامر خاصة بالـdevice مثل الهارد و viga ... الخ
    رقم ( 5 ) : أوامر خاصة بملفات التهيئة ‫‪configration‬‬ files وكذلك ملفات الـ /etc/passwd وملفات أخرى
    رقم ( 6 ) : أوامر خاصة بالألعاب
    رقم ( 7 ) : أوامر متفرقة مثل صيغ املفات man
    رقم ( 8 ) : أوامر خاصة بإدارة النظام
    رقم ( 9 ) : منهجيات النواة kernel routines الملفات الأصل لمنهجيات النواة
    -- وأهم الأرقام هي | 1 , 2 , 5 , 8 | --
    مثال :
    عندما نقوم بالاستفسار عن الأمر apt-get

    CODE: تحديد الكل
    man -f apt-get


    تكون النتيجة :

    CODE: تحديد الكل
    apt-get (8)          - APT package handling utility - - command-line interface


    ظهر رقم ( 8 ) بجانب الأمر --> هذا يعني أنّ الأمر خاصّ بال OS management

  • info command

    لن نتكلم عنها لأن لها نفس عمل الأمر السابق ... ولكنها تعطي معلومات أكثر تفصيلا


  • xman command

    نستخدمه لنفس الغرض الذي نستخدم من أجله الأمر man
    ولكن يتميز xman بأنه يتيح البحث عن الأوامر الأخرى والعمليات التي كانت تتم من خلال الأمر man بشكل مريح أكثر نظرا لاستخدامه نوافذ بدل ال console
    مثال :

    CODE: تحديد الكل
    xman


    وتكون النتيجة نافذة :

    xman.png


    نقوم باختيار manual page فتظهر نافذة جديدة من أهم خياراتها section و options التين ستسهلان البحث كثيرا ..

    xman1.png


  • whatis command

    يستخدم هذا الأمر لعرض معلومات مختصرة عن أي أمر . ولكي يعمل هذا الأمر يلزم له قاعدة بيانات يتم تفعيلها عن طريق الـ su

    طريقة الاستعمال :
    1 . إذا اردت الاستعلام عنوظيفة أمر واحد فقط . مثال :

    CODE: تحديد الكل
    whatis ls


    وتكون النتيجة :

    CODE: تحديد الكل
    ls (1)               - list directory contents


    2 . إذا أردت الاستعلام عن وظيفة اكثر من أمر اكتب الأوامر المراد الاستعلام عنها وراء بعضها . مثال :

    CODE: تحديد الكل
    whatis ls man dir


    وتكون النتيجة :
    CODE: تحديد الكل
    ls (1)               - list directory contents
    man (1)              - an interface to the on-line reference manuals
    man (7)              - macros to format man pages
    dir (1)              - list directory contents


  • apropos command

    يستخدم للبحث عن أي أمر أعرف وظيفته . أي أنك تستخدم هذا الأمر إذا كنت تبحث عن الأوامر التي تؤدي وظيفة معينة .

    طريقة الاستعمال :
    مثال " نريد البحث عن الأمر الذي يقسّم الهارد " :

    CODE: تحديد الكل
    apropos fdisk


    وتكون النتيجة :
    CODE: تحديد الكل
    cfdisk (8)           - Curses/slang based disk partition table manipulator fo...
    fdisk (8)            - Partition table manipulator for Linux
    sfdisk (8)           - Partition table manipulator for Linux



أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: Linux Shells

مشاركة غير مقروءةبواسطة Karam » الأحد مارس 21, 2010 10:58 pm

2nd Lesson


أوامر البحث :

  • whereis command

    يستخدم هذا الأمر للبحث عن البرامج ( ملفات ثنائية ) والملفات المتعلقة بها وصفحات كتيب التشغيل manual
    وطريقة استعمال هذا الأمر كالتالي :
    1. إذا أردت البحث عن الأمر ls وكل شيء متعلق به

      CODE: تحديد الكل
      whereis ls


      وتكون النتيجة

      CODE: تحديد الكل
      ls: /bin/ls /usr/share/man/man1/ls.1.gz

    2. إذا أردت البحث عن صفحات manual فقط اكتب m- قبل الأمر الذي تريد البحث عنه
      مثال :

      CODE: تحديد الكل
      whereis -m ls


      وتكون النتيجة

      CODE: تحديد الكل
      ls: /usr/share/man/man1/ls.1.gz

    3. ‫اذا اردت البحث عن الملفات الثنائيه فقط اكتب‬ b- قبل الأمر الذي تبحث عنه
      مثال :

      CODE: تحديد الكل
      whereis -b ls


      وتكون النتيجة

      CODE: تحديد الكل
      ls: /bin/ls

    4. ‫اذا اردت البحث عن الملفات الأصل ‪ source‬فقط اكتب s- قبل الأمر الذي تبحث عنه
      مثال :

      CODE: تحديد الكل
      whereis -s ls


      وتكون النتيجة

      CODE: تحديد الكل
      ls:

  • locate command

    ‫يستخدم للبحث عن الملفات داخل النظام او داخل الهارد وهو اسرع من الأمر find

    1. ‫ اذا اردت البحث عن جميع الملفات ذات نوع واحد فقط داخل جهازك‬
      مثال : للبحث عن الملفات التي امتدادها pas. داخل الجهاز

      CODE: تحديد الكل
      locate *.pas


      وتكون النتيجة :

      CODE: تحديد الكل
      /home/karam/pointers.pas
      /home/karam/test.pas
      /home/karam/.lazarus/compilertest.pas
      /host/Documents and Settings/Compaq/Recent/test.pas.lnk
      /host/FPC/2.4.0/demo/freebsd/sysmousetest.pas
      /host/FPC/2.4.0/demo/morphos/ahitest.pas
      /host/FPC/2.4.0/demo/morphos/asltest.pas
      /host/FPC/2.4.0/examples/gmp/gmp_accept_test.pas
      /host/FPC/2.4.0/examples/hash/crctest.pas
      /host/FPC/2.4.0/examples/hash/mdtest.pas
      /usr/lib/lazarus/components/simpleideintf/examples/files/h2pastest.pas
      /usr/lib/lazarus/examples/trayicon/frmtest.pas
      /usr/lib/lazarus/tools/snapshots/ftplistertest.pas
      /usr/share/doc/fp-compiler/freebsd/sysmousetest.pas.gz
      /usr/share/doc/fp-compiler/morphos/ahitest.pas.gz
      /usr/share/doc/fp-compiler/morphos/asltest.pas
      /usr/share/doc/fp-units-base/examples/hash/mdtest.pas
      /usr/share/fpcsrc/2.2.4/packages/amunits/examples/asltest.pas
      /usr/share/fpcsrc/2.2.4/packages/amunits/examples/listtest.pas
      /usr/share/fpcsrc/2.2.4/packages/amunits/examples/wbtest.pas
      /usr/share/fpcsrc/2.2.4/packages/amunits/examples/otherlibs/amarqueetest.pas
      /usr/share/fpcsrc/2.2.4/packages/amunits/examples/otherlibs/gttest.pas
      /usr/share/fpcsrc/2.2.4/packages/hash/examples/mdtest.pas
      /usr/share/fpcsrc/2.2.4/packages/numlib/tests/test.pas
      /usr/share/fpcsrc/2.2.4/packages/os2units/examples/clktest.pas
      /usr/share/fpcsrc/2.2.4/packages/os2units/examples/ftptest.pas
      /usr/share/fpcsrc/2.2.4/packages/os2units/examples/lvmtest.pas
      /usr/share/fpcsrc/2.2.4/packages/pasjpeg/examples/test.pas
      /usr/share/fpcsrc/2.2.4/packages/ptc/tests/convtest.pas
      /usr/share/fpcsrc/2.2.4/packages/sqlite/tests/test.pas
      /usr/share/fpcsrc/2.2.4/packages/symbolic/examples/evaltest.pas
      /usr/share/fpcsrc/2.2.4/rtl/netware/tests/test.pas

    2. إذا أردت البحث عن ملفات التي لها الامتداد mp4. و mp3. معاً

      CODE: تحديد الكل
      locate *.mp4 *.mp3


      وتكون النتيجة

      CODE: تحديد الكل
      /home/karam/.local/share/Trash/files/.mp3
      /home/karam/.local/share/Trash/files/hi.mp3
      /home/karam/Desktop/song/Abdul Majeed Abdullah - Ensan Ekhtar.mp3
      /home/karam/Desktop/song/Abdul Majeed Abdullah - Samani Ghanieh.mp3
      /home/karam/Desktop/song/IS/01 - Eid Song.mp3
      /home/karam/Desktop/song/IS/Abatah - Pre.mp3
      /home/karam/Desktop/song/IS/Khafy-Alutf - Pre.mp3
      /home/karam/Desktop/song/IS/Mawlay - Pre.mp3
      /home/karam/Desktop/song/IS/Nafsi-3araftuki - Pre.mp3
      /home/karam/Desktop/song/IS/Ramadan Zain 1.mp3
      /home/karam/Desktop/song/IS/Zain_Afasy_Ramadan_Full_Version.mp3
      /home/karam/Desktop/song/IS/حسبي ربي.mp3
      /host/Documents and Settings/Compaq/Local Settings/Temporary Internet Files/Content.IE5/71VGINO8/1363795892121_20315[1].mp4

    3. إذا أردت البحث عن ملفات ذات الامتداد pas. في مسار ما ..
      مثال :

      CODE: تحديد الكل
      locate /home/karam/Desktop/junk/*.pas


      وتكون النتيجة

      CODE: تحديد الكل
      /home/karam/Desktop/junk/Pascal/2th.pas
      /home/karam/Desktop/junk/Pascal/4th.pas
      /home/karam/Desktop/junk/Pascal/homwork8th.pas
      /home/karam/Desktop/junk/Pascal/shell.pas
      /home/karam/Desktop/junk/Pascal/third.pas
      /home/karam/Desktop/junk/Pascal/مسلئل عامة/first.pas
      /home/karam/Desktop/junk/Pascal/مسلئل عامة/second (copy).pas
      /home/karam/Desktop/junk/Pascal/مسلئل عامة/second.pas
      /home/karam/Desktop/junk/USACO/gift1.pas
      /home/karam/Desktop/junk/USACO/ride.pas
      /home/karam/Desktop/junk/test/data_base.pas
      /home/karam/Desktop/junk/test/math.pas
      /home/karam/Desktop/junk/test/test1.pas

أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: Linux Shells

مشاركة غير مقروءةبواسطة HammooD » الثلاثاء أكتوبر 19, 2010 4:07 pm

UP
هي الشغلات نفسها عم تنعطى هلأ بعملي نظم التشغيل سنة رابعة (كل الأقسام) و هالموضوع مناسب تماماً لفهم هالقصص...
شكلك كرم ما شاء الله سابق عصرك بسنتين كاملين :cool:
A man who won't die for something is not fit to live
صورة العضو الشخصية
HammooD
متميز برمجة عام
متميز برمجة عام
 
مشاركات: 2199
اشترك في: الأربعاء مارس 05, 2008 4:12 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الخامسة
الاختصاص: شبكات و نظم

Re: Linux Shells

مشاركة غير مقروءةبواسطة Karam » الثلاثاء أكتوبر 19, 2010 6:28 pm

HammooD كتب:UP
هي الشغلات نفسها عم تنعطى هلأ بعملي نظم التشغيل سنة رابعة (كل الأقسام) و هالموضوع مناسب تماماً لفهم هالقصص...



اي ياريت طلاب الرابعة يفعلولنا هالمواضيع .. بركي منستفيد أكتر :ism:
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: Linux Shells

مشاركة غير مقروءةبواسطة Mohammad_807 » الأربعاء أكتوبر 20, 2010 2:36 pm

سؤال لكرم :
كيف بدي نصب برنامج بال Linux عن طريق ال Shell
وشو الفرق بينها وبين طريقة الsinaptec pakage maneger
Mohammad_807
مشرف منتدى البرمجة العام
مشرف منتدى البرمجة العام
 
مشاركات: 635
اشترك في: الأحد مارس 09, 2008 4:29 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الخامسة
الاختصاص: شبكات و نظم

Re: Linux Shells

مشاركة غير مقروءةبواسطة Karam » الأربعاء أكتوبر 20, 2010 3:59 pm

Mohammad_807 كتب:سؤال لكرم :
كيف بدي نصب برنامج بال Linux عن طريق ال Shell
وشو الفرق بينها وبين طريقة الsinaptec pakage maneger


الفرق الوحيد هو أنو لما تنزل البرامج عن طريق الـ Shell بتنزلو Package .. Package أو Module .. Module
وبدك تكون بتحرف أسماء كل الحزم المتعلقة بالبرنامج
متل تنزيل GNU C++شو رح يعرفك أنو اسمو ++g :imb:

CODE: تحديد الكل
sudo apt-get install g++

وكمان ممكن يكون في أكتر من حزمة متعلقة بالبرنامج ولازم تنزل .. وبهي الحالة لازم تعرف اسمها وتنزلها بإيدك :wink2:


بينما بالطريقة التانية فإنت بتدوّر على ++GUN C وهو بحدد كل الحزم اللازمة لحتى ينزل البرنامج ويشتغل بشكل كامل ومو ضروري تعرف اسم الحزم
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: Linux Shells

مشاركة غير مقروءةبواسطة sport benha » الثلاثاء ديسمبر 03, 2013 11:00 am

جزاك الله خيرا على هذه المعلومات الطيبه
sport benha
عضو جديد
عضو جديد
 
مشاركات: 108
اشترك في: الثلاثاء ديسمبر 03, 2013 10:36 am
الجتس: أنثى
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: ماجستير
الاختصاص: هندسة برمجيات


العودة إلى منتدى البرمجيات المفتوحة المصدر

الموجودون الآن

المستخدمون المتصفحون لهذا المنتدى: لا يوجد أعضاء مسجلين متصلين و 1 زائر

cron