Ako spustiť programy Windows z Windows 10 Bash Shell

Obsah:

Ako spustiť programy Windows z Windows 10 Bash Shell
Ako spustiť programy Windows z Windows 10 Bash Shell

Video: Ako spustiť programy Windows z Windows 10 Bash Shell

Video: Ako spustiť programy Windows z Windows 10 Bash Shell
Video: SKR Pro v1.x - Klipper install - YouTube 2024, Apríl
Anonim
V aktualizácii tvorcov teraz systém Windows 10 Bash shell teraz umožňuje spustiť binárne súbory Windows a štandardné príkazy Command Prompt priamo od Bash. Programy Linuxu a Windows môžete spustiť z rovnakého shellu Bash alebo dokonca začleniť príkazy Windows do skriptu Bash.
V aktualizácii tvorcov teraz systém Windows 10 Bash shell teraz umožňuje spustiť binárne súbory Windows a štandardné príkazy Command Prompt priamo od Bash. Programy Linuxu a Windows môžete spustiť z rovnakého shellu Bash alebo dokonca začleniť príkazy Windows do skriptu Bash.

Čo potrebuješ vedieť

Tu je niekoľko základných podrobností o tejto funkcii:

  • Užívateľský účet: Programy spustené z shell Bash budú spustené tak, ako keby boli spustené aktuálnym používateľským účtom systému Windows.
  • oprávnenie: Tieto programy budú mať rovnaké oprávnenia ako proces Bash.exe. Ak chcete, aby tieto príkazy mali prístup administrátora, budete musieť spustiť balík Bash ako správca.
  • Pracovný adresár: Programy Windows zdieľajú rovnaký "pracovný adresár" ako Bash shell. Takže ak spustíte príkaz, ktorý obsahuje obsah aktuálneho adresára, bude obsahovať obsah aktuálneho pracovného adresára v shell Bash. Použi

    cd

    príkaz zmeniť pracovné adresáre.

S ohľadom na to sa pozrime na to, ako spustiť program.

Ako spustiť program Windows

Ak chcete spustiť program Windows, zadajte cestu do súboru.exe programu vo formáte Bash. Pamätajte si, že vaša jednotka C: Windows je dostupná v / mnt / c v Bash. Prostredie Bash je tiež citlivé na veľké a malé písmená, takže musíte špecifikovať správne veľké písmená.

Povedzme, že chcete spustiť nástroj Ping, ktorý sa nachádza na adrese C: Windows System32 PING.EXE. Spustili by ste nasledujúci príkaz:

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

Nasledujúci príkaz nebude fungovať, pretože Bash rozlišuje veľké a malé písmená:

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

Je to o niečo zložitejšie, ak cesta obsahuje zložité znaky ako medzery a zátvorky, napríklad priečinky Programové súbory. Musíte "uniknúť" medzerám, zátvorkám a iným zložitým znakom tým, že ich predčíslite znakom "".
Je to o niečo zložitejšie, ak cesta obsahuje zložité znaky ako medzery a zátvorky, napríklad priečinky Programové súbory. Musíte "uniknúť" medzerám, zátvorkám a iným zložitým znakom tým, že ich predčíslite znakom "".

Povedzme napríklad, že chcete spustiť program Internet Explorer umiestnený v C: Program Files (x86) Internet Explorer iexplore.exe. V Bashi budete musieť spustiť nasledujúci príkaz:

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

Pamätajte znaky "" pred znakmi medzery a medzery. Tieto znaky musia byť "uniknuté" alebo Bash nebude realizovať, že znaky sú súčasťou cesty k súboru.

Image
Image

Ako preniesť argument na príkaz

Bash shell prenesie argumenty priamo na vykonané príkazy.

Napríklad, ak chcete ping example.com spustiť:

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

Alebo, ak by ste chceli otvoriť súbor hostov systému Windows v programe Poznámkový blok, spustili by ste:

/mnt/c/Windows/System32/notepad.exe 'C:WindowsSystem32driversetchosts'

Pri prechode cesty súboru priamo do programu Windows používate štandardnú cestu systému Windows. To je preto, lebo Bash priamo uvádza argument. Notepad.exe a ďalšie programy Windows očakávajú cestu k súboru systému Windows.

Image
Image

Ako spustiť vstavaný príkaz

Niektoré príkazy systému Windows nie sú súbory.exe, ale sú zabudované do samotného príkazového riadka. Zahŕňa to napríklad

dir

príkaz, ktorý by ste normálne mohli spustiť v príkazovom riadku. Ak chcete spustiť takýto príkaz, musíte spustiť

cmd.exe

binárne priradené k príkazovému riadku a odovzdať príkaz ako argument s / C, napríklad takto:

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

Napríklad na spustenie

dir

príkaz vstavaný do príkazového riadka, by ste spustili nasledujúci príkaz:

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

Image
Image

Ako pridať adresy do cesty

Prostredie Windows Services for Linux zaobchádza s spustiteľnými počítačmi systému Windows podobným spôsobom, akým zaobchádza s binárami systému Linux. To znamená, že môžete pridať adresár obsahujúci súbory.exe do cesty a potom tieto súbory exe spustiť priamo. Ak chcete napríklad pridať adresár System32 do cesty, spustite:

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

Potom môžete spustiť súbory Windows.exe umiestnené priamo v priečinku System32, a to takto:

PING.exe example.com

notepad.exe

cmd.exe /C dir

Image
Image

Ako vytláčať výstup jedného príkazu do druhého

Výstup príkazu systému Windows môže byť prepojený s príkazom Linux a naopak. Môžete napríklad použiť

ipconfig.exe -all

príkaz vymenovať podrobnosti o vašich sieťových rozhraniach a naplánovať ich na Linux

grep

príkaz na vyhľadanie výstupu. Ak chcete napríklad uviesť všetky informácie o vašom pripojení a vyhľadať sekcie zodpovedajúce adrese IPv4, spustili by ste:

/mnt/c/Windows/System32/ipconfig.exe -all | grep 'IPv4 Address'

To je základný proces. Tieto príkazy budú fungovať aj vtedy, keď budú začlenené do skriptu Bash, takže môžete napísať skript Bash, ktorý zahŕňa aj príkazy Windows a nástroje Linux. Ak to beží v Bash shell, bude fungovať v Bash skripte.
To je základný proces. Tieto príkazy budú fungovať aj vtedy, keď budú začlenené do skriptu Bash, takže môžete napísať skript Bash, ktorý zahŕňa aj príkazy Windows a nástroje Linux. Ak to beží v Bash shell, bude fungovať v Bash skripte.

Ak chcete prejsť opačným spôsobom, môžete použiť príkaz "bash -c" na spustenie príkazov Bash zo štandardného príkazového riadka systému Windows.

Odporúča: