If-Koubou

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

Windows-ohjelmien suorittaminen Windows 10: n Bash Shell -ohjelmistosta (Miten)

Creators-päivityksessä Windows 10: n Bash-kuori mahdollistaa nyt Windows-binäärit ja tavalliset komento-ohjelmakomennot, kuten Bash. 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äynnistyivät nykyisessä Windows-käyttäjätilissä.
  • käyttöoikeudet: Näillä ohjelmilla on samat käyttöoikeudet kuin Bash.exe-prosessi. Joten, jos haluat, että näillä komennoilla on järjestelmänvalvojan käyttöoikeus, 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 komento muuttaa 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 käytettävissä / mnt / c kohdassa Bash. 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 merkitsee isoa ja pienikokoista kirjainta.

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

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

Oletetaan esimerkiksi, 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 pidikkeitä. Nämä merkit on "poistettava" tai Bash ei ymmärrä, että merkit ovat osa tiedostopolkua.

Miten annat argumentin komennolle

Bash-kuori läpäisee argumentit suoraan suorittamiin komentoihin.

Jos esimerkiksi haluat ping example.com, sinun olisi suoritettava:

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

Tai jos haluat avata Windowsin isäntätiedoston Notepadissa, suoritat sen seuraavasti:

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

Suorita sisäänrakennettu komento

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

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

Esim dirCommand Promptin sisäänrakennettu komento, suoritat seuraavan komennon:

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

Hakemistojen lisääminen polkuun

Windows Services for Linux -ympäristö kohtelee Windowsin 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 poluksi, voit suorittaa:

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

Tämän jälkeen voit suorittaa Windows .exe-tiedostoja, jotka sijaitsevat System32-kansiossa, kuten:

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

Kuinka tuottaa yhden komennon tuotos toiselle

Windows-komennon tuotos voidaan syöttää Linux-komentoon ja päinvastoin. Voit käyttää esimerkiksiipconfig.exe -all komennon, jossa luetellaan verkkoyhteyksiesi tiedot ja lähetetään se Linuxiin grep komento etsiä tuottoa. 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.