سطر 77: |
سطر 77: |
| ===توصيل المداخل والمخارج plumbing=== | | ===توصيل المداخل والمخارج plumbing=== |
| | | |
− | 1 فهم مفاهيم stdin و stdout
| + | *يبدأ الميسر بسؤال المتدربين عن معنى مصطلح plumbing فى الطبيعى؟ وتوضيح مدى استخدام الفكرة لعامة لها داخل الـ shell. |
− | 1.1 المدخل الإفتراضي للبرامج (stdin (0
| + | ثم يبدأ بشرط مفهوم توصيلات الافتراضية الثلاثة للبرامج و مناقشة تفاصيل كل منها. |
− | 1.2 المخرج الإفراضي للبرامج (stdout (1
| |
− | 1.3 المخرج الإفتراضي للأخطاء (stderr(2
| |
| | | |
− | 2 تغيير المدخل والمخرج الافتراضي
| + | (إجابة إسترشادية) معظم البرامج لها ٣ توصيلات إفتراضية ( stdin و stdout و stderr ). |
− | 2.1 إختبارال plumbing باستخدام الأمر cat
| + | #المدخل الإفتراضي للبرامج (stdin (0 و عادة ما يكون موصول بلوحة المفاتيح. |
− | 2.2 ما هو ال Ctrl-D (^D) ؟؟
| + | #المخرج الإفتراضي للبرامج (stdout (1 و عادة ما يكون موصول بالشاشة. |
− | 2.3 إختبارال plumbing باستخدام الأمر sort
| + | #المخرج الإفتراضي للأخطاء (stderr (2 و عادة ما يكون موصول بالشاشة. |
− | 2.4 إعادة توجيه المخرجات “>”
| |
− | 2.5 إعادة توجية المدخلات “<”
| |
− | 2.6 إعادة التوجية الغير ماحي Non-destructive redirection “>>”
| |
| | | |
| + | *يمكن للميسر توضيح الفكرة بفتح نافذة سطر الأوامر شرح أمثلة: |
| + | cat $ |
| + | (إجابة إسترشادية) بكتابة أمر cat يتمكن المستخدم من من كتابة نص باستخدام لوحة المفاتيح و عند الضغط على زر الإدخال يتم عرض النص المكتوب على الشاشة. |
| + | وعلى هذا المثال يمكن للميسر سؤال المتدربين عن الوصلات الافتراضية لبرنامج الـ cat فى هذه الحالة؟ |
| | | |
− | >
| + | |
− | <
| + | *ثم يسأل الميسر أيوجد طرق لتغير تلك الوصلات الافتراضية؟ و ما الحالات التى تدعى تغيير وصلة افتراضية معينة لبرنامج معين؟ |
− | >>
| + | |
− | 1>
| + | (إجابة إسترشادية) يمكن فعلا من تغيير الوصلات الافتراضية للبرامج بل عمل وصلات جديدة عن طريق استخدام إعادة التوجيه redirection. |
− | 2>
| + | |
− | 0<
| + | *يستكمل الميسر شرحه بأمثلة على الحالات التى تدعى تغيير وصلة افتراضية معينة لبرنامج معين: |
| + | |
| + | *مطلوب فى هذا المثال عرض محتويات مجلد ما داخل ملف معين: |
| + | ls -lai courses > courses.txt $ |
| + | (إجابة إسترشادية) علامة الأكبر من < : تستخدم لتغيير المخرج لبرنامج الإفتراضى stdout إلى ملف معين. |
| + | فبدلا من عرضه على الشاشة تم عرضه داخل ملف. |
| + | |
| + | *مطلوب فى هذا المثال عرض محتويات ملف ما على الشاشة: |
| + | cat < courses.txt $ |
| + | أو |
| + | cat courses.txt $ |
| + | (إجابة إسترشادية) علامة الأصغر من > : تستخدم لتغيير المدخل لبرنامج الإفتراضى stdin لبرنامج معين. |
| + | (ملحوظة) الحلان يعطيان نفس النتيجة فكما موضح فى الحل الثانى أن أمر cat تستخدم إعادة التوجيه بصفة إفتراضية. |
| + | |
| + | *مطلوب فى هذا المثال عرض رسالة خطأ فى ملف أخر إذا ما حدث خطأ: |
| + | ls -lai courses 2> errors.txt $ |
| + | (إجابة إسترشادية) علامة <2 : تستخدم لتغيير مخرج لبرنامج الإفتراضى stderr إلى ملف معين. |
| + | |
| + | ثم يقوم الميسر بوضح مثال عالى المستوى لحث المتدربين على البحث للوصول لإجابات مختلفة إن أمكن. |
| + | مثلا: |
| + | *مطلوب فى هذا المثال عرض محتويات مجلد ما داخل ملف معين دون مسح البيانات الوجودة داخل الملف و عرض رسالة خطأ فى ملف أخر إذا ما حدث خطأ: |
| + | حل توضيحى: |
| + | ls -ail Templates/ >> app.txt 2>> err.txt $ |
| | | |
| ===الأنابيب Pipes=== | | ===الأنابيب Pipes=== |