ما هو هيكل الأوامر للمترجم. نظام التشغيل يونيكس

03.04.2019

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

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

عند العمل مع سطر الأوامر، يتم استخدام برامج خاصة لتنظيم الواجهة - مترجمي الأوامر. وهي تقبل الأوامر الصادرة عن المستخدم في شكل أسطر نصية تحتوي على أسماء البرامج والمعلمات التي يجب أن يتم بها تنفيذ هذه البرامج، وتحليل الأسطر المستلمة، وتشغيلها البرامج الضروريةوتمرير مخرجاتها إلى المستخدم - وكذلك أسطر النص. كل تفاعل المستخدم مع النظام يحدث من خلال مترجم الأوامر، ولهذا السبب غالبًا ما يطلق عليه اسم الصدفة. لتنفيذ الإجراءات النموذجية، تكون تسلسلات الأوامر هي نفسها. يمكن كتابة مثل هذه التسلسلات من الأوامر ملف نصيثم قم بتمرير هذا الملف النصي إلى مترجم الأوامر للتنفيذ. تسمى هذه الملفات النصية البرامج النصية. للتشغيل يجب أن يكون لديهم الحقوق المناسبة (العلامة "x"). تدعم مترجمات الأوامر التنفيذ المشروط للأوامر (بنيات if-then-else)، والحلقات، وإنشاء واستدعاءات الإجراءات الفرعية، وما إلى ذلك. لغة الصدفة قوية للغاية وتسمح لك بأتمتة أي مهمة تقريبًا في النظام. على سبيل المثال، يتم تنفيذ الإجراءات أثناء تشغيل النظام بواسطة البرامج النصية لمترجم الأوامر - بدءًا من /etc/rc.d/rc.sysinit، والذي بدوره يستدعي عدد كبير منالبرامج النصية الأخرى.

في أنظمة *nix، وفقًا لتصميمها المعياري، يتوفر العديد من مترجمي الأوامر. بشكل أساسي، يُستخدم حاليًا مترجم bash (/bin/bash).

أوامر نظام التشغيل هي برامج صغيرة، الموجود في الدلائل /bin، /usr/bin، /sbin، /usr/sbin. في المستقبل، عندما نتحدث عن الأوامر، سنقصد فقط البرامج المحددة.

التنسيق العام لاستدعاء الأمر هو كما يلي:

أمر $ -f --flag --key=معامل الوسيطة1 agrument2 ...

هنا "$" هو مطالبة نظام التشغيل بإدخال أمر. بالنسبة للمستخدمين العاديين، يبدو الأمر مثل "$"، بالنسبة للمستخدم المتميز (الجذر) - "#". من الآن فصاعدا، بالنسبة للأوامر التي تتطلب امتيازات الجذر، سيتم استخدام الترميز "# الأمر".

الأمر - اسم الأمر. بالنسبة للأوامر المستخدمة بشكل متكرر، تكون الأسماء قصيرة وتتكون من 2-3 أحرف.

بعد اسم الأمر، إذا لزم الأمر، تتم الإشارة إلى المفاتيح. المفتاح هو معلمة أمر تؤثر على نتيجة تنفيذه. المفاتيح المستخدمة بشكل متكرر هي مفاتيح قصيرة مكونة من حرف واحد؛ بالنسبة للمفاتيح الطويلة الأقل طلبًا، يتم استخدام الكلمات أو الاختصارات. تبدأ المفاتيح القصيرة بحرف "-"، بينما تبدأ المفاتيح الطويلة بحرفين "-". غالبًا ما يتم تكرار المفاتيح القصيرة بواسطة المفاتيح الطويلة لتحسين إمكانية قراءة النصوص البرمجية. بعد المفاتيح، قد يسمح بالإشارة معلمات إضافيةبالنسبة للمفاتيح الطويلة، عادةً ما تتم كتابة هذه المعلمات باستخدام العلامة "=". يمكن دمج عدة مفاتيح تبديل ذات حرف واحد معًا: على سبيل المثال، بدلاً من "$ ls -l -a" يمكنك كتابة "$ ls -la".

