أوامر Linux الأساسية التي يجب أن يعرفها كل مهندس DEVOPS - الجزء الأول

تم التحديث: ٢٧ مارس ٢٠٢٦

Essential Linux Commands Every DEVOPS Engineer Should Know Part 1

ملخص

أتقن أوامر ملفات ومجلدات Linux الأساسية (ls، cd، mkdir، cp، rm، chmod) بالإضافة إلى البدائل الحديثة مثل eza و bat، و systemd/journalctl لإدارة الخدمات، والأدوات المتوافقة مع الحاويات (containers) لسير عمل DevOps فعال.

سواء كنت تدير خوادم bare-metal، أو عناقيد (clusters) Kubernetes، أو بنية تحتية سحابية، فإن إتقان سطر أوامر Linux أمر لا غنى عنه لمهندسي DevOps في عام 2026. الأوامر التي ستتعلمها هنا تشكل أساس العمل اليومي في البنية التحتية — من التنقل في أنظمة الملفات إلى إدارة الأذونات وبيئات الحاويات.

بينما تظل أوامر Linux التقليدية ذات صلة، توفر البدائل الحديثة مثل eza (الذي يحل محل ls) و bat (الذي يحل محل cat) تمييزاً أفضل للأكواد (syntax highlighting)، ومخرجات ملونة، وقابلية قراءة محسنة. وبالدمج مع إتقان systemd و Windows Subsystem for Linux 2 (WSL2) لمطوري Windows، تشكل هذه الأدوات مجموعة أدوات DevOps كاملة.

أوامر التنقل في الملفات والمجلدات

تتضمن العمليات الأكثر أساسية في Linux التنقل عبر نظام الملفات وفهم مكان وجود الأشياء. لم تتغير هذه الأوامر كثيراً، لكن بدائلها الحديثة جعلتها أكثر كفاءة.

الأساليب التقليدية والحديثة:

# الطريقة القديمة: ls (عرض محتويات المجلد)
ls -la                    # عرض كل الملفات بتنسيق مفصل

# البديل الحديث: eza (أسرع، ملون، ويدعم Git)
eza -la                   # نفس المخرجات، بألوان أفضل
eza -la --tree            # عرض شجري للمجلدات
eza -la --git             # يظهر حالة Git بجانب الملفات

تتعامل أداة eza مع المجلدات الكبيرة بشكل أسرع وتلون المخرجات تلقائياً للأذونات وأنواع الملفات وحالة Git — وهو أمر مفيد عند التنقل في monorepo يحتوي على مئات الملفات.

التنقل:

pwd                       # طباعة مجلد العمل الحالي (أين أنت؟)
cd /path/to/dir           # تغيير المجلد
cd ~                      # الذهاب إلى مجلد المنزل (home)
cd -                      # الرجوع للمجلد السابق
cd ..                     # الذهاب للمجلد الأب
cd ../..                  # الصعود مستويين للأعلى

فحص وقراءة الملفات

يقوم cat بعرض محتويات الملف، ولكن بالنسبة للملفات الكبيرة أو قراءة الأكواد، فإن البدائل الحديثة تتفوق عليه:

# الطريقة القديمة: cat
cat /var/log/syslog       # طباعة الملف بالكامل في الطرفية

# بدائل أفضل:
bat /var/log/syslog       # تمييز الأكواد + أرقام الأسطر
bat -p /var/log/syslog    # الوضع البسيط (بدون أرقام أسطر)
tail -f /var/log/syslog   # متابعة ملف السجل في الوقت الفعلي
head -20 /var/log/syslog  # أول 20 سطراً فقط

بالنسبة لعمل DevOps، لا غنى عن bat لقراءة ملفات الإعدادات وقصاصات الأكواد مع تمييز لوني مناسب. كما أن أمر tail -f ضروري لمراقبة السجلات (logs) في الوقت الفعلي أثناء عمليات النشر (deployments) أو الحوادث التقنية.

عمليات الملفات والمجلدات

إنشاء وحذف الملفات/المجلدات:

