العودة إلى التحديثات
New releaseJul 24, 2026

cmdchamp v1.2.13

مدرب واجهة سطر الأوامر bash — 30 مستوى من ls وصولاً إلى تصعيد الامتيازات

مشاركة

cmdchamp

مدرب أوامر باش — 30 مستوى من ls إلى تصعيد الامتيازات.

demo

كل سؤال يطلب منك كتابة أمر حقيقي — احصل على رد فوري، وتقدم. أخطئ في سؤال ولا يكتفِ بإظهار الإجابة لك: بل يُظهر ما طبعَه أمرُك مقابل ما كان مطلوبًا، وبالنسبة للأنابيب عدد الأسطر في كل مرحلة، لترى النقطة التي فشل عندها. بالنسبة للأسئلة المطابقة نصيًا، يسمي الإجابة المقبولة التي كان إجابتك الأقرب إليها والعلم المحدد الذي تركته. أجب بالطريقة الطويلة فيُريك الطريقة القصيرة — cat f | grep -c X يمنحك Shorter: grep -c X f، ويُفعَّل عند عدد مراحل أنابيب أقل وكذلك عدد أحرف أقل، لأن العملية التي وفّرتها هي الدرس. كثير من الأسئلة تعمل على ملفات حقيقية في بيئة الاختبار، وكلها تقبل صيغًا صحيحة متعددة (sort -u أو sort | uniq). مفتاح Tab يبدّل صفحة الدليل عندما تحتاج مرجعًا — صفحات مختصرة لكل أمر ينفذه الجواب، بالإضافة إلى صيغة الصدفة التي يعتمد عليها (x=$(cmd)، ${var:-default}، ${path##*/})، فلا يُترك شيء في السؤال لتخمينه. الترتيب عشوائي في كل تشغيل فلا يمكنك حفظه. الإتقان يتتبع ما تعرفه: أجب عن سؤال بشكل صحيح مرتين لإتقانه، وأخطئ فيه فيُخفَض فيعود إليك مبكرًا. سلسلة من 5 إجابات صحيحة تُفعّل وضع النار — لافتة تعمل حتى تخطئ.

ينتهي كل مستوى بجولة زعيم — بدون صفحات دليل، مؤقت 30 ثانية، 4/5 للنجاح. افشل ويمكنك إعادة محاولة الزعيم فورًا أو العودة للتدريب. اهزم المستويات الثلاثين جميعها ويفتح وضع التحدي — محك النهاية: سلاسل أوامر متعددة تجمع الأدوات من اللعبة كلها في أنبوب واحد. 30 ثانية لكل سلسلة، حياة واحدة، بدون صفحات دليل، وأفضل نتيجة لك هي الرقم القياسي. كل سلسلة تُقيَّم على مخرجاتها الحقيقية في بيئة الاختبار، لذا أي أنبوب صحيح ينجح. كل تشغيل يبني أيضًا بيئة اختبار عشوائية جديدة — عناوين IP مختلفة، أعداد، مضيفات، وبيانات سجلات — ويستمد من أكثر من 50 قالب سلسلة مع فواصل وترتيب فرز ومجاميع متغيرة، لذا أكثر IP ازدحامًا، وأعلى URL، وأعلى عدد ليست نفسها أبدًا مرتين. التشغيل الأول يتضمن برنامجًا تعليميًا قصيرًا واختبار تحديد مستوى يتيح لك تخطي المستويات التي تعرفها بالفعل.

مع bubblewrap، تعمل الأوامر في نظام ملفات حقيقي معزول وتُقيَّم على مخرجاتها الفعلية. الصندوق بداخله اصطناعي — مستخدم sandbox، مضيف sandbox، ملف /etc/passwd خاص به وسطر أوامر نواة خاص — فلا يمكن لأي شيء تكتبه أن يطبع اسم مستخدمك الحقيقي أو اسم جهازك أو تخطيط قرصك على الشاشة، وid وwhoami وhostname تجيب بنفس الإجابة في كل مكان. يصل هذا الآن أيضًا إلى مستوى التحقيق الجنائي: المستوى 28 يسلّمك عينة ثنائية حقيقية (samples/target.bin) ويقيّم ما إذا كنت استخرجت فعلًا العلم ونطاق التسلل ومفتاح API المسرب منها — وكذلك أسئلة jq على JSON حقيقي. محك النهاية يجمع تلك الاستخراجات في سلاسل موقوتة. المستويان 24-25 يعملان الآن فعلًا أيضًا: خدمة HTTP صغيرة تبدأ على localhost:8080 داخل مساحة أسماء الشبكة الخاصة بالصندوق بينما يعمل جوابك، مع ثلاثة منافذ تستمع، لذا curl وjq عبر HTTP وss وnmap تُقيَّم على ما أعادته فعلًا. لا شيء يُكشف لجهازك — مساحة الأسماء ما زالت تحجب كل اتصال صادر، والمنفذ غير مرئي من الخارج. فقط الأدوات التي لا يمكنها فعلًا العمل في بيئة معزولة — واي فاي/ترددات راديوية، الالتقاط المباشر، وتحقيقات الذاكرة/القرص الكبيرة — تبقى مطابقة نصيًا. مستويات البحث (16-17) تقبل صيغة rg/fd وصيغة grep/find معًا. تحرير أسطر Vi مدمج — حركات، عوامل، أعداد، سجلات، تراجع ووضع بصري (v/V، o لتبديل الأطراف)، مع ? للخريطة الكاملة.

التثبيت

Arch (AUR):

paru -S cmdchamp   # or: yay -S cmdchamp

في أي مكان (ملف واحد):

mkdir -p ~/.local/bin && curl -sL https://raw.githubusercontent.com/mellen9999/cmdchamp/main/cmdchamp -o ~/.local/bin/cmdchamp && chmod +x ~/.local/bin/cmdchamp

أضف ~/.local/bin إلى PATH إذا لزم الأمر: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

أو استنسخ:

git clone https://github.com/mellen9999/cmdchamp.git
cd cmdchamp && make install

المتطلبات: bash 4.4+، coreutils، awk

macOS: يأتي مع bash 3.2 — ثبّت bash 4.4+ أولًا: brew install bash

اختياري: bubblewrap (bwrap) لوضع بيئة الاختبار (لينكس فقط) — معظم توزيعات سطح المكتب تتضمنه. بدونه، تُطابق الإجابات نصيًا فقط

اختياري: python3 — يخدم خدمة HTTP على localhost في بيئة الاختبار، لذا أسئلة live api / live box في المستويين 24-25 تُقيَّم على مخرجات حقيقية. بدونه تعود تلك الأسئلة إلى المطابقة النصية؛ لا يتغير شيء آخر

إمكانية الوصول: يحترم NO_COLOR وTERM=dumb. يتكيف التخطيط مع COLUMNS / tput cols. أشرطة الإتقان تحمل لونًا ورمز / ~ / x — مقروءة بدون لون.

الأطراف: يعمل على أطراف تسلسلية حقيقية، وليس فقط المحاكيات. cmdchamp يفحص ما يمكن للطرف عرضه فعلًا ويختار واحدًا من ثلاث طبقات عرض — يونيكود، رسم خطوط DEC ACS، أو ASCII خالص — فتبقى الإطارات سليمة على VT100/VT220/VT320/VT420 أو Wyse. على شاشة أحادية اللون، تُعاد ترميز تمييزات الألوان كخط عريض/معكوس. فرض طبقة بـCMDCHAMP_ASCII=1 أو CMDCHAMP_UNICODE=1. ./test_terminals.sh يتحقق من ذلك.

الاستخدام

cmdchamp                # Launch the game menu
cmdchamp explain 'CMD'  # Explain any command - every flag, plus the shell syntax around it
cmdchamp autopsy        # Read your own shell history and map it onto the curriculum
cmdchamp daily          # Play today's daily gauntlet (same run for everyone)
cmdchamp daily 2026-02-16   # Replay a specific day's run (race a friend)
cmdchamp play           # Free-play sandbox: type any command, see it run
cmdchamp --no-sandbox   # Disable sandbox (text-match only)
cmdchamp reset          # Clear all progress
cmdchamp test           # Run self-tests
cmdchamp version        # Print version
cmdchamp help           # Show help

cmdchamp explain (أو cmdchamp x) هو لوحة Tab كأداة مستقلة: صفحات مكتوبة يدويًا لنحو 300 أمر بالإضافة إلى صيغة الصدفة المحيطة بها، دون اتصال، بدون شبكة، بدون تبعيات. يأخذ أمرًا مقتبسًا أو الكلمات المجردة، ويقرأ من stdin عندما لا يُعطى أيًا منهما — لذا history | tail -1 | cmdchamp x يشرح ما شغّلته للتو. خروج 0 عندما يعرف الأمر، و1 عندما لا يعرفه.

cmdchamp autopsy يقرأ سجل أوامر الصدفة لديك — $HISTFILE، ثم ~/.bash_history، ثم ~/.zsh_history، أو ملفًا تسميه، أو - لـ stdin — ويرسمه على المستويات الثلاثين: ما تصل إليه فعلًا، عادات تستحق التخلي عنها مع عدّك الخاص بجانب كل منها (cat إلى grep، find إلى xargs بدون -print0، chmod 777، curl | sh)، كم من الأوامر التي تعلمك إياها اللعبة شغّلتها يومًا، وأدنى مستوى فيه فجوة. يطبع الأنماط والأعداد فقط — أبدًا سطرًا أو جزءًا أو "مثالًا" من سجلّك، لأن السجل يحمل رموزًا وكلمات مرور كُتبت كوسائط. لا شيء يغادر الجهاز، ولا يوجد علم لجعله يعيد سجلّك.

تحتوي القائمة على متابعة، لعبة جديدة، سيناريوهات، تحدي، يومي، تدريب، إحصائيات، خيارات، مساعدة وخروج على مفاتيح ثابتة 1-9 و0. صف لم تفتحه بعد يظهر باهتًا بدل إخفائه، لذا الرقم بجانب التسمية لا يتحرك أبدًا مع تقدمك. j/k أو الأسهم للتحرك، Enter للاختيار، وq (أو Esc) للخروج. ساحة اللعب في أعلى قائمة السيناريوهات — وهي الإدخال الوحيد الذي لا يُقفل أبدًا. المساعدة هي المرجع، ثلاث صفحات: كل مفتاح، ماذا يكلف كل وضع ومتى يفتح، كيف يعمل التسجيل والاضمحلال، ماذا تعني علامات الإحصائيات، كيف يُحكم على إجابة، وكل متغير بيئة. البرنامج التعليمي للتشغيل الأول ما زال على بُعد ضغطة مفتاح واحدة في الصفحة الأخيرة.

اليومي (بعد ROOT) هو تشغيل محك مُبذَّر بالتاريخ — البذرة تقود السلاسل وبيئة الاختبار العشوائية معًا، لذا يحصل الجميع في كل مكان على أسئلة وبيانات متطابقة بايتًا بايتًا ذلك اليوم، محاولة واحدة مُسجَّلة، سلسلة أيام متتالية، ونتيجة قابلة للنسخ تشاركها. التدريب يمرّن أي مستوى وصلت إليه (معروض بنسبة إتقانه %) مع تلميحات وبدون مؤقت، دون لمس تقدمك الرئيسي. ساحة اللعب صندوق مخترق تفككه بصدفة حقيقية: شخص ما دخل، استخدمه، ثم حاول الترتيب، وكل حركة تركت أثرًا على القرص. الأوامر تعمل فعلًا في بيئة الاختبار ولا شيء يُقيَّم. حتى 8 رموز flag{...} مزروعة عبر الشجرة (يفتح المزيد كلما أتقنت مستويات)، map يعرض الاقتحام مرحلة بمرحلة ويحدد مكانك، learn هو المنهج الأمني المكون من 8 وحدات خلفه، hint يتعمق طبقة أكثر كلما سألت، وTab يشرح ما كتبته. الترويسة تسمي دائمًا المرحلة التي تبحث عنها والملفات التي تركتها، فلا تحدق أبدًا في موجه بلا مكان توجّه إليه أمرًا — وإذا مرت ستة أوامر دون العثور على شيء، يأتيك التلميح الأول.

الإحصائيات

صفحتان. الأولى أشرطة المستويات الثلاثين — إلى أين وصلت. الثانية نفس الإتقان مُسقطًا على الأوامر، الأضعف أولًا، لأن المستوى سلة خشنة جدًا للتدريب منها: المستوى 13 وحده يعلّم cp وmv وln وchmod وACLs وdu وtar وdiff، وشريط أحمر واحد لا يمكنه أن يقول أيًا منها تخطئ باستمرار. فقط المستويات التي وصلتها تُحسب، والشبكة محدودة بشاشة واحدة — قائمة عمل تحتاج تمريرًا ليست قائمة عمل. تحتها، أضعف ثلاثة أوامر مسمّاة مع المستوى الذي يعلّم كلًا منها، فتنتهي الصفحة حيث يبدأ التدريب — أسماء المستويات موضوعية، وxargs 0/4 طريق مسدود إذا كان عليك تخمين أن Batch Ops هو مكانه.

المستويات

#الاسمالتركيز
الأساسيات
1الخطوات الأولىpwd, ls, echo, cd, mkdir
2أساسيات الملفاتcp, mv
3احفظ عملك>, >>, tee
4قراءة الملفاتcat, head, tail, less
5الأنابيب الأساسيةpipes, grep, wc, sort, uniq
6الإدخال وسلاسل هنا<, <<<, tr, cut, rev, bc
7معالجة الأخطاء2>, 2>&1, &>, /dev/null
8بوابات المنطق&&, ||
9المتغيرات$VAR, assignment, expansion
10المتغيرات الخاصة$$, $?, $!, $#, $@, $0
11التحكم بالوظائفbg, fg, jobs, &, Ctrl+Z, nice, ulimit
12شروط الاختبار-f, -d, -z, -n, -eq, -lt
13أدوات الملفات الأساسيةcp, mv, ln, chmod, ACLs, du, tar, diff
14إدارة النظامping, df, free, ss, systemctl, ip, sysctl, lsblk, getent
15أدوات تعدد المهامtmux: sessions, windows, panes
16البحث في النصgrep, ripgrep, regex
17إيجاد الملفاتfind, fd, by name/size/time/type
18معالجة البياناتsort, uniq, cut, awk, tr, comm, join, numfmt
19السلاسل والمصفوفاتparameter expansion, arrays
20تدفق التحكمif/else, loops, case, functions
21عمليات الدفعاتfind -exec, xargs, sed -i, crontab
22التعبيرات النمطية المتقدمةlookahead, sed, awk
DevOps والأمن
23Gitbranches, remotes, rebasing, stashing, bisect
24أدوات الشبكةtshark, curl, jq, ssh tunnels, openssl, SMB, a live HTTP endpoint
25فحص الشبكةnmap, service detection, scripts, a live target
26واي فاي والترددات الراديويةaircrack-ng, netcat, tcpdump, wireless recon
27كسر التجزئةhashcat, john, hydra, encoding
28التحقيق الجنائيstrings, readelf, binwalk, volatility, exiftool
29تصعيد الامتيازاتSUID, capabilities, GTFOBins, enumeration
30ROOTemergency recovery, chroot, offline survival

السيناريوهات

تحديات بيئة اختبار متعددة الخطوات — الحالة تستمر بين الخطوات. متاحة من قائمة السيناريوهات بمجرد تجاوز زعيم الفتح، الذي يعرضها بترتيب الفتح تحت ساحة اللعب. الأرقام أدناه هي معرّفات السيناريوهات، التي لا تتغير أبدًا.

#الاسميُفتح عندالخطوات
1قفل الأذوناتزعيم L136
2أرشفة واستخراجزعيم L136
3ابحث عن الإبرةزعيم L167
4CSV فوضويزعيم L184
5الحادثةزعيم L185
6النشر المعطوبزعيم L217
7طوارئ السجلاتزعيم L215
8جراحة الإعداداتزعيم L215
9إنقاذ Gitزعيم L236
10إعادة هيكلة دفعاتزعيم L216
11مسح جنائيزعيم L226
12نسخ احتياطي بالبدائلزعيم L294
13اختطاف PATHزعيم L294

السيناريوهان 12–13 صندوقا استغلال: تزرع حقن tar-checkpoint حقيقي / اختطاف PATH حقيقي وتُقيَّم على الأثر الذي ينتجه (يظهر ملف، يُسرَّ سر). تأثير الاستغلال يعمل فعلًا في بيئة الاختبار؛ حدود الامتياز محاكاة — لا شيء يعمل كجذر حقيقي.

اختبار تحديد المستوى

بعد البرنامج التعليمي للتشغيل الأول، يُسأل إن كنت تريد إجراء اختبار تحديد المستوى للتقدم للأمام. اقبل فيشغّل سؤالين لكل مستوى، 30 ثانية لكل سؤال، بدون صفحات دليل. أخطئ في واحد فذلك مستواك الابتدائي.

بيض عيد الفصح

8 إنجازات مخفية. شاشة الإحصائيات تعرض كم وجدت.

عناصر التحكم

المفتاحالإجراء
Enterإرسال الإجابة
Tabتبديل صفحة الدليل
Ctrl+dخروج (ملخص الجلسة)
Escوضع Vi العادي
?كل اختصارات المفاتيح (الوضع العادي)

البيانات

التقدم يُحفظ إلى ${XDG_DATA_HOME:-~/.local/share}/cmdchamp/.

الترخيص

MIT

الفئات