If-Koubou

Kako pokrenuti Windows programe iz Bash Shell sustava Windows 10

Kako pokrenuti Windows programe iz Bash Shell sustava Windows 10 (Kako da)

U ažuriranju Stvoritelja, ljuska Bash za Windows 10 sada vam omogućuje pokretanje binarnih datoteka sustava Windows i standardne naredbe naredbene naredbe, odmah od Bash. Možete pokrenuti i Linux i Windows programe iz iste Bash ljuske, ili čak ugraditi Windows naredbe u Bash skripte.

Što trebaš znati

Evo nekoliko osnovnih podataka o ovoj značajki:

  • Korisnički račun: Programi pokrenuti iz Bash ljuske će se prikazivati ​​kao da su pokrenuli postojeći korisnički račun sustava Windows.
  • dozvole: Ti programi imaju iste dozvole kao i Bash.exe. Dakle, ako želite da te naredbe imaju pristup administratoru, morat ćete pokrenuti program Bash kao administrator.
  • Radni imenik: Windows programi dijele isti "radni direktorij" kao i Bash ljuska. Dakle, ako pokrenete naredbu koja navodi sadržaj trenutnog direktorija, navest će sadržaj trenutnog radnog direktorija u Bash ljusci. Koristiti CD naredba za promjenu radnih direktorija.

Imajući to na umu, pogledajmo kako pokrenuti program.

Kako pokrenuti Windows program

Da biste pokrenuli Windows program, unesite put do datoteke programa .exe u programu Bash. Imajte na umu da je vaš Windows C: pogon dostupan u / mnt / c u Bash. Bash okruženje također je velika i mala slova, pa morate navesti ispravnu upotrebu velikih i malih slova.

Pretpostavimo da ste željeli pokrenuti uslužni program Ping koji se nalazi na adresi C: \ Windows \ System32 \ PING.EXE. Pokrenite sljedeću naredbu:

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

Sljedeća naredba ne bi uspjela jer Bash razlikuje velika i mala slova:

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

Ovo je malo složenije ako put sadrži kompleksne znakove poput razmaka i zagrada, poput mapa Program Files. Morate "izbjeći" prostore, zagrade i druge složene znakove prefiksajući ih s znakom "\".

Na primjer, recimo da želite pokrenuti program Internet Explorer koji se nalazi na C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe. Morate pokrenuti sljedeću naredbu u Bashu:

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

Napominjemo "\" prije znakova razmaka i zagrada. Ti se znakovi moraju "izbjeći" ili Bash neće shvatiti da su znakovi dio puta datoteke.

Kako prepustiti argument za zapovijed

Bash ljuska prolazi argumente izravno na naredbe koje izvršavate.

Na primjer, ako želite ping example.com, pokrenuli biste:

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

Ili, ako želite otvoriti datoteku s hostom sustava Windows u Notepad, pokrenuli biste:

/mnt/c/Windows/System32/notepad.exe "C: \ Windows \ System32 \ upravljački programi \ etc \ hosts"

Koristite standardni put datoteke u sustavu Windows kada prolazite put datoteke izravno u Windows program. To je zato što Bash izravno prenosi argument. Notepad.exe i drugi Windows programi očekuju putanje datoteka sustava Windows.

Kako pokrenuti ugrađenu naredbu

Neke naredbe sustava Windows nisu .exe datoteke, već su ugrađene u sam naredbeni redak. Na primjer, to uključuje i dir naredbu koju možete normalno pokrenuti u naredbenom retku. Da biste pokrenuli takvu naredbu, morate pokrenuti cmd.exe binarni povezan s naredbenim retkom i proslijediti naredbu kao argument s / C, kao što je to:

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

Na primjer, za pokretanje programa dirnaredba ugrađena u naredbeni redak, pokrenite sljedeću naredbu:

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

Kako dodati direktorije na put

Windows Usluge za Linux okruženje upravlja izvršnim datotekama sustava Windows slično načinu na koji tretira Linux binaries. To znači da možete dodati direktorij koji sadrži datoteke .exe na put i izvršiti izravno one .exe datoteke. Na primjer, da biste dodali direktorij System32 na svoj put, pokrenuli biste:

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

Tada možete pokrenuti Windows .exe datoteke koje se nalaze izravno u mapi System32, na primjer:

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

Kako crtati izlaz jednog zapovijedanja drugoj

Izlaz naredbe sustava Windows može se usmjeriti na Linux naredbu, i obrnuto. Na primjer, možete upotrijebitiipconfig.exe-sve naredba za popis pojedinosti o vašim mrežnim sučeljima i cijev na Linux grep naredba za pretraživanje izlaza. Na primjer, da biste naveli sve informacije o vezi i pretražili odjeljke koji odgovaraju "IPv4 adresi", pokrenuli biste:

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

To je temeljni proces. Te će naredbe također funkcionirati ako su ugrađene u skriptu Bash, tako da možete napisati skriptu Bash koja uključuje obje naredbe sustava Windows i Linux uslužne programe. Ako se pokreće u ljusci Bash, radit će u skripti Bash.

A ako želite ići na drugi način, možete upotrijebiti naredbu "bash-c" za pokretanje naredbi Bash iz standardnog naredbenog retka za sustav Windows.