Č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
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.
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.
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
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
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'
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.