رفتن به محتوا
LoopX

آزمون بخش ۱: پیش‌نیاز

این آزمون مفاهیم دو درس «مرور سریع لینوکس برای داکر» و «WSL2 برای کاربرهای ویندوز» را می‌سنجد. هر سؤال را که جواب بدهی، بلافاصله جواب درست و توضیحش را می‌بینی. نتیجه‌ات در همین مرورگر ذخیره می‌شود و در صفحه‌ی پیشرفت من دیده می‌شود.

؟ آزمون بخش ۱
  1. خروجی ls -l یک فایل با «-rwxr-xr-x» شروع می‌شود. گروه چه دسترسی‌ای دارد؟

  2. chmod 640 file چه دسترسی‌ای می‌دهد؟

  3. چرا ls بدون گزینه فایل .gitignore را نشان نمی‌دهد؟

  4. کدام دستور بدون ترس از اشتباه به پوشه‌ی قبلی برمی‌گردد و مسیرش را هم چاپ می‌کند؟

  5. خطای «Address already in use» بیشتر یعنی…

  6. WSL 2 چه فرقی با WSL 1 دارد که داکر را ممکن می‌کند؟

  7. پروژه‌ی داکر را برای بیشترین سرعت کجا نگه دار؟

  8. کدام دستور در PowerShell نشان می‌دهد توزیع‌های WSL با کدام نسخه کار می‌کنند؟

🏁 چالش: سرویس تازه، از صفرمتوسط

داخل پوشه‌ی home یک پروژه‌ی shop با زیرپوشه‌های src، config و scripts بساز. سپس:

۱. فایل config/app.env را بساز و طوری دسترسی بده که فقط خودت بتوانی بخوانی و بنویسی. ۲. اسکریپت scripts/health.sh را بنویس که با ss -tulpn پورت‌های listen را چاپ کند، و آن را اجرایی کن. ۳. یک سرور Python روی پورت 8000 در پس‌زمینه بالا بیاور، health.sh را اجرا کن و ثابت کن پورت ۸۰۰۰ در خروجی هست. ۴. PID سرور را از همان خروجی بیرون بکش (نه حدسی) و آن را ببند.

راهنمایی

برای دسترسی 600، برای اجرایی کردن chmod +x و برای بیرون کشیدن PID از sed یا awk کمک بگیر.

راه‌حل
Terminal window
mkdir -p ~/shop/{src,config,scripts} && cd ~/shop
touch config/app.env && chmod 600 config/app.env
printf '#!/bin/bash\nss -tulpn\n' > scripts/health.sh && chmod +x scripts/health.sh
python3 -m http.server 8000 > /dev/null 2>&1 &
sleep 2
./scripts/health.sh | grep 8000
pid=$(./scripts/health.sh | grep ':8000' | sed -E 's/.*pid=([0-9]+).*/\1/')
kill "$pid"; sleep 1
./scripts/health.sh | grep -c 8000
ls -l config/app.env scripts/health.sh
خروجی
tcp LISTEN 0 5 0.0.0.0:8000 0.0.0.0:* users:(("python3",pid=7086,fd=3))
0
-rw------- 1 ali ali 0 Oct 3 10:31 config/app.env
-rwxr-xr-x 1 ali ali 22 Oct 3 10:31 scripts/health.sh