الصفحة الرئيسية » howto » كيفية تشغيل برامج ويندوز من ويندوز 10's باش شل

    كيفية تشغيل برامج ويندوز من ويندوز 10's باش شل

    في تحديث Creators ، تسمح لك Bash shell لـ Windows 10 الآن بتشغيل ثنائيات Windows وأوامر Command Prompt القياسية ، مباشرة من Bash. يمكنك تشغيل كل من برامج Linux و Windows من نفس Bash shell ، أو حتى دمج أوامر Windows في البرنامج النصي Bash.

    ما تحتاج إلى معرفته

    فيما يلي بعض التفاصيل الأساسية التي تحتاج إلى معرفتها حول هذه الميزة:

    • حساب المستخدم: سيتم تشغيل البرامج التي يتم إطلاقها من Shell Bash كما لو تم تشغيلها بواسطة حساب مستخدم Windows الحالي.
    • أذونات: سيكون لهذه البرامج نفس الأذونات كعملية Bash.exe. لذلك ، إذا كنت تريد أن يكون لهذه الأوامر حق وصول المسؤول ، فستحتاج إلى تشغيل Bash shell كمسؤول.
    • عمل اخراجي: تشارك برامج Windows نفس "دليل العمل" كقسم Bash. لذا ، إذا قمت بتشغيل أمر يسرد محتويات الدليل الحالي ، فسوف يسرد محتويات دليل العمل الحالي في shell Bash. استخدم ال القرص المضغوط الأمر لتغيير الدلائل العمل.

    مع أخذ ذلك في الاعتبار ، دعونا نلقي نظرة على كيفية تشغيل البرنامج.

    كيفية تشغيل برنامج ويندوز

    لتشغيل برنامج Windows ، أدخل المسار إلى ملف exe للبرنامج في shell Bash. تذكر أن محرك الأقراص Windows C: متوفر في / mnt / c في Bash. كما أن بيئة Bash حساسة لحالة الأحرف ، لذا يجب عليك تحديد الكتابة بالأحرف الكبيرة الصحيحة.

    لنفترض أنك تريد تشغيل الأداة المساعدة Ping الموجودة في C: \ Windows \ System32 \ PING.EXE. قمت بتشغيل الأمر التالي:

    /mnt/c/Windows/System32/PING.EXE

    لن يعمل الأمر التالي ، لأن Bash حساس لحالة الأحرف:

    /mnt/c/windows/system32/ping.exe

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

    على سبيل المثال ، لنفترض أنك تريد تشغيل برنامج Internet Explorer الموجود في C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe. سيكون عليك تشغيل الأمر التالي في Bash:

    / mnt / c / Program \ Files \ \ (x86 \) / Internet \ Explorer / iexplore.exe

    لاحظ "\" قبل الأحرف والمسافات. يجب أن تكون هذه الأحرف "مهيأة" أو لا يدرك باش أن الأحرف جزء من مسار الملف.

    كيفية تمرير الوسيطة إلى القيادة

    يمرر Bash shell الوسيطات مباشرة إلى الأوامر التي تنفذها.

    على سبيل المثال ، إذا كنت تريد تنفيذ الأمر ping example.com ، فستعمل على النحو التالي:

    /mnt/c/Windows/System32/PING.EXE example.com

    أو ، إذا كنت تريد فتح ملف Windows hosts في "المفكرة" ، فستعمل على:

    /mnt/c/Windows/System32/notepad.exe "C: \ Windows \ System32 \ drivers \ etc \ hosts"

    يمكنك استخدام مسار ملف Windows القياسي عند تمرير مسار الملف مباشرة إلى برنامج Windows. ذلك لأن باش يمر بالحجة مباشرة. يتوقع Notepad.exe وبرامج Windows الأخرى مسار ملف Windows.

    كيفية تشغيل المدمج في القيادة

    بعض أوامر Windows ليست ملفات exe. ولكنها مضمنة في موجه الأوامر نفسه. على سبيل المثال ، يتضمن هذا دير الأمر الذي قد تديره عادة في موجه الأوامر. لتشغيل هذا الأمر ، تحتاج إلى تشغيل CMD.EXE ثنائي المرتبطة موجه الأوامر ثم تمرير الأمر كوسيطة مع / C ، مثل:

    /mnt/c/Windows/System32/cmd.exe / C الأمر

    على سبيل المثال ، لتشغيل دير الأمر المضمّن في موجه الأوامر ، يمكنك تشغيل الأمر التالي:

    /mnt/c/Windows/System32/cmd.exe / C dir

    كيفية إضافة الدلائل إلى المسار

    تقوم بيئة خدمات Windows لـ Linux بمعاملة ملفات Windows التنفيذية المشابهة للطريقة التي تتعامل بها مع ثنائيات Linux. هذا يعني أنه يمكنك إضافة دليل يحتوي على ملفات .exe إلى المسار ثم تنفيذ هذه الملفات. exe مباشرة. على سبيل المثال ، لإضافة دليل System32 إلى المسار الخاص بك ، يمكنك تشغيل:

    تصدير PATH = $ PATH: / mnt / c / Windows / System32

    يمكنك بعد ذلك تشغيل ملفات .exe Windows الموجودة في المجلد System32 مباشرةً ، كما يلي:

    PING.exe example.com
    NOTEPAD.EXE
    cmd.exe / C dir

    كيفية الانبوب الناتج من قيادة واحدة الى اخرى

    يمكن توجيه إخراج أمر Windows إلى أمر Linux ، والعكس بالعكس. على سبيل المثال ، يمكنك استخدام ipconfig.exe -all أمر لسرد تفاصيل عن واجهات الشبكة الخاصة بك وتوجيهها إلى نظام التشغيل Linux البقرى الأمر للبحث في الإخراج. على سبيل المثال ، لسرد كل المعلومات المتعلقة بالاتصال والبحث عن الأقسام التي تطابق "عنوان IPv4" ، يمكنك تشغيل:

    /mnt/c/Windows/System32/ipconfig.exe -all | grep "عنوان IPv4"

    هذه هي العملية الأساسية. وستعمل هذه الأوامر أيضًا عندما يتم دمجها في برنامج نصي Bash ، بحيث يمكنك كتابة برنامج نصي Bash يشتمل على كل من أوامر Windows وأدوات مساعدة Linux. إذا كان يعمل في shell Bash ، فسيعمل في البرنامج النصي Bash.

    وإذا كنت تريد أن تمضي في الاتجاه الآخر ، فيمكنك استخدام الأمر "bash -c" لتشغيل أوامر Bash من موجه أوامر Windows القياسي.