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

Tartalomjegyzék:

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

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

Videó: Windows-programok futtatása a Windows 10 Bash Shell-jéről
Videó: Полное руководство по Google Forms - универсальный инструмент для опросов и сбора данных онлайн! - YouTube 2024, Április
Anonim
Az Alkotások frissítése alatt a Windows 10 Bash parancsértelmezője 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.
Az Alkotások frissítése alatt a Windows 10 Bash parancsértelmezője 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 tudnod kell

Íme néhány alapvető információ, amiről tudnia kell ezt a funkciót:

  • 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-futtatást 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 munkakönyvek megváltoztatására.

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

Windows program futtatása

Windows program futtatásához adja meg a program exe fájljának elérési útját a Bash-héjban. Ne feledje, hogy a Windows C: meghajtó elérhető a / mnt / c fájlban a Bash-ban. 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 futtatta:

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

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

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

Ez egy kicsit bonyolultabb, ha az elérési út tartalmaz komplex karaktereket, például szóközöket és zárójeleket, például a Program Files mappákat. Meg kell "kiszabadulnod" a szóközöket, zárójeleket és más komplex karaktereket úgy, hogy előtagolja őket egy "" karakterrel.
Ez egy kicsit bonyolultabb, ha az elérési út tartalmaz komplex karaktereket, például szóközöket és zárójeleket, például a Program Files mappákat. Meg kell "kiszabadulnod" a szóközöket, zárójeleket és más komplex karaktereket úgy, hogy előtagolja őket egy "" karakterrel.

Tegyük fel például, 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

Jegyezd meg a "" -t a szóköz és a konzol karakterek előtt. 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.

Image
Image

Hogyan adhatunk meg egy argumentumot egy parancsnak?

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

Például, ha ping example.com-ot akarsz tartani, akkor futtatod:

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

Vagy, ha meg akarja nyitni a Windows hosts fájlt a Jegyzettömbben, akkor futtatná:

/mnt/c/Windows/System32/notepad.exe 'C:WindowsSystem32driversetchosts'

A szokásos Windows fájl elérési útját akkor 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.

Image
Image

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

cmd.exe

a Command Prompthez társított bináris, és adja át a parancsot argumentumként a / C-vel, így:

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

Például a

dir

parancsot a parancssorba építettük be, akkor a következő parancsot futtatnánk:

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

Image
Image

Könyvtárak hozzáadása az útra

A Windows Services for Linux környezet a Windows-futtatható fájlokat hasonlítja össze a Linux binárisok kezelésével. 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. Például, ha hozzá kíván adni a System32 könyvtárat az elérési útvonalhoz, akkor futtathatja:

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

Ezután a System32 mappában található Windows.exe fájlokat közvetlenül futtathatja, így:

PING.exe example.com

notepad.exe

cmd.exe /C dir

Image
Image

Hogyan állítsuk be az egyik parancs kimenetét a másikba

A Windows parancs kimenete egy Linux parancsra vezethető be, és fordítva. Például használhatja a

ipconfig.exe -all

paranccsal, hogy felsorolja a hálózati csatolók adatait, és vezesse be a Linuxot

grep

parancsot a kimenet keresésére. Például, ha felsorolni szeretné az összes kapcsolatot és keresni fogja az "IPv4 cím" megfelelő szakaszokat, akkor futtathatja:

/mnt/c/Windows/System32/ipconfig.exe -all | grep 'IPv4 Address'

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.
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.

Ajánlott: