Početna » kako da » Kako pokrenuti Windows programe iz Windows 10's Bash Shell

    Kako pokrenuti Windows programe iz Windows 10's Bash Shell

    U ažuriranju za Stvoritelje, Bash ljuska za Windows 10 sada vam omogućuje pokretanje Windows binarnih datoteka i standardnih naredbi Command Prompta izravno iz Basha. Možete pokrenuti i Linux i Windows programe iz iste Bash ljuske, ili čak uključiti Windows naredbe u Bash skriptu.

    Što trebaš znati

    Evo nekih osnovnih pojedinosti koje trebate znati o ovoj značajki:

    • Korisnički račun: Programi pokrenuti iz Bash ljuske će se pokrenuti kao da ih je pokrenuo trenutni Windows korisnički račun.
    • dozvole: Ovi će programi imati iste dozvole kao i proces Bash.exe. Dakle, ako želite da ove naredbe imaju administratorski pristup, morat ćete pokrenuti Bash ljusku kao administrator.
    • Radni direktorij: Windows programi dijele isti "radni direktorij" kao i Bash ljuska. Dakle, ako pokrenete naredbu koja navodi sadržaj trenutnog direktorija, on će popisati sadržaj trenutnog radnog direktorija u Bash ljusci. Koristiti CD naredbu za promjenu radnih direktorija.

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

    Kako pokrenuti Windows program

    Da biste pokrenuli Windows program, unesite putanju do .exe datoteke programa u Bash ljusci. Ne zaboravite da je vaš Windows C: pogon dostupan na / mnt / c u Bashu. Okoliš Bash također razlikuje velika i mala slova pa morate navesti ispravnu upotrebu velikih i malih slova.

    Recimo da ste htjeli pokrenuti Ping program koji se nalazi na C: Windows System32 PING.EXE. Pokrenuli biste sljedeću naredbu:

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

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

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

    To je malo kompliciranije ako put sadrži složene znakove kao što su razmaci i zagrade, poput mapa Program Files. Morate “pobjeći” od prostora, zagrada i drugih složenih znakova prefiksom s “znakom”.

    Na primjer, recimo da ste htjeli pokrenuti program Internet Explorer koji se nalazi na C: Program Files (x86) Internet Explorer iexplore.exe. Morali biste pokrenuti sljedeću naredbu u Bashu:

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

    Zabilježite znak "prije" i znakove zagrada. Ovi znakovi moraju biti "pobjegli" ili Bash neće shvatiti da su znakovi dio putanje datoteke.

    Kako proslijediti argument komandi

    Bash ljuska šalje argumente izravno naredbama koje izvršavate.

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

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

    Ili, ako ste htjeli otvoriti datoteku Windows hosts u Notepadu, pokrenuli biste:

    /mnt/c/Windows/System32/notepad.exe "C: Upravljački programi sustava Windows 32 i sl."

    Kada prolazite put datoteke izravno u Windows program, koristite standardni put datoteke sustava Windows. To je zato što Bash izravno prenosi argument. Notepad.exe i drugi Windows programi očekuju put datoteke sustava Windows.

    Kako pokrenuti ugrađenu naredbu

    Neke naredbe sustava Windows nisu .exe datoteke, ali su ugrađene u samu naredbenu naredbu. To, na primjer, uključuje dir naredbu koju inače možete izvoditi u naredbenom retku. Da biste pokrenuli takvu naredbu, morate pokrenuti naredbu cmd.exe binarno pridruženo Command Prompt-u i proslijedi mu naredbu kao argument s / C, kao na primjer:

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

    Na primjer, za pokretanje dir naredba ugrađena u naredbeni redak, pokrenuli biste sljedeću naredbu:

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

    Kako dodati direktorije na put

    Okruženje Windows Services for Linux tretira izvršne datoteke sustava Windows slične načinu na koji tretira binarne datoteke Linuxa. To znači da na put možete dodati direktorij koji sadrži .exe datoteke, a zatim izravno izvršiti te .exe datoteke. Na primjer, da biste na put dodali direktorij System32, pokrenuli biste:

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

    Zatim možete izravno pokrenuti Windows .exe datoteke smještene u mapi System32, na primjer:

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

    Kako ispustiti izlaz jedne naredbe drugoj

    Izlaz naredbe Windows može se prenijeti na Linux naredbu i obratno. Na primjer, možete koristiti ipconfig.exe -sve naredbu za popisivanje pojedinosti o mrežnim sučeljima i njihovo povezivanje s Linuxom grep naredbu za pretraživanje izlaza. Na primjer, da biste naveli sve informacije o vezi i potražili odjeljke koji odgovaraju "IPv4 adresi", pokrenuli biste:

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

    To je osnovni proces. Te će naredbe također funkcionirati kada se uključe u Bash skriptu, tako da možete napisati Bash skriptu koja uključuje i Windows naredbe i Linux alate. Ako se pokreće u Bash ljusci, to će raditi u Bash skripti.

    A ako želite ići drugim putem, možete koristiti naredbu "bash -c" za pokretanje naredbi Bash iz standardnog Windows Command Prompt-a.