11Sep

Windows-ohjelmien suorittaminen Windows 10: n Bash Shell -ohjelmistosta

Creators-päivityksessä Windows 10: n Bash-kuori mahdollistaa nyt Windowsin binäärit ja tavalliset komentokehotteen komennot Bashista lähtien. Voit käyttää sekä Linux- että Windows-ohjelmia samasta Bash-kuoresta tai jopa sisällyttää Windows-komennot Bash-komentosarjoihin.

Mitä sinun tarvitsee tietää

Seuraavassa on joitain perustietoja, jotka sinun on tiedettävä tästä ominaisuudesta:

  • Käyttäjätili : Bash-shellista käynnistetyt ohjelmat toimivat ikään kuin ne käynnistyisivät nykyisessä Windows-käyttäjätilissä.
  • -käyttöoikeudet : Näillä ohjelmilla on samat oikeudet kuin Bash.exe-prosessi. Joten, jos haluat, että näillä komennoilla on järjestelmänvalvojan pääsy, sinun on suoritettava Bash-kuori järjestelmänvalvojana.
  • -työhakemisto : Windows-ohjelmat jakavat saman "työhakemiston" kuin Bash-kuori. Joten, jos suoritat komennon, jossa luetellaan nykyisen hakemiston sisältö, se luettaa nykyisen työhakemiston sisällön Bash-kuviossa. Käytä cd-komentoa muokkaamaan työhakemistoja.

Tässä mielessä katsotaanpa, miten ohjelma toimii.

Windows-ohjelman suorittaminen

Jotta voit suorittaa Windows-ohjelman, kirjoita ohjelman ohjelman. exe-tiedoston polku Bash-kuoriin. Muista, että Windows C: -asema on saatavilla /mnt/ c: ssä Bashissa. Bash-ympäristössä on myös pienet ja isot kirjaimet, joten sinun on määritettävä oikea aktivointi.

Oletetaan, että halusit käynnistää C: \ Windows \ System32 \ PING.EXE -ohjelman Ping-apuohjelman. Sinun olisi suoritettava seuraava komento:

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

Seuraava komento ei toimi, koska Bash on isokokoinen:

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

Tämä on hieman monimutkaisempi, jos polku sisältää monimutkaisia ​​merkkejä, kuten välilyöntejä ja sulkeja,kuten ohjelmatiedostot. Sinun täytyy "paeta" välilyöntejä, sulkeja ja muita monimutkaisia ​​merkkejä etuliitteellä "\" -merkillä.

Esimerkiksi sanokaamme, että haluat käyttää Internet Explorer -ohjelmaa, joka sijaitsee osoitteessa C: \ Program Files( x86) \ Internet Explorer \ iexplore.exe. Sinun on suoritettava seuraava komento Bashissa:

/mnt/c/ Ohjelma \ Tiedostot \ \( x86 \) / Internet \ Explorer / iexplore.exe

Huomaa "\" ennen välilyönti- ja kannattimen merkkejä.Nämä merkit on "poistettava" tai Bash ei ymmärrä, että merkit ovat osa tiedostopolkua.

Argumentin siirtäminen komentoon

Bash-kuori siirtää argumentteja suoraan suorittamiin komentoihin.

Esimerkiksi, jos haluat ping example.com, voit suorittaa:

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

Tai jos haluat avata Windowsin isäntätiedostoa Notepadissa, suoritat:

/mnt/c/Windows/System32/ notepad.exe "C: \ Windows \ System32 \ drivers \ etc \ isännät "

Käytät tavallista Windows-tiedostoista, kun ohjataan tiedostopolku suoraan Windows-ohjelmaan. Tämä johtuu siitä, että Bash ohittaa väitteen suoraan. Notepad.exe ja muut Windows-ohjelmat odottavat Windows-tiedostopolun.

Sisäänrakennetun komennon suorittaminen

Jotkin Windows-komennot eivät ole. exe-tiedostoja vaan ne on rakennettu itse Command Promptiin. Tämä sisältää esimerkiksi dir-komennon, jota normaalisti voi käyttää komentokehotteessa. Tällaisen komennon suorittamiseksi sinun on suoritettava komentokehotteeseen liittyvä cmd.exe-binääri ja annettava komento argumentiksi / C: n kanssa, kuten:

/mnt/c/Windows/System32/ cmd.exe / C -komento

Esimerkiksi suorittamaan dirCommand Promptin sisäänrakennettu komento, suorita seuraava komento:

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

Hakemistojen lisääminen polkuun

Windows Services for Linux -ympäristö kohtelee Windows-suoritustiedostoja samankaltaisesti kuin se käsittelee Linux-binäärejä.Tämä tarkoittaa, että voit lisätä hakemiston, joka sisältää. exe-tiedostot polkuun ja suorita sitten nämä. exe-tiedostot suoraan. Jos haluat esimerkiksi lisätä System32-hakemiston polkuun, voit suorittaa:

-vienti PATH = $ PATH: /mnt/c/Windows/ System32

Voit sitten suorittaa Windows. exe-tiedostoja, jotka sijaitsevat System32-kansiossa suoraan, esimerkiksi:

PING.exe-esimerkki.com notepad.exe cmd.exe / C dir

Yhden komennon lähdön putoaminen toiselle

Windows-komennon tuotos voidaan syöttää Linux-komentoon ja päinvastoin. Voit esimerkiksi käyttää ipconfig.exe -kom-komentoa listalla verkkoyhteyksiesi yksityiskohtia ja lähettämällä se Linux grep -komennolle etsimään lähtöä.Jos haluat esimerkiksi luetella kaikki yhteyden tiedot ja etsiä IPv4-osoitteita vastaavia osioita, voit suorittaa:

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

Se on perusprosessi. Nämä komennot toimivat myös, kun ne sisällytetään Bash-komentojonoon, joten voit kirjoittaa Bash-komentosarjan, joka sisältää sekä Windows-komennot että Linux-apuohjelmat. Jos se toimii Bash-kuoressa, se toimii Bash-komentosarjassa.

Ja jos haluat mennä toisella tavalla, voit käyttää bash -c -komentoa suorittamaan Bash-komentoja tavallisesta Windowsin komentokehotteesta.

RELATED ARTICLES
Miten luodaan ja suoritetaan Bash Shell -skriptit Windows 10: ssä
Miten Linux-komentoja käytetään Windows Bash Shell -ohjelman ulkopuolella