ترتيب المفاتيح ليس مهمًا بشكل عام.

جميع الخيارات متبوعة بوسائط الأوامر. غالبًا ما تكون الوسائط عبارة عن مسارات للملفات أو الدلائل. من الممكن استخدام الوسائط التي تبدأ بعلامة "-". وفي هذه الحالة، يتم فصلها عن المفاتيح بواسطة حرفين "-":

$ اللمس -- -ملف مع-

يمكن للأوامر استخدام مفاتيح ومعلمات مختلفة. من المستحيل ومن غير المجدي تذكر جميع المجموعات الممكنة لتنسيق الاتصال لكل برنامج. لذلك، يوفر النظام أوصافًا ونصائح لاستخدام كل الأدوات المساعدة والبرامج تقريبًا.

عادةً ما تدعم البرامج العديد من المفاتيح القياسية. ينتج رمز التبديل "-h" أو "--help". معلومات مختصرةحول البرنامج. بواسطة المفتاح "-v" أو "--version" - نسخته. إذا لم تكن المساعدة الموجزة كافية، فيمكنك استدعاء وصف البرنامج في نظام المساعدة. للوصول إلى المساعدة، استخدم الأمر man (اختصار لـ "يدوي"). يأخذ الأمر man اسم الأمر أو ملف التكوين كوسيطة ويبحث عن صفحة الدليل ويعرضها. تحتوي المساعدة الصادرة عن الأمر man على معلومات حول تنسيق استدعاء البرنامج، والمفاتيح والمعلمات التي يدعمها، ومعلومات حول المؤلفين وترخيص البرنامج، وفي بعض الحالات - أمثلة على الاستخدام، وروابط لمواقع المطورين مع وثائق إضافية.

لعرض الصفحات اليدوية التي لا تتناسب مع الشاشة، استخدم مفاتيح المؤشر و"Page Up" و"Page Down" للتمرير. تعمل المسافة على تحريك الدليل للأمام بمقدار صفحة واحدة. للخروج من الرجل ومواصلة العمل مع النظام، اضغط على المفتاح "q" (إنهاء).

تحتوي بعض البرامج، بالإضافة إلى الأدلة بتنسيق "man"، على وثائق أكثر شمولاً بتنسيق "info" - يتم استدعاؤها من خلال الأداة المساعدة التي تحمل نفس الاسم.

على عكس نظام تلميحات البرنامج المدمج في نظام التشغيل نظام ويندوز، يحتوي دليل الرجل والمعلومات على تفاصيل كاملة معلومات تقنيةعن عمل الفرق.

في Linux لا يوجد كائن منفصل يسمى "النظام". النظام هو نظام لأنه يتكون من العديد من المكونات التي تتفاعل مع بعضها البعض. قائد ال مكونات النظام- مستخدم. فهو الذي يقود الآلة، وهي تنفذ أوامره. تصف الأدلة في القسمين الثاني والثالث مكالمات النظام(وظائف النواة) ووظائف المكتبة. هم الأوامر المباشرة للنظام. صحيح، لا يمكنك استخدامها إلا عن طريق كتابة برنامج (في أغلب الأحيان بلغة C)، وغالبًا ما يكون برنامجًا معقدًا إلى حد ما. الحقيقة هي أن وظائف kernel تنفذ عمليات منخفضة المستوى، ولحل حتى أبسط مهمة للمستخدم، من الضروري إجراء العديد من هذه العمليات، وتحويل نتيجة إحداها إلى احتياجات أخرى. هناك حاجة لابتكار لغة أخرى للتحكم في النظام - ذات مستوى أعلى وأكثر ملاءمة للاستخدام. جميع الأوامر التي استخدمها ميثوديوس في عمله كانت جزءًا من هذه اللغة بالذات.

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

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

بالطبع، هناك العديد من مترجمي الأوامر في Linux. أبسطها، والتي ظهرت في الإصدارات المبكرة من UNIX، كانت تسمى sh، أو "Bourne Shell" - نسبة إلى اسم مؤلفها، ستيفن بورن. وبمرور الوقت، تم استبداله - حيثما كان ذلك ممكنًا - بآخر أقوى، وهو باش، "Bourne Again Shell".

التلاعب بالكلمات: تتم قراءة "Bourne Again" بصوت عالٍ على أنها "ولد من جديد"، أي "ولد من جديد".

يتفوق bash على sh في كل شيء، خاصة قدراته على تحرير سطر الأوامر. بالإضافة إلى sh وbash، يمكن تثبيت النظام باستخدام "The Z Shell"، أو zsh، أقوى مترجم أوامر حتى الآن (بدون مزحة، 22 ألف سطر من الوثائق)، أو tcsh، المحدث وأيضًا للغاية نسخة قوية C Shell القديم، الذي يشبه بناء جملة أوامره لغة البرمجة C.

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

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

الرسم التوضيحي 2.واجهة خط الأوامر. الطبعة الثانية، منقحة وموسعة. تفاعل المستخدم مع الكمبيوتر من خلال المحطة والصدفة.

الأوامر والمرافق

$ مناسب. . . (أربعة آلاف ونصف سطر!)

مثال 18. أمر لا طائل منه

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

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

معلومات معلومات النوع $ هي /usr/bin/info $ نوع صدى الصدى هو ملف الصدفة المدمج $ type -a echo echo هو غلاف الصدى المدمج الصدى هو /bin/echo $ type -a -t ملف الصدى المدمج $ type -a -t ملف التاريخ $type -at ملف القط

مثال 19. تحديد نوع الأمر

في bash، يمكن تحديد نوع الأمر باستخدام أمر type. ملك أوامر باشوتسمى مدمج(أمر مدمج)، وللأدوات المساعدة يتم عرضه طريق، يحتوي على اسم الدليل الذي يوجد به الملف مع البرنامج المقابل، واسم هذا البرنامج. بعض الأوامر الأكثر فائدة مدمجة في bash، على الرغم من أنها متوفرة كأدوات مساعدة (مثل الصدى). يعمل الأمر المدمج بنفس الطريقة، ولكن بما أن تنفيذه يستغرق وقتًا أقل بكثير، فسيقوم مترجم الأوامر باختياره إن أمكن. التبديل "-أ" (" أ ll"، بالطبع)، يؤدي إلى طباعة كل شيء الخيارات الممكنةتفسير الأمر، والمفتاح "-t" هو عرض نوع الأمر بدلاً من المسار.

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

الكلمات والفواصل

عند تحليل الأمر سلاسل قذيفةيستخدم هذا المفهوم محدد(المحدد). المحدد هو حرف يفصل بين الكلمات؛ لذا فإن سطر الأوامر هو التسلسل كلمات(ما يهم) و فواصل(وهذا لا يهم). بالنسبة للصدفة، المحددات هي حرف المسافة، وحرف علامة التبويب، وحرف السطر الجديد (والتي لا يزال من الممكن أن تظهر بين الكلمات بالطريقة الموضحة في المحاضرات العمل مع بيانات النص وميزات Command Shell). لا يهم عدد الفواصل بين كلمتين متجاورتين.

يتم تمرير الكلمة الأولى في الثلاثي إلى الأمر كمعلمة أولى، والثانية - باعتبارها الثانية، وما إلى ذلك. لكي يكون الفاصل داخل الكلمة (ويتم تمرير السلسلة الناتجة مع الفاصل كمعلمة واحدة) ، يجب أن تكون السلسلة الفرعية المطلوبة بأكملها محاطة بمفرد أو التنصيص:

$ echo واحد اثنان ثلاثة واحد اثنان ثلاثة $ echo One "اثنان ثلاثة" واحد اثنان ثلاثة $ echo "واحد > > أوه. وماذا بعد؟ > أوه، لقد نسيت الاقتباسات!" واحد أوه. إذن، ما هي الخطوة التالية؟

أوه لقد نسيت الاقتباسات! $مثال 20

. نقلا عن سطر الأوامر

في الحالة الأولى، تم تمرير أمر الصدى ثلاث معلمات - "واحد"، "اثنان" و "ثلاثة". أخرجتهم وفصلت بينهم بمسافة. وفي الحالة الثانية، كان هناك معلمتان: "واحد" و"اثنان وثلاثة". ونتيجة لذلك، تم أيضًا إخراج هاتين المعلمتين مفصولتين بمسافة. في الحالة الثالثة، كان هناك معلمة واحدة فقط - من الفاصلة العليا الافتتاحية ""واحد"" إلى النهاية "...نسيت!" " طوال الوقت الذي كان يكتب فيه، أعطى باش لميثوديوس التلميح ">" بشكل مفيد - كإشارة إلى استمرار كتابة سطر الأوامر، ولكن في وضع إدخال محتويات علامات الاقتباس. حاشية. ملاحظة: يجري النظر فيهافرق داخلية ، بدعم من مترجم Cmd.exe، والأكثر استخدامًاأوامر خارجية

(المرافق سطر الأوامر). يتم وصف آليات إعادة توجيه الإدخال/الإخراج، والتوجيه، وتنفيذ الأوامر المشروطة. يتم إعطاء أمثلة على أوامر العمل مع نظام الملفات.

غلاف سطر أوامر Windows. مترجم كمد.exe في نظام التشغيل Windows، كما هو الحال في أنظمة التشغيل الأخرى، يتم تنفيذ الأوامر التفاعلية (المكتوبة من لوحة المفاتيح ويتم تنفيذها على الفور) باستخدام ما يسمى بمترجم الأوامر، والذي يسمى أيضًا معالج الأوامر أو غلاف الأوامر (قذيفة الأوامر).مترجم الأوامر أو سطر الأوامر Shell هو برنامج، أثناء وجوده فيذاكرة الوصول العشوائي ، يقرأ الأوامر التي تكتبها ويعالجها. في نظام التشغيل Windows 9x، كما هو الحال في MS-DOS،مترجم الأوامر افتراضيًا، تم تمثيله بواسطة ملف الأمر القابل للتنفيذ. com. بداية منإصدارات ويندوز NT، المطبقة في نظام التشغيلمترجم الأوامر

Cmd.exe، الذي يتمتع بقدرات أقوى بكثير.

في نظام التشغيل Windows NT/2000/XP، يكون الملف Cmd.exe، مثل الملفات الأخرى الملفات القابلة للتنفيذ، مُتَجَانِس فرق خارجيةنظام التشغيل موجود في الدليل %SystemRoot%\SYSTEM32 (بالقيمة متغيرات البيئة%SystemRoot% هو جذر النظام دليل ويندوز، عادةً C:\Windows أو C:\WinNT). لبدء مترجم الأوامر (افتح جلسة سطر أوامر جديدة)، يمكنك تحديد تشغيل... من قائمة ابدأ، ثم أدخل اسم الملف Cmd.exe، ثم انقر فوق موافق. ونتيجة لذلك، سيتم فتح نافذة جديدة (انظر الشكل 2.1)، حيث يمكنك تشغيل الأوامر ورؤية نتيجة عملهم.


أرز. 2.1.

فرق داخلية وخارجية. هيكل القيادة

يتم التعرف على بعض الأوامر وتنفيذها مباشرة بواسطة الصدفة نفسها - وتسمى هذه الأوامر بالأوامر الداخلية (على سبيل المثال، COPY أو DIR) وأوامر نظام التشغيل الأخرى هي البرامج الفردية، الموجود بشكل افتراضي في نفس الدليل مثل Cmd.exe، والذي يقوم Windows بتحميله وتشغيله مثل البرامج الأخرى. تسمى هذه الأوامر الخارجية (على سبيل المثال، MORE أو XCOPY).

دعونا نلقي نظرة على هيكل سطر الأوامر نفسه ومبدأ العمل معه. لتنفيذ الأمر، يجب عليك يطالب سطر الأوامر(على سبيل المثال، C:\>) أدخل اسم هذا الأمر (حالة الأحرف ليست مهمة)، ومعلماته ومفاتيحه (إذا لزم الأمر) واضغط على المفتاح . على سبيل المثال:

C:\>نسخ C:\myfile.txt A:\ /V

اسم الأمر هنا هو COPY، والمعلمات هي C:\myfile.txt وA:\، والمفتاح هو /V. لاحظ أنه في بعض الأوامر، قد لا تبدأ المفاتيح بالرمز /، ولكن بالرمز – (ناقص)، على سبيل المثال، -V .

كثير أوامر ويندوزتحتوي على عدد كبير من المعلمات والمفاتيح الإضافية، والتي غالبًا ما يصعب تذكرها. تحتوي معظم الأوامر على تعليمات مضمنة تصف بإيجاز غرض الأمر وصياغته. يمكنك الوصول إلى هذه المساعدة عن طريق إدخال الأمر باستخدام المفتاح /؟ على سبيل المثال، إذا قمت بذلك أمر أتريب/ ؟، ثم في نافذة MS-DOS سنرى النص التالي:

عرض وتغيير سمات الملف. ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[drive:][path]اسم الملف] + تعيين السمة. - إزالة السمة. R سمة للقراءة فقط. سمة "الأرشيف". سمة S "النظام". ح السمة المخفية. /S معالجة الملفات في كافة المجلدات الفرعية للمسار المحدد.

بالنسبة لبعض الأوامر، يمكن أن يكون نص التعليمات المضمن كبيرًا جدًا وقد لا يتناسب مع شاشة واحدة. في هذه الحالة، يمكن عرض المساعدة بشكل تسلسلي على شاشة واحدة باستخدام الأمر MORE ورمز الأنابيب |، على سبيل المثال:

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

اكسكوبي/؟ > XCOPY.TXT

تعليق

بدلاً من اسم الملف، يمكنك تحديد تسميات أجهزة الكمبيوتر الخاصة بك. أسماء الأجهزة التالية مدعومة على نظام التشغيل Windows: PRN(طابعة)، LPT1-LPT3(مُتَجَانِس منافذ متوازية), ايه يو اكس(الجهاز متصل منفذ تسلسلي 1)، COM1-COM3 (الموافق المنافذ التسلسلية)، CON (المحطة الطرفية: للإدخال هي لوحة المفاتيح، وللإخراج هي الشاشة)، NUL (جهاز فارغ، يتم تجاهل جميع عمليات الإدخال/الإخراج الخاصة به).

إعادة توجيه الإدخال/الإخراج وتوجيه الأوامر (التكوين)

دعونا نلقي نظرة فاحصة على المفاهيم المشابهة لـ UNIX المتمثلة في إعادة تعيين أجهزة الإدخال/الإخراج القياسية وتنفيذ أوامر التوجيه المدعومة في Windows.

باستخدام إعادة تعيين الإدخال/الإخراج، يمكن لأحد البرامج توجيه مخرجاته إلى مدخلات برنامج آخر، أو اعتراض مخرجات برنامج آخر واستخدامه كمدخل له. وبالتالي، من الممكن نقل المعلومات من عملية إلى أخرى بأقل قدر من الحمل البرنامجي. من الناحية العملية، هذا يعني أنه بالنسبة للبرامج التي تستخدم أجهزة الإدخال والإخراج القياسية، يسمح نظام التشغيل بما يلي:

  • رسائل برنامج الإخراج ليس إلى الشاشة (دفق الإخراج القياسي)، ولكن إلى ملف أو إلى طابعة (إعادة توجيه الإخراج)؛
  • قراءة بيانات الإدخال ليس من لوحة المفاتيح (دفق الإدخال القياسي)، ولكن من ملف تم إعداده مسبقًا (إعادة توجيه الإدخال)؛
  • تمرير الرسائل التي يتم إخراجها بواسطة برنامج واحد كمدخلات إلى برنامج آخر (خطوط الأنابيب أو تكوين التعليمات).

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

الأمر> اسم الملف

إذا كان الملف المحدد للإخراج موجودًا بالفعل، فسيتم استبداله (يتم فقدان المحتويات القديمة)؛ لا يمكنك أيضًا إنشاء الملف مرة أخرى، ولكن يمكنك إلحاق إخراج المعلومات بواسطة الأمر بالنهاية الملف الموجود. للقيام بذلك، يجب تحديد أمر إعادة توجيه الإخراج كما يلي:

الأمر >> اسم الملف

باستخدام رمز< можно прочитать входные данные для أمر معينليس من لوحة المفاتيح، ولكن من ملف محدد (مجهز):

فريق< имя_файла

فيما يلي بعض الأمثلة على إعادة توجيه الإدخال/الإخراج.

  1. عرض التعليمات المضمنة لـ أوامر النسخلملف Copy.txt:

    ينسخ /؟ > نسخ.txt

  2. أضف نص تعليمات لـ أوامر XCOPYلملف Copy.txt:

    اكسكوبي/؟ >> نسخ.txt

  3. إدخال تاريخ جديد من ملف date.txt (التاريخ هو أمر لعرض تاريخ النظام وتغييره):

    تاريخ< date.txt

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

الأمر 2> اسم الملف

في هذه الحالة الإخراج القياسيسيتم إنتاجه إلى ملف. ومن الممكن أيضا رسائل المعلوماتويتم إخراج رسائل الخطأ إلى نفس الملف. هذا يفعل كما يلي:

تمت مناقشة الأوامر الداخلية التي يدعمها مترجم Cmd.exe والأوامر الخارجية الأكثر استخدامًا (الأدوات المساعدة لسطر الأوامر). يتم وصف آليات إعادة توجيه الإدخال/الإخراج، والتوجيه، وتنفيذ الأوامر المشروطة. يتم إعطاء أمثلة على أوامر العمل مع نظام الملفات.

في نظام التشغيل Windows، كما هو الحال في أنظمة التشغيل الأخرى، يتم تنفيذ الأوامر التفاعلية (المكتوبة من لوحة المفاتيح ويتم تنفيذها على الفور) باستخدام ما يسمى بمترجم الأوامر، والذي يسمى أيضًا معالج الأوامر أو غلاف الأوامر. بدءًا من إصدار Windows NT، قام نظام التشغيل بتطبيق مترجم الأوامر، Cmd.exe، الذي يتمتع بقدرات أكثر تقدمًا.

1.2.1 إطلاق الصدفة

في نظام التشغيل Windows NT/2000/XP، يوجد الملف Cmd.exe، بالإضافة إلى الملفات القابلة للتنفيذ الأخرى المقابلة لأوامر نظام التشغيل الخارجية، في الدليل %SystemRoot%\SYSTEM32 (قيمة متغير البيئة %SystemRoot% هي دليل النظام Windows، عادةً C:\Windows أو C:\WinNT). لبدء مترجم الأوامر (افتح جلسة سطر أوامر جديدة)، يمكنك تحديد تشغيل... من قائمة ابدأ، ثم أدخل اسم الملف Cmd.exe، ثم انقر فوق موافق. ونتيجة لذلك، سيتم فتح نافذة جديدة (انظر الشكل 1)، حيث يمكنك تشغيل الأوامر ورؤية نتيجة عملهم.

أرز. 1 - نافذة أوامر المترجم Cmd.exe في نظام التشغيل Windows XP

1.2.2 ضبط المعلمات لنافذة أوامر المترجم

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

أرز. 2- نافذة لإعداد خصائص المترجم

1.2.3. فرق داخلية وخارجية. هيكل القيادة

يتم التعرف على بعض الأوامر وتنفيذها مباشرة بواسطة الصدفة نفسها - يتم استدعاء هذه الأوامر داخلي(على سبيل المثال نسخة أو DIR). أوامر نظام التشغيل الأخرى عبارة عن برامج منفصلة، ​​توجد بشكل افتراضي في نفس الدليل مثل Cmd.exe، ويقوم Windows بتحميلها وتشغيلها بنفس طريقة تشغيل البرامج الأخرى. تسمى هذه الأوامر خارجي(على سبيل المثال MORE أو XCOPY).

دعونا نلقي نظرة على هيكل سطر الأوامر نفسه ومبدأ العمل معه. من أجل تنفيذ أمر، بعد موجه سطر الأوامر (على سبيل المثال، C:\>)، أدخل اسم هذا الأمر (حالة الأحرف ليست مهمة)، ومعلماته ومفاتيحه (إذا لزم الأمر) واضغط على المفتاح . على سبيل المثال:

C:\>نسخ C:\myfile.txt A:\ /V

اسم الأمر هنا هو COPY، والمعلمات هي C:\myfile.txt وA:\، والمفتاح هو /V. لاحظ أنه في بعض الأوامر، قد لا تبدأ المفاتيح بالرمز /، ولكن بالرمز – (ناقص)، على سبيل المثال، -V.

تحتوي العديد من أوامر Windows على عدد كبير من المعلمات والمفاتيح الإضافية، والتي غالبًا ما يصعب تذكرها. تحتوي معظم الأوامر على تعليمات مضمنة تصف بإيجاز غرض الأمر وصياغته. يمكنك الوصول إلى هذه المساعدة عن طريق إدخال الأمر باستخدام المفتاح /؟ على سبيل المثال، إذا قمنا بتشغيل الأمر ATTRIB /؟، فسنرى في نافذة MS-DOS النص التالي:

عرض وتغيير سمات الملف.

ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[محرك الأقراص:][المسار]اسم الملف]

تعيين السمة.

إزالة سمة.

R سمة للقراءة فقط.

سمة "الأرشيف".

سمة S "النظام".

ح السمة المخفية.

/S معالجة الملفات في كافة المجلدات الفرعية للمسار المحدد.

بالنسبة لبعض الأوامر، يمكن أن يكون نص التعليمات المضمن كبيرًا جدًا وقد لا يتناسب مع شاشة واحدة. في هذه الحالة، يمكن عرض المساعدة بشكل تسلسلي على شاشة واحدة باستخدام الأمر MORE ورمز الأنابيب |، على سبيل المثال:

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

اكسكوبي/؟ > XCOPY.TXT

تعليق. بدلاً من اسم الملف، يمكنك تحديد تسميات أجهزة الكمبيوتر الخاصة بك. ما يلي مدعوم على نظام التشغيل Windows أسماء الأجهزة: PRN (طابعة)، CON (المحطة: لوحة مفاتيح للإدخال، شاشة للإخراج)، NUL (جهاز فارغ، يتم تجاهل جميع عمليات الإدخال/الإخراج عليه).

في معظم أنظمة تشغيل Linux، يعد bash هو مترجم سطر الأوامر الافتراضي. لتحديد المترجم الحاليأدخل الأمر التالي:

$ صدى $SHELL
/بن/باش

يستخدم هذا المثالمترجم سطر الأوامر سحق. هناك العديد من المترجمين الفوريين للأوامر. لتنشيط مترجم آخر، يمكنك إدخال اسمه في سطر الأوامر (ksh، tcsh، csh، sh، bash، إلخ).

توفر معظم أنظمة تشغيل Linux كاملة الميزات جميع مترجمي الأوامر الموصوفين هنا. ولكن في أنظمة التشغيل الأصغر حجمًا، قد يتم توفير مترجم فوري أو اثنين.

التحقق من توفر العنصر الذي تهتم بهمترجمسطر الأوامر

أكثر بطريقة بسيطةللتحقق من توفر مترجم الأوامر محل الاهتمام، أدخل اسمه في سطر الأوامر. إذا بدأ المترجم، فهو متاح.

هناك عدة أسباب لاختيار الأصداف البديلة.

  • عادة العمل في الأنظمة نظام يونيكس V (كثير منها يستخدم ksh بشكل افتراضي) أو Sun Microsystems وغيرها من الأنظمة المستندة إلى Berkeley UNIX (والتي تستخدم غالبًا csh). وفي هذه الحالة يتم الاستعانة بهؤلاء المترجمينسطر الأوامرسيكون أكثر ملاءمة.
  • الحاجة إلى تشغيل البرامج النصية التي تم إنشاؤها لمترجم أوامر محدد.
  • قد تكون إمكانيات الغلاف البديل هي الأفضل. على سبيل المثال، أحد أعضاء المجموعة مستخدمي لينكسيفضل استخدام ksh لأنه لا يحب الطريقة التي ينشئ بها bash الأسماء المستعارة.

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

باستخدام باش و الفصل

الاسم باش هو اختصار لـ Bourne Again SHell. يشير هذا الاختصار إلى أن bash يرث مترجم Bourneshell (أمر sh)، الذي أنشأه Steve Bourne من AT&TBell Labs. قام بريان فوكس من مؤسسة البرمجيات الحرة بإنشاء باش كجزء من مشروع جنو. بعد ذلك، انتقل التطوير إلى شيت رامي في جامعة كيس ويسترن ريزيرف.

يحتوي مترجم bash على ميزات تم تطويرها لمترجمي sh وksh في الأيام الأولى إصدارات يونيكسبالإضافة إلى عدد من ميزات مترجم CSH.

يمكنك أن تتوقع أن معظم أنظمة Linux، بخلاف الأنظمة المتخصصة (مثل تلك المضمنة أو التي يتم التمهيد منها). محرك خارجي)، bash هو المترجم الافتراضي. في أنظمة متخصصةقد تكون هناك حاجة إلى مترجم أوامر أصغر، وهو ما يعني أيضًا قدرات محدودة.

وأكثر الأمثلة في ذلكشرطمصممة للاستخدام باش.

يمكن تشغيل مترجم bash أوضاع مختلفةالتوافق من خلال تقليد سلوك الأصداف الأخرى. يمكنه تقليد سلوك غلاف Bourne (sh) أو غلاف متوافق مع معايير POSK (bash -بوزيكس).

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

توفير كافة غرف العمليات أنظمة لينكسبشكل افتراضي، استخدم مترجم bash، باستثناء أنظمة التشغيل التي تم التمهيد منها الوسائط القابلة للإزالة، والتي تستخدم مترجم الرماد بشكل افتراضي.

استخدام tcsh (والمترجم الأقدم لـ csh)

مترجم أوامر tcsh هو تطبيق مفتوح المصدر لمترجم Cshell (csh). مصدر الرمز. تم إنشاء مترجم csh بواسطة Bill Joy ويتم استخدامه افتراضيًا في جميع أنظمة Berkeley UNIX تقريبًا (تم توزيع هذه الأنظمة بواسطة Sun Microsystems).

تم تنفيذ العديد من ميزات csh، مثل تحرير سطر الأوامر وأساليب إدارة سجل الأوامر، في tcsh والأصداف الأخرى. مثلما يقوم الأمر sh بتشغيل مترجم bash في الوضع المتوافق مع sh، يقوم الأمر csh بتشغيل مترجم tcsh في الوضع المتوافق مع csh.

باستخدام مترجم الرماد

مترجم ash هو نسخة خفيفة الوزن من مترجم Berkeley UNIX sh. لا تحتوي على الكثير وظائف أساسيةولا يوفر ميزات مثل سجل الأوامر.

يعتبر مترجم الرماد مناسبًا تمامًا للاستخدام في الأنظمة المدمجة ذات القدرات المحدودة موارد النظام. في نظام التشغيل FedoraCore 4، يكون مترجم ash أصغر حجمًا من مترجم bash.

باستخدام زش

مترجم zsh هو نسخة أخرى من مترجم sh. إنه متوافق مع POSIX (مثل bash)، ولكنه يحتوي على ميزات أخرى، بما في ذلك التدقيق الإملائي وأسلوب مختلف لتحرير سطر الأوامر. تم استخدام مترجم zsh بشكل افتراضي في أنظمة التشغيل المبكرة. أنظمة ماك X، ولكن في الأنظمة الحديثةالمترجم الافتراضي هو bash.