مسار تعلّم

كيف تتعلم لينكس من الصفر: خطة من أول أمر حتى إدارة الخادم

آخر تحديث: · Skillaria.Top

يُفضَّل تعلم Linux من الصفر طبقةً طبقة: أولاً الطرفية ونظام الملفات، ثم المستخدمون والصلاحيات، وسكريبتات Bash، والحزم، والعمليات وsystemd، وبعد ذلك الأقراص والسجلات والشبكة وSSH وأمن الخادم. يحتاج كل مستوى إلى تطبيق عملي على جهاز افتراضي أو VPS رخيص، والهدف النهائي خادم مستقل يعمل فيه خدمة ومحمي.

تعلم Linux من الصفر أسهل مما يبدو، إذا سرت بالترتيب الصحيح وتدربت فوراً. أكبر خطأ يقع فيه المبتدئون هو قراءة الأوامر دون كتابتها، أو القفز إلى Docker وKubernetes قبل فهم العمليات والصلاحيات. فيما يلي خطة من تسع مراحل: ماذا تتعلم في كل مرحلة، وماذا تتدرب عليه، وكيف تعرف أنك أنهيتها.

من حيث الوقت، يحتاج التعلم بمعدل ساعة يومياً إلى ما بين شهرين وأربعة أشهر، لكن الوتيرة تختلف من شخص لآخر. والأهم من السرعة أن تكون قادراً بعد كل مرحلة على عمل شيء بيديك.

المرحلة 0: جهّز بيئة التدريب

يُتعلم Linux داخل Linux. وهذه الخيارات من الأبسط إلى الأقرب للواقع:

  • WSL2 على Windows: طرفية Ubuntu خلال دقائق. مناسب للأوامر والسكريبتات، لكن systemd والشبكة لا يتصرفان هناك كما على الخادم الحقيقي.
  • جهاز افتراضي (VirtualBox أو VMware أو UTM على Mac) مع Ubuntu Server أو Debian. يمكنك كسره دون عواقب والرجوع إلى اللقطات.
  • VPS رخيص من مزود سحابي: خادم حقيقي بعنوان IP عام، وهو أفضل ميدان للمراحل المتعلقة بالشبكة والأمن.

للبداية يُنصح بـ Ubuntu Server أو Debian، فلهما أكبر قدر من الوثائق والإجابات. ولا حاجة إلى واجهة رسومية، فالخوادم تُدار بالطرفية، فاعتد عليها من اليوم الأول.

المرحلة 1: الطرفية ونظام الملفات

الهدف: أن تتنقل في النظام بثقة وتتعامل مع الملفات دون فأرة.

  • التنقل: pwd، وls -la، وcd، والمسارات المطلقة والنسبية، و~، و.، و...
  • الملفات: cp، وmv، وrm، وmkdir -p، وtouch، وعرض الملفات بـ cat وless وhead وtail -f.
  • البحث: find، وwhich، وlocate.
  • المساعدة: man و--help. وقراءة دليل man مهارة تنفعك طوال حياتك.
  • بنية المجلدات: ما الموجود في /etc و/var/log و/home و/usr و/proc و/dev، وما هو التركيب (mount) وما هو inode.
  • محرر نصوص في الطرفية: nano في البداية، ثم أساسيات vim لأنه متوفر تقريباً على كل خادم.

تدريب: ابحث عن كل ملفات .conf في /etc التي تغيرت خلال الأسبوع الأخير (find /etc -name "*.conf" -mtime -7). افتح /etc/os-release وتعرّف على إصدار النظام. انظر ماذا يسجّل النظام في /var/log.

المرحلة 2: المستخدمون والمجموعات والصلاحيات

الصلاحيات أساس أمان Linux، وهي مصدر نصف أخطاء «Permission denied».

  • قراءة مخرجات ls -l: النوع، والصلاحيات، والمالك، والمجموعة.
  • chmod بالصيغة الرمزية والرقمية، وchown، وumask.
  • البتات الخاصة: SUID وSGID وsticky bit، ولماذا يكون /tmp متاحاً للكتابة للجميع، لكن لا يمكن حذف ملفات الآخرين فيه.
  • المستخدمون والمجموعات: useradd وusermod -aG وpasswd، والملفات /etc/passwd و/etc/shadow و/etc/group.
  • sudo وقواعد sudoers، والتحرير عبر visudo.

تدريب: أنشئ مستخدمين اثنين ومجلد مشروع مشتركاً يستطيع كلاهما إنشاء الملفات فيه، بينما لا يرى الآخرون شيئاً. تلميح: مجموعة، وchmod 2770، وSGID لوراثة المجموعة.

المرحلة 3: Bash وأدوات النصوص

الإدارة في جزء كبير منها معالجة للنصوص: السجلات والإعدادات ومخرجات الأوامر. وفي هذه المرحلة تتحول الطرفية من مجموعة أوامر إلى أداة عمل.

  • إعادة التوجيه والأنابيب: >، و>>، و2>&1، و|، وxargs.
  • المرشحات: grep (مع التعابير النمطية)، وsort، وuniq -c، وwc، وcut، وsed، وawk.
  • JSON وHTTP من الطرفية: curl وjq.
  • السكريبتات: shebang، والمتغيرات، والاقتباس، والشرط if و[[ ]]، والحلقات، والدوال، ورموز الإنهاء، وset -euo pipefail.

تدريب: احسب بسطر واحد عشرة عناوين IP الأكثر طلباً في سجل خادم الويب:

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

ثم اكتب سكريبت نسخ احتياطي للمجلد في أرشيف باسم يتضمن التاريخ، يحذف الأرشيفات الأقدم من سبعة أيام، ويُرجع رمز خطأ غير صفري عند الفشل.

المرحلة 4: الحزم والبيئة والجدولة

  • مدير الحزم: apt update وapt install وapt remove وapt search وdpkg -l. وفي أنظمة RHEL يُستخدم dnf. وافهم ما المستودع ولماذا توجد مفاتيح التوقيع.
  • متغيرات البيئة: env وexport وPATH، والملفات ~/.bashrc و~/.profile و/etc/environment، ومتى يُقرأ كل منها.
  • الجدولة: crontab -e، وصيغة الحقول الخمسة، ولماذا يتعطل أمر في cron بينما يعمل في الطرفية (البيئة وPATH مختلفان).

تدريب: ثبّت nginx من المستودع، وأضف مجلد سكريبتاتك إلى PATH، واضبط سكريبت النسخ الاحتياطي من المرحلة 3 ليعمل كل ليلة عبر cron مع تسجيل مخرجاته في سجل.

المرحلة 5: العمليات وsystemd

في هذه المرحلة تبدأ بفهم ما يحدث فعلاً داخل النظام.

  • العمليات: ps aux، وtop/htop، وPID وPPID، والحالات، والأولويات (nice)، والإشارات وkill.
  • الحمل: متوسط الحمل، والذاكرة وswap (free -h)، ومعنى «عملية في الحالة D».
  • التصحيح: lsof لمعرفة الملفات والمنافذ التي تفتحها العملية، وstrace لمعرفة استدعاءات النظام التي تُجريها وأين تتعثر.
  • systemd: الوحدات، وsystemctl status/start/enable، وملف وحدة خاص فيه Restart=on-failure، والمؤقتات بدلاً من cron.
  • السجلات: journalctl -u و-f و-b و-p err، والتدوير، وrsyslog، وإحصاءات الأداء عبر sysstat (sar وiostat).

تدريب: اجعل تطبيقاً صغيراً (على الأقل python3 -m http.server) خدمة systemd تعمل بمستخدم مستقل. أنهِ العملية بـ kill -9، وتأكد أن systemd أعاد تشغيلها، وابحث في السجل عن تسجيل إعادة التشغيل.

المرحلة 6: الأقراص وLVM وRAID

  • الأجهزة والأقسام: lsblk، وblkid، وfdisk أو parted، وأنظمة الملفات ext4 وXFS، وmkfs.
  • التركيب: mount، و/etc/fstab باستخدام UUID، والتحقق بـ mount -a.
  • المساحة: df -h، وdf -i، وdu -sh، والبحث عما يملأ القرص.
  • LVM: وحدات فيزيائية، ومجموعات وحدات، ووحدات منطقية، وتوسيع القسم دون توقف.
  • RAID برمجي عبر mdadm: فهم المستويات 0 و1 و5 و10، وأن RAID ليس نسخة احتياطية.

تدريب: أضف قرصين إلى الجهاز الافتراضي، واجمعهما في LVM، وأنشئ وحدة منطقية، وركّبها عبر fstab، ثم وسّعها بالأمر lvextend -r.

المرحلة 7: الشبكة

  • TCP/IP بالقدر الكافي للتشخيص: IP، والقناع، والبوابة، والمنفذ، وTCP وUDP.
  • الأوامر: ip a، وip r، وss -tlnp، وping، وtraceroute/mtr، وcurl -v، وnc.
  • DNS: كيف يعمل الحل، و/etc/hosts، و/etc/resolv.conf، وdig، وresolvectl.
  • إعداد الشبكة في توزيعتك (netplan في Ubuntu، وNetworkManager في غيرها).
  • التقاط الحزم: tcpdump عندما لا تنفع الطرق الأخرى.

تدريب: حدد أي عملية تستمع على كل منفذ مفتوح في خادمك. حلّل سبب عدم وصول خدمة تستمع على 127.0.0.1 من الخارج، وأصلحها.

المرحلة 8: العمل عن بُعد: SSH ونقل الملفات

  • SSH: المفاتيح (ssh-keygen -t ed25519 وssh-copy-id)، وملف ~/.ssh/config، وssh-agent، وتمرير المنافذ (ssh -L)، والخادم الوسيط عبر ProxyJump.
  • النسخ: scp وrsync -avz --delete، وسبب تفوق rsync في المزامنة.
  • أنظمة الملفات الشبكية: NFS بين خوادم Linux، وSMB (Samba) لتبادل الملفات مع Windows.

تدريب: اضبط الدخول إلى VPS بالمفتاح فقط، واكتب له اسماً قصيراً في ~/.ssh/config، وزامن مجلداً إلى الخادم يومياً عبر rsync.

المرحلة 9: أمن الخادم

  • جدار الحماية: مبدأ «ممنوع كل ما لم يُسمح به صراحةً»، وufw للحالات البسيطة، وnftables لفهم ما يجري في الخلفية.
  • fail2ban: حظر عناوين IP بعد سلسلة من محاولات الدخول الفاشلة، والتحقق بـ fail2ban-client status sshd.
  • إعداد sshd: منع الدخول بكلمة المرور ومنع الدخول بحساب root.
  • تحديثات الأمان وتثبيتها تلقائياً (unattended-upgrades في Debian وUbuntu).
  • GPG: التحقق من توقيع الحزم والملفات، وتشفير النسخ الاحتياطية.

تدريب: افتح في جدار الحماية المنافذ 22 و80 و443 فقط، وفعّل fail2ban، وبعد يوم انظر إلى حالته لترى كم عنوان أصبح محظوراً.

المشروع النهائي: ابنِ الخادم كاملاً

أفضل اختبار لمعرفتك بـ Linux أن تبني خادماً من الصفر دون مساعدة:

  1. VPS جديد، ومستخدم خاص بك مع sudo، والدخول بمفتاح SSH، وتعطيل كلمات المرور وحساب root.
  2. جدار حماية وfail2ban، وتحديثات أمان تلقائية.
  3. خادم ويب وتطبيق كخدمة systemd مع إعادة تشغيل تلقائية.
  4. قرص أو وحدة منطقية منفصلة للبيانات، مركّبة عبر fstab.
  5. نسخ احتياطي مجدول (cron أو مؤقت systemd) إلى جهاز آخر عبر rsync، مع سجل وتحقق من الاستعادة.
  6. تعليمات موجزة لإعادة بناء كل شيء من جديد.

إذا استطعت إنجاز هذه القائمة وشرح كل خطوة فيها، فلديك الأساس للعمل كمدير نظام أو مهندس DevOps. والخطوة التالية الطبيعية هي الحاويات وأتمتة الإعدادات والمراقبة.

كيف تتعلم بكفاءة أكبر

  • اكتب الأوامر بنفسك.النسخ من المقال لا يُحفظ، أما الكتابة والأخطاء فتُحفظ.
  • اكسر ثم أصلح.اكسر fstab أو صلاحيات ~/.ssh في الجهاز الافتراضي، ثم أعد النظام إلى حالته. وهذه الخبرة مقدّرة في المقابلات.
  • دوّن ملاحظاتك.ملف شخصي للأوامر مع أمثلة أفضل من أي ورقة مرجعية لغيرك.
  • اقرأ السجلات.تشرح السجلات تقريباً أي مشكلة في Linux، فتعوّد أن تنظر فيها أولاً.

الخلاصة

الطريقة لتعلم Linux من الصفر هي التقدم بالطبقات: الطرفية والملفات، ثم الصلاحيات، فBash، فالحزم، فالعمليات وsystemd، فالأقراص، فالشبكة، فSSH، فالأمن. وفي كل مرحلة تحل مشكلة عملية في بيئتك. والهدف النهائي أن تبني خادماً يعمل فيه خدمة وتؤمّنه بنفسك. وعلى هذا المسار نفسه بُنيت دورة Linux على المنصة، من المحاضرة التمهيدية حتى المشروع النهائي.

الأسئلة الشائعة

كم يحتاج تعلم Linux من الصفر؟

مع ساعة يومياً من التعلم، يكتسب معظم الناس الأساسيات اللازمة لإدارة الخادم خلال بضعة أشهر. والثقة تأتي من التدريب على مهام حقيقية، لذلك فالانتظام أهم من إجمالي الساعات.

هل أحتاج إلى معرفة البرمجة لتعلم Linux؟

لا، يمكنك البدء دون ذلك. لكنك ستبدأ فعلياً بالبرمجة عند مرحلة سكريبتات Bash، وهذه المهارات تفيدك لاحقاً في الأتمتة.

هل يمكن تعلم Linux على Windows؟

نعم، عبر WSL2 أو جهاز افتراضي. أما لمواضيع systemd والأقراص والشبكة فالأفضل جهاز افتراضي كامل أو VPS.

هل ينبغي أن أجعل Linux النظام الأساسي على حاسوبي؟

هذا مفيد، لكنه ليس ضرورياً. في إدارة الأنظمة الأهم هو العمل مع خادم Linux عبر الطرفية، لا استخدام سطح المكتب الرسومي.

أي توزيعة أختار كمبتدئ؟

Ubuntu Server أو Debian: فلديهما وثائق كثيرة، والمهارات تنتقل بسهولة إلى التوزيعات الأخرى. والفرق الأساسي في عائلة RHEL هو مدير الحزم dnf.

تعلّم هذا الموضوع بالفيديو

يُشرح هذا الموضوع بالتفصيل مع التطبيق العملي في دورة «Linux: с нуля до уверенного администрирования».

الانتقال إلى الدورة