11Sep

Windows-programok futtatása a Windows 10 Bash Shell-jéről

click fraud protection

Az Alkotások frissítésében a Windows 10 Bash-héja lehetővé teszi a Windows bináris fájlok és a szabványos Command Prompt parancsok futtatását közvetlenül a Bash-ból. Futtathatja mind a Linux, mind a Windows programokat ugyanabból a Bash-héjból, vagy akár beépítheti a Windows parancsokat egy Bash parancsfájlba.

Amit tudnia kell

Az alábbiakban néhány alapvető tudnivalót kell tudni erről a szolgáltatásról:

  • Felhasználói fiók : A Bash shellből indított programok úgy működnek, mintha az aktuális Windows felhasználói fiók elindította volna őket.
  • Engedélyek : Ezek a programok ugyanazokkal a jogosultságokkal rendelkeznek, mint a Bash.exe folyamat. Tehát, ha azt szeretné, hogy ezek a parancsok rendelkezzenek adminisztrátori hozzáféréssel, akkor a Bash shellt adminisztrátorként kell futtatnia.
  • munkakönyvtár : A Windows programok ugyanazt a "munkakönyvtárat" osztják meg, mint a Bash shell. Tehát, ha olyan parancsot futtat, amely felsorolja az aktuális könyvtár tartalmát, felsorolja az aktuális munkakönyvtár tartalmát a Bash-héjban. Használja a cd parancsot a működő könyvtárak megváltoztatásához. Ezzel szem előtt tartva, nézzük meg, hogyan kell futtatni egy programot.
    instagram viewer

    Windows program futtatása

    Windows program futtatásához adja meg a program exe fájljának elérési útját a Bash shell-ben. Ne felejtse el, hogy a Windows C: meghajtó a Bash /mnt/ c-ben érhető el. A Bash környezetben a kis- és nagybetűk is érzékenyek, ezért meg kell adnia a megfelelő tőkésítést.

    Tegyük fel, hogy el akarod indítani a C: \ Windows \ System32 \ PING.EXE-ben található Ping segédprogramot. A következő parancsot futtatja:

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

    A következő parancs nem működik, mert a Bash a kis- és nagybetűket érzékeli:

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

    Ez egy kicsit bonyolultabb, ha az elérési út komplex karaktereket tartalmaz, például szóközöket és zárójeleket,mint a Program Files mappák. Meg kell "kiszabadulnod" a szóközöket, zárójeleket és más komplex karaktereket úgy, hogy előtagolja őket egy "\" karakterrel. Például tegyük fel, hogy a C: \ Program Files( x86) \ Internet Explorer \ iexplore.exe programban található Internet Explorer programot szeretné futtatni. A következő parancsot kell futtatnia a Bash-ban:

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

    A szóközt és a zárójeleket megelőzően írja be a \ "\" -t. Ezeknek a karaktereknek "escape" -nak kell lenniük, vagy a Bash nem fogja felismerni, hogy a karakterek egy fájl elérési útjának részét képezik.

    Hogyan adjon meg egy argumentumot egy parancsnak

    A Bash shell közvetlenül érkezik a végrehajtott parancsokhoz.

    Például, ha ping example.com-ot szeretne futtatni:

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

    Vagy, ha a Windows hosts fájlt a Notepadban szeretné megnyitni, az

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

    A szokásos Windows fájl elérési útját használja, amikor egy fájl elérési útvonalát közvetlenül egy Windows programhoz továbbítja. Ez azért van, mert Bash közvetlenül érti az érvelést. A Notepad.exe és más Windows programok várják a Windows fájl elérési útját.

    Beépített parancs futtatása

    Egyes Windows parancsok nem. exe fájlok, hanem beépülnek a Command Promptbe. Például ez magában foglalja a dir parancsot, amelyet általában egy parancssorban futtathat. Egy ilyen parancs futtatásához futtatni kell a Command Prompthez társított cmd.exe binárt, és át kell adni a parancsot a / C függvénnyel, így:

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

    Például a dirA parancssorba beépített parancs a következő parancsot futtatja:

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

    A könyvtárak hozzáadása az útra

    A Windows Services for Linux környezetben a Windows-futtatható fájlok hasonlítanak a Linux binárisok kezelésére. Ez azt jelenti, hogy az. exe fájlokat tartalmazó könyvtárat hozzá lehet adni az elérési úthoz, majd közvetlenül végrehajthatja azokat. exe fájlokat. Ha például a System32 könyvtárat hozzá kívánja adni az elérési úthoz:

    export PATH = $ PATH: /mnt/c/Windows/ System32

    Ezután a System32 mappában található Windows. exe fájlokat futtathatta, például:

    PING.exe példa.com notepad.exe cmd.exe / C dir

    Hogyan kell pipálni az egyik parancs kimenetét egy másik

    Egy Windows parancs kimenete egy Linux parancsra vezethető be, és fordítva. Például az ipconfig.exe -all paranccsal felsorolhatjuk a hálózati csatolók adatait, és a Linux grep parancsra nyomjuk meg a kimenetet. Például, ha felsorolni szeretné az összes kapcsolatot, és megkeresi az "IPv4 cím" megfelelő szakaszokat, akkor fut:

    /mnt/c/Windows/System32/ ipconfig.exe -all |grep "IPv4 cím"

    Ez az alapvető folyamat. Ezek a parancsok akkor is működnek, ha be vannak építve egy Bash parancsfájlba, így írhatunk egy Bash parancsfájlt, amely tartalmazza mind a Windows parancsokat, mind a Linux segédprogramokat. Ha a Bash héjban fut, egy Bash parancsfájlban fog működni.

    És ha másképp akarsz menni, használhatod a "bash-c" parancsot a Bash parancsok futtatásához a szabványos Windows parancssorból.

    KAPCSOLÓDÓ CIKKEK
    Hogyan készítsünk és futtassunk Bash shell parancsfájlokat a Windows 10 operációs rendszeren
    A Linux parancsok futtatása a Bash shellen kívül a Windows 10-en