touch filename                  # إنشاء ملف فارغ أو تحديث الطابع الزمني
mkdir -p /path/to/dir          # إنشاء مجلد (والمجلدات الأبوية إذا لزم الأمر)
rm filename                     # حذف ملف (خطر: الحذف نهائي!)
rm -r dirname                   # حذف مجلد ومحتوياته
rmdir dirname                   # حذف مجلد فارغ فقط

النسخ والنقل:

cp source.txt destination.txt   # نسخ ملف
cp -r source_dir dest_dir       # نسخ مجلد بشكل متكرر (recursive)
mv old_name new_name            # نقل أو إعادة تسمية
mv -i old_name new_name         # تفاعلي (يسأل قبل الاستبدال)

خيار -i هو شبكة الأمان الخاصة بك — استخدمه دائماً عند نقل ملفات إعدادات الإنتاج.

البحث عن الملفات وإيجادها

أمر find قوي ولكنه معقد في صياغته. البدائل الحديثة مثل fd أسرع وأكثر سهولة في الاستخدام:

# الطريقة القديمة: find
find /path -name "*.log"        # البحث عن كل ملفات .log
find /path -type f -size +100M  # البحث عن ملفات أكبر من 100 ميجابايت

# البديل الحديث: fd (أسرع، ملون، يدعم regex افتراضياً)
fd "\.log$" /path              # البحث عن ملفات .log
fd --size +100m /path          # ملفات أكبر من 100 ميجابايت
fd --follow                     # تتبع الروابط الرمزية (symlinks)

للبحث السريع عن الملفات في أشجار المصادر الكبيرة (مثل ملفات manifest الخاصة بـ Kubernetes أو مستودعات البنية التحتية ككود)، يعتبر fd أسرع بكثير من find.

الأذونات والملكية

فهم أذونات الملفات ضروري للأمان واستقرار النظام:

chmod 755 script.sh             # المالك: قراءة/كتابة/تنفيذ، الآخرون: قراءة/تنفيذ
chmod 644 config.yaml           # المالك: قراءة/كتابة، الآخرون: قراءة فقط
chmod u+x script.sh             # إضافة إذن التنفيذ للمالك
chown user:group filename       # تغيير المالك والمجموعة
chown -R user:group dirname     # تغيير الملكية بشكل متكرر

تستخدم الأذونات ثلاث مجموعات من ثلاث بتات:

  • المالك (u): أذونات المستخدم
  • المجموعة (g): أذونات المجموعة
  • الآخرون (o): أذونات أي شخص آخر

قيم DevOps الشائعة: 755 (للملفات القابلة للتنفيذ)، 644 (لملفات الإعدادات)، 600 (للأسرار/secrets).

البحث داخل الملفات

عندما تحتاج إلى العثور على محتوى محدد داخل الملفات، فإن grep و ripgrep (البديل الحديث) ضروريان:

# الطريقة القديمة: grep
grep "error" /var/log/app.log   # البحث عن الأسطر التي تحتوي على "error"
grep -r "TODO" .                # بحث متكرر في كل الملفات
grep -i "Error" file.txt        # بحث غير حساس لحالة الأحرف

# البديل الحديث: ripgrep (rg)
rg "error" /var/log/            # بحث متكرر أسرع
rg -g "*.yaml" "apiVersion"     # البحث في ملفات YAML فقط
rg --type rust "TODO"           # البحث في ملفات Rust فقط

أداة Ripgrep (rg) أسرع بمراحل من grep في قواعد الأكواد الكبيرة وتحترم تلقائياً أنماط .gitignore — وهي مثالية للبحث في مستودعات البنية التحتية ككود دون الدخول في الملفات المُنشأة تلقائياً.

إدارة الخدمات و systemd

في توزيعات Linux الحديثة، يقوم systemd بإدارة الخدمات، وفهم systemctl و journalctl أمر بالغ الأهمية لـ DevOps:

systemctl status nginx                    # التحقق مما إذا كان nginx يعمل
systemctl start nginx                     # بدء الخدمة
systemctl stop nginx                      # إيقاف الخدمة
systemctl restart nginx                   # إعادة تشغيل الخدمة
systemctl enable nginx                    # بدء التشغيل التلقائي عند الإقلاع
systemctl disable nginx                   # إلغاء بدء التشغيل التلقائي
systemctl list-units --type=service       # عرض كل الخدمات
journalctl -u nginx                       # سجلات خدمة nginx فقط
journalctl -u nginx -f                    # متابعة سجلات nginx
journalctl -u nginx --since "10 minutes ago"  # السجلات الأخيرة
journalctl -n 50 -u nginx                 # آخر 50 سطراً

حل أمر journalctl محل syslog التقليدي في العديد من الأنظمة. استخدام -u <service> للتصفية حسب اسم الوحدة (unit) أكثر كفاءة بكثير من البحث اليدوي (grepping) داخل /var/log/.

الأوامر المتوافقة مع الحاويات

يعمل مهندسو DevOps بشكل متكرر داخل الحاويات و pods الخاصة بـ Kubernetes. فهم فحص مساحات الأسماء (namespaces) أمر حيوي:

# عرض كل مساحات الأسماء على النظام
lsns

# فحص cgroups (حدود حاويات Linux)
cat /proc/cgroups
ps aux | grep containerid       # العثور على عمليات الحاوية

# فحص نقاط الربط (مهم لتصحيح أخطاء التخزين/volumes)
mount | grep -i Docker          # عرض وحدات التخزين المربوطة
df -h                           # استخدام القرص حسب نقطة الربط

لاستكشاف أخطاء Linux الخاصة بـ Kubernetes وإصلاحها، راجع الجزء الثاني (kubectl exec، Docker exec، crictl).

WSL2 لمهندسي DevOps على Windows

إذا كنت تطور على Windows، فإن WSL2 (Windows Subsystem for Linux 2) يوفر نواة Linux كاملة داخل Windows. هذا يلغي الحاجة إلى الأجهزة الافتراضية (VMs) ويوفر بيئة تطوير Linux أصلية:

# على Windows PowerShell:
wsl --install                   # تثبيت WSL2
wsl --list --verbose            # عرض التوزيعات المثبتة
wsl -d Ubuntu                   # تشغيل توزيعة محددة

# من داخل WSL2:
/mnt/c/                         # الوصول إلى قرص C: في Windows
/mnt/d/                         # الوصول إلى قرص D: في Windows

WSL2 هو بيئة Linux الموصى بها لمهندسي DevOps الذين يستخدمون Windows في عام 2026، حيث يوفر أداءً قريباً من الأداء الأصلي لعمليات البناء والاختبار والتطوير المحلي.

ورقة مرجعية سريعة

الأمر الغرض البديل الحديث
ls -la عرض الملفات مع الأذونات eza -la
cat file عرض محتويات الملف bat file
find . -name البحث باسم الملف fd <pattern>
grep -r pattern البحث داخل محتوى الملفات rg pattern
cd /path تغيير المجلد (لا يوجد بديل مطلوب)
chmod 755 file تغيير الأذونات (لا يوجد بديل مطلوب)
tail -f logfile مراقبة السجلات (لا يوجد بديل مطلوب)
systemctl restart svc إعادة تشغيل الخدمة (لا يوجد بديل مطلوب)

الخلاصة

تشكل هذه الأوامر الأساسية العمود الفقري لعمل DevOps القائم على Linux. بينما تعمل الأدوات الحديثة مثل eza و bat و ripgrep على تحسين الأوامر التقليدية بتنسيق مخرجات وأداء أفضل، تظل المفاهيم الأساسية دون تغيير. أتقن هذه الأوامر من خلال الاستخدام المنتظم، وستتمكن من التعامل مع أنظمة Linux بثقة. في الجزء الثاني، سنبني على هذا الأساس مع أوامر الشبكات، وإدارة العمليات، وتصحيح أخطاء الحاويات.


نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.