لا يوجد قسم مطابق.
ما هي ShamashCyber# ShamashCyber مساحة عمل تطويرية داخل المتصفح. بعد تسجيل الدخول تكون داخل جلسة لينكس تحتوي ملفات مشروعك وطرفية. يمكنك استخدام Git وتشغيل خادم ويب محلي وفتحه عبر عنوان HTTPS.
ليست محررًا يشغّل كودك في مكان آخر، وليست بيئة تعليمية تجريبية. الأوامر التي تكتبها تعمل داخل جلستك.
نقطة الدخول الوحيدة هي workspace.shamashcyber.com. وكل ما عداها في هذا الموقع توثيق.
أول خمس دقائق# افتح مساحة عمل ثم استخدم الطرفية لتتأكد أين أنت وما الأدوات المتاحة. هذه الفحوص لا تغيّر شيئًا وتختصر عليك المشكلات لاحقًا.
terminal
نسخ
pwd
whoami
git --version
python3 --version
mkdir -p ~/projects/first-session
cd ~/projects/first-session
إذا لم يُعثر على أمر هذا يعني أن صورة مساحة العمل لا تتضمن تلك الأداة، ولا يعني أن مساحة العمل معطلة. اسأل من أعدّ الصورة أو استخدم أداة متوفرة.
أين تحفظ عملك# احفظ المشاريع في مجلد عادي تحت مجلد المنزل، مثل ~/projects. التخزين منفصل عن الجلسة، لذلك إيقاف مساحة العمل لا يحذف تلك الملفات.
terminal
نسخ
mkdir -p ~/projects/persistence-test
cd ~/projects/persistence-test
date > created.txt
printf 'persistence test\n' >> created.txt
cat created.txt
أوقف مساحة العمل بالطريقة المعتادة ثم شغّلها مجددًا واقرأ الملف. إن كان موجودًا فالاستمرارية تعمل كما هو متوقع.
terminal
نسخ
cat ~/projects/persistence-test/created.txt
لا تحفظ عملك في /tmp المجلدات المؤقتة للبيانات المؤقتة. ما تحتاجه الأسبوع القادم مكانه تحت مجلد المنزل، وما لا تحتمل فقدانه مكانه مستودع Git بعيد أيضًا.
أوامر ستستخدمها يوميًا# الطرفية صدفة لينكس عادية. هذه الأوامر تكفي للتنقل وفحص الملفات في معظم جلسات المختبر.
pwd اطبع المجلد الذي أنت فيه الآن.
ls -la اعرض الملفات، بما فيها المخفية، مع الصلاحيات.
cd ~/projects انتقل إلى مجلد مشاريعك.
mkdir demo أنشئ مجلدًا باسم demo.
cp -r src dest انسخ ملفًا، أو مجلدًا باستخدام -r.
mv old new انقل ملفًا أو أعد تسميته.
cat file اطبع محتوى ملف.
انتبه لأمر rm الحذف من الصدفة فوري ولا توجد سلة محذوفات. اقرأ المسار قبل الضغط على Enter، وكن أشد حذرًا عند اجتماع -r و-f.
استخدام Git من مساحة العمل# السير المعتاد هو استنساخ المستودع، وإنشاء فرع لعملك، ومراجعة ما تغيّر، ثم تسجيل التغيير عندما تكون النتيجة جاهزة.
git
نسخ
cd ~/projects
git clone <repository-url>
cd <repository-directory>
git switch -c feature/my-work
git status
git add .
git commit -m "finish lab work"
المصادقة استخدم تسجيل الدخول أو تكامل Git الذي توفره مساحة عملك. لا تلصق رمز وصول في ملف مصدري أو ملف README أو سكربت، لأن هذه الملفات تُسجَّل في المستودع.
كيف تعمل المعاينات# تطبيقك يعمل داخل مساحة العمل. وعندما يستمع على منفذ، تستطيع مساحة العمل عرضه عبر عنوان HTTPS في متصفحك.
terminal
نسخ
mkdir -p ~/projects/preview-test
cd ~/projects/preview-test
printf '<!doctype html><meta charset="utf-8"><h1>Preview works</h1>' > index.html
python3 -m http.server 3000 --bind 0.0.0.0
لماذا 0.0.0.0 العملية المرتبطة بـ127.0.0.1 فقط قد لا تكون قابلة للوصول من موجّه المعاينة. استمع على 0.0.0.0 ما لم يوثّق إطار العمل خلاف ذلك.
اترك العملية تعمل، ثم استخدم أداة المنافذ في واجهة مساحة العمل لفتح المنفذ 3000. لا تفتح المنفذ 3000 على جدار حماية الخادم.
مثال بايثون عملي# يستخدم المكتبة القياسية فقط. يقدّم صفحة واحدة على المنفذ 3000، وهذا يكفي للتأكد من أن المعاينات تعمل من أولها إلى آخرها.
app.py
نسخ
cat > app.py <<'PY'
from http.server import BaseHTTPRequestHandler, HTTPServer
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
body = b"<h1>Hello from ShamashCyber</h1>"
self.send_response(200)
self.send_header("Content-Type", "text/html; charset=utf-8")
self.send_header("Content-Length", str(len(body)))
self.end_headers()
self.wfile.write(body)
HTTPServer(("0.0.0.0", 3000), Handler).serve_forever()
PY
python3 app.py
اتركه يعمل ثم افتح المنفذ 3000 من واجهة مساحة العمل.
مثال Node.js عملي# استخدم هذا إن كان Node.js متوفرًا في مساحة عملك. لا يحتاج أي حزم npm.
server.js
نسخ
node --version
cat > server.js <<'JS'
const http = require("http");
http.createServer((req, res) => {
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
res.end("<h1>Hello from ShamashCyber</h1>");
}).listen(3000, "0.0.0.0");
JS
node server.js
قراءة عنوان المعاينة# عنوان المعاينة مبني من جلستك. كل جزء قبل النطاق يشير إلى شيء محدد.
https:// 3000 -- main -- web-lab -- student .shamashcyber.com
المنفذ 3000
الفرع main
مساحة العمل web-lab
المستخدم student
لا تخمّن العنوان جزءا مساحة العمل والمستخدم يأتيان من الجلسة الحقيقية. فتح المنفذ من واجهة مساحة العمل هو الطريقة الموثوقة للحصول على عنوان يعمل.
عندما لا يعمل شيء ما# معظم مشكلات جلسة المختبر هي واحدة من هذه الخمس.
عنوان المعاينة لا يفتح
تأكد أن العملية ما زالت تعمل وأنها مرتبطة بـ0.0.0.0 لا 127.0.0.1، ثم تأكد أن رقم المنفذ يطابق المنفذ الذي فتحته.
المنفذ مستخدم بالفعل
عملية من تشغيل سابق ما زالت تستمع. اعثر عليها وأوقفها، أو ابدأ على منفذ آخر.
terminal
نسخ
ss -ltnp | grep 3000
ملفاتي مفقودة بعد إعادة التشغيل
تحقق إن كان العمل تحت /tmp أو مسار مؤقت آخر. الملفات تحت مجلد المنزل يفترض أن تكون موجودة.
الأمر غير موجود
صورة مساحة العمل لا تتضمن تلك الأداة. تأكد بـ--version واستخدم بديلًا مثبتًا بدل افتراض أن الجلسة معطلة.
Git يرفض الدفع
غالبًا مشكلة مصادقة، أو أن الفرع تقدّم على المستودع البعيد. اقرأ نص الخطأ، ثم اجلب التغييرات وادمجها أو أعد الأساس قبل الدفع مجددًا.
terminal
نسخ
git fetch origin
git status