كثير من مستخدمي لينكس يعرفون الأوامر الأساسية مثل ls و cd و mkdir، لكن ما يجعل المحترفين مختلفين هو معرفتهم بمجموعة من الأوامر الأقل شيوعًا التي تختصر الوقت وتزيد الكفاءة.
هذه الأوامر تمنحك تحكمًا أدق في النظام، وتساعدك على تنفيذ المهام المعقدة بسطر واحد فقط.
من التعامل مع الملفات الكبيرة إلى تحليل البيانات وإدارة العمليات، إتقان هذه الأوامر يفتح لك أفقًا جديدًا في استخدام لينكس ويجعل تجربتك اليومية أكثر إنتاجية.
في هذا المقال، ستتعرّف على أوامر عمليّة أثبتت فائدتها في بيئات العمل الفعلية، ومعرفة طريقة استخدامها ستقربك خطوة حقيقية نحو احتراف النظام.
غالبًا ما تحتوي أوامر لينكس على قوائم طويلة من الخيارات التي تدعمها، وكثير منها عبارة عن اختصارات لغوية من حرف واحد. قد يكون تعلم هذه الخيارات وتذكرها صعبًا، لكن ميزتها المميزة هي إمكانية إعادة استخدامها: فالخيارات الشائعة مشتركة بين أوامر مختلفة.
الخيارات التالية هي الأكثر شيوعًا ومتوفرة على نطاق واسع في العديد من الأوامر. تعلّم هذه الخيارات، وستكتسب فهمًا متينًا لكيفية استخدام العديد من البرامج المختلفة، مع نتائج متسقة.
–help و–version لمعلومات مهمة
أحد العلامات التي تدعمها جميع الأوامر تقريبًا، الحديثة والقديمة على حد سواء، هو –help (غالبًا ما يتوفر -h أو -?) لعرض جزء قصير من نص تعليمات غير تفاعلي. يُشار إلى هذا عادةً باسم “الاستخدام” لأنه يتضمن سطرًا موجزًا يوضح لك كيفية استخدام الأمر، بالإضافة إلى تفاصيل خياراته: وظيفتها وكيفية عملها.
بعض مخرجات المساعدة، مثل تلك من الأمر ls أعلاه، قد تكون شاملةً تقريبًا كصفحة دليل الأوامر!
الأمر –help مدعومٌ جيدًا على أوبونتو وأنظمة لينكس الحديثة الأخرى. تدعم الأدوات الحديثة مثل bat وrg (ripgrep) وncdu الأمرين الطويل والاختصار -h. تدعم معظم أدوات جنو أيضًا الأمر –help، مع أن أوامر مثل ls وcd لا تدعم -h.
تحذير
لا يستخدم الأمر ls الأمر -h للمساعدة، بل كاختصار لـ –human-readable. يؤدي هذا إلى طباعة أحجام ملفات مثل “1K” بدلاً من “1024”.
يعمل الخيار –version (-V) جنبًا إلى جنب مع –help لأنه يساعدك على معرفة معلومات البرنامج، وعادةً ما يكون مدعومًا عند وجود –help. عادةً، يطبع الخيار –version إصدار البرنامج الذي تُشغّله عليه؛ على سبيل المثال:
يتيح لك هذا تأكيد تشغيل الإصدار المطلوب، ويمكن أن يكون مفيدًا لاستكشاف الأخطاء وإصلاحها. تكمن المشكلة الوحيدة في –version في مدى اختلاف النتائج من أداة لأخرى. تطبع العديد من البرامج، مثل ncdu وtop وjq، سطرًا واحدًا بتنسيق قابل للتحليل:
في الوقت نفسه، تعرض برامج جنو، مثل find وmkdir وsed، ترخيصًا ومعلومات مفصلة إلى جانب إصدار البرنامج، عبر عدة أسطر من المخرجات. غالبًا ما يعود السجل إلى Vim، الذي يسرد ميزات محددة ويشير إلى ما إذا كانت مضمنة في ذلك الإصدار أم لا، مما ينتج عنه الكثير من المخرجات في هذه العملية:
تحذير
–help و–version لا تدعمان دائمًا الأوامر، خاصةً القديمة منها أو تلك المُدمجة في shell. بعض الأوامر تدعم –help، لكن لا تدعم -h. مع ذلك، في نظام macOS، لا تدعم العديد من الأوامر الأساسية أيًا منهما؛ لذا يُعد استخدام man الخيار الأمثل في هذه الحالات.
–all لعرض جميع النتائج
غالبًا ما يكون خيار –all (-a) متاحًا إذا كان الأمر يعمل مع الملفات، ولكنه يتجاهل بعضها افتراضيًا. المثال الأكثر شيوعًا هو ls –all، الذي يُظهر الملفات المخفية بالإضافة إلى الملفات العادية. يُبلغ الأمر du عن المجلدات افتراضيًا، لكن –all يُظهره أيضًا عن الملفات العادية.
يدعم برنامج which أيضًا خيار -a، ولكن بمعنى مختلف قليلًا. افتراضيًا، يُبلغ الأمر عن أول مسار لأمر مُحدد يظهر في متغير PATH:
ومع ذلك، فإن استخدام الخيار -a سيؤدي إلى الإبلاغ عن كل برنامج مطابق:
بعض الأوامر تُطوّر هذا المفهوم، بخيارات مُكمّلة. على سبيل المثال، يدعم الأمر ls أيضًا خيار –almost-all (-A) الذي يُظهر جميع الملفات المخفية باستثناء الإدخالات الخاصة . و .. .
–force لتفويض السلوك المُدمّر
تتوخّى العديد من الأوامر التي تُنفّذ إجراءات مُدمّرة الحذر في بعض الحالات. على سبيل المثال، إذا استخدمت الأمر rm لإزالة ملف محمي ضد الكتابة، فسيُطالبك الأمر بالتأكيد:
ومع ذلك، يمكنك استخدام الخيار –force (-f) لفرض الإزالة:
الآن، لا يطلب الأمر تأكيدًا ولا حتى يُشير إلى أن الملف محمي ضد الكتابة؛ بل يحذفه تلقائيًا. أوامر أخرى متعلقة بالملفات، مثل cp وmv، والتي قد تُحل محل ملفات موجودة، تدعم خيار –force (-f) الذي يُؤدي إلى نفس النتيجة.
من المهم ملاحظة أن الأمر force لا يعني في الواقع “بذل كل ما في وسعك لتنفيذ هذا الإجراء”، بل يعني “كن أقل حرصًا من المعتاد”. على سبيل المثال، الأمر cp -f يلغي أي عمليات تحقق قد يُجريها الأمر cp للملفات الموجودة، ولكنه لن ينسخ ملفًا غير قابل للقراءة على الإطلاق.
–recursive للنزول إلى المجلدات الفرعية
التكرار موضوع شيق، وقد يكون من الصعب فهمه. ولكن في سياق أوامر لينكس، يكون الأمر أبسط قليلًا، وعادةً ما يُشير إلى ما إذا كان الأمر ينزل إلى المجلدات. على سبيل المثال، افتراضيًا، يُدرج الأمر ls الملفات في مجلد، ولكن ليس المجلدات الفرعية:
باستخدام الخيار –recursive (-R)، سيعرض الأمر ls أيضًا محتويات أي أدلة فرعية يواجهها:
البرامج التي يُحتمل أن تكون مفيدة عند تطبيقها على العديد من الملفات غالبًا ما تدعم خيار –recursive. للأمر rm صيغة شائعة – rm -rf – وهي خطيرة جدًا: فهو يُزيل جميع الملفات (بما في ذلك المجلدات) قسرًا بشكل متكرر. خيار grep –recursive مفيد جدًا لأنه يُتيح لك إجراء بحث نصي عبر أي مجموعة من الملفات. يدعم الأمر أيضًا الخيارين -r و -R كمكافئين للاختصارات.
من المهم ملاحظة أن هذا الإعداد هو “الكل أو لا شيء”. على سبيل المثال، سيؤدي -R إلى استمرار أمر ls في النزول إلى المجلدات الفرعية حتى لا يجد المزيد. هذا يعني أن قائمتك النهائية قد تكون أطول بكثير من القائمة غير المتكررة. قد تُوفر بعض الأوامر طريقة للحد من عمق هذا التكرار، ولكن rm و grep و ls لا تفعل ذلك عادةً.
نصيحة
أفضل طريقة للحد من عمق هذا التكرار عند العمل مع الملفات بشكل متكرر هي استخدام أمر find. أمر find متكرر افتراضيًا، ويدعم خيار –maxdepth الذي يحدّ من النزول إلى عدد ثابت من مستويات الدليل.
–output لتحديد اسم ملف بديل
تنشئ بعض أنواع الأوامر ملفًا بدلًا من الكتابة إلى الإخراج القياسي. عادةً ما تتعرف هذه الأوامر على الحاجة إلى تغيير اسم الملف الذي تختاره، لذا فهي تدعم خيار –output (-o) الذي يسمح لك بتحديد اسم الملف. المثال الكلاسيكي على ذلك هو مُجمّع، مثل gcc (للغة C):
gcc -o myprog program.c
يقوم هذا الأمر بتجميع الشيفرة المصدرية في ملف program.c ويُنشئ ملفًا ثنائيًا قابلًا للتنفيذ باسم myprog. افتراضيًا، يُسمي مُجمّع gcc ملف الإخراج الخاص به a.out. قد يكون هذا مناسبًا للبرامج السريعة والتطوير المحلي، ولكن بالنسبة للبرامج الأكثر تعقيدًا، من الطبيعي تحديد بديل.
تحذير
يستخدم الأمر df، الذي يُبلغ عن استخدام مساحة نظام الملفات، الأمر –output لغرض مختلف: تغيير تنسيق الإخراج.
–quiet لإخراج أقل و–verbose لإخراج أكثر
تُنتج العديد من البرامج مخرجات يمكن تنسيقها بطرق مختلفة، ومن الطرق السهلة للقيام بذلك التحكم في كمية المخرجات. يقوم الخياران –quiet (-q) و–verbose (-v) بهذا بالضبط، ويمكن أن يكونا مفيدين جدًا في البرمجة النصية أو تصحيح الأخطاء.
يستخدم grep الأمر –quiet (ومرادفه –silent) لإلغاء جميع المخرجات، وفي هذه الحالة يعمل فقط كتحقق من تطابق التعبيرات العادية من خلال حالة الخروج. تشمل الأدوات الأخرى التي تدعم –quiet sed وdiff وbrew، مدير الحزم.
يُستخدم الخيار –verbose غالبًا بواسطة المُجمِّعات؛ ويُنتج gcc الكثير من معلومات التشخيص عند تشغيله مع –verbose:
عادةً ما يُخرِج الأمر curl بيانات الاستجابة من عنوان URL، لكن الخيار –verbose يُضيف تفاصيل الاتصال، ورؤوس كلٍّ من الاستجابة والطلب، مما يُعطي نظرةً أبسط على المعاملة.
تحذير
غالبًا ما يُستخدم الخيار -v كاختصار لـ –version بدلًا من –verbose، لذا تأكد من معرفة ما يدعمه أمرك.
-ignore-case لمعالجة الأحرف الصغيرة والكبيرة بنفس الطريقة
أي برنامج يتضمن مطابقة الأنماط، مثل grep أو diff، لديه سياسة افتراضية لكيفية التعامل مع الأحرف الصغيرة والكبيرة. عادةً ما يكون ذلك لاعتبار حالة الأحرف أمرًا بالغ الأهمية، بحيث تُعامل “exit_status” و”EXIT_STATUS” ككلمتين مختلفتين:
عندما لا تهتم بحالة الأحرف، استخدم خيار –ignore-case:
من الأوامر الشائعة الأخرى التي تدعم خيار –ignore-case الأوامر sort وuniq وlocate. العديد من خيارات برنامج find لها إصدارات لا تراعي حالة الأحرف، مثل -iname و-ipath.
استخدام لينكس باحتراف لا يعتمد على حفظ مئات الأوامر، بل على فهم الأدوات القوية التي تسهّل العمل وتزيد من سرعة الإنجاز.
الأوامر التي تعلّمتها اليوم ليست مجرد نصوص تُكتب في الطرفية، بل مفاتيح للتحكم الكامل في النظام.
ابدأ بتجربتها تدريجيًا، ولاحظ كيف يتغيّر تفاعلك مع لينكس من مجرّد استخدام يومي إلى تجربة احترافية مرنة وسريعة.
مع الوقت والممارسة، ستكتشف أن كل أمر جديد هو خطوة إضافية نحو الإتقان الحقيقي.


















