الأمن السيبراني

سطر الأوامر Linux: درس خطوة بخطوة 2026

4 min de lecture

🔝 الدليل الرئيسي: أساسيات Linux 2026

سطر الأوامر Linux ليس تحديًا نتجاوزه ثم ننساه. إنه الواجهة الطبيعية لخادم في الإنتاج، الأداة الوحيدة المتاحة عندما يكون terminal SSH كل ما تملك. يأخذك هذا الدرس من « أكتب أوامر أنسخها » إلى « أُؤلّف أوامري بمنطق ». يتبع مسارًا في 8 خطوات.

المتطلبات

  • نظام Linux: Ubuntu 24.04/26.04 LTS، Debian 13، AlmaLinux 9 أو Rocky Linux 9
  • عميل SSH على آلة عملك (OpenSSH أو Windows 11 الأصلي)
  • المستوى: مبتدئ. لا تجربة سابقة ضرورية
  • الوقت المُقدَّر: ساعتان قراءة وممارسة

الخطوة 1 — فهم ما أمامك

عند فتح terminal Linux، تُطلق فعلًا برنامج « émulateur de terminal » الذي يُشغّل shell. الـ shell الافتراضي على غالبية توزيعات الخادم هو Bash. هو الذي يقرأ ما تكتب، يُفسّره، ويُطلق البرامج. قبل كتابة أمر، خذ 30 ثانية لفك ligne d’invite.

malick@vps-paris:~/projets$

هذا prompt يحوي 4 معلومات. malick المستخدم المُتصل؛ vps-paris اسم الآلة؛ ~/projets المجلد الحالي (~ يُختصر مجلدك الشخصي)؛ و$ يُشير لمستخدم عادي. إذا رأيت # بدل $، أنت متصل كـ root وكل أمر يُنفَّذ بصلاحيات كاملة. whoami يُؤكّد المستخدم، hostname اسم الآلة، pwd المسار المطلق للمجلد الحالي.

الخطوة 2 — التنقّل في الشجرة

pwd                    # affiche le répertoire courant
ls                     # liste son contenu
ls -la                 # liste tout, y compris fichiers cachés, en format long
cd /var/log            # change vers /var/log
cd ~                   # retour au répertoire personnel
cd -                   # retour au répertoire précédent
cd ..                  # remonte d'un niveau

بعد كل cd، prompt يعرض المجلد الجديد. إذا ظهر خطأ bash: cd: /chemin: No such file or directory، كتبت مسارًا غير موجود — تحقّق بـ Tab الذي يُكمل تلقائيًا أسماء الملفات الموجودة. ls -la يستحق انتباهًا خاصًا: يعرض لكل entry الصلاحيات، عدد الـ links، المالك، المجموعة، الحجم، تاريخ التعديل، والاسم.

الخطوة 3 — قراءة والبحث في الملفات

جزء كبير من عمل الإدارة هو قراءة ملفات نص: تهيئات في /etc، journaux في /var/log، scripts في /usr/local/bin. ثلاث عائلات أدوات حسب السياق.

cat /etc/os-release             # voir quelle distribution
less /etc/ssh/sshd_config       # lire la conf SSH paginé
head -n 50 /var/log/auth.log    # 50 premières lignes
tail -F /var/log/nginx/access.log  # suivre les requêtes en direct
grep -i "error" /var/log/syslog    # chercher sans tenir compte de la casse
grep -rn "TODO" /opt/mon-app/      # chercher récursivement avec numéros

grep هو أداة البحث بامتياز. -i يتجاهل الحالة، -n يعرض رقم السطر، -r ينزل في المجلدات الفرعية، -v يعكس الفلتر. استخدام شائع جدًا: لإيجاد سبب أخطاء Nginx 502، grep -i "error\|warn" /var/log/nginx/error.log | tail -100.

الخطوة 4 — التركيب مع pipes

الـ pipe | هو الآلية المركزية لـ Unix. يأخذ مخرج أمر ويُعطيه كإدخال للتالي.

# Trouver les 5 plus gros fichiers d'un répertoire
du -ah /var/log | sort -rh | head -n 5

# Compter combien de connexions SSH ont échoué aujourd'hui
grep "Failed password" /var/log/auth.log | grep "\$(date +%b\ %d)" | wc -l

# Lister les processus qui consomment le plus de RAM
ps -eo pid,user,%mem,command --sort=-%mem | head -n 10

# Extraire les adresses IP qui appellent une URL précise
grep "POST /api/login" /var/log/nginx/access.log | awk '{print \$1}' | sort | uniq -c | sort -rn | head

اقرأ كل pipeline من اليسار إلى اليمين كجملة. هذا التركيب — أداة لكل maillon، كل maillon يفعل شيئًا — استثمار فكري يُسدّد لسنوات. awk، sort، uniq، cut، tr، sed الأدوات الست لإضافة لمفرداتك.

الخطوة 5 — إنشاء، نسخ، نقل، حذف

mkdir -p /opt/mon-app/data       # crée le chemin complet sans erreur si déjà existant
touch fichier.txt                # crée un fichier vide ou met à jour la date
cp source.txt destination.txt    # copie un fichier
cp -r src/ backup-src/           # copie un répertoire entier
mv ancien.txt nouveau.txt        # renomme ou déplace
rm fichier.txt                   # supprime un fichier
rm -rf vieux-projet/             # supprime un répertoire récursivement (DANGEREUX)

أمر rm لا يطلب تأكيدًا ولا يُرسل شيئًا إلى recycle bin. ثلاث عادات تُساوي وزنها بيانات. أولًا، إنشاء alias alias rm='rm -i' في ~/.bashrc يُجبر التأكيد. ثانيًا، لا تستخدم متغيّرًا غير محقّق في أمر حذف: rm -rf "\$DIR/" مع \$DIR فارغ يمسح كل شيء تحت الجذر. ثالثًا، cp -i وmv -i يطلبان التأكيد قبل الكتابة فوق ملف موجود.

الخطوة 6 — إتقان التاريخ والإكمال

جلسة منتجة هي جلسة حيث تكتب كل أمر مرة واحدة على الأكثر. تاريخ Bash، مُحفَّظ في ~/.bash_history، يحفظ آخر 1000 أمر. سهم ↑ يصعد سطرًا بسطر؛ لكن الكسب الحقيقي يأتي من Ctrl-R، الذي يفتح بحثًا تزايديًا.

history | tail -20              # voir les 20 dernières commandes
!42                             # rejouer la commande numéro 42
!!                              # rejouer la dernière commande
sudo !!                         # rejouer avec sudo
!ssh                            # rejouer la dernière commande qui commence par ssh

إكمال Tab هو الرافعة الأخرى. اكتب system ثم Tab مرتين: Bash يسرد كل executables بهذا الاسم. على Ubuntu وDebian، حزمة bash-completion تُضيف إكمال ذكي للأوامر الشائعة: اكتب systemctl restart ثم Tab، وقائمة الخدمات تظهر.

الخطوة 7 — Variables، environnement، alias

VAR=hello                       # variable locale
echo \$VAR                       # affiche : hello
export DATABASE_URL=postgres://...  # variable d'environnement
env | grep DATABASE             # liste les variables qui contiennent DATABASE
echo \$PATH                      # le chemin de recherche des exécutables
unset VAR                       # supprime une variable

لجعل متغيّر دائم، أضف سطر export في ~/.bashrc (مُحمَّل في كل جلسة تفاعلية) أو ~/.profile (مُحمَّل عند الاتصال). aliases تتبع نفس المبدأ — alias ll='ls -lah' في ~/.bashrc يُنشئ اختصارًا دائمًا. source ~/.bashrc يُطبّق التغييرات. which nginx وtype nginx يُشخّصان أي binary فعلًا يُستدعى.

الخطوة 8 — التحقق والعادات الجيدة

cd ~ && \
mkdir -p test-cli/{a,b,c} && \
for i in 1 2 3 4 5; do echo "ligne \$i" > test-cli/a/file-\$i.txt; done && \
ls -la test-cli/a/ && \
grep -rn "ligne 3" test-cli/ && \
du -sh test-cli/* | sort -h && \
rm -rf test-cli && \
echo "✓ tout va bien"

المخرج المتوقّع ينتهي بـ ✓ tout va bien. إذا قرأت هذه الرسالة، shell الخاص بك، أوامرك الأساسية، pipelines، والحذف التكراري يعمل كما يجب. للاستمرار، خذ عادة اختبار كل شيء على آلة قابلة للرمي قبل الإنتاج، قراءة man commande فور تفويتك خيارًا، ونسخ أوامرك المفيدة في ~/Documents/cheatsheet.md.

أخطاء شائعة

الخطأ السبب الحل
bash: cmd: command not found برنامج غير مُثبَّت أو خارج \$PATH which cmd، apt install paquet
Permission denied على ملف bits صارمة أو مالك root ls -l، عدّل بـ chmod أو sudo
cd: /chemin: No such file خطأ كتابة استخدم Tab للإكمال
Variable فارغة بعد export مسافات حول = VAR=valeur بلا مسافة
أمر بمخرج مقطوع بـ head head يُرسل SIGPIPE قد يقتل maillon الأعلى للمخرجات الطويلة، استخدم less أو إعادة توجيه لملف

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

ما الفرق بين sh وbash؟
sh يُشير تاريخيًا لـ Bourne Shell، shell أدنى مُعَرَّف بـ POSIX. على Ubuntu وDebian، /bin/sh يُشير لـ Dash، shell خفيف جدًا. Bash superset يُضيف tableaux، توسيعات، إكمال، aliases. للـ scripts المنقولة، استهدف sh؛ لـ scripts الإدارة الداخلية، استهدف bash.

لماذا أمري يعمل تفاعليًا ولا في script؟
ثلاثة أسباب. أولًا: shebang — script يجب أن يبدأ بـ #!/bin/bash. ثانيًا: البيئة — script لا يُحمّل ~/.bashrc افتراضيًا. ثالثًا: الوضع الصارم — أضف set -euo pipefail في رأس كل script.

كيف أتجنّب إعادة كتابة كلمة مرور sudo؟
تذكرة sudo لها مدة صلاحية 5 دقائق افتراضيًا. يمكنك تمديدها بتحرير /etc/sudoers عبر sudo visudo وإضافة Defaults timestamp_timeout=30.

هل أتعلّم vim أم nano؟
تعلّم nano اليوم — هو المحرّر الافتراضي على غالبية الخوادم وقابل للاستخدام في 30 ثانية. تعلّم vim في الأشهر الستة المقبلة. الدرس المُدمَج يبدأ بـ vimtutor.

terminal يعرض أحرفًا غريبة، ماذا أفعل؟
تحقّق من locale بـ locale. التصحيح: sudo locale-gen fr_FR.UTF-8 ثم sudo update-locale LANG=fr_FR.UTF-8، وأعد الاتصال. أو لـ AR: sudo locale-gen ar_SA.UTF-8.

كيف أُنفّذ أمرًا طويلًا دون البقاء محجوبًا؟
nohup commande & يفصل العملية. لعمل أكبر، افتح جلسة tmux (tmux new -s travail) التي تنجو من الانفصال؛ تستردّها بـ tmux attach -t travail. لأمر مُجدوَل، cron أو systemd timer.

كيف أعرف إذا كان أمر خطر سيكسر شيئًا؟
أربعة garde-fous. أولًا، اقرأ man. ثانيًا، شغّل في وضع محاكاة عند توفّره: rsync --dry-run، find ... -print قبل find ... -delete. ثالثًا، تدرّب على آلة قابلة للرمي. رابعًا، احتفظ بـ journal للأوامر المُدمّرة المُطلَقة في الإنتاج.

مقالات ذات صلة

Sponsoriser ce contenu

Cet emplacement est à vous

Position premium en fin d'article — c'est l'instant où les lecteurs sont le plus engagés. Réservez cet espace pour votre marque, votre formation ou votre offre.

Recevoir nos tarifs
Publicité