لينكس / الأساسي: أسس سطر الأوامر / الدرس 1
فهم الصدفة والوصول إلى المساعدة الموثوقة
تعرّف إلى تعاون الطرفية والصدفة وبرامج لينكس، ثم استخدم التوثيق المحلي لفهم الأوامر قبل تنفيذها.
في هذه الصفحة
أهداف الدرس
- التمييز بين الطرفية والصدفة والنواة والتوزيعة.
- قراءة صياغة الأوامر وتحديد الأوامر المضمنة والبرامج الخارجية.
- استخدام المساعدة وحالة الخروج بوصفهما دليلين.
الطبقات خلف محث الأوامر
لينكس هو النواة التي تدير العمليات والذاكرة والأجهزة والوصول إلى موارد النظام. تجمع التوزيعة النواة مع المكتبات والأدوات ومدير الحزم وخيارات التثبيت. الطرفية برنامج للإدخال والعرض، بينما تقرأ صدفة مثل Bash الأوامر من الطرفية أو من ملف نصي. توضح هذه الحدود لماذا لا يغيّر مظهر الطرفية صياغة الأوامر، ولماذا قد يتوفر أمر في توزيعة ويغيب عن أخرى.
الأوامر وسائط ذات بنية
يبدأ الأمر البسيط عادة باسم أمر تتبعه وسائط. تغيّر الخيارات السلوك، وتحدد المعاملات العناصر المطلوب معالجتها. تفصل المسافات الكلمات إلا إذا جمعتها علامات الاقتباس. المحث عنصر عرض فلا تنسخه ضمن الأمر. قد يشير الاسم إلى أمر مضمن في الصدفة أو دالة أو اسم مستعار أو ملف تنفيذي يُبحث عنه عبر PATH. افحص ذلك باستخدام type بدلاً من افتراض أن كل اسم مألوف يمثل ملفاً في مجلد معين.
type cd
printf '%s\n' 'hello lab'
يبيّن Bash أن cd أمر مضمن، ثم يطبع printf الوسيط المقتبس متبوعاً بسطر جديد. قد تختلف عبارة type حسب لغة الصدفة.
اختيار التوثيق المناسب
للأوامر المضمنة في Bash يعرض help cd توثيق التنفيذ الجاري. ويفتح man command دليل الأمر المثبت إذا كانت حزمة الأدلة موجودة. لأقسام الدليل أهمية: القسم 1 لأوامر المستخدم، و5 لصيغ الملفات، و8 للإدارة. استخدم man 5 passwd لدراسة صيغة ملف الحسابات بدلاً من أمر تغيير كلمة المرور. اقرأ ملخص الصياغة ثم تفاصيل الخيارات وحالات الخروج. تدل الأقواس المربعة في الملخص على أجزاء اختيارية، ولا تُكتب عادة حرفياً.
ملاحظة النتائج وحالة الخروج
تتواصل البرامج عبر المخرجات وحالة الخروج. تعني الحالة صفر نجاحاً بالاصطلاح، وتحتاج القيم الأخرى إلى تفسير وفق توثيق البرنامج. يتيح Bash الحالة الأخيرة عبر $? لكن الأمر التالي يستبدلها. ظهور مخرجات ليس دليلاً كافياً على النجاح، والصمت لا يعني الفشل. التقط الحالة فوراً عند فحص نتيجة غير متوقعة. يحمل الخرج القياسي البيانات المفيدة، وتحمل قناة الخطأ القياسي التشخيصات عادة، وسنتعلم لاحقاً الفصل بينهما.
false
printf 'status=%s\n' "$?"
true
printf 'status=%s\n' "$?"
status=1
status=0
الأمران false وtrue آمنان للتجربة. يوسّع كل printf قيمة $? قبل أن يغير printf نفسه الحالة.
بناء عادة للفحص
تدرّب بحساب عادي داخل مجلد تجريبي أو آلة افتراضية. اقرأ المثال قبل نسخه وحدد كل مسار وخيار وميّز العرض التوضيحي من التعليمة المناسبة لجهازك. الأوامر الإدارية في هذه الدورة أمثلة للدراسة ومعلّمة بأنها غير قابلة للتشغيل. دوّن إصدار التوزيعة وإصدار الأداة عند مقارنة التوثيق. تصف أدلة المشروع البرامج الحالية، وقد يدعم إصدارك المثبت ميزات أقدم. عند الاختلاف ارجع إلى الدليل المحلي للبرنامج الذي ستستخدمه فعلياً.
الأخطاء الشائعة وإصلاحها
command not found
- لماذا يحدث؟
- قد يكون الاسم خاطئاً أو الحزمة غائبة أو مجلد البرنامج خارج PATH.
- كيف تصلحه؟
- راجع الإملاء ثم افحص type وتوثيق حزم التوزيعة.
- كيف تتجنب تكراره؟
- تحقق من توفر الأمر قبل تكييف المثال.
نسخ علامات ملخص الصياغة
- لماذا يحدث؟
- اعتُبرت الأقواس الاختيارية والبدائل وسائط حرفية.
- كيف تصلحه؟
- اقرأ اصطلاحات الدليل واختر استدعاءً محدداً.
- كيف تتجنب تكراره؟
- اشرح كل ملخص صياغة بالكلمات قبل كتابته.
قراءة قيمة قديمة لـ $?
- لماذا يحدث؟
- نُفذ أمر آخر قبل فحص الحالة.
- كيف تصلحه؟
- احفظ الحالة فوراً في متغير.
- كيف تتجنب تكراره؟
- اعتبر الحالة جزءاً من ملاحظة المخرجات نفسها.
اختبر فهمك
1. اشرح لماذا يُعد help cd أدق من البحث عن ملف تنفيذي باسم cd.
اعرض الحل المشروح
يجب أن يؤثر تغيير المجلد في الصدفة الحالية، لذلك ينفذ Bash الأمر cd داخلياً. يكشف type cd هذا الأمر، ويشرح help cd الأمر المضمن. لا يستطيع برنامج ابن تغيير مجلد العمل لصدفته الأم.
2. لا يطبع أمر شيئاً ويعيد صفراً. ماذا تستنتج، وما الفحص التالي؟
اعرض الحل المشروح
يعلن الأمر النجاح وفق اصطلاح حالة الخروج. ولا يبين الصمت وحده مقدار العمل المنجز. اقرأ السلوك الموثق وافحص النتيجة المطلوبة، كملف مولّد، دون افتراض ضرورة ظهور مخرجات.
أهم ما تعلمته
- حدد الصدفة والأمر الجاريين قبل اعتماد الصياغة.
- استخدم المساعدة المحلية وأقسام الدليل الصريحة والفحص الفوري للحالة.