برنامه نویسی

خط فرمان خود را بالا ببرید: معرفی عیب یابی ترمینال! (ساخته شده با AWS Q CLI)

سلام dev.to جامعه!

همه ما آنجا بوده ایم: خیره به یک پیام خطای رمزنگاری در ترمینال ، مهلت مهلت و آن صدای ریز در ذهن ما می گوید: “من دانستن دستور برای این امر ، اما دوباره چه بود ؟! “عیب یابی می تواند استرس زا باشد ، اما این نیز جایی است که یادگیری واقعی اتفاق می افتد. اگر بتوانیم این یادگیری را سرگرم کننده ، جذاب و بدون ریسک کنیم؟

این ایده پشت است عیب یابی ترمینال -یک بازی تعاملی جدید و مبتنی بر متن که شما را برای حل مشکلات دنیای واقعی با استفاده از دستورات شبیه سازی شده لینوکس ، داکر و Kubernetes ، همه در ترمینال خود به چالش می کشد! و علاوه بر این ، این پروژه با کمک کمی از کمک های مدرن هوش مصنوعی توسعه یافته است: AWS Q CLIبشر

چرا من این بازی را ساختم (و چرا باید بازی کنی!)

یادگیری ابزارهای خط فرمان اغلب می توانند مانند خواندن فرهنگ لغت احساس کنند-خشک و نظری تا زمانی که به یک وضعیت فشار قوی برسید. انگیزه من ساده بود: یک ماسهبازی بازیگوش را در جایی که می توانید ایجاد کنید:

  • تمرین بدون نتیجه: بدون اینکه در واقع تولید را پایین بیاورید ، چیزها را به طور واقعی بشکنید.
  • مهارت های اصلی را تقویت کنید: درک خود را از lsبا grepبا psبا systemctlبا docker psبا kubectl get pods، و بیشتر
  • برای سناریوهای دنیای واقعی آماده شوید: مشکلات متداول مانند شروع یک سرور وب ، دیسک کامل یا یک غلاف Kubernetes که در حالت در حال تعلیق گیر کرده است ، مقابله کنید.
  • لذت ببرید! این یک بازی است ، پس از همه! XP را بدست آورید ، معماها را حل کنید و از Vibe Terminal Nostalgic ، یکپارچهسازی با سیستمعامل لذت ببرید.

ساختن این بازی همچنین فرصتی خارق العاده برای کشف چگونگی سرعت بخشیدن به ابزارهای توسعه دهنده AI می تواند روند توسعه را تسریع و تقویت کند. AWS Q CLI ثابت کرد که در طول این سفر یک دستیار ارزشمند است.

عیب یابی ترمینال چیست؟

تصور کنید که یک ماجراجویی خود را انتخاب کنید ، اما گزینه های شما دستورات لینوکس هستند. این عیب یابی ترمینال است!

هر سطح شما را به یک سناریوی جدید بحران تبدیل می کند. شما یک توضیحات مختصر اما مهم را می خوانید و سپس این وظیفه شماست که دستورات مناسب را در سریع تایپ کنید. این بازی خروجی را شبیه سازی می کند ، به اقدامات شما واکنش نشان می دهد و شما را از طریق قطعنامه های چند مرحله ای راهنمایی می کند.

ویژگی های کلیدی در یک نگاه:

  • شبیه سازی ترمینال تعاملی: دستورات مانند cat /var/log/syslogبا docker psبا kubectl get pods، و پاسخ های واقع بینانه را ببینید.
  • یادگیری مبتنی بر سناریو: هر سطح یک مطالعه کوچک از یک مشکل مشترک IT است.
  • مشکل مترقی: با دستورات اساسی لینوکس شروع کنید و به تدریج به چالش های پیچیده تر Docker و Kubernetes بروید.
  • sysadmin XP: برای تشخیص و رفع موفقیت آمیز امتیاز کسب کنید!
  • زیبایی شناسی یکپارچهسازی با سیستمعامل: ساخته شده با عالی rich کتابخانه پایتون ، یک رابط کاربری تمیز ، مینیمالیستی و بسیار “ترمینال” ارائه می دهد.
  • تقویت مهارت: یادگیری مفید است که می چسبد.

پشت صحنه: چگونه کار می کند (و جایی که AWS Q CLI کمک کرد!)

