11Sep

Kako zagnati programe Windows iz bošne školjke Windows 10

V posodobitvi za ustvarjalce vam lupina Bash zdaj omogoča, da zaženete binarne ukaze Windows in standardne ukazne ukaze, neposredno od Bash-a. Z Linuxa in Windows lahko zaženete programe iz iste Bashove lupine ali celo v ukazno vrstico Bash.

Kaj morate vedeti

Tukaj je nekaj osnovnih podrobnosti, ki jih morate poznati o tej funkciji:

  • uporabniški račun : Programi, ki se začnejo z lupino Bash, se bodo prikazovali, kot da jih je zagnal trenutni uporabniški račun za Windows.
  • Dovoljenja : Ti programi bodo imeli enaka dovoljenja kot postopek Bash.exe. Torej, če želite, da imajo ti ukazi dostop do skrbnika, boste morali zagnati lupino Bash kot skrbnik. Delovni imenik
  • : programi Windows delijo isti "delovni imenik" kot lupino Bash. Torej, če zaženete ukaz, ki navaja vsebino trenutnega imenika, bo vsebino trenutnega delovnega imenika v Bash lupini navedla. Za spreminjanje delovnih imenikov uporabite ukaz cd.

S tem v mislih si oglejmo, kako zagnati program.

Kako zagnati program Windows

Če želite zagnati program Windows, vnesite pot do datoteke programa. exe v okvirju teh Bash. Ne pozabite, da je pogon Windows C: na voljo v /mnt/ c v Bashu. Okolje Bash je tudi občutljivo na velikost črk, zato morate navesti pravilno kapitalizacijo.

Recimo, da želite zagnati program Ping, ki se nahaja na C: \ Windows \ System32 \ PING.EXE.Izvedli boste naslednji ukaz:

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

Naslednji ukaz ne bi deloval, ker je Bash občutljiv na velike črke:

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

To je nekoliko bolj zapleteno, če pot vsebuje kompleksne znake, kot so presledki in oklepaj,kot so mape Program Files. Morate "ubežati" presledke, oklepaje in druge zapletene znake, tako da jih predfiksirate z znakom "\".

Na primer, recimo, da želite zagnati program Internet Explorer, ki se nahaja na C: \ Program Files( x86) \ Internet Explorer \ iexplore.exe. V Bashu bi morali zagnati naslednji ukaz:

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

Pred znakom prostora in nosilca glejte "\".Ti znaki morajo biti "ušli" ali Bash ne zaveda, da so znaki del poti datoteke.

Kako prenesti argument v ukaz

Bash lupine prenaša argumente neposredno na ukaze, ki jih izvršite.

Če želite, na primer, ping example.com, zagnati:

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

Ali, če ste želeli odpreti datoteko gostitelja Windows v Notepadu, ste zagnali:

/mnt/c/Windows/System32/ notepad.exe "C: \ Windows \ System32 \ gonilniki \ etc \ gostitelji "

Ko potujete pot do datoteke neposredno v program Windows, uporabljate standardno pot do datoteke Windows. To je zato, ker Bash neposredno prenaša argument. Notepad.exe in drugi programi Windows pričakujejo pot do datoteke programa Windows.

Kako zagnati vgrajeni ukaz

Nekateri ukazi Windows niso datoteke. exe, ampak so vgrajeni v ukazni poziv sam. Na primer, to vključuje ukaz dir, ki ga običajno lahko zaženete v ukaznem pozivu.Če želite zagnati takšen ukaz, morate zagnati binarni cmd.exe povezani z ukaznim pozivom in ga posredovati kot argument s / C, tako:

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

Na primer, za zagon programaukaz, ki je vgrajen v ukazni poziv, bi zagnali naslednji ukaz:

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

Kako dodati imenike na pot

V okolju Windows Services for Linux so Windows izvedeni programi podobni, kot jih obravnava binarne sisteme Linux. To pomeni, da lahko na pot dodate imenik, ki vsebuje datoteke. exe, in nato neposredno izvede te datoteke. exe. Na primer, če želite dodati mapo System32 na svojo pot, bi zaženete:

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

Nato lahko zaženete Windows. exe datoteke, ki se nahajajo v mapi System32, tako kot: primer

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

Kako izvesti porazdelitev enega ukaza na drugega

Izhod iz ukaza Windows se lahko usmeri v ukaz Linux in obratno. Na primer, lahko z ukazom ipconfig.exe -all navedete podrobnosti o vaših omrežnih vmesnikih in ga vnesite v ukaz grep grep za iskanje izhoda.Če želite na primer navesti vse podatke o vaši povezavi in ​​poiskati razdelke, ki se ujemajo z naslovom IPv4, bi zaženete:

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

To je osnovni postopek. Ti ukazi bodo delovali tudi, ko bodo vključeni v skript Bash, tako da lahko napišete skripto Bash, ki vključuje oba ukaza Windows in pripomočke za Linux.Če se izvaja v lupini Bash, bo deloval v skripti Bash.

In, če želite iti drugače, lahko uporabite ukaz "bash -c" za zagon ukazov Bash iz standardnega ukaznega ukaza Windows.

POVEZANI IZDELKI
Kako ustvariti in zagnati skripte baš školjk v operacijskem sistemu Windows 10
Kako zagnati Linux ukaze zunaj bašne školjke v operacijskem sistemu Windows 10