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

في النهاية ، سيكون لديك فهم موجز لكيفية معالجة shell للأمر المكتوب في Linux.

معالجة الأمر

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

إذا لم يتم العثور عليه في أي من الأدلة الموجودة في مسار البحث المحدد في متغير البيئة PATH $ أو في الدليل المحلي بامتداد .\ أو أنها ليست ملف قذيفة الاسم المستعار أو وظيفة قذيفة ، فإن القشرة ستعطي خطأ. إذا وجدت أمرًا صالحًا ، فسيقوم shell بعد ذلك بالمرور عبر كل من الرموز المميزة الأخرى وتحديد ما إذا كان متغيرًا أو معلمة shell أو وسيطة للأمر.

إذا حددت الصدفة أنها متغير أو معلمة مثل ~ عامل التشغيل الخاص بالدليل الرئيسي ، ستقوم shell بتوسيعها ، أو استبدالها بقيمها الأصلية في الأمر.

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

instagram viewer

تشغيل الأمر

عندما تطلق shell أمرًا آخر ، كيف تعود إلى نفس الموجه الذي كنت تستخدمه من قبل؟ تقوم القشرة بعمل نسخة من نفسها ، وهي عملية تسمى forking. تستبدل هذه النسخة من الصدفة نفسها بالأمر ، مع جميع الوسائط التي تمت معالجتها مسبقًا. يُعرف هذا باسم "exec" ، وتُعرف العملية المدمجة باسم "fork-and-exec."

على سبيل المثال ، عند تشغيل الأمر ls، ستعمل عملية shell على تفرع نفسها باستخدام الامتداد شوكة() طريقة وإنشاء مثيل shell آخر. من بين عمليتي shell اللتين تعملان على النظام ، ستنفذ الصدفة الإضافية الأمر ls باستخدام الامتداد إكسيك () دالة ، وتحول نفسها إلى مثيل للأمر ls.

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

متعلق ب: ما هي العملية في لينكس؟

الإبلاغ عن حالة الخروج

تشير أوامر Linux إلى ما إذا كانت قد تم تشغيلها بنجاح أم لا من خلال حالة الخروج الخاصة بها. كما يوحي الاسم ، تبلغ البرامج عن حالة خروجها عند انتهاء التشغيل. يفعلون ذلك من خلال $? متغير البيئة ، والذي يحتوي على حالة الخروج لأمر التشغيل الأخير.

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

لقطة الشاشة أعلاه هي مثال يوضح موجه Zsh المخصص الذي يعرض حالة خروج خطأ من 127 بسبب أمر غير موجود.

أنت الآن تعرف كيف تعمل أوامر Linux

الآن بعد أن أصبحت على دراية بكيفية معالجة Linux shell لأمر و forks و execs نفسه ، وكيف تبلغ البرامج عن حالة الخروج الخاصة بها ، يمكنك الاستفادة من سطر الأوامر بشكل أكثر فعالية.

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

يشاركسقسقةبريد الالكتروني
ما هو Linux Shell الأفضل؟ 5 قذائف مشتركة مقارنة

هل تبحث عن بديل Linux bash shell؟ في ما يلي ملخص لأفضل نظام Linux shell: tsch و fish و KornShell و Z Shell.

اقرأ التالي

مواضيع ذات صلة
  • لينكس
  • أوامر لينكس
  • لينكس باش شل
نبذة عن الكاتب
ديفيد ديلوني (57 المقالات المنشورة)

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

المزيد من David Delony

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك