Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.

الفرق الحقيقي بين Terminal وCommand Line وShell وConsole ولماذا يختلط الأمر على الجميع

Terminal مقابل Command Line مقابل Shell مقابل Console: هل هي مختلفة حقًا؟

كثيرون يستخدمون مصطلحات مثل Terminal وCommand Line وShell وConsole وكأنها تعني الشيء نفسه، بينما لكل منها معنى دقيق ووظيفة مختلفة في أنظمة التشغيل.

linux-mascot-wearing-sunglasses-and-using-a-laptop-surrounded-by-floating-windows-with-the-i3-window-manager-logo-in-the-background الفرق الحقيقي بين Terminal وCommand Line وShell وConsole ولماذا يختلط الأمر على الجميع
الخلط بين هذه المفاهيم ليس خطأ شائعًا فحسب، بل يسبب أحيانًا سوء فهم لطريقة عمل النظام أو أدوات التحكم فيه.
فـ Terminal هو الواجهة التي تُمكّنك من التفاعل مع النظام، أما Shell فهو المفسّر الذي يترجم الأوامر، بينما Command Line هي البيئة النصية التي تُكتب فيها تلك الأوامر.
فهم الفروقات الدقيقة بين هذه المصطلحات لا يساعد فقط على استخدام النظام بكفاءة أكبر، بل يجعل التعامل مع أدوات مثل Linux وmacOS وWindows أكثر وضوحًا وسلاسة.
في هذا الدليل، سنفكّك هذه المفاهيم خطوة بخطوة بطريقة مبسطة تجعل الفرق بينها واضحًا حتى لغير المتخصصين.

هل سبق لك أن أطلقت على “Terminal ” اسم “Shell ” أو “Command Line”؟ مع أنك محق في ذلك، إلا أن هناك اختلافات واضحة بين هذه المصطلحات. سأتناول هذه الاختلافات وأصلها؛ كم عدد الإجابات الصحيحة التي يمكنك الحصول عليها؟

ما هي Terminal ؟

كلمة “Terminal ” هي اختصار لعبارة “محاكي الطرفية”، وهو برنامج يحاكي أداء محطات الحاسوب المادية القديمة. في بدايات الحوسبة، كان المستخدمون يتفاعلون مع أجهزة الكمبيوتر البعيدة عبر محطات حاسوبية مخصصة عبر وصلة اتصال. كانت هذه المحطات تحتوي على لوحة مفاتيح وشاشة، أو في بعض الحالات، طابعة. كان المستخدمون يستخدمون المحطات لإرسال الأوامر وعرض النصوص.

يُظهر الفيديو السابق طرفية حاسوب DEC VT100 متصلة بحاسوب رئيسي مُجدَّد.

مع انتشار أجهزة الحاسوب الشخصية، بدأت أنظمة التشغيل بمحاكاة المحطات الطرفية المادية برمجيًا. سمح هذا للمستخدمين بالتفاعل مع الأنظمة البعيدة دون الحاجة إلى عتاد طرفي مادي. واليوم، يستمر إرث المحطات الطرفية المادية من خلال محاكيات المحطات الطرفية، التي نستخدمها بطريقة مشابهة جدًا.

a-desktop-displays-an-empty-terminal-windows الفرق الحقيقي بين Terminal وCommand Line وShell وConsole ولماذا يختلط الأمر على الجميع

يتيح لك محاكي المحطات الطرفية إرسال الأوامر واستقبال النصوص من وإلى الحاسوب؛ أما نافذة المحطة الطرفية فهي الحاوية الرسومية التي تحيط بها. لذا، من الناحية الفنية، لا يشير التعريف الشائع والحديث لكلمة “محطة طرفية” في لينكس إلى النافذة نفسها، بل إلى جهاز محاكاة لإرسال الأوامر واستقبال النصوص.

اقرأ أيضا:  NetNewsWire مقابل Feedly: أي تطبيق قارئ RSS أفضل على iPhone

إذا كنت مهتمًا، فلدينا مقالتان حول تاريخ الطرفية. إحداهما تغطي المراحل الثلاث لطرفيات يونكس، والأخرى تتناول تطور الطباعة إلى طرفيات الفيديو.

ما هو Shell؟

Shellهو الطبقة الخارجية للنظام التي تُسهّل تفاعل المستخدم. في نظام التشغيل، يمكن أن يكون الغلاف واجهة سطر أوامر أو واجهة مستخدم رسومية (GUI). يعمل عادةً كبرنامج في مساحة المستخدم يتواصل مع النظام عبر قنوات مساحة المستخدم القياسية، بدلاً من التفاعل مباشرةً مع النواة.

نصيحة
مساحة المستخدم هي بيئة التشغيل للعمليات غير المُصرّح لها. جميع تطبيقاتك النموذجية (حتى تطبيقات الجذر) تعمل في مساحة المستخدم. مساحة النواة مُخصصة للأكواد البرمجية المُصرّح لها، ولها سلطة مطلقة على بقية النظام ووصول مباشر إلى الأجهزة – على سبيل المثال، برامج التشغيل أو مكونات النواة.

في لغة لينكس الشائعة، يُقصد بالغلاف عادةً مُفسّر سطر أوامر يقبل الأوامر والبرامج النصية لأداء المهام على نظام التشغيل. هو برنامج يقرأ الأوامر ويفهمها وينفذها. من أمثلة الأصداف الشائعة في لينكس: Bash وZsh وfish. لكلٍّ منها طريقته الخاصة في معالجة الأوامر وتنفيذ البرامج النصية.

a-terminal-window-displays-bash-version-information الفرق الحقيقي بين Terminal وCommand Line وShell وConsole ولماذا يختلط الأمر على الجميع

ربما سمعتَ أيضًا عن واجهة برمجة تطبيقات جنوم (Gnome shell)؛ وهي مثال على واجهة برمجة تطبيقات رسومية، يتفاعل المستخدمون معها للتحكم في النظام، على سبيل المثال، لإنشاء الملفات وحذفها، إلخ. تتفاعل الواجهة الرسومية في لينكس مع نظام النوافذ، وتتخذ شكل قوائم ونوافذ ووظائف سطح مكتب أخرى.

ما هو Command Line؟

Command Line (CLI أو واجهة سطر الأوامر) هو ببساطة مكان لإدخال الأوامر إلى النظام، عادةً عبر واجهة برمجة تطبيقات. إنه مصطلح عالمي، ويمكن أن يكون سطر الأوامر جزءًا من نظام التشغيل أو حتى برنامج. غالبًا ما يخلط الناس بين المصطلح ومصطلحات أخرى وثيقة الصلة، مثل الطرفية أو واجهة برمجة التطبيقات (shell)، ولكن له معنى مميز. لن يُقلقك هذا التمييز، ولكنه موجود بالفعل.

اقرأ أيضا:  لماذا يُعتبر Google Docs الخيار الأفضل للتعاون على المستندات مقارنة بـ Microsoft Word

من الأمثلة الشائعة على سطر الأوامر أسطر النصوص التي تُدخلها في Bash أو Zsh.

a-very-basic-command-inserted-into-a-command-line الفرق الحقيقي بين Terminal وCommand Line وShell وConsole ولماذا يختلط الأمر على الجميع

يوجد مثال آخر لسطر الأوامر في Emacs، والذي يسمح لك بإدخال الأوامر أثناء التنقل باستخدام Elisp.

a-doom-emacs-text-editor-window-with-some-text-on-the-screen-at-the-bottom-is-a-command-line-with-a-command-that-prints-a-message-this-is-the-doom-emacs-command-line الفرق الحقيقي بين Terminal وCommand Line وShell وConsole ولماذا يختلط الأمر على الجميع

ما هي Console؟

وحدة تحكم لينكس هي نظام إدخال/إخراج فرعي يأتي مع نواة لينكس. تستقبل هذه الوحدة الرسائل وتتيح التفاعل مع النواة.

الفرق بين وحدة تحكم لينكس ومحاكي الطرفية هو أن برنامج تشغيل وحدة تحكم لينكس يعمل في مساحة النواة، ويعرض رسائل النظام، ويتيح التفاعل مباشرةً مع نظام لينكس. من ناحية أخرى، محاكيات الطرفية هي مجرد برامج لإرسال الأوامر واستقبال الردود، وتعمل بالكامل في مساحة المستخدم. كما أن ميزات وحدة تحكم لينكس الحديثة أقل بكثير من محاكيات الطرفية.

تدير وحدة تحكم لينكس محطات طرفية افتراضية تُسمى TTYs (أو وحدات التحكم الافتراضية). يمكنك التفاعل مع وحدة تحكم لينكس عبر هذه المحطات، الموجودة في /dev/tty*، حيث “*” رقم. وبالمثل، تتفاعل محاكيات الطرفية مع محطات طرفية وهمية موجودة في المجلد /dev/pts/ (مثل /dev/pts/0، /dev/pts/1، إلخ).

TTY هو اختصار لـ Teletypewriter. تاريخيًا، كانت هذه أجهزة كهروميكانيكية، تشبه الآلات الكاتبة إلى حد كبير، قادرة على إرسال واستقبال الرسائل الإلكترونية عبر خطوط الاتصالات (مثل الهاتف أو التلغراف أو الخط التسلسلي). يعود تاريخ هذه الأجهزة إلى عصر التلغراف (وهو تطوير لشفرة مورس). تُحاكي أنظمة لينكس الحديثة هذه الأجهزة.

تُظهر مقاطع الفيديو السابقة آلة كاتبة عن بُعد متصلة بخادم لينكس عبر خط تسلسلي. يُصدر المستخدم أوامر إلى وحدة تحكم لينكس ويستقبل مخرجاتها عبر عُقد جهاز TTY التسلسلية (مثل /dev/ttyS0).

بطريقة أو بأخرى، تُشغّل كلٌّ من وحدات التحكم الافتراضية ومحاكيات الطرفية واجهة برمجة تطبيقات (shell)، وهي عادةً Bash. قد تُشبه هذه الواجهة بعضها البعض، لكن سياقات تشغيلها مختلفة تمامًا.

اقرأ أيضا:  محرك الأقراص Mac Fusion مقابل SSD مقابل Hard Drive

يمكنك الوصول إلى TTY عبر Ctrl+Alt+F*، حيث يُمثّل “*” رقمًا (من 1 إلى 7). عادةً ما تُهيئ توزيعات لينكس TTY1 لتشغيل مدير العرض (شاشة تسجيل الدخول)، والذي بدوره سيُشغّل واجهة برمجة التطبيقات الرسومية (أي بيئة سطح المكتب). عادةً ما تكون الأرقام من 2 إلى 7 متاحة للاستخدام، ولكن التبديل إلى TTY1 سيُعيدك إلى سطح المكتب.

استخدم الأمر التالي لمعرفة وحدة التحكم الافتراضية المُتصلة بها جلسة تسجيل الدخول الخاصة بك.

loginctl session-status

a-terminal-window-displays-the-output-of-the-loginctl-command-it-shows-that-the-current-desktop-session-was-launched-via-tty1-there-is-also-lots-of-related-hierarchical-text-on-the-screen الفرق الحقيقي بين Terminal وCommand Line وShell وConsole ولماذا يختلط الأمر على الجميع

جلستي الحالية متصلة بـ vc1 (المعروفة أيضًا باسم وحدة التحكم الافتراضية 1 أو TTY1) كما هو موضح في الصورة السابقة.

باختصار، وحدة تحكم لينكس هي نظام إدخال/إخراج فرعي على مستوى النواة، يمكن التحكم فيه عبر وحدة تحكم افتراضية. لأجهزة TTY هذه جذور تاريخية، وهي تحاكي أجهزة الآلة الكاتبة عن بُعد. لا يزال من الممكن إرسال واستقبال الأوامر إلى نواة لينكس عبر أجهزة الآلة الكاتبة عن بُعد.

كثيرًا ما يخلط الناس بين هذه المصطلحات، ولكن هناك فروق تقنية واضحة بينهما. على سبيل المثال، قد يعني سطر الأوامر (CLI) الطرفية أو وحدة التحكم. قد يعني الغلاف (shell) أيًا من هذه المصطلحات. غالبًا ما يقول الناس “فتح غلاف”، ولكن ما يقصدونه في الواقع هو فتح طرفية. ومع ذلك، يمكنك تنفيذ المهمة المحددة عبر وحدة تحكم افتراضية أيضًا.

المصطلح الصحيح هو “نافذة الطرفية” لمعظم المستخدمين. تفتح نافذة رسومية وتنفذ الأوامر. مصطلح “CLI” صحيح أيضًا لأنه يمكن أن يعني أي واجهة أوامر (بما في ذلك المخزن المؤقت المصغر لـ Emacs). مع ذلك، إذا طلب منك أحدهم فتح وحدة تحكم، فهذا طلب محدد للغاية، لذا يجب عليك الانتباه للسبب.

الآن وقد عرفت الفرق بين المصطلحات المختلفة، قد ترغب في تعلم استخدام طرفية لينكس كمبتدئ.

رغم أن مصطلحات مثل Terminal وShell وCommand Line وConsole تبدو متداخلة، إلا أن لكل منها وظيفة محددة تشكّل معًا منظومة التحكم بالنظام.
فهم هذه الفروقات يُسهل التعامل مع أوامر النظام ويمنحك قدرة أفضل على إدارة الملفات وتشغيل البرامج وتخصيص بيئة العمل.
التمييز بين هذه المفاهيم ليس مجرد معرفة نظرية، بل خطوة أساسية لكل من يريد التعمق في أنظمة التشغيل واستخدامها بفعالية واحتراف.

زر الذهاب إلى الأعلى