11Sep

Jak spustit programy Windows z prostředí Windows 10 Bash Shell

click fraud protection

V aktualizaci tvorců nyní systém Bash shell systému Windows 10 nyní umožňuje spouštět binární soubory systému Windows a standardní příkazy Command Prompt přímo od Bash. Můžete spustit programy Linux i Windows ze stejného shellu Bash, nebo dokonce zahrnout příkazy systému Windows do skriptu Bash.

Co potřebujete znát

Zde jsou některé základní informace, které potřebujete znát o této funkci:

  • uživatelský účet : Programy spuštěné z shell Bash budou spuštěny, jako kdyby byly spuštěny aktuálním uživatelským účtem Windows.
  • Oprávnění : Tyto programy budou mít stejné oprávnění jako proces Bash.exe. Takže pokud chcete, aby tyto příkazy měly přístup administrátora, budete muset spustit shell Bash jako správce. Pracovní adresář
  • : Programy Windows sdílejí stejný "pracovní adresář" jako Bash shell. Pokud tedy spustíte příkaz obsahující seznam aktuálního adresáře, zobrazí obsah aktuálního pracovního adresáře ve složce Bash. Pomocí příkazu cd můžete změnit pracovní adresáře.
instagram viewer

V tomto ohledu se podíváme, jak spustit program.

Jak spustit program Windows

Chcete-li spustit program Windows, zadejte cestu do souboru. exe programu ve složce Bash. Nezapomeňte, že vaše jednotka C: Windows C je dostupná v /mnt/ c v Bash. Prostředí Bash také rozlišuje velká a malá písmena, takže musíte zadat správné použití velkých písmen.

Řekněme, že jste chtěli spustit nástroj Ping umístěný na C: \ Windows \ System32 \ PING.EXE.Byl byste spustit následující příkaz:

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

Následující příkaz by nefungoval, protože Bash rozlišuje velká a malá písmena:

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

To je trochu složitější, pokud cesta obsahuje složité znaky jako mezery a závorky,jako jsou složky Program Files. Musíte "uniknout" mezery, závorky a další složité znaky předponouním znakem "\".

Například řekněme, že chcete spustit program Internet Explorer umístěný na C: \ Program Files( x86) \ Internet Explorer \ iexplore.exe. Bash: Budete muset spustit následující příkaz:

/mnt/c/ Program \ Files \ \ x86 \ / Internet \ Explorer / iexplore.exe

Poznamenejte "\" před znaky mezery a závorky. Tyto znaky musí být "uniklé" nebo Bash si neuvědomí, že znaky jsou součástí cesty k souboru.

Jak předat argument k příkazu

Balík Bash předává argumenty přímo příkazům, které provedete.

Pokud například chcete ping example.com spustit:

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

Nebo pokud byste chtěli otevřít soubor hostitelů systému Windows v programu Poznámkový blok, spustili byste:

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

Při předávání cesty souboru přímo do programu Windows používáte standardní cestu k systému Windows. To je proto, že Bash předává argument přímo. Notepad.exe a další programy Windows očekávají cestu k souboru systému Windows.

Jak spustit zabudovaný příkaz

Některé příkazy systému Windows nejsou soubory typu. exe, ale jsou zabudovány do samotného příkazového řádku. Toto například zahrnuje příkaz dir, který byste normálně spustili v příkazovém řádku. Chcete-li spustit takový příkaz, je třeba spustit cmd.exe binární připojenou k příkazovému příkazu a předat příkaz jako argument s / C, například takto:

/mnt/c/Windows/System32/ cmd.exe / C příkaz

Například spustit dirpříkaz

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

Jak přidat adresáře do cesty

Prostředí Windows Services for Linux zpracovává spustitelné soubory systému Windows podobné způsobu, jakým binární soubory systému Linux pracují.To znamená, že můžete do adresáře přidat adresář obsahující soubory. exe a potom tyto soubory exe spustit přímo. Chcete-li například přidat adresář System32 do cesty, měli byste spustit:

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

Mohli byste spustit soubory Windows. exe umístěné ve složce System32 přímo takto: Příklad

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

Jak potrubí výstupu jednoho příkazu do jiného

Výstup příkazu systému Windows lze pipetovat na příkaz Linux a naopak. Například můžete použít příkaz ipconfig.exe -all pro zobrazení podrobností o vašem síťovém rozhraní a přetáhněte jej do příkazu grep Linux pro vyhledání výstupu. Chcete-li například zobrazit všechny informace o vašem připojení a hledat oddíly odpovídající "Adresa IPv4", měli byste spustit:

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

To je základní proces. Tyto příkazy budou také fungovat, pokud budou začleněny do skriptu Bash, takže můžete napsat Bash skript, který obsahuje jak příkazy systému Windows, tak i nástroje pro Linux. Pokud se spustí v shell Bash, bude pracovat v Bash skriptu.

A pokud chcete jít opačným způsobem, můžete příkaz "bash -c" spustit příkazy Bash ze standardního příkazového řádku systému Windows.

SOUVISEJÍCÍ ČLÁNKY
Jak vytvářet a spouštět skripty Bash Shell na systému Windows 10
Jak spustit příkazy Linux mimo Bash Shell na Windows 10