قذيفة أوامر لينكس. Bash هو غلاف أوامر Linux. حول المراجع العلمي

تحتوي معظم توزيعات Linux على Bash shell مثبتًا بشكل افتراضي. لاحظ أن هناك فرقًا بسيطًا بين جميع الأصداف المتوافقة مع معيار نظام التشغيل POSIX-like Unix.

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

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

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

تخيل أنك تتصل عبر SSH بخادم الويب حيث تستضيف ملفات الموقع. عند العمل في نظام التشغيل GNU / Linux وتشغيل برنامج "Terminal" ، فإنك تعطي Bash أمرًا للاتصال بجهاز بعيد باسم مستخدم محدد. يستجيب الخادم لك ويطلب منك إدخال كلمة المرور لهذا المستخدم. هذا بسبب لا يمكن استخدام هذا الكمبيوتر الخادم حتى الآن شخص واحد.

على الجهاز المحلي في وضع نص Linux (إذا ضغطت ، على سبيل المثال ، Ctrl + Alt + F2) يتم محاكاة الوصول عن بُعد إلى الجهاز من خلال الجهاز. هنا يطالبك Bash أولاً وقبل كل شيء بإدخال تسجيل دخول ، وبعد ذلك - كلمة مرور. عند إدخال كلمة المرور ، لا يتم عرض أي شيء على الشاشة. تم القيام بذلك عن قصد بحيث كان من المستحيل اختفاء عدد الأحرف التي تم إدخالها. إذا كان زوج تسجيل الدخول / كلمة المرور الذي تم إدخاله يطابق أي مستخدم مسجل مسبقًا في النظام ، فسترى موجه سطر أوامر Bash لإدخال الأمر. في حالة حدوث خطأ ، ستحتاج إلى إعادة إدخال تسجيل الدخول / كلمة المرور.

في الوضع الرسومي ، يأخذ التطبيق "Terminal" تلقائيًا بيانات المستخدم الذي قام بتشغيله وينقلها إلى Bash ، وبذلك تكون قد قدمت بالفعل إلى النظام وأول شيء تراه هو موجه سطر الأوامر.

يحتوي موجه سطر الأوامر على بناء جملة قياسي نسبيًا ويبدو مثل هذا: username @ computername: current_dir sign.

في لقطة الشاشة ، pl هو اسم المستخدم ، comp هو اسم الكمبيوتر. حرف التلدة ~ في أنظمة Linux هو اختصار للدليل الرئيسي للمستخدم (/ home / user). هذا هو الدليل الذي يجعله Bash محدثًا بشكل افتراضي. تشير علامة الدولار $ إلى أننا نعمل كمستخدم غير متميز. إذا قمت بتسجيل الدخول كمسؤول ، فستكون علامة الدولار # بدلاً من علامة الدولار.

بعد الموجه ، يتم وضع مسافة تلقائيًا ويتوقع الأمر. في الصورة أعلاه ، في البداية ، تم الضغط على Enter ببساطة. في السطر الثاني ، تم إدخال أمر الانتقال إلى دليل آخر. في السطر الثالث ، نرى نتيجة تنفيذه - / أصبح opt هو الدليل الحالي ، والذي يتم عرضه في الموجه.

هناك العديد من الأوامر التي يمكن إصدارها في Bash. في الأساس ، هذه أوامر لبدء برنامج معين ، والتي توجد في الدلائل / bin و / usr / bin وعدد من الدلائل الأخرى. يتم كتابة الدلائل التي سيتم التحقق منها في متغير PATH $ الخاص بالصدفة:

هنا ، باستخدام الأمر echo ، نطلب من Bash أن يعطينا قيمة المتغير $ PATH. في الإخراج ، يتم فصل الدلائل عن بعضها البعض بنقطتين.

يمكنك معرفة البرامج المثبتة في دليل معين ، ثم تشغيل أحدها:

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

هناك برامج بواجهة نصية. على سبيل المثال ، محرر Nano:

في هذه الحالة ، تم إعطاء Bash الأمر nano ، وتم فتح محرر GNU Nano مباشرة في المحطة. تم إدخال كلمتين فيه. للخروج من المحرر ، يجب الضغط على Ctrl + X ، تأكيد أو رفض الحفظ. بعد ذلك ، العودة إلى سطر أوامر Bash.

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

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

هنا ، تم إنشاء ملف test.py في الدليل الرئيسي يحتوي على رمز بلغة برمجة Python التي تعرض الرقم 10. تمت كتابة الرمز بلغة Nano (غير معروض في لقطة الشاشة). بعد ذلك ، نحاول تنفيذ البرنامج من خلال الوصول إلى الملف على عنوانه. تمثل النقطة الدليل الحالي.في هذه الحالة ، يكون المنزل ، لذا فهو يعادل ~ / test.py أو /home/pl/test.py.

في المكالمة الأولى ، حصلنا على خطأ لأنه ليس لدينا إذن بتنفيذ البرنامج. بمساعدة الأمر chmod ، نضيف هذا الحق (الخيار + x).

هناك أوامر كثيرة. من الصعب التعرف عليهم جميعًا. ومع ذلك ، هناك عدد من الأكثر شعبية. هذه أوامر لإجراء عمليات على الملفات ، وتثبيت البرامج ، وتصفح الدلائل والملفات ، والتنقل عبر شجرة الدليل ، وما إلى ذلك ، أي كل ما نقوم به في الوضع الرسومي لنظام التشغيل. سيتم تغطية العديد من هؤلاء في هذه الدورة. لقد التقينا بالفعل ببعض منهم (cd، ls، echo، chmod).

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

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

المهمة

اكتشف بنفسك ما تفعله الأوامر التالية: date، cal، pwd، who، clear، exit. استخدم الأمر الذي لمعرفة الدلائل التي توجد بها الملفات القابلة للتنفيذ لهذه البرامج.

دورة مع إجابات على المهام ودروس إضافية:

Original: The Beginner's Guide to Shell Scripting: الأساسيات
المؤلف: ياتري تريفيدي
تاريخ النشر: 29 سبتمبر 2015
ترجمة: A.Panin
تاريخ التحويل: 4 أكتوبر 2016

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

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

سيتعين على مستخدم نظام التشغيل Linux عاجلاً أم آجلاً التعامل مع واجهة سطر الأوامر في النظام. سواء أعجبك ذلك أم لا ، فإن إنجاز بعض المهام أسهل بكثير باستخدام هذه الواجهة بدلاً من النقر فوق عناصر مختلفة للواجهة الرسومية لتطبيق متخصص. كلما زاد استخدامك لواجهة سطر أوامر النظام ، كلما أدركت إمكاناتها بشكل أفضل. في الواقع ، يتم تنفيذ هذه الواجهة ضمن برنامج منفصل ، وهو shell command. الغالبية العظمى من توزيعات Linux اليوم تستخدم Bash shell ، والتي ستدخل الأوامر من خلالها.

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

تسمح لك البرامج النصية لـ Shell بإنشاء سلاسل من الأوامر وتنفيذها بنفس الطريقة كما في حالة الملفات الدفعية. ومع ذلك ، فإنها توفر لك العديد من الميزات المفيدة التي تسمح لك بتنفيذ إجراءات مثل استبدال الأوامر. على سبيل المثال ، يمكنك تشغيل أمر مثل التاريخ واستخدام مخرجاته كجزء من نظام تسمية الملفات. بهذه الطريقة ، يمكنك أتمتة عملية إنشاء نسخ احتياطية من البيانات عن طريق إضافة التاريخ الحالي إلى اسم كل ملف منسوخ. ومع ذلك ، لا ينبغي أن يقتصر محتوى نصوص shell النصية على استدعاءات الأوامر. في جوهرها ، هذه البرامج النصية هي برامج كاملة. لهذا السبب ، ستكون قادرًا على استخدام التركيبات النحوية للغة البرمجة الكلاسيكية مثل الحلقات for ، و if / then / else الشرطية ، وما إلى ذلك ، مباشرةً على مستوى واجهة سطر أوامر النظام في عملية البرمجة النصية. ولا يتعين عليك تعلم لغة برمجة أخرى لأنك تستخدم بالفعل الواجهة التي تعرفها: سطر الأوامر.

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

قبل ان تبدا

قبل أن نبدأ في النظر إلى البرمجة النصية للقذيفة في سلسلة من المقالات ، هناك بعض الأشياء التي يجب وضعها في الاعتبار. سنستخدم Bash shell ، وهو الإعداد الافتراضي في جميع توزيعات Linux تقريبًا. ومع ذلك ، فهو متاح أيضًا لمستخدمي Mac OS و Windows بفضل وجود مجموعة من مكتبات Cygwin. بفضل هذا التنوع ، ستتمكن من إنشاء نصوص برمجية بغض النظر عن النظام الأساسي للبرنامج المستخدم. بالإضافة إلى ذلك ، تجدر الإشارة إلى أن البرامج النصية ستعمل بدون تعديل أو بأدنى حد من التعديل على جميع منصات البرامج المذكورة ، بشرط أن تكون جميع الأدوات المساعدة المستخدمة فيها موجودة في النظام.

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

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

أسماء الملفات النصية والأذونات

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

Chmod + x ~ / somecrazyfolder / script1

سيسمح هذا الأمر لأي مستخدم بتنفيذ البرنامج النصي بالاسم المحدد. إذا كنت تريد منك فقط تنفيذ هذا البرنامج النصي ، فسيتعين عليك استخدام هذا الأمر بدلاً من الأمر أعلاه:

Chmod u + x ~ / somecrazyfolder / script1

لبدء تنفيذ البرنامج النصي ، سيتعين عليك التغيير إلى دليله باستخدام الأمر cd وتشغيله:

cd ~ / somecrazyfolder ./script1

لتبسيط عملية تطوير البرامج النصية للصدفة ، يمكنك ببساطة وضع جميع البرامج النصية الخاصة بك في دليل bin الموجود في الدليل الرئيسي الخاص بك:

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

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

أي [script_name]

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

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

  1. يجب أن يبدأ كل نص برمجي بالسطر "#! / bin / bash"
  2. يجب أن يحتوي كل سطر برنامج نصي جديد على أمر جديد
  3. يجب أن تبدأ أسطر التعليق بـ #
  4. يجب وضع أوامر الاستبدال بين قوسين ()

فرقعة التجزئة

عند تحليل محتويات ملف نصي ، يكون المعرف الرئيسي للبرنامج النصي هو السطر الأول:

#! / بن / باش

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

سطر جديد = أمر جديد

يجب التعامل مع كل سطر نصي جديد كأمر جديد أو جزء من بناء نحوي أكثر تعقيدًا. عبارات if / then / else ، على سبيل المثال ، يمكن أن تمتد عبر أسطر متعددة ، لكن كل عنصر من عناصرها سيظل في سطر جديد. يجب ألا تلتف الأوامر على أسطر جديدة ، حيث سيؤدي ذلك إلى تقصير السطر الأول وعرض رسالة خطأ عند محاولة تنفيذ السطر الثاني. إذا كان محرر النصوص الخاص بك يقوم بذلك من تلقاء نفسه ، فيجب عليك تعطيل التفاف السطر تلقائيًا في حالة حدوث ذلك. في محرر نصوص النانو ، يتم تعطيل ميزة التفاف الخط التلقائي باستخدام تركيبة المفاتيح Alt + L.

تبدأ التعليقات عادةً بـ #

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

يتم وضع أوامر الاستبدال بين قوسين

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

السيناريو الأول الخاص بك

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

كما ترى ، الأمر الذي لا ينتج عنه أي شيء ، لذلك لا يوجد ما يمنعنا من استخدام اسم ملف البرنامج النصي هذا.

لنقم الآن بإنشاء ملف فارغ في دليل ~ / bin:

قبل أن ننسى ، نحتاج إلى تغيير الأذونات الافتراضية في ملف البرنامج النصي الذي تم إنشاؤه حديثًا:

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

نانو ~ / بن / datecp

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

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

ما هي البيانات التي سنخزنها في متغيرنا؟ حسنًا ، دعنا نخزن التاريخ والوقت فيه! للقيام بذلك ، سيتعين علينا استدعاء أمر التاريخ.

ألق نظرة على لقطة الشاشة التالية لنافذة المحطة التي تعرض إخراج أمر التاريخ:

من السهل ملاحظة أنه من خلال إضافة خيارات تنسيق مختلفة تبدأ أسماؤها بالحرف٪ ، يمكنك تغيير تنسيق الإخراج للأمر كما تريد. لمزيد من المعلومات ، يمكنك التحقق من صفحة الدليل لأمر التاريخ.

دعنا نستخدم المجموعة الأخيرة من خيارات تنسيق أمر التاريخ ، وهي "التاريخ +٪ m_٪ d_٪ y-٪ H.٪ M.٪ S" ، في البرنامج النصي الخاص بنا.

إذا حفظنا هذا البرنامج النصي الآن وقمنا بتشغيله ، فسنحصل على الإخراج المتوقع من أمر التاريخ:

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

المتغير = $ (وسيطات خيارات الأوامر)

في حالتنا ، سيبدو بناء الجملة هذا كما يلي:

Date_formatted = $ (تاريخ +٪ m_٪ d_٪ y-٪ H.٪ M.٪ S)

هذا ما يسمى استبدال الأوامر. نطلب من bash تنفيذ الأمر المضمن بين قوسين كلما تم ذكر المتغير "date_formatted". بعد ذلك ، عندما يتم ذكر المتغير "date_formatted" كإخراج ، بدلاً من اسمه ، سيتم استخدام إخراج الأمر بين قوسين.

وهذا مثال على البرنامج النصي ومخرجاته:

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

دعنا نعود إلى السيناريو الخاص بنا. دعنا نضيف أمر نسخ الملف إليه:

Cp -iv $ 1 $ 2. $ date_formatted

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

بعد ذلك ، قد تجد أنني أضفت المعامل $ 1. في البرمجة النصية ، تتوافق علامة الدولار ($) متبوعة بقيمة رقمية مع وسيطة البرنامج النصي برقم يساوي تلك القيمة الرقمية. على سبيل المثال ، في الأمر التالي:

نغمة رنين mp3. mp3

الوسيطة الأولى هي "Trogdor2.mp3" والثانية هي "ringtone.mp3".

إذا نظرت إلى كود البرنامج النصي مرة أخرى ، ستجد أننا نقوم بتمرير وسيطتي نص إلى أمر نسخ الملف:

هذا يعني أنه عند تشغيل البرنامج النصي ، سيتعين علينا تمرير وسيطين إليه حتى يعمل بشكل صحيح. المتغير الأول ، $ 1 ، هو اسم الملف المراد نسخه ، ويتم استبداله كأول وسيط للأمر "cp -iv".

المتغير الثاني ، $ 2 ، هو اسم الملف الهدف داخل نفس الأمر. ولكن يمكنك أيضًا اكتشاف اختلافها المهم. لقد أضفت نقطة إليها وإشارة إلى متغير "date_formatted" الذي تمت مناقشته أعلاه. هل تتساءل عن الغرض من هذا التصميم؟

وهذه هي مخرجات البرنامج النصي بعد تشغيله:

من الواضح أن اسم الملف الهدف يتكون من اسم الملف الذي تم تمريره عبر وسيطة البرنامج النصي الثانية $ 2 ، متبوعًا بنقطة وإخراج الأمر date! كل شيء منطقي ، أليس كذلك؟

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

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

هل أنت بالفعل من ذوي الخبرة في إنشاء البرامج النصية الخاصة بك شل؟ هل لديك ما تقوله للمستخدمين المبتدئين؟ شارك تجربتك في قسم التعليقات! سنستكشف جوانب أخرى من عملية البرمجة النصية للقذيفة في المقالات المستقبلية في هذه السلسلة!

العمل مع سطر الأوامر

أنطون بويارشينوف ، كيريل ماسلينسكي

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

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

قذائف القيادة

معلومات عامة عن القذائف

قذيفة القيادة(أو مترجم الأوامر) هو برنامج وظيفته توصيل أوامرك إلى نظام التشغيل وبرامج التطبيق وردودهم عليك. وفقًا لمهامه ، فإنه يتوافق مع command.com في MS-DOSأو cmd.exe بتنسيق شبابيكولكن قذائف وظيفية في لينكسأغنى بما لا يقارن. في لغة الصدفة ، يمكنك كتابة برامج صغيرة لإجراء سلسلة من العمليات المتسلسلة مع الملفات والبيانات التي تحتوي عليها - البرامج النصية (البرامج النصية).

بعد تسجيل الدخول إلى النظام (عن طريق إدخال اسم مستخدم وكلمة مرور) ، سترى موجه سطر أوامر - سطر ينتهي بالرمز $ (علاوة على ذلك ، سيتم استخدام هذا الرمز للإشارة إلى سطر الأوامر). إذا تم تكوين التثبيت لتشغيل الواجهة الرسومية عند تمهيد النظام ، فيمكنك الوصول إلى سطر الأوامر في أي وحدة تحكم نصية افتراضية (بالضغط على كنترول-بديل-F1 - كنترول-بديل-F6) أو استخدام أي برنامج محاكاة طرفي مثل xterm. لمزيد من المعلومات حول المحاكيات الطرفية ، راجع Terminals. قذائف الأوامر التالية متوفرة في توزيعة ALT Linux 2.4 Master:


القشرة الأكثر شيوعًا لينكس. يمكنه إكمال أسماء الأوامر والملفات ، ويحافظ على محفوظات الأوامر ويوفر القدرة على تحريرها.

نسخة من قوقعة كورن ، معروفة في الأنظمة يونيكسقذيفة القيادة.

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

نسخة محسنة من قذيفة C.

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

الصدفة الافتراضية هي bash ( بورن قذيفة ثانية). للتحقق من القشرة التي تستخدمها ، اكتب الأمر التالي: صدى $ شل.

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

قذيفة أمر bash

يتكون سطر الأوامر في bash من اسم الأمر ، والذي يمكن أن يتبعه مفاتيح(خيارات) - تعليمات تعمل على تعديل سلوك الأمر. تبدأ المفاتيح بحرف - أو -- ، وغالبًا ما تتكون من حرف واحد. بالإضافة إلى المفاتيح ، يمكن أن يتبع الأمر الحجج(المعلمات) هي أسماء الكائنات التي سيتم تنفيذ الأمر عليها (غالبًا أسماء الملفات والأدلة).

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

لدى bash العديد من الحيل لتسهيل كتابة سطر الأوامر وتحريره. على سبيل المثال ، باستخدام لوحة المفاتيح ، يمكنك:

الانتقال إلى بداية السطر ، ويمكن القيام بالشيء نفسه بالضغط على المفتاح الصفحة الرئيسية;

احذف الخط الحالي ؛

إحباط الأمر الحالي.

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

يتم عرض الأوامر الموجودة في السجل مرقمة في القائمة. لتشغيل أمر معين ، اكتب:

! رقم الفريق

إذا قمت بالدخول !! ، سيتم تشغيل آخر أمر تمت كتابته.

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

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

على سبيل المثال ، يحتوي النظام على برامج buildhash ، مدمج ، bunzip2:

$ bu buildhash bunzip2 $ bu

يتصل ن > (بونزيبهو الاسم الوحيد الذي يكون الحرف الثالث منه ن) ثم اضغط على فاتورة غير مدفوعة. ستكمل القشرة الاسم وكل ما تبقى هو الضغط يدخللتشغيل الأمر!

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

أوامر أساسية

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

رجل ls

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

للذهاب إلى الدليل / البيرة / بن، اكتب (المسار المطلق):

cd / usr / bin /

بعض الخيارات لاستخدام الأمر:

يسمح لك بتعيين الدليل الأصلي الحالي (لاحظ المسافة بين قرص مضغوطو .. ).

يسمح لك بالعودة إلى الدليل السابق. أمر قرص مضغوطبدون معلمات إرجاع shell إلى الدليل الرئيسي.

ls (قائمة) يسرد الملفات الموجودة في الدليل الحالي. خياران رئيسيان: - عرض جميع الملفات ، بما في ذلك الملفات المخفية ، - عرض معلومات أكثر تفصيلا.

يستخدم هذا الأمر لحذف الملفات. تنبيه: بعد حذف ملف ، لن تتمكن من استعادته! . بناء الجملة: جمهورية مقدونيا اسم الملف .

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

Rm -i ~ / html / *. html

يحذف كل الملفات .لغة البرمجة، في دليلك لغة البرمجة .

مكدير ، رمدير

أمر مكديريسمح لك بإنشاء دليل ، بينما rmdirيحذف الدليل بشرط أن يكون فارغًا. بناء الجملة:

مكدير اسم الدليل rmdir اسم الدليل

أمر rmdirغالبًا ما يتم استبداله بالأمر rm-rf، والذي يسمح لك بحذف الدلائل حتى لو لم تكن فارغة.

أقليتيح لك تصفح النص. بناء الجملة:

أقل اسم الملف

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

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

grep search_patternfile

يعرض قائمة العمليات الحالية. يشير عمود الأمر إلى اسم العملية ، PID (معرف العملية) - رقم العملية (المستخدم للعمليات مع العملية - على سبيل المثال ، إرسال الإشارات بالأمر قتل). بناء الجملة:

ملاحظة الحجج

جدال حاد شيزودك بمزيد من المعلومات فأسيسمح لك بمشاهدة تلك العمليات التي لا تخصك.

إذا توقف البرنامج عن الاستجابة أو توقف ، استخدم هذا الأمر لإنهائه. بناء الجملة:

قتل رقم PID

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

قائد منتصف الليل

إذا كنت قد عملت لسنوات عديدة MS-DOS / شبابيك، فمن المحتمل أنك تشعر قليلاً "بعيدًا عن عنصرك". من أجل الوصول إلى البيئة المألوفة ، قم بتشغيل Midnight Commander باستخدام الأمر مولودية. Midnight Commander هو بديل مجاني لبرنامج Norton Commander وخليفته الشهير الآن Far. إذا كنت تعتقد في وقت ما أن قائد منتصف الليل لا يمكنه فعل شيء ما ، فمن المرجح أن هذا خطأ. انظر وصفه في / usr / share / doc / mc-version_numberأو إعطاء الأمر رجل مولودية.

حزمة coreutils

انطون بويارشينوف

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

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

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

تقدم الدرس

1. في عالم Linux و Unix ، يرتبط العمل على الكمبيوتر ارتباطًا وثيقًا بالمفهوم قذيفة القيادة- برنامج يسمح للمستخدم بالتفاعل مع النظام عن طريق إدخال الأوامر وتنفيذها. مع ذلك، قذيفة القيادةهو برنامج عادي. يمكنك إثبات ذلك عن طريق تعيين الغلاف الافتراضي في الملف passwdللمستخدم برنامج آخر. ولكن لكي يعرفه النظام على أنه غلاف ، تحتاج إلى إضافة اسم الملف المطلق إليه / الخ / قذائف.

يأتي Linux بالعديد من قذائف الأوامر ، وقد يختلف تكوينها اعتمادًا على التوزيع ، ولكن يمكنك دائمًا العثور على:

بورن شل (ش) - الأقدم والأكثر شيوعًا قذيفة القيادةلأنظمة يونكس. لا يوجد نظام Unix واحد لا يمكن استخدامه فيه.

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

أيضا الجلود الشعبية هي:

csh- shell ، نظام الأوامر الذي يقترب من لغة البرمجة سي

tcsh عبارة عن قشرة يكون نظام أوامرها قريبًا من لغة برمجة Tcl.

من المحتمل أن يكون zsh أقوى قذيفة. إنه امتداد لـ sh (bourne shell).

نظرًا لأن Linux يستخدم bash "افتراضيًا" ، فسنتحدث عنه.

2. قذيفة القيادةكان bash في الأصل بديلاً مجانيًا لـ Bourne Shell. في وقت لاحق ، عندما نمت قدراته ، بدأ اعتباره منتجًا مستقلاً. الميزات الرئيسية للباش هي:

الجدول 1.1.
إمكانية تعليق
1 تحرير الخط القدرة على تحرير الأمر المدخل بدلاً من إعادة كتابته مرة أخرى
2 تنظيم القناة إمكانية عمليات إعادة التوجيه I / Oوتنظيم القنوات بين المهام
3 سهولة الاستعمال استخدام الأسماء المستعارة للأوامر وتاريخ الأوامر والإكمال التلقائي
4 إدارة الوظائف القدرة على إنشاء وإدارة وظائف الخلفية
5 المرونة استخدام ملفات البرنامج النصي لتسجيل الدخول لكل مستخدم على حدة ، متغيرات البيئة

سيتم تناول إعادة توجيه الإدخال / الإخراج والأنابيب لاحقًا في الدرس 8. لذلك ، سوف نحذف هذه النقطة. لكن دعنا نتحدث عن ميزات العمل في bash والفوائد التي يوفرها.

يكتب Bash تلقائيًا جميع الأوامر التي يكتبها المستخدم في ملف ~ / .bash_history. يتم استخدام الأمر history لإدارة هذا الملف. التاريخ أمر مدمجسحق. أي أنه لا يوجد ملف قابل للتنفيذ يتوافق مع هذا الأمر. بحد ذاتها قذيفة القيادةينفذ جميع الإجراءات. عند إدخاله بدون خيارات ، فإنه يسرد ببساطة جميع الأوامر المخزنة في هذا الملف وهو مطابق لـ cat ~ / .bash_history.

يوجد سجل الأوامر لتبسيط مجموعة الأوامر المستخدمة بشكل متكرر. يمكن فرز محفوظات الأوامر من خلال القائمة باستخدام المفاتيح <вверх>و<вниз> .

طريقة أخرى للكتابة! وابدأ الأمر واضغط . سيتم تنفيذ آخر أمر من السجل ، حيث تطابق الأحرف الأولى منه تلك التي تم كتابتها. علي سبيل المثال:

$! / usr / usr / bin / perl ./ptest.pl OK $! xfonts bash:! xfonts: event not found $

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

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

أولاً ، يمكنك فتح وحدات تحكم متعددة عن طريق فتح برنامج في كل منها. سيتم التبديل بين وحدات التحكم باستخدام المفاتيح السيطرة + ، أين xهو رقم وحدة التحكم.

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

- مجموعة مفاتيح ترسل إشارة غير قابلة للطباعة إلى العملية سيجستوب. يسمح لك بإيقاف تنفيذ العملية لنقل التحكم إلى سطر الأوامر.

command & - يتيح لك الرمز & بعد الأمر تشغيله في الخلفية.

وظائف - يعرض قائمة بوظائف shell الحالية.

bg<#j>- يضع الوظيفة #j في الخلفية. قبل ذلك ، يجب إيقاف المهمة بواسطة مجموعة المفاتيح . إذا كان لدى المترجم الفوري مهمة واحدة فقط ، فيمكن حذف الرقم.

fg<#j>- يضع الوظيفة #j في وضع التنفيذ الأمامي. يجب إيقاف الوظيفة عن طريق مجموعة مفاتيح أو أن تكون في الخلفية. إذا كان لدى المترجم الفوري مهمة واحدة فقط ، فيمكن حذف الرقم.

$ man bash ^ Z + Stopped man bash $ vim ^ Z vim + Stopped vim $ bg 1 + man bash & $ jobs + Stopped man bash + Stopped vim $ fg 2 + vim $ fg + man bash $

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

المتغيرات التي يشيع استخدامها من قبل المستخدم هي:

PATH - يحتوي المتغير على المسارات التي يجب أن يبحث النظام فيها عن الملفات القابلة للتنفيذ إذا كان الملف الكامل أو مسار نسبيلهم.

PWD - يحتوي المتغير على الاسم الكامل للدليل الحالي.

HOME - يحتوي المتغير على المسار الكامل دليل المستخدم الرئيسي.

HOSTNAME - المتغير يحتوي على اسم الكمبيوتر.

LOGNAME - يحتوي على اسم المستخدم

SHELL - يحتوي على اسم shell command الذي يعمل في الجلسة الحالية.

المستخدم - يحتوي على اسم المستخدمالجلسة المفتوحة حاليًا.

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

قذيفة bash لها متغيراتها الخاصة. لكي تصبح المتغيرات المحلية متغيرات نظام ، يجب تصديرها باستخدام نفس أمر التصدير. على سبيل المثال:

إعلان تصدير $ -x HOME = "/ home / gserg" أعلن -x HOSTNAME = "WebMedia" أعلن -x LANG = "en_RU.KOI8-R" أعلن -x LOGNAME = "gserg" أعلن -x PATH = "/ bin: / usr / bin: / usr / local / bin: / home / gserg / bin "أعلن -x PWD =" / home / gserg "أعلن -x SHELL =" / bin / bash "أعلن -x TERM =" Eterm "أعلن -x USER = "gserg" $ EDITOR = / bin / vim $ export EDITOR $ exporter -x EDITOR = "/ bin / vim" أعلن -x HOME = "/ home / gserg" أعلن -x HOSTNAME = "WebMedia" أعلن -x LANG = "ru_RU.KOI8-R" أعلن -x LOGNAME = "gserg" أعلن -x PATH = "/ bin: / usr / bin: / usr / local / bin: / home / gserg / bin:" أعلن - x PWD = "/ home / gserg" أعلن -x SHELL = "/ bin / bash" أعلن -x TERM = "Eterm" أعلن -x USER = "gserg" $

أمر غير محدديحذف متغير النظام. علي سبيل المثال:

إعلان unset EDITOR $ export -x HOME = "/ home / gserg" أعلن -x HOSTNAME = "WebMedia" أعلن -x LANG = "en_RU.KOI8-R" أعلن -x LOGNAME = "gserg" أعلن -x PATH = " / bin: / usr / bin: / usr / local / bin: / home / gserg / bin: "أعلن -x PWD =" / home / gserg "أعلن -x SHELL =" / bin / bash "أعلن -x TERM = تعلن "Eterm" -x USER = "gserg" $

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

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

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

الآن دعنا نتحدث عن اختصارات لوحة المفاتيح الأساسية التي ستساعدك على العمل بها قائد منتصف الليل "أوم.

مفاتيح تستخدم لتغيير اللوحة النشطة أو +

لوضع علامة على ملف ، اضغط على أو +

انقر للمساعدة

سوف يطرح عارض الملف

عبر تقوم بتحرير الملف

سيسمح لك بنسخ الملف.

نقل أو إعادة تسمية الملف

إنشاء دليل

مفتاح سيحذف ملف و / أو دليل

، كما ذكرنا سابقًا ، يفتح الوصول إلى القائمة.

- يسمح لك بالخروج قائد منتصف الليل.

سيحرك المؤشر إلى بداية قائمة الملفات ،

- على العكس - إلى نهاية القائمة.

و سيغير موضع المؤشر لكل صفحة لأعلى ولأسفل ، على التوالي.

مفتاح <*> على لوحة مفاتيح إضافية ستسمح لك بعكس اختيار الملفات (لا يؤثر على الدلائل)

مفتاح <+> على لوحة المفاتيح الإضافية ، ستسمح لك بتمييز الملفات عن طريق القناع ، و <-> قم بإلغاء تحديد الملفات عن طريق القناع.

+ - تحديث محتويات الدليل (عن طريق إعادة القراءة من القرص أو من الشبكة)

+ - تبديل اللوحات اليمنى واليسرى.

+ - إزالة / إرجاع اللوحات.

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

تتكون القائمة من عناصر: "اللوحة اليسرى" ، "الملف" ، "الأوامر" ، "الإعدادات" ، "اللوحة اليمنى".

"اللوحة اليسرى / اليمنى"- عناصر القائمة هذه متطابقة تمامًا. الاختلافات بينهما هي فقط أن الإجراءات التي يتم تنفيذها سيتم توجيهها إلى اللوحة اليمنى أو اليسرى.

"تنسيق القائمة"- يفتح مربع حوار يمكنك من خلاله تحديد العرض الذي سيتم عرض قائمة الملفات / الدلائل فيه. يمكنك الاختيار من بين التنسيقات القياسية والقصيرة والممتدة. ومع ذلك ، يمكن للمستخدم في هذه النافذة أيضًا تحديد مظهر اللوحة بالطريقة التي تناسبه عن طريق تحديد زر الاختيار "معرف من قبل المستخدم".

"نظرة سريعة"- يحول اللوحة إلى وضع العرض التلقائي للملفات المحددة على اللوحة المجاورة. يتحول التركيز تلقائيًا إلى اللوحة المقابلة.

"معلومة"- يقوم بتبديل اللوحة لعرض معلومات حول الملف المميز في اللوحة المجاورة ، مثل الموقع وحقوق الوصول والمالك ، نظام الملفاتوالجهاز الذي يوجد عليه ، وعدد الروابط الصلبة المرتبطة بهذا الملف ، بالإضافة إلى معلومات حول الجهاز الذي يوجد عليه الملف.

"خشب"- يترجم قائد منتصف الليلإلى وضع مشابه لوضع Explorer من OC Windows. في اللوحة التي يتم تطبيق الأمر عليها "خشب"، تم بناء شجرة الدليل ، والتي يمكن التنقل فيها باستخدام الأسهم التحكم في المؤشرمفاتيح PageUp و PageDown و Home و End. تعرض اللوحة التالية محتويات الدليل المميزة في الشجرة.

"ترتيب الفرز"- يفتح مربع حوار يمكنك من خلاله تحديد سمة يتم من خلالها فرز الملفات والأدلة في القائمة ، مثل الاسم والامتداد ووقت التحرير ووقت الوصول ووقت تعديل السمة والحجم والعقدة (التي يوجد الملف عليها ). يمكنك أيضًا ترك الملفات غير مرتبة أو حساسة لحالة الأحرف أو فرزها بترتيب عكسي.

"منقي"- يسمح لك بتحديد أسماء الملفات التي سيتم عرضها في اللوحة باستخدام التعبير العادي الذي يتم إدخاله في مربع الحوار.

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

بروتوكول نقل الملفات: اسم المستخدم: كلمة المرور @ server_address: المنفذ / directory_on_server

بعد إنشاء الاتصال ، اعمل مع نظام الملفات البعيديسير بشكل مشابه للعمل مع FS محلي.

"اتصال شل"- يسمح لك بفتح اتصال الشبكة عن طريق البروتوكول سمك (نقل الملفات عبر شل- نقل الملفات عبر shell). سمكيستخدم البروتوكولات RSH (قذيفة عن بعد)- قذيفة عن بعد) أو SSH (Secure Shell)- غلاف محمي ، تناظري RSH، ولكن مع دعم تشفير البيانات المرسلة). السلسلة الكاملة التي يمكن للمستخدم من خلالها تحديد المضيف البعيد هي:

sh: username @ server_address: options / server_dir

معامل اسم المستخدموالخيارات و directory_on_serverغير مطلوب. إذا اسم المستخدمغير محدد إذن قائد منتصف الليلسيحاول تسجيل الدخول إلى النظام البعيد باستخدام اسم المستخدم المستخدم على الجهاز المحلي.

"العودة"- على غرار اختصارات لوحة المفاتيح + - يؤدي إلى تحديث قائمة الملفات والأدلة في اللوحة الحالية بإعادة قراءتها من القرص أو عبر الشبكة.

"ملف"- قسم القائمة ، حيث توفر عناصره الوظائف الأساسية لمعالجة الملفات والدلائل مثل:

"قائمة المستخدم"- يسمح لك بالاتصال بالقائمة التي حددها المستخدم بنفسه. استدعى أيضا بالمفتاح .

"استعراض الملف"- التناظرية للوظيفة المؤداة عند الضغط . يسمح لك بعرض الملف المميز (أو إدخال دليل). يدعم العديد من التنسيقات مثل تنسيقات النص ، والمحفوظات ، و Winword DOC ، وملفات Linux التنفيذية ، إلخ.

"استعراض الملف..."- هي نفس الفقرة السابقة ، لكنها لا تؤثر على الملف المميز ، ولكن سيتم إدخال اسمها ومسارها في مربع الحوار.

"عرض الفريق"- يسمح لك بتنفيذ الأمر وعرضه الإخراج القياسيفي وضع عرض الملف.

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

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

"أذونات"- يسمح لك بتغيير أذونات ملف (أو مجموعة ملفات) في مربع حوار.

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

"المالك / المجموعة"- يغير المالك و / أو المجموعة التي ينتمي إليها الملف / الدليل.

"أذونات (متقدمة)"- يسمح لك بتغيير حقوق الوصول إلى الملف ومالكه و / أو مجموعته في نفس الوقت. يتم تمثيل الأذونات في شكل ثلاثة تسلسلات rwx للمالك والمجموعة وجميع المستخدمين.

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

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

"حذف"- يحذف ملف / مجموعة ملفات / دليل. تناظرية وظيفة دعاها .

"تغيير الدليل"- يغير الدليل الحالي. يشبه الأمر cd في غلاف Bash. يتم إدخال الدليل المطلوب في مربع الحوار.

"علامة المجموعة"- يحدد مجموعة من الملفات حسب القناع في الدليل المفتوح في اللوحة النشطة. تناظرية من وظيفة تسمى مع <+> على لوحة المفاتيح الاختيارية.

جار التحميل...جار التحميل...