كن أكثر كفاءة من خلال تنفيذ أوامر متعددة في Linux في وقت واحد


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

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

لماذا تشغيل أوامر متعددة في وقت واحد؟

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

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

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

تشغيل أوامر متعددة بالتتابع

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

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

على سبيل المثال، إذا كنت تريد ترقية نظامك وتنظيف الملفات غير الضرورية في وقت واحد، فقم بتشغيل هذا:

sudo apt update; sudo apt upgrade -y; sudo apt autoremove
تحديث وترقية وتنظيف نظام Ubuntu باستخدام apt package manager.

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

تشغيل أوامر متعددة بناءً على الحالة

الآن، ماذا لو كنت تريد تنفيذ الأمر الثاني فقط في حالة نجاح الأمر الأول؟ أو ربما تريد تشغيل أمر ثانٍ فقط في حالة فشل الأمر الأول. هذا هو المكان الذي يأتي فيه تنفيذ الأمر الشرطي. يمكنك استخدام && و || المشغلين لتحقيق ذلك.

قم بالتشغيل إذا نجح الأمر الأول

لتشغيل أمر فقط في حالة نجاح الأمر السابق، استخدم الأمر && المشغل بين الأوامر الخاصة بك.

على سبيل المثال، إذا كنت تريد إنشاء مجلد جديد ثم تغيير الدلائل إليه، فقط إذا كان إنشاء المجلد ناجحًا، قم بتشغيل:

mkdir new_folder && cd new_folder
إنشاء وتغيير الدليل في وقت واحد.

ومع ذلك، إذا فشل الأمر الأول، فلن يتم اتخاذ أي إجراءات أخرى.

قم بالتنفيذ إذا فشلت أولاً

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

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

cp file_name /backup || echo "Failed!" >> error_log.txt

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

تشغيل الأمر في الخلفية

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

على سبيل المثال، إذا كنت تريد تنزيل ملف كبير من عنوان URL محدد وإجراء عملية التنزيل في الخلفية، فقم بتشغيل:

sudo wget https://example.com/large-file.zip &

يتيح لك هذا الاستمرار في استخدام الجهاز لمهام أخرى بينما لا يزال التنزيل قيد التقدم.

الأنابيب والخلفيات الأمر الثاني

الآن، ماذا لو كنت تريد ربط أمرين ولكن تشغيل الأمر الثاني في الخلفية أثناء انتهاء الأمر الأول؟ للقيام بذلك، استخدم كل من الأنابيب | المشغل وعلامة العطف & رمز.

الأنبوب | يرسل مخرجات الأمر الأول كمدخل إلى الأمر الثاني، بينما علامة الضم & يسمح للأمر الثاني بالعمل في الخلفية.

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

cat samplefile.txt | grep "Project" > output.txt &
البحث في ملف كبير وحفظ النتائج المحددة بشكل منفصل.

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

تشغيل أوامر متعددة بالتوازي مع Xargs

هل تريد أن تأخذ المهام المتعددة إلى مستوى جديد؟ حاول تشغيل الأوامر بالتوازي باستخدام xargs يأمر. يتيح لك ذلك تشغيل عدة أوامر بالتوازي بدلاً من تنفيذ أمر تلو الآخر.

ال xargs يقوم الأمر أيضًا بتقسيم قائمة الوسائط إلى أجزاء ويقوم بتشغيل أمر على كل قطعة بالتوازي.

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

cat urls_file.txt | xargs -n 1 -P 4 wget

هنا، -n 1 يحكي xargs لاستخدام وسيطة واحدة لكل أمر، و -P 4 يخبره بتشغيل أربعة أوامر بالتوازي. يقوم الأمر wget بتنزيل كل عنوان URL في وقت واحد، مما يؤدي إلى تسريع العملية بشكل ملحوظ مقارنة بالتنزيل المتسلسل.

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

التفاف

للتلخيص، يمكنك ربط الأوامر مع الفواصل المنقوطة ;، قم بتشغيل الأوامر باستخدام مشروط && أو ||، قم بتنفيذ المهام في الخلفية باستخدام &، وقم بتكثيف مهامك المتعددة من خلال التنفيذ المتوازي xargs.

حقوق الصورة: أونسبلاش. جميع التعديلات ولقطات الشاشة بواسطة Haroon Javed.

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

يتم تسليم أحدث البرامج التعليمية لدينا مباشرة إلى صندوق البريد الوارد الخاص بك

هارون جافيد

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى