Homepage » hogyan kell » A Windows programok futtatása a Windows 10 Bash Shell-ből

    A Windows programok futtatása a Windows 10 Bash Shell-ből

    A Creators Update programban a Windows 10 Bash shellje lehetővé teszi, hogy Windows binárisokat és szabványos parancssor parancsokat futtasson közvetlenül a Bash-től. Linux és Windows programokat is futtathat ugyanazon Bash shellből, vagy akár a Windows parancsokat is beillesztheti egy Bash parancsfájlba.

    Amit tudnod kell

    Íme néhány alapvető részlet, amit tudnia kell erről a szolgáltatásról:

    • Felhasználói fiók: A Bash héjból indított programok úgy futnak, mintha az aktuális Windows felhasználói fiókot indítanák.
    • Engedélyek: Ezek a programok ugyanazokkal a jogosultságokkal rendelkeznek, mint a Bash.exe folyamat. Tehát, ha azt szeretné, hogy ezek a parancsok rendszergazdai hozzáféréssel rendelkezzenek, akkor a Bash shell-et futtatni kell rendszergazdaként.
    • Munkakönyvtár: A Windows programok ugyanazzal a „munkakönyvtárral” rendelkeznek, mint a Bash shell. Tehát, ha futtat egy parancsot, amely felsorolja az aktuális könyvtár tartalmát, felsorolja az aktuális munkakönyvtár tartalmát a Bash shellben. Használja a CD parancsot a munkakönyvtárak módosítására.

    Ezt szem előtt tartva nézzük meg, hogyan kell futtatni egy programot.

    A Windows program futtatása

    A Windows program futtatásához adja meg a program .exe fájljának elérési útját a Bash shellben. Ne feledje, hogy a Windows C: meghajtója a / mnt / c címen érhető el Bash-ben. A Bash környezet is kis- és nagybetűk, ezért meg kell adnia a helyes nagybetűket.

    Tegyük fel, hogy el szeretné indítani a P-segédprogramot, amely a következő helyen található: C: Windows System32 PING.EXE. A következő parancsot futtatná:

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

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

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

    Ez egy kicsit bonyolultabb, ha az útvonal összetett karaktereket tartalmaz, mint például a terek és zárójelek, mint a Program Files mappák. A szóközöket, zárójeleket és egyéb összetett karaktereket „el kell menekülnie” úgy, hogy előzetesen „\ t.

    Tegyük fel például, hogy futtatni szeretné az Internet Explorer programot, amely a következő helyen található: C: Fájlok (x86) Internet Explorer iexplore.exe. A következő parancsot kell futtatnia Bash-ben:

    / mnt / c / Program fájlok (x86) / Internet Explorer / iexplore.exe

    Jegyezze fel a „” jelet a szóköz és a zárójelek előtt. Ezeket a karaktereket „el kell hagyni”, vagy a Bash nem fogja tudni, hogy a karakterek egy fájl elérési útjának részét képezik.

    Hogyan adjunk át egy érvet egy parancshoz

    A Bash shell közvetlenül átadja az argumentumokat a végrehajtott parancsokhoz.

    Például, ha ping.com-t szeretne futtatni, akkor futtatná:

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

    Vagy ha a Windows Hosztok fájlt a Jegyzettömbben szeretné megnyitni, akkor futtathatja:

    /mnt/c/Windows/System32/notepad.exe "C: Windows32 rendszergazdák stb.

    A Windows-fájlút elérésekor közvetlenül a Windows-programhoz használja a szabványos Windows-fájlútvonalat. Ez azért van, mert Bash közvetlenül továbbítja az érvet. A Notepad.exe és más Windows-programok Windows fájlútvonalat várnak.

    Beépített parancs futtatása

    Egyes Windows parancsok nem .exe fájlok, hanem maguk a parancssorba vannak beépítve. Ilyen például a dir parancsot, amelyet általában parancssorban futtathat. Egy ilyen parancs futtatásához futtatni kell a cmd.exe a parancssorhoz társított bináris, és a parancsot argumentumként adja át a / C-vel, így:

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

    Például a dir A parancssorba beépített paranccsal a következő parancsot futtathatja:

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

    Könyvtárak hozzáadása az elérési úthoz

    A Windows Linux szolgáltatásai a Windows bináris fájljaihoz hasonló módon kezelik a Windows futtatható fájljait. Ez azt jelenti, hogy hozzáadhat egy .exe fájlokat tartalmazó könyvtárat az útvonalhoz, majd végrehajthatja azokat. Ha például a System32 könyvtárat hozzá kívánja adni az útvonalához, akkor futtathatja:

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

    Ezután közvetlenül futtathatja a System32 mappában található Windows .exe fájlokat, például:

    PING.exe example.com
    notepad.exe
    cmd.exe / C dir

    Hogyan kell csőni az egyik parancs kimenetét a másikra

    A Windows parancs kimenete egy Linux parancsra vezethető vissza, és fordítva. Például használhatja a ipconfig.exe -all parancsot, amely felsorolja a hálózati interfészek adatait és a Linuxra grep parancs a kimenet kereséséhez. Például a kapcsolatra vonatkozó összes információ felsorolásához és az „IPv4-cím” megfelelő részek kereséséhez futtassa:

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

    Ez az alapfolyamat. Ezek a parancsok akkor is működnek, ha Bash szkriptbe illeszkednek, így írhat egy Bash parancsfájlt, amely magában foglalja a Windows parancsokat és a Linux segédprogramokat is. Ha a Bash héjban fut, Bash parancsfájlban fog működni.

    Ha pedig a másik irányba akar menni, a „bash-c” paranccsal futtathatja a Bash parancsokat a szabványos Windows parancssorból.