كيفية إنشاء أوامر المحطة الطرفية المخصصة الخاصة بك

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

  • تحويل فيديو يوتيوب إلى mp3
  • بدء تشغيل كافة خوادم قواعد البيانات وجميع تطبيقاتك باستخدام أمر واحد باستخدام Tmuxinator
  • استخراج بعض المعلومات من موقع على شبكة الإنترنت
  • إحضار مفاتيح gsh sit ونسخها في الحافظة
  • الحصول على تفاصيل حول أفضل 5 برامج تستهلك ذاكرة الوصول العشوائي / وحدة المعالجة المركزية بشكل كبير وما إلى ذلك.

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

لنبدأ بمثال بسيط لإنشاء أمر مخصص وإتاحة الأمر في الجهاز الطرفي.

الخطوة 1: معرفة الهيكل الأساسي لكتابة وظيفة في شل

هنا عينة:

وظيفة print_my_input () {
 صدى "المدخلات الخاصة بك:" 1 دولار
}

إذا قمت بإرسال بعض المدخلات إلى الوظيفة ، فسيتم تخزين المعلمة الأولى في متغير $ 1 ، والمعلمة الثانية في $ 2 وهكذا.

انسخ والصق الوظيفة أعلاه في الجهاز الطرفي وحاول استدعاء الوظيفة مثل هذا:
print_my_input "مجرد تجربة الأمر الجديد الخاص بي"

يجب أن يكون الإخراج:
المدخلات الخاصة بك: مجرد محاولة من قيادتي الجديدة

الخطوة 2: تحديد مكان للاحتفاظ بجميع أوامرك المخصصة

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

دعنا نذهب إلى الدليل الرئيسي (~) في محطة لدينا. CD ~ سوف يأخذك هناك. الآن ، قم بإنشاء نص bash جديد باستخدام الأمر التالي:
المس .my_custom_commands.sh

الآن افتح الملف أعلاه في أي محرر نصوص والصقه الكود التالي وحفظه.

#! / بن / سحق
# يطبع المدخلات
وظيفة print_my_input () {
  صدى "المدخلات الخاصة بك:" 1 دولار
}
  • السطر الأول عبارة عن اصطلاح يستخدم أثناء كتابة البرامج النصية Shell التي تعطي معلومات إلى Shell لاستخدام المترجم المناسب. على سبيل المثال #! / usr / bin / env python
  • # يستخدم لكتابة التعليقات

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

ولكن فقط للعلم ، يمكنك محاولة تنفيذ البرنامج النصي باستخدام الأمر بهذا التنسيق ./{{script_name}} أي ./.my_custom_command.sh في حالتنا. سترى رسالة "تم رفض الإذن".

ومع ذلك ، إذا كانت هناك حاجة لتشغيل البرنامج النصي بشكل صريح من خلال المحطة الطرفية مثل أعلاه ، فسنقوم بتعيين إذن "قابل للتنفيذ" للملف باستخدام الأمر التالي:
chmod + x .my_custom_commands.sh

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

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

  • إنهاء المحطة وبدء واحدة جديدة وانتقل إلى الدليل الرئيسي.
  • تحقق مما إذا كانت أوامر print_my_input هذه تعمل أم لا. لا ينبغي أن تعمل الآن.
  • الآن ، قم بتحميل محتوى الملف باستخدام الأمر source مثل هذا:
    المصدر ~ / .my_custom_commands.sh
  • الآن حاول كتابة أمر print_my_input واضغط على enter.
  • انها تعمل بشكل صحيح؟ الآن ، علينا أن نقول للطرف لتحميل محتوى البرنامج النصي لدينا في كل جلسة طرفية. نقوم بذلك عن طريق إضافة الأمر لتحميل البرنامج النصي في ملف rc (التحكم في التشغيل) من Shell. يقوم shell بتحميل / تنفيذ جميع الأوامر داخل ملف التحكم في التشغيل أثناء كل عملية إطلاق shell تفاعلية.

Bash هو shell الافتراضي لجميع أنظمة يونيكس تقريبًا. ومع ذلك ، هناك نكهات مختلفة مثل ZSH. وفقًا للصدفة التي نستخدمها ، سنقوم بتعديل إما ملف ~ / .bashrc أو ~ / .zshrc. إذا لم تكن لديك فكرة عن هذا ، فانتقل إلى ملف ~ / .bashrc. لاحظ أنني أستخدم المسار الكامل أثناء وصف هذه الملفات.

إضافة أمرنا إلى ملفات rc:

  • افتح ~ / .bashrc أو ~ / .zshrc باستخدام أي محرر نصوص لديك
  • أضف الأمر التالي بعد السطر الأخير أو في أي مكان تريده
    المصدر ~ / .my_custom_commands.sh
  • احفظ الملف بعد إضافة الخط الجديد واخرج من الجهاز
  • منذ ذلك الحين ، أخبرنا المحطة الطرفية بالفعل بتحميل ملفنا في كل جلسة طرفية ، جرب هذا الأمر print_my_input في علامة التبويب الحالية وأيضًا بفتح علامة تبويب جديدة. يجب أن تعمل في كل مكان حتى عندما نخرج ونبدأ محطة طرفية جديدة.

تهانينا!! لقد تعلمت للتو أن تجعل الأمر المخصص الخاص بك!

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

إليك أمر مخصص مفيد قمت بإنشائه مؤخرًا لتنزيل mp3 من رابط فيديو YouTube عام.

# يحول ويحفظ يوتيوب فيديو إلى mp3
وظيفة convert_to_mp3 () {
  youtube-dl --extract-audio - audio-format mp3 $ 1
}

يجب عليك تثبيت youtube-dl و ffmpeg Library أولاً إذا لم يكن لديك. ثم انسخ الوظيفة التالية في ملف الأوامر المخصصة. أعد تحميل الجهاز أو انتقل إلى علامة تبويب جديدة وجرب الأمر كما يلي:

convert_to_mp3 'https://youtube.com/{{youtube_url_of_some_song}}'

حاول تحديث المكتبة عن طريق القيام youtube-dl -U إذا كان لديك بالفعل ورمي بعض الخطأ.

المراجع:
- تشغيل ملفات التحكم
- باش النصي