يبحث العديد من المبرمجين والمُطورين عن كيفية تعلم لينكس من الصفر حتى الاحتراف، وفي حقيقة الأمر هناك مئات المصادر المتاحة بشكل مجاني على الإنترنت التي سوف تُمكنك من تعلم لينكس لكن أغلب هذه المصادر دائماً ما يتناول لينكس بشكل سطحي كمجموعة من الأوامر التي يتم كتابتها في شاشة سوداء في انتظار بعض النتائج. من خلال هذه المقالة سوف نُبحر معاً في نظام لينكس بدء من ماهية ونشأة هذا النظام وحتى التعامل معه بشكل احترافي.
محتويات
ما هو لينكس ؟
Linux هو نواة نظام تشغيل مجاني ومفتوح المصدر تم إنشاؤه في الأصل بواسطة Linus Torvalds في عام 1991، وهو بمثابة المُكون الأساسي لتوزيعات لينكس المختلفة (Linux Distributions)، وهي أنظمة تشغيل كاملة مبنية حول نواة لينكس (Linux Kernel).

لماذا ينبغي عليك تعلم لينكس ؟
(1) نظام مفتوح المصدر
على العكس من نظام Windows، فإن نظام Linux مفتوح المصدر، مما يعني أن الكود المصدري (Source Code) لنظام التشغيل متاح لك بحيث يمكنك التغيير والتلاعب به كما تشاء، بشرط أن تكون على دراية جيدة بما تفعل خشية التسبب في انهيار نظام التشغيل بالكامل أو ما يُعرف بـ (System Failure) مما قد يضطرك لإعادة تنصيب توزيعة لينكس أخرى على جهازك الشخصي.
نظام Linux شفاف تمامًا، مما يعني أنه يمكننا رؤية جميع أجزاء عمله ومعالجتها، وليس الأمر كذلك مع ويندوز.
تحاول شركة مايكروسوفت جاهدة أن تجعل من الصعب قدر الإمكان معرفة ما يحدث خلف الكواليس لأنظمة التشغيل الخاصة بها، بينما في نظام التشغيل Linux، يكون لديك ضوء مُسلط مباشرة على كل مُكون من مُكونات النظام، وهذا يجعل العمل مع Linux أكثر فعالية.
(2) النظام المُفضل لمختبري الاختراق
أكثر من 90% من أدوات اختبار الاختراق (Penetration Testing) مكتوبة خصيصاً لنظام لينكس، مما يعني كونه نظام التشغيل المُفضل لخبراء أمن المعلومات، كما أن هناك توزيعات لينكس مُخصصة لهذا الأمر مثل توزيعة كالي لينكس (Kali Linux) وتوزيعة باروت (Parrot).
(3) الأمان
يعد الأمان أحد الاعتبارات المهمة للسيرفرات، لهذا يتمتع Linux بسمعة طيبة لكونه أكثر أمانًا من نظام Windows. ويرجع ذلك إلى عدة عوامل، بما في ذلك طبيعة النظام لكونه مفتوح المصدر، والتي تسمح للمطورين بتحديد الثغرات الأمنية وإصلاحها بسرعة.
بالإضافة إلى ذلك، يتمتع Linux بتصميم معياري، مما يعني أنه من السهل إزالة أو تعطيل بعض المكونات غير الضرورية التي يمكن أن تسبب مخاطر أمنية، في المقابل، يتمتع Windows بتصميم أكثر تجانسًا، مما يزيد من صعوبة تأمينه.
(4) قابل للتعديل
إن طبيعة Linux كنظام مفتوح المصدر تجعله قابل للتخصيص بدرجة كبيرة. وهذا يعني أنه يمكن للمسؤولين تخصيص نظام التشغيل لتلبية احتياجاتهم الخاصة، بما في ذلك تعديل إعدادات النظام، وتعديل نواة النظام (Kernel)، وإنشاء برامج نصية مخصصة لأتمتة المهام.
تعد هذه المرونة أمرًا بالغ الأهمية لمسؤولي السيرفرات الذين يحتاجون إلى إنشاء حلول مُخصصة لمؤسساتهم.
(5) الأداء
يشتهر Linux بأدائه، خاصة في الحوسبة عالية الأداء والتطبيقات الأخرى الصعبة، ويرجع ذلك إلى تصميمه الخفيف، والذي يستخدم موارد أقل من Windows، مما يسمح له بالعمل بكفاءة أكبر، بالإضافة إلى ذلك، فإن التصميم المعياري لنظام التشغيل Linux يسمح للمسؤولين بإزالة المكونات غير الضرورية، مما يؤدي إلى تحسين الأداء بشكل أكبر.
(6) دعم المُطورين
على الرغم من أن Linux مفتوح المصدر ومتاح مجانًا، إلا أنه يتمتع أيضًا بمجتمع قوي من المطورين والمستخدمين الذين يقدمون الدعم ويساهمون في تطويره.
هذا يعني أنه يمكن للمستخدمين الوصول إلى مجموعة كبيرة من المعلومات والبرامج التعليمية والمنتديات حيث يمكنهم العثور على إجابات لأسئلتهم والحصول على مساعدة في استكشاف المشكلات وإصلاحها.
من أشهر المنتديات التي قد تحتاج إليها في رحلة تعلم لينكس هو موقع Ask Ubuntu والذي يحتوي على آلاف الأسئلة والمشاكل التي قد تواجهها أثناء تعلم نظام لينكس.

ما هي أفضل توزيعات لينكس للمبتدئين؟
- Linux Mint
- Ubuntu
- Manjaro Linux
- Zorin OS
كيف تقوم بتنصيب نظام لينكس على جهازك؟
قد يجد البعض مشكلة في تنصيب نظام لينكس بحيث يظن أنه مُضطر لإزالة نظام التشغيل الحالي في حال كونه يعمل بنظام تشغيل مختلف مثل ويندوز.
ولكن لا داعي للقلق يُمكنك تنصيب نظام لينكس داخل نظام ويندوز دون التأثير بأي شكل على نظامك الحالي باستخدام تقنية تُعرف بـ Virtual Machine وهي تقنية تسمح لك بإضافة نظام تشغيل أو أكثر من نظام على جهازك بشكل منفصل تماماً عن النظام الحالي.
1- قم بتحميل برنامج لتنصيب لينكس على جهازك باستخدام Virtual Machine التي تحدثنا عنها سابقاً (VirtualBox)
2- بفرض أنك تريد تنصيب توزيعة اوبنتو، لذا ينبغي عليك تحميل توزيعة اوبنتو من الموقع الرسمي من هذا الرابط Ubuntu 64 ISO
3- قم باتباع التعليمات الموجودة على موقع اوبنتو الرسمي لتنصيب التوزيعة على جهازك بشكل صحيح باستخدام برنامج Virtual Box عبر هذا الرابط (Run Ubuntu Using Virtual Box)

أشهر المصطلحات في نظام لينكس
1- Root
كما هو الحال في كل أنظمة التشغيل تقريبًا، يوجد لدى لينكس مسؤول أو حساب مستخدم متميز، مُصمم للاستخدام من قبل شخص موثوق به يمكنه القيام بأي شيء تقريبًا داخل النظام، وقد يتضمن ذلك أشياء مثل إعادة تكوين النظام أو إزالة بعض مكوناته وإضافة مستخدمين وتغيير كلمات المرور.
في نظام لينكس، يُسمى هذا الحساب بـ (Root)، قد لا تعمل بعض البرامج أو الوظائف داخل النظام إلا بواسطة هذا المستخدم، ويُمكن تشبييها بـ (Run as Administrator) الموجودة في نظام تشغيل ويندوز.
2- Kali Linux
هي توزيعة لينكس مُصممة بشكل أساسي لاختبار الاختراق والقرصنة الأخلاقية ومهام الأمن السيبراني، وهو عبارة عن نظام تشغيل مفتوح المصدر يوفر مجموعة واسعة من الأدوات المُساعدة لُمختبري الاختراق والباحثين الأمنيين لتقييم الأنظمة والتطبيقات والشبكات وتأمينها من الثغرات.
3- Directory
هو نفس المجلد في نظام التشغيل ويندوز أو ما يُعرف بـ (Folder)، حيث يوفر طريقة لتنظيم الملفات، عادةً ما تكون بطريقة هرمية.
4- Home
هو المسار الرئيسي لكل مستخدم على النظام
5- Script
سكريبت في سياق نظام التشغيل لينكس هو ملف يحتوي على مجموعة من الأوامر والتعليمات التي يمكن تنفيذها تلقائياً عند تشغيل السكربت.
تتيح هذه الأوامر للمستخدم إجراء مهام متعددة بسرعة وبشكل تلقائي دون الحاجة إلى إدخال الأوامر يدوياً في واجهة الأوامر.
السكربتات (Scripts) في لينكس تكتب بلغة السكربت المفضلة، والتي قد تكون Bash (معظم السكربتات في لينكس تكتب بلغة Bash) أو بايثون أو Perl أو غيرها من لغات البرمجة.
تساعد السكربتات في أتمتة مهام مختلفة مثل إدارة الملفات، ومعالجة البيانات، وتكرار أوامر معينة، والتفاعل مع النظام، وقد تحتاج بشكل أساسي إلى تعلم لغة بايثون حتى تتمكن من اكتساب هذه المهارة بشكل قوي.
6- Kernel
في نظام التشغيل Linux، الـ Kernel (أو النواة باللغة العربية) هو الجزء الأساسي من النظام. وهو الجزء الذي يدير الموارد الأساسية لجهاز الكمبيوتر ويتفاعل مع أجزاء الهاردوير، وهو عبارة عن برمجية مكتوبة بلغة C ومكونة من مجموعة من الأجزاء والموديولات (Kernel Modules) التي تدير العمليات الأساسية في النظام.
7- Shell
في نظام التشغيل لينكس (وأنظمة Unix بشكل عام)، “شيل” (Shell) هو واجهة المستخدم النصية التي تمكن المستخدمين من التفاعل مع النظام وتنفيذ الأوامر. Shell هو نوع خاص من البرمجيات التي تسمح للمستخدمين بإدخال أوامر والتفاعل مع النظام عبر (Command Line Interface – CLI). من أشهرها Bash Shell وهو اختصار لـ (Bourne Again Shell)
8- Permission
الترجمة الحرفية لها هي (الصلاحيات)، ففي نظام لينكس يتم إسناد مجموعة من الصلاحيات لكل الملفات والمجلدات داخل النظام، وتنقسم إلى ثلاثة أجزاء وهي:
- صلاحية القراءة (Read)
- صلاحية الكتابة (Write)
- صلاحية التشغيل أو التنفيذ (Execute)
9- Linux Distribution
توزيعة Linux هي نسخة أو إصدار من نظام التشغيل Linux، تتكون من نواة Linux ومجموعة من البرامج والأدوات الأخرى، يتم تطوير توزيعات Linux بواسطة مجموعة من المطورين سواء كانوا أفراد أو شركات؛ من أشهر توزيعات لينكس
- Debian
- Fedora
- Arch Linux
- Ubuntu
- Kali Linux
10- Cron Job
هي مهمة مُجدولة يتم تشغيلها في النظام في وقت محدد لغرض تنفيذ مهمة ما داخل النظام. من أشهر استخداماتها هي:
- عمليات النسخ الاحتياطي
- إدارة أنظمة التشغيل والسيرفرات
- إرسال رسائل البريد الإلكتروني أو الإشعارات
11- Command
هي الأوامر التي يتم توجيهها للنظام لتنفيذ مهمة محددة، يمكن أن يكون الأمر عبارة عن أمر أساسي، مثل (ls) والذي يستخدم لعرض قائمة الملفات والمجلدات
12- Package Manager
مدير الحزم (Package Manager) هو برنامج يمكّنك من تثبيت وتحديث وإزالة البرامج في نظام التشغيل Linux، من أشهر هذه البرامج
- Advanced Package Tool (APT)
- RedHat Package Manager (RPM)
13- Terminal
يشير مصطلح “Terminal” إلى التطبيق الذي يُمكن المستخدمين من التفاعل مع نظام التشغيل وتنفيذ الأوامر باستخدام Command Line Interface حيث تساعد على توفير وسيلة للمستخدمين لإدخال الأوامر وعرض النتائج بشكل نصي دون الحاجة إلى واجهة المستخدم الرسومية (Graphical User Interface).
ما هي الموضوعات الأساسية في رحلة تعلم لينكس؟
- Understanding the Linux Distributions
- Command Line
- User and Group Management
- File Permissions and Ownership
- Package Management
- File System Navigation and Manipulation
- Processes and Services
- Shell Scripting
- System Information
- File Archiving and Compression
أشهر الأوامر في لينكس
- ls: لعرض كافة الملفات والمجلدات داخل المسار الحالي أو بداخل أي مُجلد آخر
- pwd: طباعة اسم المسار الحالي على الشاشة
- cd /directory/subdirectory: للإنتقال إلى مسار معين، حروف (cd) هي اختصار لـ (Change Directory)
- touch file.txt: إنشاء ملف جديد
- nano file.txt: يستخدم لفتح ملف معين باستخدام محرر نصوص في لينكس يُدعى (nano)
- cat file.txt: طباعة محتوى ملف معين على شاشة terminal
- nl file.txt: طباعة محتوى ملف معين مع إضافة ترقيم لكل سطر داخل الملف
- diff file1 file2: لمقارنة محتوى ملفين مختلفين
- sort file: لترتيب محتوى ملف معين ترتيب أبجدي
- uniq file: لحذف المحتوى المُكرر بداخل ملف
- wc -w file.txt: لحساب عدد الكلمات بداخل ملف
- rm file.txt: لحذف ملف معين
- mv old_name new_name: تسمية ملف
- cp file /home/file-copy: نسخ ملف أو مجلد
- mkdir directory_name: إنشاء مجلد جديد
- rmdir directory_name: حذف مجلد فارغ
- rm -r directory_name: حذف مجلد بالإضافة لحذف كافة الملفات الموجودة بداخله
- clear: حذف كل المحتوى الموجود على شاشة terminal
- date: لعرض التاريخ والوقت الحالي بنظام التشغيل
- ps: طباعة كافة العمليات الحالية في نظام التشغيل
- locate file: البحث عن ملف معين
- whoami: طباعة اسم المستخدم الحالي
- adduser username: إضافة مستخدم جديد للنظام
- addgroup group_name: إضافة مجموعة مستخدمين جديدة للنظام
- sudo command: تنفيذ أي أمر باستخدام صلاحيات Root user
- chmod 777 file: إعطاء صلاحيات القراءة والكتابة والتشغيل لأي ملف
- apt-get install package_name: إضافة حزمة من البرامج للنظام
- apt-get remove package_name: حذف حزمة محددة من البرامج داخل النظام
- history: لعرض الأوامر السابقة في شاشة terminal
- head file.txt: طباعة العشرة أسطر الأولى في بداية أي ملف
- tail file.txt: طباعة العشرة أسطر الأخيرة في نهاية أي ملف
- man ls: لمعرفة معلومات تفصيلية عن أي أمر في لينكس
ما هي أفضل الكتب في تعلم لينكس؟
- How Linux Works, 3rd Edition: What Every Superuser Should Know
- The Linux Command Line, 2nd Edition: A Complete Introduction
- Efficient Linux at the Command Line: Boost Your Command-Line Skills
- Linux Bible
- Linux All-in-One For Dummies by Emmett Dulaney
- Linux Pocket Guide by Daniel J. Barrett
- Ubuntu Unleashed by Matthew Helmke
- Linux Command Line and Shell Scripting Bible by Richard Blum and Christine Bresnahan
- Linux Basics for Hackers: Getting Started with Networking, Scripting, and Security in Kali
ما هي أشهر الشهادات لاحتراف نظام لينكس؟
- Linux+ CompTIA
- RHCE (Red Hat Certified Engineer)
- GCUX (GIAC Certified UNIX System Administrator)
- Oracle Linux OCA & OCP
- LPI (Linux Professional Institute) Certifications
ما هي الوظائف المتاحة في حالة تعلم نظام لينكس بطريقة احترفية؟
- Linux System Administrator
- DevOps Engineer
- Security Analyst
- Linux Kernel Developer
- Cybersecurity Specialist
ما هي عيوب نظام Linux؟
(1) أصعب في التعلم
يمكن أن يكون نظام لينكس صعبًا في التعلم للمستخدمين المبتدئين، هناك العديد من الأوامر (commands) التي يتعين على المستخدمين تعلمها من أجل استخدام النظام بشكل فعال.
(2) دعم الأجهزة
نظام لينكس لا يدعم جميع أجهزة الهاردوير، فقد تواجه بعض المشكلات في تشغيل بعض بطاقات الرسومات والطابعات وأجهزة أخرى.
(3) توافر البرامج
على الرغم من أن هناك مجموعة واسعة من البرامج المتاحة لنظام لينكس، إلا أن بعض البرامج الشهيرة غير متوفرة لنظام لينكس، على سبيل المثال، بعض ألعاب الفيديو الشهيرة لا تعمل على نظام لينكس.
(4) مجتمع المطورين
مجتمع مستخدمي لينكس مُجزأ، حيث يوجد العديد من التوزيعات المختلفة لنظام التشغيل، هذا يمكن أن يجعل من الصعب العثور على الدعم والمساعدة إذا واجهت مشكلة ما في التعامل مع توزيعة لينكس المستخدمة في نظام التشغيل الخاص بك.
بشكل عام، نظام لينكس نظام تشغيل رائع، ولكن له بعض العيوب التي يجب أن تكون على علم بها قبل استخدامه، إذا كنت مستخدمًا مبتدئًا، فقد ترغب في التفكير في استخدام نظام تشغيل أسهل في الاستخدام، مثل macOS أو Windows.
آخر تحديث: 28 سبتمبر 2023
المصادر
- Linux Basics for Hackers
- https://www.tutorialspoint.com/5-reasons-why-linux-is-better-than-windows-for-servers
- https://www.whizlabs.com/blog/top-5-linux-certifications