​5 أوامر سريعة في Bash ستجعلك تعشق استخدام نظام لينكس

الكاتب: محمود السعيدتاريخ النشر: آخر تحديث: وقت القراءة:
للقراءة
عدد الكلمات:
كلمة
عدد التعليقات: 0 تعليق
نبذة عن المقال: 5 أوامر باش من سطر واحد تجعلني أعود دائماً لطرفية لينكس! أتمتة، فحص نظام، ونقل ذكي. اكتشف لماذا التيرمنال لا يُهزم في الكفاءة.

5 أوامر سطر واحد في Bash تجعلني أعود دائماً إلى طرفية لينكس

إذا كنت تقضي معظم وقتك في موجه الأوامر (Terminal) وتبحث دائماً عن طرق لتحسين مهاراتك، فأنت بالتأكيد تحب تعلم طرق جديدة لحل المشكلات لأنها تفتح أمامك مفاهيم لم تكن تتخيلها من قبل. إليك خمسة أوامر "سطر واحد" (One-liners) أستخدمها لحل المشكلات الشائعة، والتي قد تقدم لك بعض الحيل والمفاهيم الجديدة.

1. إنشاء المجلدات باستخدام التوسيع بالقوسين (Brace Expansions)

هذه الحيلة تقلل من طول الأوامر ويمكن تطبيقها في سيناريوهات متعددة وليس فقط مع أمر واحد.

mkdir --parents foo/{bar,baz}

هذا الأمر سيقوم بإنشاء هيكل مجلدات كالتالي:

foo/
├── bar/
└── baz/

يقوم المعامل --parents (أو -p) بالتأكد من إنشاء المجلدات الأب أولاً. السحر هنا يكمن في الأقواس المتعرجة {}، ففي Bash تُعرف هذه الخاصية بـ Brace Expansions، حيث يتعامل النظام مع الأمر وكأنك كتبت أمر mkdir مرتين منفصلتين لكل مجلد.

2. حساب عدد الأسطر أو الكلمات من ملفات متعددة

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

# حساب عدد أسطر الأكواد
cat **/*.go | wc --lines

# حساب عدد الكلمات في الملاحظات
cat **/*.org | wc --words
ملاحظة: للحصول على نتيجة إجمالية دقيقة، يجب تمرير البيانات كمسار واحد (Single Stream) إلى أمر wc. لو قمنا بتنفيذ wc --words **/*.org بشكل مباشر، سنحصل على مئات النتائج المنفصلة لكل ملف على حدة.

3. مقارنة مخرجات عمليتين (Process Substitutions)

جميعنا يعرف أمر diff الذي يقارن بين ملفين، ولكن ماذا لو أردت مقارنة مخرجات أمرَين بدلاً من ملفين؟ هنا يأتي دور استبدال العمليات (Process Substitutions).

diff <(ls ./foo) <(ls ./bar)

يتيح لك هذا الأسلوب تنفيذ أي أمرين وتمرير مخرجاتهما (كمسارات لملفات مؤقتة) إلى أمر مثل diff. يمكنك أيضاً أخذ لقطة أساسية لمجلد ومقارنته لاحقاً لاكتشاف أي تغييرات حدثت فيه:

diff foo-baseline.txt <(ls ~/foo)

4. مراقبة مخرجات الأوامر بشكل حي (Watch)

أداة watch بسيطة للغاية: فهي تقوم بتشغيل أمر معين كل ثانيتين لتتمكن من مراقبة أي تغييرات. يمكننا دمجها مع الحيلة السابقة لمراقبة التغييرات في مجلد ما بشكل شبه فوري:

watch "bash -c 'diff foo-baseline.txt <(ls -1 foo/)'"

بما أن أمر watch يستخدم sh افتراضياً (والذي لا يدعم استبدال العمليات الخاص بـ Bash)، كان يجب علينا تشغيل الـ diff صراحةً عبر bash -c لتفعيل هذه الخاصية والحصول على تحديثات حية للتغييرات.

5. استخراج النصوص بين أنماط محددة باستخدام Grep

أداة grep تبحث عن السطور بالكامل، لكن أحياناً تريد فقط الجزء الذي يطابق النمط. على سبيل المثال، استخراج محتوى وسم HTML محدد:

grep -oP '(?<=<p>).+(?=</p>)'

يعتمد هذا الأمر على التعابير النمطية (Regex):

  • -o: لإرجاع الجزء المطابق فقط من السطر.
  • -P: لاستخدام التعابير النمطية المتوافقة مع لغة Perl.
  • (?<=<p>) و (?=</p>): هي تقنيات Lookbehind و Lookahead للتأكد من وجود الوسم قبل وبعد النص المراد استخراجه دون تضمين الوسم نفسه في النتيجة.

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

التصنيفات

شارك المقال لتنفع به غيرك

قد تُعجبك هذه المشاركات

إرسال تعليق

تذكر قبل كتابه اى تعليق قول الله تعالى: مَا يَلْفِظُ مِنْ قَوْلٍ إِلَّا لَدَيْهِ رَقِيبٌ عَتِيدٌ [ق:18]؟

ليست هناك تعليقات

8252585510710493975

البحث