If-Koubou

Kā palaist Windows programmas no Windows 10 Bash apvalka

Kā palaist Windows programmas no Windows 10 Bash apvalka (Kā)

Izstrādātāju atjauninājumā, operētājsistēmas Windows 10 bāzē esošā čaula tagad ļauj palaist Windows binārus un standarta komandu uzvednes tieši no Bash. Jūs varat palaist gan Linux, gan Windows programmas no tās pašas Bash apvalka vai pat iekļaut Windows komandas Bash skriptā.

Kas jums jāzina

Šeit ir daži pamatinformācija, kas jums jāzina par šo funkciju:

  • Lietotāja konts: Programmas, kas palaistas no Bash apvalka, darbosies tā, it kā tos palaistu pašreizējais Windows lietotāja konts.
  • Atļaujas: Šīm programmām būs tādas pašas atļaujas kā procesam Bash.exe. Tātad, ja jūs vēlaties, lai šīm komandām būtu Administratora piekļuve, jums būs jāuzstāda Bash apvalks kā administrators.
  • Darba katalogs: Windows programmas koplieto to pašu "darba direktoriju" kā Bash apvalks. Tātad, ja palaižat komandu, kurā norādīts pašreizējā direktorija saturs, tā sarakstā iekļaus esošā darba direktora saturu Bash apvalkā. Izmantojiet cd komanda mainīt darba direktorijas.

Paturot to prātā, ieskatieties, kā palaist programmu.

Kā palaist Windows programmu

Lai palaistu Windows programmu, ievadiet ceļu uz programmas .exe failu Bash apvalkā. Atcerieties, ka jūsu Windows C: disks ir pieejams vietnē / mnt / c Bash. Bash vide ir reģistrjutīga, tādēļ jums ir jānorāda pareizā kapitalizācija.

Pieņemsim, ka jūs vēlējāties palaist Ping utilītu, kas atrodas C: \ Windows \ System32 \ PING.EXE. Jūs palaidāt šādu komandu:

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

Nākamā komanda nedarbosies, jo Bash ir reģistrjutīga.

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

Tas ir nedaudz sarežģītāks, ja ceļš satur sarežģītas rakstzīmes, piemēram, atstarpes un iekavās, piemēram, mapes Program Files. Jums ir "izbēgt" atstarpes, iekavās un citās sarežģītās rakstzīmes, prefiksējot tās ar "\" rakstzīmi.

Piemēram, pieņemsim, ka vēlaties palaist Internet Explorer programmu, kas atrodas C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe. Jums būs jāspēlē šāda komanda Bash:

/ mnt / c / Programma \ Files \ \ (x86 \) / Internet \ Explorer / iexplore.exe

Ievērojiet "\" pirms atstarpes un kronšteina rakstzīmes. Šīs rakstzīmes ir "izglābtas" vai Bash neizprot, ka rakstzīmes ir daļa no faila ceļa.

Kā nodot argumentu komandai

Bash čaula pārsūta argumentus tieši uz izpildītajām komandām.

Piemēram, ja jūs vēlaties ping example.com, jūs palaidāt:

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

Vai arī, ja jūs vēlaties atvērt Windows saimniekiem failu Notepad, jūs palaidāt:

/mnt/c/Windows/System32/notepad.exe "C: \ Windows \ System32 \ drivers \ etc \ hosts"

Jūs izmantojat standarta Windows faila ceļu, kad iet faila ceļš tieši uz Windows programmu. Tas ir tāpēc, ka Bash tieši iesniedz argumentu. Notepad.exe un citas Windows programmas sagaida Windows faila ceļu.

Kā izpildīt iebūvēto komandu

Dažas Windows komandas nav .exe faili, bet ir iebūvēti komandrindā. Piemēram, tas ietver dir komanda parasti palaist komandu uzvednē. Lai palaistu šādu komandu, jums jāieslēdz cmd.exe binārs saistīts ar komandu uzvedni un nodod komandu kā argumentu ar / C, tāpat kā:

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

Piemēram, lai palaistu dirkomandu ievadot komandu, jūs izpildītu šādu komandu:

/mnt/c/Windows/System32/cmd.exe / C rež

Kā pievienot ceļvežus ceļam

Windows pakalpojumu Linux vidē tiek izskatīti Windows izpildāmie faili, līdzīgi tam, kā tā apstrādā Linux binārus. Tas nozīmē, ka jūs varat pievienot ceļam direktoriju, kurā ir .exe faili, un pēc tam tieši izpildīt šos .exe failus. Piemēram, lai jūsu ceļš iekļautu System32 direktoriju, palaidiet:

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

Pēc tam jūs varētu tieši palaist sistēmas mapē Windows .exe failus, piemēram:

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

Kā Pipe izlaida vienu komandu uz citu

Windows komandas izvadi var ievadīt komandai Linux, un otrādi. Piemēram, jūs varat izmantotipconfig.exe-viss komandu, lai uzskaitītu detalizētu informāciju par jūsu tīkla saskarnēm un caurlaide to uz Linux grep komanda meklēt rezultātu. Piemēram, lai uzskaitītu visu informāciju par jūsu savienojumu un meklētu sadaļas, kas atbilst "IPv4 adresei", jūs palaidīsiet:

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

Tas ir pamatprocess. Šīs komandas darbojas arī tad, ja tās tiek iekļautas Bash skriptā, tādējādi jūs varat rakstīt Bash skriptu, kas ietver gan Windows komandas, gan Linux utilītprogrammas. Ja tas darbojas Bash apvalkā, tas darbosies Bash skriptā.

Un, ja vēlaties doties otrādi, varat izmantot komandu "bash -c", lai palaistu komandas Bash no standarta Windows komandu uzvednes.