Kā palaist Windows programmas no Windows 10 Bash Shell
Programmas Izveidotāji atjauninājumā Windows 10 Bash apvalks tagad ļauj palaist Windows binārus un standarta komandu uzvednes komandas tieši no Bash. Jūs varat palaist gan Linux, gan Windows programmas no viena un tā paša Bash apvalka vai pat iekļaut Windows komandas Bash skriptu.
Kas jums jāzina
Tālāk ir sniegtas dažas pamatinformācijas, kas jums jāzina par šo funkciju:
- Lietotāja konts: Programmas, kas sāktas no Bash apvalka, darbosies tā, it kā tās sāktu pašreizējais Windows lietotāja konts.
- Atļaujas: Šīm programmām būs tādas pašas atļaujas kā Bash.exe procesam. Tātad, ja vēlaties, lai šīm komandām būtu administratora piekļuve, jums būs nepieciešams palaist Bash apvalku kā administratoru.
- Darba katalogs: Windows programmām ir tāds pats "darba katalogs" kā Bash apvalks. Tātad, ja palaižat komandu, kurā uzskaitīti pašreizējā direktorija saturs, tas parādīs pašreizējā darba direktorija saturu Bash apvalkā. Izmantojiet
cd
komandu, lai mainītu darba katalogus.
Paturot to prātā, aplūkosim, kā palaist programmu.
Kā palaist Windows programmu
Lai palaistu Windows programmu, ievadiet Bash apvalka programmu .exe faila ceļu. Atcerieties, ka jūsu Windows C: disks ir pieejams vietnē / mnt / c Bash. Bash vide ir arī reģistrjutīga, tāpēc jums ir jānorāda pareizā lieluma lielums.
Pieņemsim, ka gribējāt palaist Ping utilītu, kas atrodas C: Windows System32 PING.EXE. Jūs palaidīsiet šādu komandu:
/mnt/c/Windows/System32/PING.EXE
Šāda 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 jāizbrauc no atstarpēm, kronšteiniem un citām sarežģītām rakstzīmēm, pirms tām pievienojot rakstzīmi "".
Piemēram, pieņemsim, ka vēlaties palaist programmu Internet Explorer, kas atrodas C: Programmas faili (x86) Internet Explorer iexplore.exe. Bash ir jāizpilda šāda komanda:
/ mnt / c / Programmas faili (x86) / Internet Explorer / iexplore.exe
Piezīme “pirms” un atstarpes rakstzīmes. Šīm rakstzīmēm jābūt “izbēgušām” vai Bash neapzinās, ka rakstzīmes ir daļa no faila ceļa.
Kā nodot argumentu komandai
Bash apvalks nodod argumentus tieši izpildītajām komandām.
Piemēram, ja vēlaties, lai ping example.com, jūs palaidīsiet:
/mnt/c/Windows/System32/PING.EXE example.com
Vai arī, ja vēlaties atvērt Windows resursdatora failu piezīmjdatorā, darbināt:
/mnt/c/Windows/System32/notepad.exe "C: Windows System32 vadītāji utt."
Izmantojot faila ceļu tieši Windows programmā, izmantojat standarta Windows faila ceļu. Tas ir tāpēc, ka Bash tieši nodod argumentu. Notepad.exe un citas Windows programmas sagaida Windows faila ceļu.
Kā palaist iebūvētu komandu
Dažas Windows komandas nav .exe faili, bet tās ir iebūvētas pati komandu uzvedne. Piemēram, tas ietver dir
komandu, kuru parasti var palaist komandu uzvednē. Lai palaistu šādu komandu, nepieciešams palaist cmd.exe
bināri, kas saistīti ar komandu uzvedni, un nodod to komandai kā argumentam ar / C, piemēram:
/mnt/c/Windows/System32/cmd.exe / C komanda
Piemēram, lai palaistu dir
komandu uzvednē, jūs palaidīsiet šādu komandu:
/mnt/c/Windows/System32/cmd.exe / C dir
Kā pievienot katalogus ceļam
Windows pakalpojumi Linux vidē apstrādā Windows programmas, kas ir līdzīgas tam, kā tās apstrādā Linux binārus. Tas nozīmē, ka jūs varat pievienot ceļu, kurā ir .exe faili, un pēc tam tieši izpildiet šos .exe failus. Piemēram, lai pievienotu System32 direktoriju savam ceļam, jūs palaidīsiet:
eksportēt PATH = $ PATH: / mnt / c / Windows / System32
Tad varat tieši darbināt Windows .exe failus, kas atrodas System32 mapē, piemēram:
PING.exe example.com
notepad.exe
cmd.exe / C dir
Kā caurules izvadīt vienu komandu uz citu
Windows komandas izvadi var nosūtīt uz Linux komandu un otrādi. Piemēram, varat izmantot ipconfig.exe - viss
komandu, lai uzskaitītu informāciju par tīkla saskarnēm un izvadītu to uz Linux grep
komandu, lai meklētu izeju. Piemēram, lai uzskaitītu visu informāciju par savienojumu un meklētu sadaļas, kas atbilst “IPv4 adrese”, jūs palaidīsiet:
/mnt/c/Windows/System32/ipconfig.exe - viss | grep "IPv4 adrese"
Tas ir pamata process. Šīs komandas darbosies arī tad, ja tās ir iekļautas Bash skriptu, lai jūs varētu uzrakstīt Bash skriptu, kas ietver gan Windows komandas, gan Linux utilītprogrammas. Ja tas darbojas Bash apvalkā, tas darbosies Bash skriptu.
Ja vēlaties doties citā veidā, varat izmantot komandu “bash -c”, lai palaistu Bash komandas no standarta Windows komandu uzvednes.