توسعة Shell والمطابقة الشاملة
افهموا كيفية توسيع shell للأوامر، بما في ذلك توسعة الأقواس وتوسعة التلدة وأنماط المطابقة الشاملة لأسماء الملفات.
توسعة Shell والمطابقة الشاملة درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ما هو توسيع shell؟
في Linux، يشبه shell مترجمًا بينكم وبين نظام التشغيل. وقبل أن ينفذ shell الأمر الذي تكتبونه، فإنه يجري غالبًا نوعًا من «السحر» يُسمى التوسيع.
يعني توسيع shell أن shell يبحث عن محارف أو أنماط خاصة في الأمر، ويستبدل بها شيئًا آخر. ويحدث ذلك قبل تنفيذ الأمر فعليًا، ما يوفر عليكم الكتابة ويجعل الأوامر أكثر قوة!
مجلدكم المنزلي باستخدام التلدة `~`
يُعد توسيع التلدة (~) اختصارًا عمليًا للغاية. فهو يتوسع تلقائيًا إلى المجلد المنزلي للمستخدم الحالي.
فبدلًا من كتابة /home/yourusername، يمكنكم استخدام ~ فقط. وهذا مفيد خصوصًا عند الانتقال إلى الملفات الموجودة في مجلدكم المنزلي أو الإشارة إليها.
echo ~
echo ~/Documentsالتلدة لمستخدمين آخرين
لا تقتصر التلدة على مجلدكم المنزلي! يمكنكم استخدامها أيضًا للإشارة إلى المجلد المنزلي لمستخدم آخر.
عند كتابة ~username، يوسّع shell ذلك إلى المجلد المنزلي لـ«اسم المستخدم» المحدد. وهذا مفيد جدًا للوصول إلى الملفات أو إعدادات التكوين المشتركة.
- تتوسع
~rootإلى/root - تتوسع
~guestإلى/home/guest
توسيع الأقواس المعقوفة `{}`
يتيح لكم توسيع الأقواس المعقوفة إنشاء سلاسل نصية عشوائية. وهو طريقة سريعة لإنشاء عناصر متعددة انطلاقًا من نمط واحد، من دون كتابتها كلها.
يوسّع shell المحتوى الموجود داخل الأقواس المعقوفة {} إلى قائمة من الكلمات المنفصلة. وهذا مفيد جدًا لإنشاء ملفات أو مجلدات ذات أسماء متشابهة، أو لتنفيذ أوامر على عناصر متعددة.
echo {apple,banana,cherry}نطاقات الأقواس المعقوفة
يمكنكم أيضًا استخدام توسعة الأقواس المعقوفة لإنشاء تسلسلات من الأرقام أو الأحرف. ويتم ذلك باستخدام عنصرين يفصل بينهما .. داخل الأقواس المعقوفة.
سينشئ shell جميع العناصر الموجودة في التسلسل، ما يسهّل إنشاء ملفات أو مجلدات مرقّمة، أو التكرار عبر مجموعة من القيم.
echo file_{1..3}.txt
echo {a..c}_report.logمقدمة إلى المطابقة النمطية للملفات
تُعد المطابقة النمطية للملفات طريقة shell لمطابقة أسماء الملفات والمسارات باستخدام محارف البدل الخاصة. وهي تشبه استخدام «نمط بحث» للعثور على الملفات.
عند كتابة أمر مثل ls *.txt، لا يرسل shell النمط *.txt إلى ls. بل يوسّع *.txt إلى قائمة بجميع الملفات المطابقة في المجلد الحالي، ثم يمرر تلك القائمة إلى ls.
مطابقة الكل باستخدام `*`
تُعد النجمة (*) محرف البدل الأكثر شيوعًا. وهي تطابق صفرًا أو أكثر من المحارف في اسم الملف.
يمكنكم استخدامها لمطابقة أي تسلسل من المحارف، ما يجعلها متعددة الاستخدامات بدرجة كبيرة عند اختيار الملفات استنادًا إلى أجزاء من أسمائها.
mkdir -p glob_test
touch glob_test/report.txt glob_test/image.jpg glob_test/document.pdf
echo "Files ending in .txt:"
ls glob_test/*.txt
rm -rf glob_testمطابقة محرف واحد باستخدام `?`
يطابق محرف البدل علامة الاستفهام (?) محرفًا واحدًا بالضبط.
ويفيد ذلك عندما تعرفون طول الجزء الذي تريدون مطابقته في اسم الملف، لكنكم لا تعرفون المحرف المحدد نفسه.
mkdir -p glob_test
touch glob_test/file1.log glob_test/file2.log glob_test/fileA.log
echo "Files matching file?.log:"
ls glob_test/file?.log
rm -rf glob_testمحارف محددة `[]`
يمكنكم استخدام الأقواس المربعة ([]) لمطابقة أي محرف واحد ضمن مجموعة محارف محددة.
ويتيح ذلك مطابقة أكثر دقة من ?. ويمكنكم سرد محارف منفردة أو تحديد نطاق (مثل [a-z] لأي حرف صغير، أو [0-9] لأي رقم).
mkdir -p glob_test
touch glob_test/photoA.png glob_test/photoB.png glob_test/photoC.png glob_test/photoD.png
echo "Files matching photo[A-C].png:"
ls glob_test/photo[A-C].png
rm -rf glob_testتركيبات المطابقة النمطية
يمكنكم الجمع بين أنماط مختلفة للمطابقة النمطية، بل وحتى استخدام توسعة الأقواس المعقوفة، لاختيار الملفات بفاعلية كبيرة.
يعالج shell عمليات التوسيع هذه من اليسار إلى اليمين، وينشئ أنماطًا معقدة تطابق ما تحتاجون إليه تمامًا.
mkdir -p glob_test
touch glob_test/data_01.csv glob_test/data_02.txt glob_test/data_a.log glob_test/info_01.txt
echo "Files matching data_[0-9]*.{txt,csv}:"
ls glob_test/data_[0-9]*.{txt,csv}
rm -rf glob_testتحقق سريع
أي من الأوامر التالية سيعرض الملفات المسماة report1.doc وreport2.doc وreport3.doc، لكنه لن يعرض reportA.doc؟
مراجعة وخطوات تالية
أحسنتم! لقد تعلمتم كيف يوسّع shell الأوامر حتى قبل تشغيلها. وهذا «السحر» يجعل العمل في سطر الأوامر أكثر كفاءة بكثير.
- توسيع التلدة (
~): اختصار للمجلدات المنزلية. - توسيع الأقواس المعقوفة (
{}): ينشئ سلاسل نصية أو تسلسلات مخصصة. - المطابقة النمطية (
*و?و[]): تطابق أسماء الملفات باستخدام محارف البدل، ما يتيح اختيارًا قويًا قائمًا على الأنماط.
يُعد فهم عمليات التوسيع هذه أساسيًا لكتابة أوامر فعالة وموجزة. واصلوا التدرب عليها!
الأسئلة الشائعة
هل درس «توسعة Shell والمطابقة الشاملة» مجاني؟
نعم — نص درس «توسعة Shell والمطابقة الشاملة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «توسعة Shell والمطابقة الشاملة»؟
افهموا كيفية توسيع shell للأوامر، بما في ذلك توسعة الأقواس وتوسعة التلدة وأنماط المطابقة الشاملة لأسماء الملفات. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «توسعة Shell والمطابقة الشاملة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التحكم في المهام (bg، fg، jobs)
- توسعة Shell والمطابقة الشاملة
- الاختصارات والمطالبات المخصّصة
- دوال Shell ومقاطع برمجية قابلة لإعادة الاستخدام