Linux وسطر الأوامر: من الصفر إلى الاحتراف
Linux هو نظام التشغيل الذي يشغّل معظم خوادم الإنترنت، وأجهزة السوبر كمبيوتر، ومليارات الأجهزة حول العالم. إتقان سطر الأوامر (Terminal) في Linux يفتح لك أبواباً لا حدود لها في التطوير، إدارة الأنظمة، والأتمتة.
سطر الأوامر في Linux - بوابة القوة والتحكم الكامل
🔍 الجزء الأول: مقدمة عن Linux
1.1 ما هو Linux ولماذا هو مهم؟
Linux هو نواة نظام تشغيل مفتوحة المصدر، طوّرها لينوس تورفالدز في 1991. ما يميز Linux:
- مجاني ومفتوح المصدر: حر في الاستخدام، التعديل، والتوزيع.
- آمن ومستقر: بنية صلاحيات صارمة، وتحديثات أمنية سريعة.
- مرن وقابل للتخصيص: يعمل على أي جهاز من الساعة الذكية إلى السوبر كمبيوتر.
- مدعوم مجتمعياً: مجتمع عالمي ضخم من المطورين.
💡 خلاصة الجزء الأول:
- ✅ Linux هو الأساس لمعظم البنية التحتية للإنترنت
- ✅ تعلمه استثمار حقيقي في مستقبلك المهني
🚀 الجزء الثاني: التثبيت وبدء العمل
2.1 التثبيت على Windows (WSL2)
يوفر Windows Subsystem for Linux 2 بيئة Linux كاملة داخل Windows:
wsl --install
wsl --install -d Ubuntu
sudo apt update && sudo apt upgrade -y
wsl 2.2 التثبيت على Ubuntu/Linux أصلي
sudo apt update
sudo apt install build-essential curl wget git -y
lsb_release -a 2.3 أول خطوة في Terminal
pwd
ls -la
mkdir my-linux-guide
cd my-linux-guide
touch readme.txt
echo "مرحباً Linux" > readme.txt
cat readme.txt
uname -a
whoami 💡 خلاصة الجزء الثاني:
- ✅ التثبيت أصبح سهلاً جداً على جميع الأنظمة
- ✅ أول 5 أوامر هي مفتاح الراحة في Terminal
📁 الجزء الثالث: إدارة الملفات والمجلدات
3.1 هيكلية نظام الملفات
يفهم Linux الملفات بشكل شجري يبدأ من الجذر /:
- /home مجلدات المستخدمين الشخصية
- /etc إعدادات النظام والبرامج
- /var البيانات المتغيرة (سجلات، قواعد بيانات)
- /tmp ملفات مؤقتة تُحذف عند إعادة التشغيل
- /bin & /usr/bin الأوامر والبرامج القابلة للتنفيذ
3.2 التنقل والإنشاء
cd /home/user
cd ..
cd ~
pwd
mkdir projects
mkdir -p a/b/c
touch newfile.txt
echo "بيانات" > file.txt 3.3 النسخ، النقل، والحذف
cp file.txt copy.txt
cp -r folder/ backup/
mv old.txt new.txt
mv file.txt /tmp/
rm file.txt
rm -r folder/
rm -rf folder/
rm -i file.txt 3.4 عرض والبحث في الملفات
cat file.txt
less file.txt
head file.txt
tail file.txt
grep "error" log.txt
grep -i "error" log.txt
grep -r "error" ./
find /home -name "*.txt"
locate readme.txt 💡 خلاصة الجزء الثالث:
- ✅ فهم الهيكلية الشجرية يسهل إدارة أي نظام
- ✅ احذر من
rm -rfواستخدم-iللتأكد - ✅
grepوfindأدوات لا غنى عنها للمحترفين
🔐 الجزء الرابع: الصلاحيات والمستخدمين
4.1 فهم صلاحيات الملفات
في Linux، لكل ملف 3 أنواع من الصلاحيات و 3 فئات من المستخدمين:
- الصلاحيات: القراءة (r)، الكتابة (w)، التنفيذ (x).
- الفئات: المالك (u)، المجموعة (g)، الآخرون (o).
chmod 755 script.sh
chmod 644 file.txt
chmod u+x script.sh
chmod g-w file.txt
sudo chown newuser file.txt
sudo chown ahmed:developers file.txt
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
sudo usermod -aG sudo newuser خلاصة الجزء الرابع:
- ✅ الصلاحيات هي خط الدفاع الأول لحماية النظام
- ✅ استخدم
chmod 755للبرامج و644للملفات العادية - ✅ تجنب
sudoإلا عند الضرورة القصوى
⚙️ الجزء الخامس: إدارة العمليات والخدمات
5.1 مراقبة العمليات
ps aux
top
htop
ps aux | grep nginx
kill 1234
kill -9 1234
pkill firefox
sudo systemctl status nginx
sudo systemctl restart nginx
crontab -e 💡 خلاصة الجزء الخامس:
- ✅ استخدم
topلمراقبة الموارد في الوقت الحقيقي - ✅
systemctlهو أفضل صديقك لإدارة الخدمات - ✅
crontabيوفر الوقت بأتمتة المهام المتكررة
🌐 الجزء السادس: الشبكات والاتصال
6.1 التحقق من الاتصال
ip addr show
ping google.com
traceroute google.com
ssh user@192.168.1.100
scp file.txt user@remote:/path/
rsync -avz ./folder/ user@remote:/backup/
ss -tuln خلاصة الجزء السادس:
- ✅
pingأول خطوة لتشخيص أي مشكلة إنترنت - ✅ استخدم
sshدائماً للاتصال بالخوادم - ✅
rsyncهو الأفضل لنسخ الملفات الضخمة
الجزء الثامن: Bash Scripting (الأتمتة)
8.1 أساسيات كتابة السكريبتات
السكريبتات (Scripts) تسمح لك بأتمتة المهام المتكررة وتوفير الوقت:
#!/bin/bash
# هذا سطر Shebang - يخبر النظام باستخدام Bash
# طباعة رسالة
echo "مرحباً بك في Linux"
# متغيرات
NAME="Ahmed"
echo "Hello User"
# قراءة مدخلات المستخدم
read -p "أدخل اسمك: " USERNAME
echo "أهلاً بك يا USERNAME"
# حلقة تكرار (Loop)
for i in 1 2 3 4 5
do
echo "هذا هو التكرار رقم i"
done
# الخروج بنجاح
exit 0 8.2 سكريبت نسخ احتياطي عملي
مثال على سكريبت مفيد للنسخ الاحتياطي التلقائي:
#!/bin/bash
# backup.sh - سكريبت نسخ احتياطي
SOURCE="/home/ahmed/projects"
BACKUP_DIR="/mnt/backup"
DATE=date +%Y-%m-%d
BACKUP_NAME="backup-DATE.tar.gz"
# إنشاء مجلد النسخ
mkdir -p "BACKUP_DIR"
# تنفيذ النسخ
tar -czf "BACKUP_DIR/BACKUP_NAME" "SOURCE"
# التحقق من النجاح
echo "✅ Backup process started" 8.3 تشغيل السكريبتات
# جعل السكريبت قابلاً للتنفيذ
chmod +x backup.sh
# تشغيل السكريبت
./backup.sh 💡 خلاصة الجزء الثامن:
- ✅ Bash Scripting يوفر ساعات من العمل اليدوي
- ✅ ابدأ بسكريبتات بسيطة ثم تطوّر
- ✅ استخدم التعليقات لتوضيح الكود
💾 الجزء التاسع: إدارة التخزين والأقراص
9.1 عرض معلومات الأقراص والأقسام
قبل التعامل مع الأقراص، يجب معرفة الهيكل الحالي للنظام:
# عرض جميع الأقراص والأقسام المتصلة
lsblk
# عرض معلومات مفصلة عن الأقراص
sudo fdisk -l
# عرض معرفات الأنظمة والأقراص
sudo blkid 9.2 مراقبة المساحة المستخدمة
أوامر ضرورية لمعرفة استهلاك التخزين ومنع امتلاء القرص:
# عرض المساحة الحرة والمستخدمة لكل قسم
df -h
# عرض حجم مجلد أو ملف محدد
du -sh /var/log
du -sh /home/*
# ترتيب المجلدات حسب الحجم (الأعلى أولاً)
du -ah /home | sort -rh | head -n 10 9.3 تركيب وفصل الأقراص (Mount & Unmount)
في Linux، يتم الوصول للأقراص عبر "نقاط التركيب" في شجرة الملفات:
# إنشاء نقطة تركيب
sudo mkdir -p /mnt/data
# تركيب القرص (مثال: sdb1)
sudo mount /dev/sdb1 /mnt/data
# التحقق من نجاح التركيب
df -h | grep sdb1
# فصل القرص بأمان
sudo umount /mnt/data 9.4 فحص وصيانة الأقراص
أدوات مهمة للحفاظ على سلامة البيانات والأنظمة:
# فحص نظام الملفات وإصلاح الأخطاء (يجب أن يكون غير مركب)
sudo fsck /dev/sda1
# عرض معلومات SMART عن صحة القرص الصلب
sudo smartctl -a /dev/sda
# تنظيف الحزم القديمة لتوفير مساحة
sudo apt clean
sudo apt autoremove 💡 خلاصة الجزء التاسع:
- ✅
lsblkوdf -hهما أول خطوتين عند التعامل مع التخزين - ✅ استخدم
umountدائماً قبل فصل أي قرص خارجي - ✅ راقب المساحة بانتظام لتجنب توقف الخدمات فجأة