Logo مرجع أوامر السيرفر

من التعلم إلى الاحترافية — Linux / Sudo / Docker / Git / Nginx / UFW

🔍
0 أمر
|
0 مبتدئ
0 متوسط
0 متقدم
0 احترافي
🌱 أوامر المبتدئين
ls عرض محتويات المجلد مبتدئ
يُستخدم لعرض الملفات والمجلدات الموجودة في المسار الحالي.
# عرض الملفات بشكل بسيط
ls

# عرض الملفات مع التفاصيل (الصلاحيات، الحجم، التاريخ)
ls -la

# عرض الملفات حسب الحجم (الأكبر أولاً)
ls -lhS
💡 تلميح: الاختصار -la يعني: l = تفاصيل، a = إظهار الملفات المخفية.
cd تغيير المجلد الحالي مبتدئ
يُستخدم للتنقل بين المجلدات في نظام الملفات.
# الانتقال إلى مجلد معين
cd /var/www/html

# الرجوع خطوة واحدة للخلف
cd ..

# الانتقال إلى مجلد المنزل (Home)
cd ~

# الرجوع إلى المجلد السابق
cd -
pwd عرض المسار الحالي مبتدئ
يطبع المسار الكامل للمجلد الذي أنت فيه حالياً.
# عرض المسار الحالي
pwd

# عرض المسار الحقيقي (يفك الروابط الرمزية)
pwd -P
mkdir إنشاء مجلد جديد مبتدئ
يُنشئ مجلد/مجلدات جديدة في المسار المحدد.
# إنشاء مجلد واحد
mkdir my-project

# إنشاء مجلدات متداخلة (الأب ثم الابن)
mkdir -p projects/web/app

# إنشاء مجلد مع تحديد الصلاحيات
mkdir -m 755 public
rm حذف ملف أو مجلد مبتدئ
يحذف الملفات والمجلدات. احذر! لا يوجد سلة محذوفات في Linux.
# حذف ملف
rm file.txt

# حذف مجلد وكل محتوياته (بقوة)
rm -rf old-folder/

# حذف ملف مع التأكيد
rm -i important.txt
⚠️ تحذير: rm -rf / سيحذف كل شيء في السيرفر! لا تستخدمه أبداً!
cp نسخ ملف أو مجلد مبتدئ
ينسخ الملفات والمجلدات من مكان إلى آخر.
# نسخ ملف
cp source.txt destination.txt

# نسخ مجلد كامل
cp -r folder1/ folder2/

# نسخ مع الحفاظ على الصلاحيات والتواريخ
cp -a backup/ archive/
mv نقل أو إعادة تسمية ملف مبتدئ
يُستخدم لنقل الملفات/المجلدات أو إعادة تسميتها.
# إعادة تسمية ملف
mv oldname.txt newname.txt

# نقل ملف إلى مجلد آخر
mv file.txt /home/user/documents/

# نقل مجلد كامل
mv project/ /var/www/
cat عرض محتوى ملف مبتدئ
يقرأ ويعرض محتوى الملفات النصية في الطرفية.
# عرض محتوى ملف
cat config.txt

# عرض أول 10 أسطر
cat log.txt | head -n 10

# دمج ملفين في ملف واحد
cat file1.txt file2.txt > combined.txt
touch إنشاء ملف فارغ أو تحديث تاريخه مبتدئ
يُنشئ ملفاً فارغاً جديداً، أو يحدّث تاريخ آخر تعديل لملف موجود.
# إنشاء ملف فارغ
touch newfile.txt

# إنشاء عدة ملفات دفعة واحدة
touch file1.txt file2.txt file3.txt

# تحديث تاريخ الملف
touch -m existing.txt
nano محرر نصوص بسيط مبتدئ
محرر نصوص سهل الاستخدام في الطرفية، مثالي للمبتدئين.
# فتح ملف في nano
nano config.txt

# فتح ملف مع إظهار أرقام الأسطر
nano -l script.sh

# اختصارات nano:
# Ctrl+O = حفظ | Ctrl+X = خروج | Ctrl+K = قص سطر
💡 تلميح: للخروج اضغط Ctrl+X ثم Y للحفظ.
clear مسح شاشة الطرفية مبتدئ
يمسح كل النصوص من شاشة الطرفية ليعطيك مساحة نظيفة.
# مسح الشاشة
clear

# اختصار أسرع
Ctrl + L
🌿 أوامر المتوسط
chmod تغيير صلاحيات الملف متوسط
يتحكم في من يمكنه قراءة/كتابة/تنفيذ الملف.
# إعطاء كل الصلاحيات للجميع
chmod 777 file.sh

# إعطاء صلاحيات للمالك فقط
chmod 755 script.sh

# إضافة صلاحية التنفيذ
chmod +x app

# تطبيق على مجلد ومحتوياته
chmod -R 755 /var/www
📊 جدول الصلاحيات: 7=rwx | 6=rw- | 5=r-x | 4=r-- | 3=-wx | 2=-w- | 1=--x | 0=---
chown تغيير مالك الملف متوسط
يُغيّر المستخدم والمجموعة المالكين للملف أو المجلد.
# تغيير المالك
chown user file.txt

# تغيير المالك والمجموعة
chown user:group file.txt

# تطبيق على مجلد ومحتوياته
chown -R www-data:www-data /var/www
grep البحث عن نص داخل الملفات متوسط
أداة قوية للبحث عن أنماط نصية داخل الملفات أو مخرجات الأوامر.
# البحث عن كلمة في ملف
grep "error" log.txt

# البحث بدون حساسية لحالة الأحرف
grep -i "warning" *.log

# البحث مع إظهار رقم السطر
grep -n "failed" syslog

# البحث العكسي (كل ما عدا الكلمة)
grep -v "success" output.log
find البحث عن ملفات ومجلدات متوسط
يبحث عن الملفات والمجلدات بناءً على معايير متنوعة (الاسم، الحجم، التاريخ).
# البحث عن ملف بالاسم
find /home -name "*.txt"

# البحث عن ملفات أكبر من 100MB
find /var/log -size +100M

# البحث عن ملفات تم تعديلها قبل 7 أيام
find . -mtime +7

# البحث وحذف الملفات القديمة
find /tmp -name "*.tmp" -delete
tar أرشفة وضغط الملفات متوسط
يُنشئ أرشيفات (tarballs) ويضغطها بـ gzip أو bzip2.
# إنشاء أرشيف مضغوط
tar -czvf backup.tar.gz folder/

# فك ضغط أرشيف
tar -xzvf backup.tar.gz

# عرض محتوى الأرشيف بدون فكه
tar -tzvf archive.tar.gz

# إنشاء أرشيف بدون ضغط
tar -cvf files.tar file1 file2
🔑 حفظ الاختصارات: c=create | x=extract | z=gzip | v=verbose | f=file
df عرض مساحة القرص متوسط
يُظهر مساحة القرص المتاحة والمستخدمة لكل نظام ملفات.
# عرض مساحة القرص بشكل مقروء
df -h

# عرض نوع نظام الملفات
df -Th

# عرض مساحة مجلد معين
df -h /var
du عرض حجم المجلدات والملفات متوسط
يُقدّر حجم الملفات والمجلدات ويُظهر استهلاك القرص.
# حجم مجلد معين
du -sh /var/log

# حجم جميع المجلدات في المسار الحالي
du -sh * | sort -rh

# حجم الملفات الكبيرة فقط (>100MB)
du -ah /var | grep '[0-9]00M\|G\s'
ps عرض العمليات الجارية متوسط
يُظهر العمليات (processes) التي تعمل حالياً في النظام.
# عرض العمليات الحالية
ps aux

# البحث عن عملية معينة
ps aux | grep "nginx"

