23Aug
مصطلح "شل سكريبتينغ" يتم ذكره غالبا في منتديات لينكس، ولكن العديد من المستخدمين ليسوا على دراية به.تعلم هذا الأسلوب البرمجة سهلة وقوية يمكن أن تساعدك على توفير الوقت، وتعلم سطر الأوامر بشكل أفضل، وإلغاء مهام إدارة الملفات شاقة.
ما هو برنامج شل؟
كونك مستخدم لينكس يعني أنك تلعب حولها مع سطر الأوامر.مثل ذلك أم لا، هناك فقط بعض الأشياء التي يتم ذلك بسهولة أكبر من خلال هذه الواجهة من خلال الإشارة والنقر.وكلما كنت تستخدم وتعلم سطر الأوامر، وكلما رأيت إمكاناتها.حسنا، سطر الأوامر نفسه هو برنامج: قذيفة.معظم لينكس ديستروز اليوم استخدام باش، وهذا هو ما كنت حقا إدخال الأوامر إلى.
الآن، قد يتذكر بعضكم الذين استخدموا ويندوز قبل استخدام لينوكس ملفات الدفعات.كانت هذه الملفات النصية الصغيرة التي يمكن أن تملأ مع الأوامر لتنفيذ ويندوز سوف تشغيلها بدورها.كان وسيلة ذكية وأنيقة للحصول على بعض الأشياء القيام به، مثل تشغيل الألعاب في مختبر الكمبيوتر الخاص بك المدرسة الثانوية عندما لا يمكن فتح مجلدات النظام أو إنشاء اختصارات.ملفات الدفعات في ويندوز، في حين مفيدة، هي التقليد رخيصة من البرامج النصية قذيفة.
البرامج النصية شل تسمح لنا لأوامر البرنامج في سلاسل ويكون لها تنفيذ النظام على أنها حدث مكتوب، تماما مثل الملفات دفعة واحدة.كما أنها تتيح وظائف أكثر فائدة بكثير، مثل استبدال الأوامر.يمكنك استدعاء أمر، مثل التاريخ، واستخدامه الناتج كجزء من نظام تسمية الملفات.يمكنك أتمتة النسخ الاحتياطي وكل ملف نسخ يمكن أن يكون التاريخ الحالي إلحاق إلى نهاية اسمها.المخطوطات ليست مجرد استدعاء الأوامر، إما.انهم برامج في حد ذاتها.البرمجة النصية تسمح لك باستخدام وظائف البرمجة - مثل 'ل' حلقات، إذا بيانات أخرى /then/، وهكذا دواليك - مباشرة داخل واجهة نظام التشغيل الخاص بك.و، لم يكن لديك لتعلم لغة أخرى لأنك تستخدم ما تعرفه بالفعل: سطر الأوامر.
هذا هو حقا قوة البرمجة، وأعتقد.يمكنك الحصول على البرنامج مع الأوامر كنت تعرف بالفعل، في حين تعلم المواد الغذائية من معظم لغات البرمجة الرئيسية.تحتاج إلى القيام بشيء متكرر ومملة؟سيناريو ذلك!تحتاج إلى اختصار لأمر ملتوية حقا؟سيناريو ذلك!تريد بناء حقا سهلة الاستخدام واجهة سطر الأوامر لشيء؟سيناريو ذلك!
قبل أن تبدأ
قبل أن نبدأ سلسلة البرمجة النصية الخاصة بنا، دعونا نغطي بعض المعلومات الأساسية.سنستخدم قذيفة باش، التي تستخدمها معظم توزيعات لينكس أصلا.باش متاح لمستخدمي نظام التشغيل ماك و سيغوين على ويندوز أيضا.بما أنه عالمي جدا، يجب أن تكون قادرا على الكتابة بغض النظر عن النظام الأساسي الخاص بك.وبالإضافة إلى ذلك، طالما أن جميع الأوامر التي يتم الرجوع إليها موجودة، يمكن أن البرامج النصية تعمل على منصات متعددة مع القليل أو لا التغيير والتبديل المطلوبة.
يمكن للبرامج النصية بسهولة الاستفادة من امتيازات "المشرف" أو "الخارق"، لذا فمن الأفضل اختبار النصوص البرمجية قبل وضعها للعمل.أيضا استخدام الحس السليم، مثل التأكد من أن لديك نسخ احتياطية من الملفات كنت على وشك تشغيل البرنامج النصي على.كما أنه من المهم حقا استخدام الخيارات المناسبة، مثل -i للأمر آرإم، بحيث يكون التفاعل مطلوب.هذا يمكن أن تمنع بعض الأخطاء سيئة.على هذا النحو، قراءة من خلال البرامج النصية التي تحميلها وتوخي الحذر مع البيانات لديك، فقط في حالة الأمور على غير ما يرام.
في جوهرها، والبرامج النصية هي مجرد ملفات نصية عادي.يمكنك استخدام أي محرر نص لكتابتها: جيديت، إيماكس، فيم، نانو. .. هذه القائمة تطول.فقط تأكد من حفظه كنص عادي، وليس كنص غني، أو مستند ورد.منذ أحب سهولة الاستخدام الذي يوفر نانو، سأكون استخدام ذلك.
الأذونات النصية والأسماء يتم تنفيذ البرامج النصية
مثل البرامج، ولكي يحدث ذلك يحتاجون إلى الحصول على الأذونات المناسبة.يمكنك جعل البرامج النصية قابلة للتنفيذ عن طريق تشغيل الأمر التالي على ذلك:
تشمود + x ~ /somecrazyfolder/ النصي 1
هذا سوف يسمح لأي شخص لتشغيل هذا البرنامج النصي معينة.إذا كنت ترغب في تقييد استخدامه لمستخدمك فقط، يمكنك استخدام هذا بدلا من ذلك:
تشمود u + x ~ /somecrazyfolder/ النصي 1
لتشغيل هذا البرنامج النصي، سيكون لديك إلى سد في الدليل الصحيح ثم تشغيل البرنامج النصي مثل هذا:
سد ~ / سومكرازيفولدر
. /script1
لجعل الأمور أكثر ملاءمة، يمكنك وضع البرامج النصية في مجلد "بن" في الدليل الرئيسي الخاص بك:
~ / بن
في العديد من ديستروز الحديثة، هذا المجلد لم يعد يتم إنشاؤه بشكل افتراضي، ولكن يمكنك إنشاؤه.هذا هو عادة حيث يتم تخزين الملفات القابلة للتنفيذ التي تنتمي إلى المستخدم الخاص بك وليس للمستخدمين الآخرين.من خلال وضع البرامج النصية هنا، يمكنك تشغيلها فقط عن طريق كتابة اسمها، تماما مثل الأوامر الأخرى، بدلا من الاضطرار إلى سد حول واستخدام البادئة './'.
قبل أن تقوم بتسمية البرنامج النصي، على الرغم من ذلك، يجب عليك الأمر التالي للتحقق مما إذا كان لديك برنامج مثبت يستخدم هذا الاسم:
الذي [الأمر]
وهناك الكثير من الناس اسمها في وقت مبكر البرامج النصية "اختبار"، وعندما يحاولونتشغيله في سطر الأوامر، لا شيء يحدث.وذلك لأنه يتعارض مع أمر الاختبار، الذي لا يفعل شيئا من دون الحجج.تأكد دائما من أن أسماء النصوص البرمجية الخاصة بك لا تتعارض مع الأوامر، وإلا قد تجد نفسك تفعل الأشياء التي لا تنوي القيام به!
إرشادات البرمجة النصية
كما ذكرت من قبل، كل ملف نصي هو في الأساس نص عادي.هذا لا يعني أنك يمكن أن تكتب ما تريد كل ويليلي، على الرغم من.عندما يتم محاولة ملف نصي ليتم تنفيذها، سوف قذائف تحليل من خلال لهم للحصول على أدلة حول ما إذا كانت البرامج النصية أم لا، وكيفية التعامل مع كل شيء بشكل صحيح.وبسبب هذا، هناك بعض الإرشادات التي تحتاج إلى معرفتها.
- يجب أن يكون كل سيناريو مع "#!/bin/ باش "
- كل سطر جديد هو أمر جديد
- تبدأ أسطر التعليق بأوامر #
- محاطة ب(
هاك-بانغ هاك
عندما يتم تحليل شل من خلال ملف نصي، فإن الطريقة الأكثر مباشرة لتحديد الملف كالسيناريو هو جعل السطر الأول:
#!/bin/ باش
إذا كنت تستخدم قذيفة أخرى، استبدل مسارها هنا.تبدأ خطوط التعليق مع تجزئة( #)، ولكن إضافة الانفجار( !) ومسار قذيفة بعد ذلك هو نوع من الإختراق التي سوف تتجاوز هذه القاعدة تعليق وسوف يجبر البرنامج النصي لتنفيذ مع قذيفة هذا الخط يشير إلى.
نيو لين = أمر جديد
يجب اعتبار كل سطر جديد أمرا جديدا أو مكونا لنظام أكبر.إذا كانت بيانات أخرى /then/، على سبيل المثال، سوف تأخذ خطوط متعددة، ولكن كل مكون من هذا النظام في سطر جديد.لا تدع الأمر تنزف أكثر إلى السطر التالي، وهذا يمكن اقتطاع الأمر السابق وتعطيك خطأ على السطر التالي.إذا كان محرر النصوص يقوم بذلك، يجب إيقاف تشغيل التفاف النص ليكون على الجانب الآمن.يمكنك إيقاف التفاف النص في نانو بت ضرب ألت + L.
تعليق في كثير من الأحيان مع #s
إذا قمت بتشغيل سطر مع #، يتم تجاهل السطر.هذا يتحول إلى خط التعليق، حيث يمكنك تذكير نفسك ما كان الإخراج من الأمر السابق، أو ما الأمر القادم سوف تفعل.مرة أخرى، إيقاف التفاف النص، أو كسر لك التعليق في خطوط متعددة أن كل تبدأ مع التجزئة.استخدام الكثير من التعليقات هو ممارسة جيدة للحفاظ على، لأنه يتيح لك وأشخاص آخرين قرص النصوص الخاصة بك بسهولة أكبر.الاستثناء الوحيد هو هاك بانغ هاك المذكورة أعلاه، لذلك لا تتبع #s مع! ق.؛-) أوامر
هي محاطة الأقواس
في الأيام القديمة، تم إجراء استبدال الأوامر مع علامات علامة واحدة( `، سهم مفتاح ~).نحن لن نلمس هذا حتى الآن، ولكن مع معظم الناس تنفجر واستكشاف بعد تعلم الأساسيات، وربما يكون من الجيد أن نذكر أنه يجب عليك استخدام الأقواس بدلا من ذلك.هذا هو أساسا لأنه عندما عش - وضع الأوامر داخل الأوامر الأخرى - الأقواس تعمل بشكل أفضل.
نصك الأول
لنبدأ بنص بسيط يسمح لك بنسخ الملفات وإلحاق التواريخ بنهاية اسم الملف.دعونا نسميها "داتيكب".أولا، دعونا تحقق لمعرفة ما إذا كان هذا الاسم يتعارض مع شيء:
يمكنك أن ترى أنه لا يوجد إخراج الأمر الذي، لذلك نحن جميعا تعيين لاستخدام هذا الاسم.
دعونا إنشاء ملف فارغ في مجلد ~ / بن:
لمس ~ /bin/ داتيكب
و، دعونا تغيير الإذن الآن، قبل أن ننسى:
دعونا نبدأ بناء البرنامج النصي لدينا ثم.فتح هذا الملف في محرر النص الخاص بك في الاختيار.مثل قلت، أنا أحب بساطة نانو.
نانو ~ /bin/ داتيكب
و، دعونا نمضي قدما ووضع في السطر الأول شرط مسبق، وتعليق حول ما يفعل هذا البرنامج النصي.
بعد ذلك، دعونا نعلن متغير.إذا كنت قد اتخذت من أي وقت مضى الجبر، وربما كنت تعرف ما هو هذا.متغير يسمح لنا لتخزين المعلومات والقيام بالأشياء معها.يمكن للمتغيرات "توسيع" عند الإشارة إليها في مكان آخر.وهذا هو، بدلا من عرض اسمها، فإنها سيتم عرض محتويات المخزنة.يمكنك لاحقا معرفة نفس المتغير لتخزين معلومات مختلفة، وأي تعليمات تحدث بعد ذلك سوف تستخدم المعلومات الجديدة.انها نائب يتوهم حقا.
ما الذي سنضعه في المتغير؟حسنا، دعونا تخزين التاريخ والوقت!للقيام بذلك، سوف ندعو الأمر التاريخ.
نلقي نظرة على لقطة أدناه للحصول على كيفية بناء إخراج أمر التاريخ:
يمكنك أن ترى أنه بإضافة متغيرات مختلفة تبدأ ب٪، يمكنك تغيير إخراج الأمر إلى ما تريد.لمزيد من المعلومات، يمكنك إلقاء نظرة على الصفحة اليدوية لأمر التاريخ.
لنستخدم هذا التكرار الأخير لأمر التاريخ، "ديت +٪ m_٪ d_٪ y-٪ H.٪ M.٪ S"، واستخدم ذلك في البرنامج النصي.
إذا كان علينا حفظ هذا البرنامج النصي في الوقت الحالي، يمكننا تشغيله، وأنه سيعطينا إخراج أمر التاريخ كما كنا نتوقع:
ولكن، دعونا نفعل شيئا مختلفا.دعونا نعطي اسم متغير، مثل date_formatted لهذا الأمر.الصيغة الصحيحة لذلك هي كما يلي:
فاريابل = $( وسيطات الأوامر-الأوامر)
وبالنسبة لنا، سنبنيها كما يلي:
date_formatted = $( ديت +٪ m_٪ d_٪ y-٪ H.٪M.٪ S)
هذا هو ما نسميه استبدال الأوامر.نحن نقول أساسا باش أنه كلما المتغير "date_formatted" يظهر، لتشغيل الأمر داخل الأقواس.ثم، أيا كان الإخراج الأوامر يعطي يجب عرض بدلا من اسم المتغير، "date_formatted".
فيما يلي مثال البرنامج النصي وإخراجه:
لاحظ أن هناك مسافتين في الإخراج.يتم عرض مساحة داخل يقتبس من الأمر صدى والمساحة أمام المتغير على حد سواء.لا تستخدم المسافات إذا كنت لا تريد أن تظهر.نلاحظ أيضا أنه بدون هذا الخط "صدى" وأضاف، فإن البرنامج النصي تعطي أي انتاج على الاطلاق.
دعنا نعود إلى النص البرمجي.دعونا إضافة المقبل في جزء النسخ من الأمر.
كب -iv $ 1 $ 2. $ date_formatted
سيؤدي هذا الأمر إلى استدعاء الأمر بنسخ -i و -v.سوف يطلب منك الأول للتحقق قبل الكتابة فوق ملف، وهذا الأخير عرض ما هو أسفل على سطر الأوامر.
بعد ذلك، يمكنك أن ترى لقد أضفت الخيار "$ 1".عندما البرمجة النصية، علامة الدولار( $) متبوعا برقم سيشير إلى الوسيطة المرقمة من البرنامج النصي عندما تم استدعاؤه.على سبيل المثال، في الأمر التالي:
كب -iv Trogdor2.mp3 ringtone.mp3
الوسيطة الأولى هي "Trogdor2.mp3" والوسيطة الثانية هي "ringtone.mp3".
إذا نظرنا إلى الوراء في النص البرمجي، يمكننا أن نرى أننا نشير إلى وسيطتين:
وهذا يعني أنه عند تشغيل البرنامج النصي، سنحتاج إلى تقديم وسيطتين لتشغيل البرنامج النصي بشكل صحيح.الوسيطة الأولى، $ 1، هي الملف الذي سيتم نسخه، ويحل محله الوسيطة الأولى الأمر "كب -iv".
الوسيطة الثانية، $ 2، ستكون بمثابة ملف الإخراج لنفس الأمر.ولكن، يمكنك أن ترى أيضا أنها مختلفة.لقد أضفنا فترة وقد أشرنا إلى المتغير "date_formatted" من الأعلى.غريبة على ما يفعل هذا؟
فيما يلي ما يحدث عند تشغيل البرنامج النصي:
يمكنك أن ترى أن ملف الإخراج مسرد كأي ما أدخلته مقابل $ 2، متبوعا بفترة، ثم إخراج أمر التاريخ!يجعل من المنطقي، أليس كذلك؟
الآن عند تشغيل الأمر داتيكب، فإنه سيتم تشغيل هذا البرنامج النصي والسماح لي لنسخ أي ملف إلى موقع جديد، وتضيف تلقائيا التاريخ والوقت لإنهاء اسم الملف.مفيدة للأرشفة الاشياء!
شل البرمجة هو في قلب جعل نظام التشغيل الخاص بك العمل بالنسبة لك.لم يكن لديك لتعلم لغة برمجة جديدة لتحقيق ذلك، سواء.محاولة البرمجة مع بعض الأوامر الأساسية في المنزل والبدء في التفكير في ما يمكنك استخدام هذا ل.
هل البرنامج النصي؟لديك أي نصيحة للنوبي؟مشاركة أفكارك في التعليقات!هناك المزيد في المستقبل في هذه السلسلة!