در زیر کاپوت ، عیب یابی ترمینال با پایتون ساخته شده است و به چند مؤلفه اصلی متکی است:

  • GameState: این مغز محیط شبیه سازی شده ما است. این وضعیت فعلی “سرور” را دارد – ساختار سیستم فایل آن ، فرآیندهای در حال اجرا ، ظروف Docker ، غلاف های Kubernetes و موارد دیگر.
  • CommandParser: جادو در اینجا اتفاق می افتد! این ماژول دستور تایپ شده شما را می گیرد ، آن را تجزیه می کند (به عنوان مثال ، جدا می شود ls از -l وت /var/log) ، و سپس شبیه سازی اجرای فرمان در برابر GameStateبشر این خروجی واقع بینانه را برمی گرداند و باعث ایجاد تغییرات حالت می شود (به عنوان مثال ، اگر شما kill یک روند ، GameState به روز رسانی)
  • LevelManager: این مؤلفه بازی را ارکستر می کند. این داده های سطح را بارگیری می کند ، چالش فعلی را ارائه می دهد ، و از همه مهمتر ، تأیید کردن دستورات شما نه فقط در صورت اجرای آنها ، بلکه اگر آنها باشد خروجی یا نتیجه دولت با معیارهای موفقیت سطح مطابقت دارد.
  • rich کتابخانه: برای تمام هنر زیبا ASCII ، متن رنگی و خروجی ساختاری که در ترمینال مشاهده می کنید ، rich MVP است

چگونه AWS Q CLI توسعه شتاب گرفت:
در طول فرآیند توسعه ، AWS Q CLI (به ویژه ادغام آن در IDE من) مانند داشتن یک برنامه نویس جفت در کنار من بود. این وظایف را به طور قابل توجهی انجام داد:

  • تولید کد دیگ بخار: از ساختارهای کلاس گرفته تا خرد خرد ، Q CLI به سرعت کار در زمینه کار کمک کرد.
  • پیشنهاد اصطلاحات فیثونی: برای الگوهای مشترک ، پیشنهادات کد کارآمد و تمیز را ارائه می داد.
  • کمک اشکال زدایی: Q CLI هنگام ضربه زدن به SNAG توضیحاتی در مورد ردیابی و راه حل های بالقوه ارائه داد.
  • کاوش در استفاده از API: برای ادغام کتابخانه ها مانند rich، این به روشن شدن امضاهای عملکرد و موارد استفاده مشترک کمک کرده است.

به من این امکان را می داد که بیشتر به جای اینکه در BoilerPlate یا موانع اشکال زدایی جزئی به کار خود ادامه دهم ، بیشتر روی منطق بازی و طراحی سطح تمرکز کنم.

درگیر شوید!

عیب یابی ترمینال به گونه ای طراحی شده است که قابل گسترش باشد. آیا می خواهید در مورد اشکال زدایی یک مسئله خاص شبکه ای اضافه کنید؟ یا یک دستور جدید مانند curl یا df -h؟ این برای کمک های آسان ساختار یافته است:

  • سطوح جدید را اضافه کنید: سناریوهای جدید را در game/data/levels.pyبشر
  • دستورات را تقویت کنید: پیشرفت کردن game/command_parser.py برای پشتیبانی از استدلال های بیشتر یا خروجی غنی تر برای دستورات موجود ، یا موارد کاملاً جدید را اضافه کنید.
  • گسترش حالت بازی: مؤلفه های شبیه سازی شده تر سیستم را در game/game_state.pyبشر

آماده عیب یابی هستید؟

https://github.com/hritikraj8804/terminal_troubleshooter

شروع کار ساده است!

  1. کلون مخزن:

    git clone https://github.com/Hritikraj8804/terminal_troubleshooter.git # Replace with your repo link!
    cd terminal_troubleshooter
    
  2. یک محیط مجازی تنظیم کنید و وابستگی ها را نصب کنید:

    python -m venv venv
    # On Windows: .\venv\Scripts\activate
    # On macOS/Linux: source venv/bin/activate
    pip install -r requirements.txt
    
  3. بازی را اجرا کنید:

    python -m game.main
    

هنر ASCII

سطح 2

سطح 3

چه چیزی بعدی؟

این فقط آغاز است! برنامه های آینده شامل:

  • بسیاری از سطوح پیچیده تر که مجموعه گسترده ای از مشکلات IT را پوشش می دهد.
  • شبیه سازی عمیق تر دستورات (به عنوان مثال ، cd روی فهرست کار فعلی شما ، پیچیده تر grep یا find گزینه ها).
  • به طور بالقوه یک سیستم امتیاز دهی و حتی وضعیت بازی مداوم.

من واقعاً از این پروژه هیجان زده ام و دوست دارم بازخورد ، ایده های شما را برای سطوح جدید بشنوم ، یا حتی کمک های شما را ببینم!

عیب یابی مبارک!

#python #gamedev #devops #sysadmin #linux #kubernetes #terminal #cli #learning #aws #ai #generativeai

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا