إذا كنت تمتلك أكثر إلمام بالمحاكيات الطرفية على أجهزة الكمبيوتر ، فمن المحتمل أنك سمعت عن Linux’s Bash و Microsoft PowerShell. كلاهما موجود في كل مكان في حياة المحترفين المتخصصين في أي من نظامي التشغيل. ومع ذلك ، إذا كنت لا تعيش حياتك اليومية أمام مطالبة الصدفة ، فمن المحتمل أنك لم تفكر كثيرًا في كيفية المقارنة بين الاثنين. في هذه الحالة ، لم يكن هناك وقت أفضل للتعلم!
ما هو بوويرشيل
قدمت Microsoft Powershell في عام 2006 لتعمل كواجهة سطر أوامر تعمل فوق إطار عمل نصي قوي ومتعدد الاستخدامات. تم تصميمه لمساعدة مسؤولي Windows على إنشاء تطبيقات صغيرة تستخدم “commandlets” (المعروفة رسميًا باسم “cmdlets”) لأتمتة جزء كبير من عملهم.
والأهم من ذلك ، أن بنية الأوامر و “قابلية البرمجة” الخاصة به تمثل إعادة صياغة كاملة لنظام MS-DOS القديم الذي تم إنشاء Windows فوقه في الأصل. يحتوي على بنية وطريقة أكثر اتساقًا لتقديم المعلومات التي يسهل التعود عليها والتشفير بها.
لا يُقصد بذلك استبدال سطر أوامر Windows الذي اعتاد معظم الأشخاص تشغيله ، ولكن بدلاً من ذلك يكمله بوظائف الأتمتة والتكوين الخاصة به. على سبيل المثال ، إذا كنت تحاول إدارة خدمة Microsoft Azure على السحابة ، فيمكنك الآن القيام بذلك باستخدام ملف Connect-AzAccount
الأمر بدلاً من استخدام جلسة سطح مكتب بعيد.
مثل Bash ، فإن PowerShell قابل للتدقيق بالكامل ، مما يسمح باستخدامه في بيئات حساسة للغاية حيث من الضروري معرفة كل ما يحدث داخل النظام.
نصيحة: فقط في حال كنت تتساءل ، فإن موجه الأوامر و Powershell ليسا متماثلين تمامًا. فيما يلي الاختلافات بين موجه الأوامر و Powershell.
ما هو باش
Bash هو الجد الذي يعود إلى عام 1989 والذي يظل وثيق الصلة ببيئات Linux بغض النظر عن جميع الأصداف المرباة التي حاولت تجاوزها. مثل PowerShell ، يوفر Bash إطار عمل يمكن بواسطته كتابة البرامج النصية لأتمتة الإدارة بسهولة أكبر.
نظرًا لأن بنية الأوامر وصياغتها موجودة في كل مكان بين توزيعات Linux المختلفة و BSD وحتى macOS ، فقد اعتاد العديد من المطورين على استخدام Bash كمنطلق لتنظيم مشاريعهم.
على الرغم من أن Bash يحتوي على مجموعة أساسية من العمليات التي تسمح لك بكتابة البرامج النصية ونقل المعلومات من خلال المحطة ، فإن كل أمر تكتبه تقريبًا في Terminal باستخدام هذه الصدفة هو برنامج منفصل. على سبيل المثال ، لا يتضمن Bash امتداد ls
(ملفات القائمة) أو cat
أوامر (تسلسل أو إظهار مخرجات ملف) ، ولكن بدلاً من ذلك تبحث عن الملفات التنفيذية التي تحمل الاسم نفسه ضمن المسارات المحددة.
باورشيل مقابل باش: الاختلافات
قد يبدو PowerShell و Bash متشابهين عندما تتعلم أولاً كيفية استخدامهما ، لكنهما في الأساس وحوشان مختلفتان تمامًا مع فلسفات تصميم تتعارض أحيانًا. فيما يلي بعض الأشياء الحاسمة التي تميزهم عن بعضهم البعض:
1. التحكم في وصول المستخدم
إذا أردت القيام بشيء إداري مع Bash ، فكل ما عليك فعله هو أن تسبق الأمر sudo
. بمجرد الانتهاء من الأمر ، يتم إعادتك على الفور إلى غلاف المستخدم. يؤدي تنفيذ أمر الجذر إلى ترك مساحة أقل للخطأ ويجبرك على مراجعة ما تفعله.
من ناحية أخرى ، لا يمكن تشغيل PowerShell إلا في الوضع الإداري أو وضع المستخدم. إذا كنت تريد التبديل بينهما ، عليك فتح جلسة جديدة. لفتح PowerShell في الوضع الإداري ، يجب النقر بزر الماوس الأيمن فوق رمز البرنامج والنقر فوق “تشغيل كمسؤول”. بدلاً من ذلك ، في جلسة طرفية واحدة ، يمكنك فقط الكتابة Start-Process powershell -verb runAs
وسيفتتح جلسة ثانية بامتيازات إدارية.
2. الإخراج
عندما تكتب أمرًا في Bash ، فأنت تقوم بشكل أساسي بتشغيل برنامج منفصل ، وسيمنحك هذا الملف القابل للتنفيذ النتيجة التي تريدها. تعتمد كيفية تنسيق الإخراج على كيفية تنسيق مطور هذا البرنامج المحدد.
هناك الكثير من المرونة هنا ، وهو أمر رائع ، لكن الجانب السلبي هو عدم وجود تجانس.
عادةً ما يتم تنسيق إخراج الأمر في PowerShell وفقًا لمعيار واحد موحد. النص الذي تراه على الشاشة هو نسخة من البيانات يمكن للبشر قراءتها ويمكن تفسيرها بواسطة برامج أخرى.
يتيح ذلك للأشخاص الذين يكتبون نصوصًا وتطبيقات استخدام ميزات وأوامر PowerShell الخاصة للحصول على جميع المعلومات التي يحتاجون إليها.
3. النحو
يستخدم Bash تركيبًا فريدًا جدًا (على سبيل المثال ، if [condition]; then code here; fi
) لا يُرى عادةً في لغات البرمجة النصية الأخرى. ليس من الصعب استخدامه بشكل لا يصدق ، لكنه قد يكون غير تقليدي إلى حد ما بالنسبة لشخص بدأ لتوه في تعلم كيفية كتابة النصوص.
بالنسبة لأوامر المستخدم ، لا يوجد توحيد واضح. يأتي كل برنامج مع صيغة الأوامر الخاصة به. عليك أن تعرف كيفية استخدامها قبل أن تتمكن من دمجها في نص bash الخاص بك.
يشبه بناء جملة البرمجة النصية في PowerShell أي تطبيق .NET آخر (على سبيل المثال ، if (condition) { ...code here... }
). بالنسبة للأشخاص الذين اعتادوا على التطوير داخل النظام البيئي لشركة Microsoft ، لا يوجد أي منحنى تعليمي تقريبًا.
أوامر المستخدم تتبع بنية صلبة: فعل ، متبوعًا بشرطة ، متبوعًا باسم. على سبيل المثال، Get-ChildItem
سوف يسرد جميع الملفات في الدليل الحالي. لا يزال بإمكان الأوامر غير الخاصة بـ PowerShell اتباع بنية مشابهة لـ Bash. إذا كنت تستخدمه على نظام Linux ، فستظل قادرًا على تنفيذ كل أوامر Linux.
4: المرونة
إذا كنت تتقن Bash ، فستعرف كيفية العمل مع البيئات الطرفية لعدد لا يحصى من توزيعات Linux ونظام BSD البيئي وحتى نظام macOS. إنه إلى حد بعيد ملك العالمية. على الرغم من أن macOS تحول إلى zsh في عام 2019 ، إلا أنه لا يزال يتمتع بروح Bash في جوهره.
PowerShell قادر على العمل داخل أي نظام تشغيل تقريبًا ، ولكن من المفترض أن يعمل جنبًا إلى جنب مع منتجات Microsoft الخاصة. إذا كنت تستخدمه ، فمن المحتمل جدًا أنك تفعل ذلك داخل Windows.
إذا كان كل ما تتعلمه هو اتفاقيات خاصة بـ PowerShell ، فستظل عالقًا في جزيرة مع منتجات Microsoft. على الرغم من أن هذا لا يجب أن يكون هو الحال ، فلا مفر من حقيقة أن القشرة تضيء حقًا فقط في هذا الموقف. بقدر ما تذهب الجوانب السلبية ، إلا أنها تأتي مع جزء هائل من حصة سوق أجهزة الكمبيوتر المكتبية العالمية.
أسئلة مكررة
هل يمكنني تشغيل bash داخل Windows و PowerShell داخل Linux؟
لتشغيل bash داخل Windows ، ما عليك سوى تثبيت نظام Windows الفرعي لنظام Linux عن طريق تشغيل موجه الأوامر كمسؤول والكتابة wsl --install
. سيكون لديك وصول فوري إلى أوامر bash بعد انتهاء التثبيت.
يعد PowerShell داخل Linux أكثر تعقيدًا ويعتمد على التوزيعات. تتضمن Microsoft إرشادات على موقعها على الويب لتثبيت PowerShell على التوزيعات الأكثر شيوعًا. قد تلاحظ أن Arch Linux مفقود من تلك القائمة ، ولكنه موجود مثل powershell
الحزمة في AUR.
هل أحتاج إلى Bash في Windows؟
ليس بالضرورة ، ولكنه سيساعدك كثيرًا إذا كنت تخطط لاستخدام بعض الأشياء المصممة أكثر لنظام Linux (Python ، Git ، إلخ). وجودها حولها لا يمكن أن يؤذي. يتيح لك استخدام Windows Subsystem for Linux لتثبيت Bash أيضًا الحصول على غلاف Linux كامل لتجربته ، وهي طريقة رائعة لتعريف نفسك ببيئة التشغيل إذا لم تكن مألوفًا.
هل تعمل أوامر Windows DOS في PowerShell؟
يفعلون ذلك بشكل عام. لا يعد PowerShell بديلاً لموجه أوامر Windows الأصلي. بدلاً من ذلك ، إنها طبقة تعمل فوقها لتوفير وظائف جديدة. ربما لن يفوتك أي شيء إذا كنت تستخدم PowerShell فقط بدلاً من cmd.exe المجرب والصحيح.
اشترك في نشرتنا الإخبارية!
يتم تسليم أحدث دروسنا مباشرة إلى صندوق الوارد الخاص بك
اكتشاف المزيد من نص كم
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.