تعلم أوامر Linux قد يبدو معقدًا في البداية، خاصة إذا لم تكن معتادًا على التعامل مع سطر الأوامر. لكن هناك طرق مبتكرة تجعل التجربة أكثر سهولة ومتعة، ومن بينها لعبة تفاعلية صممت خصيصًا لتدريبك على أشهر الأوامر الأساسية مثل ls
, cd
, mkdir
, rm
وغيرها. بدلًا من قراءة قوائم طويلة أو مشاهدة شروحات مملة، يمكنك استخدام هذه اللعبة لتجربة الأوامر عمليًا، ومعرفة تأثير كل منها بشكل فوري. هذا النوع من التدريب العملي يساعدك على التعلّم بشكل أسرع ويجعل أوامر Linux جزءًا من مهاراتك اليومية.
أنا من أشد المعجبين بالتعلم المُلَعَب. هذا ما دفعني لتجربة لعبة تعليمية شهيرة على نظام لينكس: OverTheWire. ما بدأ كفضول سريع تحول إلى ساعات من حل الألغاز المُدمنة، وسحر الطرفية، ولحظات “آها!” التي لا تُدركها إلا عندما تُدرك شيئًا ما.
لماذا أحب OverTheWire كثيرًا؟
OverTheWire هي مجموعة من ألعاب الحرب. ألعاب الحرب هي في الأساس تحديات على غرار CTF، حيث يتعين عليك تنفيذ مهمة معينة للحصول على رمز خاص كدليل على اجتيازك ذلك المستوى. في سياق OverTheWire Bandit، وهو ما سأتحدث عنه بشكل أساسي، عليك البحث عن كلمة مرور سرية والعثور عليها للانتقال إلى المستوى التالي.
لقد استكشفت العديد من الألعاب التي تُعلّم لينكس حتى الآن. لكن OverTheWire تتميز حقًا بكيفية إعداد بيئتها وكيف تتحدى معرفتك في تحديات واقعية مبنية على سيناريوهات. ستُنقل إلى أنظمة لينكس حقيقية لتستكشفها. سواء كنت جديدًا على لينكس أو مستخدمًا متوسطًا، ستجد في اللعبة ما يناسبك.
صُممت المستويات لتزداد صعوبتها بسلاسة. من الأشياء التي تُعجبني أن مستوى معينًا قد يتطلب أيضًا أوامر وتقنيات من المستويات السابقة. هذا يساعدك على الاحتفاظ بما تعلمته لفترة أطول وترسيخه.
أكثر ما يُعجبني في OverTheWire هو كيفية تعاملها معك كمتعلم كفؤ. إنه لا يهدف إلى تحويلك إلى روبوت يحفظ الأوامر والتقنيات، بل يساعدك على أن تصبح شخصًا قادرًا على البحث وحل المشكلات والتفكير في مجالات غير مألوفة. هذه مهارات تتجاوز حدود الطرفية وتظهر في كل مكان في عالم التكنولوجيا.
يُعلّمك أهم مهارة في Linux .
إذا كان هناك شيء واحد يُعلّمه OverTheWire أفضل من أي برنامج تعليمي أو فيديو يوتيوب، فهو تعلّم كيفية فهم الأمور بنفسك.
عندما تلعب Bandit، لا تُوجّهك اللعبة. تُحدّد هدفك، وقد تحصل على تلميح أو اثنين حول الأوامر التي قد تُساعدك. هذا كل شيء. لا يوجد شرح مُدمج في المستوى، ولا تلميحات تشرح كيفية عمل أمر xyz، وبالتأكيد لا توجد نافذة منبثقة تُظهر لك الصيغة الدقيقة التي يجب استخدامها. عليك البحث عنها. عليك المحاولة، ثم الفشل، ثم تعديل أسلوبك، ثم المحاولة مرة أخرى. وهذا بالضبط ما يجعله ممتازًا.
بالنسبة لي، هذه هي مهارة لينكس الأساسية. أن تكون على طبيعتك في عدم معرفة شيء ما، ثم اكتشافه من خلال البحث، وقراءة صفحات الدليل، والتجربة. إنها المهارة التي تُميّز من ينسخ أوامر Stack Overflow فقط من من يفهم ما يفعله بالفعل.
ستتعلم أكثر من مجرد أوامر Linux
لا يقتصر OverTheWire على أوامر لينكس. مع أن Bandit يُعنى بذلك تقنيًا، إلا أنك ستتعلم في النهاية أكثر بكثير من مجرد قواعد اللغة.
على سبيل المثال، ستتعرف على أمور مثل أذونات الملفات، وبروتوكولات الشبكة، وتكنولوجيا الإنترنت، وترميز النصوص. اضطررتُ لفك تشفير سلاسل سداسية عشرية، والنظر داخل ملفات ثنائية غريبة، والاتصال بمنافذ غامضة، وفهم هيكلية نظام ملفات لينكس بشكل أعمق.
بمجرد الانتهاء من Bandit، ستنفتح لك OverTheWire أكثر. يتعمق Leviathan في تصعيد الامتيازات. هناك Narnia، التي تتعمق في استغلال الذاكرة وتجاوزات المخزن المؤقت. يركز Krypton على أساسيات التشفير. تتضمن Maze تحديات الهندسة العكسية والاستغلال. تعتمد كل لعبة حرب على جانب مختلف من جوانب الأمان، أو البرمجة، أو غيرها من مفاهيم علوم الحاسوب.
الأوامر التي تعلمتها
حسنًا، لا أقول إن OverTheWire كان أول مكان رأيت فيه هذه الأوامر، ولكنها كانت المرة الأولى منذ فترة التي اضطررت فيها لاستخدامها لغرض محدد. نسيتُ بعض هذه الأوامر جزئيًا، بينما استخدمتُ بعضها الآخر فقط بتركيبات منسوخة ولصقة، ولم تكن لديّ فكرة واضحة عما يحدث. أجبرني لعب Bandit على التمهل وتعلم وظيفة كل أمر، وكيفية استخدامه بذكاء ودقة أكبر. إليكم ستة أوامر مميزة.
SSH
SSH هو اختصار لـ Secure Shell. وهو الطريقة القياسية للاتصال عن بُعد بجهاز طرفي لجهاز آخر، وخاصةً عبر الإنترنت. يشبه الأمر نقل جلسة سطر الأوامر الخاصة بك إلى جهاز كمبيوتر آخر، بشكل آمن ومشفّر، بحيث لا تُكشف بياناتك وكلمة مرورك أثناء النقل. إليك أبسط صيغة لأمر ssh:
ssh username@hostname
ssh هو أول أمر ستستخدمه في لعبة OverTheWire Bandit. في الواقع، عليك استخدامه حتى تبدأ، إذ يجب عليك الاتصال بخادمهم للعب. عليك استخدامه في كل مستوى، ليصبح أمرًا طبيعيًا بالنسبة لك. إليك الطريقة:
ssh [email protected] -p 2220