# عرض شجرة العمليات
ps auxf
top / htop مراقبة موارد النظام متوسط
يُظهران استهلاك CPU وRAM والعمليات في الوقت الفعلي. htop أجمل وأسهل.
# مراقبة النظام (الأصلي)
top

# تثبيت htop (أفضل واجهة)
sudo apt install htop -y

# تشغيل htop
htop

# عرض العمليات حسب استهلاك الذاكرة
top -o %MEM
⌨️ اختصارات top: q=خروج | k=إيقاف عملية | M=ترتيب حسب RAM | P=ترتيب حسب CPU
wget / curl تحميل الملفات من الإنترنت متوسط
يُحملان الملفات من URLs. curl أقوى ويدعم APIs، wget أسهل للتحميل المباشر.
# تحميل ملف بـ wget
wget "https://example.com/file.zip"

# تحميل مع استئناف (Resume)
wget -c "https://example.com/bigfile.iso"

# تحميل بـ curl
curl -O "https://example.com/file.zip"

# إرسال طلب GET وعرض النتيجة
curl "https://api.example.com/data"

# إرسال طلب POST مع JSON
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' "https://api.example.com"
systemctl إدارة خدمات النظام متوسط
يُتحكم في خدمات النظام (services) مثل nginx, ssh, mysql.
# تشغيل خدمة
sudo systemctl start nginx

# إيقاف خدمة
sudo systemctl stop nginx

# إعادة تشغيل خدمة
sudo systemctl restart nginx

# تفعيل الخدمة عند الإقلاع
sudo systemctl enable nginx

# عرض حالة الخدمة
sudo systemctl status nginx

# عرض جميع الخدمات النشطة
systemctl list-units --type=service --state=running
journalctl عرض سجلات النظام (Logs) متوسط
يُعرض سجلات systemd وخدمات النظام. أداة قوية لتتبع الأخطاء.
# عرض جميع السجلات
journalctl

# سجلات خدمة معينة
journalctl -u nginx

# السجلات الأخيرة (Live)
journalctl -f -u nginx

# سجلات اليوم فقط
journalctl --since "today"

# سجلات منذ آخر إقلاع
journalctl -b
🌳 أوامر المتقدمين
sudo تنفيذ أوامر بصلاحيات الجذر (Root) متقدم
يُنفّذ الأوامر بصلاحيات المستخدم الجذر (Root). يتطلب كلمة مرور.
# تنفيذ أمر كـ root
sudo apt update

# فتح shell كـ root
sudo -i

# تنفيذ أمر كمستخدم آخر
sudo -u www-data whoami

# تعديل ملف محمي
sudo nano /etc/nginx/nginx.conf

# عرض الأوامر المسموحة للمستخدم
sudo -l
⚠️ تنبيه: لا تستخدم sudo إلا عند الحاجة. تجنب sudo rm -rf!
ssh الاتصال بالسيرفر عن بُعد متقدم
يُتيح الاتصال الآمن بالسيرفرات البعيدة عبر بروتوكول SSH.
# الاتصال بسيرفر
ssh user@192.168.1.100

# الاتصال بمنفذ مخصص
ssh -p 2222 user@server.com

# الاتصال بمفتاح SSH
ssh -i ~/.ssh/id_rsa user@server.com

# نسخ مفتاح SSH إلى السيرفر
ssh-copy-id user@server.com

# تشغيل أمر على السيرفر البعيد
ssh user@server "ls -la /var/log"
scp نقل الملفات بين السيرفرات متقدم
ينقل الملفات بأمان بين جهازك والسيرفر عبر SSH.
# رفع ملف إلى السيرفر
scp localfile.txt user@server:/home/user/

# رفع مجلد كامل
scp -r localfolder/ user@server:/var/www/

# تحميل ملف من السيرفر
scp user@server:/var/log/syslog ./

# نقل بين سيرفرين
scp user1@server1:/file.txt user2@server2:/path/
crontab جدولة المهام التلقائية متقدم
يُشغّل أوامر بشكل تلقائي في أوقات محددة (مثل النسخ الاحتياطي الليلي).
# تعديل جدول المهام
crontab -e

# عرض المهام المجدولة
crontab -l

# مثال: نسخ احتياطي يومي الساعة 2 صباحاً
0 2 * * * /home/user/backup.sh

# مثال: تنظيف سجلات كل أسبوع
0 0 * * 0 /home/user/cleanup.sh

# مثال: فحص كل 5 دقائق
*/5 * * * * /home/user/check.sh
📅 ترتيب الأوقات: دقيقة | ساعة | يوم | شهر | يوم الأسبوع (0=الأحد)
netstat / ss مراقبة الاتصالات والمنافذ متقدم
يُظهران الاتصالات الشبكية النشطة والمنافذ المفتوحة. ss أحدث وأسرع.
# عرض جميع الاتصالات
ss -tuln

# عرض الاتصالات المستمعة فقط
ss -lnt

# البحث عن منفذ معين
ss -tuln | grep ":80"

# عرض العمليات المرتبطة بالمنافذ
ss -tulnp
iptables / ufw إدارة جدار الحماية (Firewall) متقدم
يتحكمان في حركة المرور الشبكية. ufw أسهل للاستخدام (Uncomplicated Firewall).
# تفعيل UFW
sudo ufw enable

# السماح بمنفذ SSH
sudo ufw allow 22/tcp

# السماح بمنفذ HTTP و HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# حظر منفذ
sudo ufw deny 3306

# عرض حالة الجدار
sudo ufw status verbose

# حذف قاعدة
sudo ufw delete allow 8080
apt / yum / dnf مدير الحزم (Package Manager) متقدم
يُثبّت، يُحدّث، ويُحذف البرامج. apt لـ Debian/Ubuntu، yum/dnf لـ CentOS/RHEL.
# تحديث قائمة الحزم (Ubuntu/Debian)
sudo apt update

# ترقية جميع الحزم
sudo apt upgrade -y

# تثبيت حزمة
sudo apt install nginx -y

# حذف حزمة
sudo apt remove nginx

# تنظيف الحزم غير المستخدمة
sudo apt autoremove -y

# البحث عن حزمة
apt search mysql
useradd / usermod إدارة المستخدمين متقدم
يُنشئان ويُعدّلان حسابات المستخدمين على السيرفر.
# إنشاء مستخدم جديد
sudo useradd -m newuser

# تعيين كلمة مرور
sudo passwd newuser

# إضافة مستخدم لمجموعة sudo
sudo usermod -aG sudo newuser

# تغيير shell المستخدم
sudo usermod -s /bin/bash newuser

# حذف مستخدم مع مجلده
sudo userdel -r olduser
🏆 أوامر الاحترافيين
docker إدارة الحاويات (Containers) احترافي
يُشغّل ويُدير حاويات Docker — تقنية العزل والنشر الحديثة.
# عرض الحاويات الجارية
docker ps

# عرض جميع الحاويات (متوقفة وجارية)
docker ps -a

# تشغيل حاوية جديدة
docker run -d -p 80:80 --name mynginx nginx

# إيقاف حاوية
docker stop mynginx

# حذف حاوية
docker rm mynginx

# بناء صورة من Dockerfile
docker build -t myapp:latest .

# عرض الصور المحملة
docker images

# تنفيذ أمر داخل حاوية جارية
docker exec -it mynginx bash

# عرض سجلات حاوية
docker logs -f mynginx

# Docker Compose: تشغيل جميع الخدمات
docker-compose up -d

# Docker Compose: إيقاف جميع الخدمات
docker-compose down
🐳 Docker Compose: يُستخدم لإدارة عدة حاويات معاً (مثال: web + db + cache)
nginx إدارة خادم الويب Nginx احترافي
خادم ويب ووكيل عكسي (Reverse Proxy) قوي وسريع.
# اختبار إعدادات Nginx
sudo nginx -t

# إعادة تحميل الإعدادات
sudo systemctl reload nginx

# عرض الإعدادات الافتراضية
cat /etc/nginx/nginx.conf

# إنشاء موقع جديد
sudo nano /etc/nginx/sites-available/mysite

# تفعيل الموقع (إنشاء رابط رمزي)
sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/

# إعداد Reverse Proxy
location /api/ {
    proxy_pass http://localhost:3000;
    proxy_set_header Host $host;
}
git إدارة الإصدارات (Version Control) احترافي
يُدير تاريخ التعديلات على الكود ويُتيح التعاون بين المطورين.
# استنساخ مستودع
git clone "https://github.com/user/repo.git"

# إضافة ملفات للمرحلة (Staging)
git add .

# حفظ التعديلات (Commit)
git commit -m "وصف التعديل"

# رفع التعديلات
git push origin main

# سحب آخر التعديلات
git pull origin main

# إنشاء فرع جديد
git checkout -b feature-branch

# دمج فرع مع الفرع الحالي
git merge feature-branch

# عرض حالة المستودع
git status

# عرض سجل التعديلات
git log --oneline --graph
certbot شهادات SSL مجانية (Let's Encrypt) احترافي
يُولّد ويُجدّد شهادات SSL/TLS مجانية من Let's Encrypt.
# تثبيت Certbot
sudo apt install certbot python3-certbot-nginx -y

# إصدار شهادة جديدة
sudo certbot --nginx -d example.com -d www.example.com

# تجديد الشهادات يدوياً
sudo certbot renew

# اختبار التجديد التلقائي
sudo certbot renew --dry-run

# عرض الشهادات المثبتة
sudo certbot certificates
rsync مزامنة ونسخ احتياطي متقدم احترافي
ينقل الملفات بكفاءة عالية — ينقل فقط التغييرات (incremental).
# نسخ محلي مع الحفاظ على الصلاحيات
rsync -avz /source/ /backup/

# نسخ إلى سيرفر بعيد
rsync -avz -e "ssh" /local/folder/ user@server:/remote/folder/

# نسخ مع حذف الملفات غير الموجودة في المصدر
rsync -avz --delete /source/ /backup/

# نسخ مع استبعاد ملفات معينة
rsync -avz --exclude "*.log" /source/ /backup/
tmux جلسات طرفية متعددة احترافي
يُتيح تشغيل عدة جلسات طرفية في نافذة واحدة — لا تفقد عملك عند قطع الاتصال.
# بدء جلسة جديدة
tmux new -s mysession

# فصل الجلسة (العمل يستمر في الخلفية)
Ctrl+B ثم D

# عرض الجلسات
tmux ls

# إعادة الاتصال بجلسة
tmux attach -t mysession

# إنشاء نافذة جديدة داخل الجلسة
Ctrl+B ثم C

# التنقل بين النوافذ
Ctrl+B ثم N (التالي) أو P (السابق)

# تقسيم الشاشة أفقياً
Ctrl+B ثم "
lsof عرض الملفات المفتوحة احترافي
يُظهر الملفات المفتوحة حالياً والعمليات التي تستخدمها.
# عرض جميع الملفات المفتوحة
lsof

# البحث عن عملية تستخدم منفذ معين
lsof -i :80

# عرض الملفات المفتوحة لعملية معينة
lsof -p 1234

# عرض الملفات المفتوحة في مجلد
lsof +D /var/log

# عرض الملفات المحذوفة لكنها مفتوحة
lsof +L1
strace تتبع مكالمات النظام (Debugging) احترافي
يُتبّع مكالمات النظام (system calls) التي يُجريها برنامج — مفيد جداً للتصحيح.
# تتبع برنامج
strace ./myapp

# تتبع عملية جارية
strace -p 1234

# تتبع فقط مكالمات الملفات
strace -e trace=file ./myapp

# حفظ التتبع في ملف
strace -o trace.log ./myapp