Jak uruchamiać programy systemu Windows z powłoki Bash systemu Windows 10
W aktualizacji Creators w powłoce Bash systemu Windows 10 można teraz uruchamiać pliki binarne systemu Windows i standardowe polecenia Command Prompt bezpośrednio z Bash. Możesz uruchamiać zarówno programy Linux, jak i Windows z tej samej powłoki Bash lub nawet wprowadzać polecenia Windows do skryptu Bash.
Co musisz wiedzieć
Oto kilka podstawowych informacji, które musisz wiedzieć o tej funkcji:
- Konto użytkownika: Programy uruchomione z powłoki Bash będą działać tak, jakby zostały uruchomione przez bieżące konto użytkownika systemu Windows.
- Uprawnienia: Te programy będą miały takie same uprawnienia, jak proces Bash.exe. Tak więc, jeśli chcesz, aby te polecenia miały dostęp administratora, musisz uruchomić powłokę Bash jako Administrator.
- Katalog roboczy: Programy systemu Windows korzystają z tego samego "katalogu roboczego" co skorupa Bash. Tak więc, jeśli uruchomisz polecenie wyświetlające zawartość bieżącego katalogu, wyświetli on zawartość bieżącego katalogu roboczego w powłoce Bash. Użyj
Płyta CD
polecenie zmiany katalogów roboczych.
Mając to na uwadze, przyjrzyjmy się, jak uruchomić program.
Jak uruchomić program Windows
Aby uruchomić program systemu Windows, wprowadź ścieżkę do pliku .exe programu w powłoce Bash. Pamiętaj, że twój dysk Windows C: jest dostępny w / mnt / c w Bash. W środowisku Bash uwzględniana jest także wielkość liter, dlatego należy podać poprawną wielkość liter.
Załóżmy, że chcesz uruchomić narzędzie Ping znajdujące się w C: \ Windows \ System32 \ PING.EXE. Uruchomiłbyś następujące polecenie:
/mnt/c/Windows/System32/PING.EXE
Poniższa komenda nie zadziałałaby, ponieważ w Bash jest rozróżniana wielkość liter:
/mnt/c/windows/system32/ping.exe
Jest to nieco bardziej skomplikowane, jeśli ścieżka zawiera złożone znaki, takie jak spacje i nawiasy, takie jak foldery Program Files. Musisz "uciec" ze spacjami, nawiasami i innymi złożonymi znakami, poprzedzając je znakiem "\".
Na przykład, powiedzmy, że chcesz uruchomić program Internet Explorer znajdujący się w C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe. Będziesz musiał uruchomić następujące polecenie w Bash:
/ mnt / c / Program \ Files \ \ (x86 \) / Internet \ Explorer / iexplore.exe
Zauważ "\" przed znakami spacji i nawiasów. Te znaki muszą być "uniknięte" lub Bash nie zda sobie sprawy, że znaki są częścią ścieżki do pliku.
Jak przekazać argument do polecenia
Powłoka Bash przekazuje argumenty bezpośrednio do poleceń, które wykonujesz.
Na przykład, jeśli chcesz wysłać polecenie ping example.com, uruchomisz:
/mnt/c/Windows/System32/PING.EXE example.com
Lub, jeśli chcesz otworzyć plik hosts Windows w Notatniku, możesz uruchomić:
/mnt/c/Windows/System32/notepad.exe "C: \ Windows \ System32 \ drivers \ etc \ hosts"
Korzystasz ze standardowej ścieżki do pliku systemu Windows podczas przekazywania ścieżki do pliku bezpośrednio do programu Windows. To dlatego, że Bash przekazuje argument bezpośrednio. Notepad.exe i inne programy systemu Windows oczekują ścieżki do pliku systemu Windows.
Jak uruchomić wbudowane polecenie
Niektóre polecenia systemu Windows nie są plikami .exe, ale są wbudowane w wiersz polecenia. Na przykład obejmuje to reż
polecenie, które normalnie można uruchomić w wierszu polecenia. Aby uruchomić takie polecenie, musisz uruchomić cmd.exe
plik binarny skojarzony z wierszem polecenia i przekazuje go jako argument z / C, jak na przykład:
/mnt/c/Windows/System32/cmd.exe / C command
Na przykład, aby uruchomić reż
polecenie wbudowane w wiersz polecenia, uruchomisz następujące polecenie:
/mnt/c/Windows/System32/cmd.exe / C dir
Jak dodać katalogi do ścieżki
Środowisko Windows Services dla systemu Linux traktuje pliki wykonywalne systemu Windows w podobny sposób, w jaki traktuje pliki binarne dla systemu Linux. Oznacza to, że możesz dodać katalog zawierający pliki .exe do ścieżki, a następnie bezpośrednio wykonać te pliki .exe. Na przykład, aby dodać katalog System32 do swojej ścieżki, należy uruchomić:
export PATH = $ PATH: / mnt / c / Windows / System32
Następnie można uruchomić pliki .exe systemu Windows znajdujące się w folderze System32 bezpośrednio, na przykład:
PING.exe example.com
notepad.exe
cmd.exe / C re
Jak wyprowadzić wyjście jednego polecenia do drugiego
Dane wyjściowe polecenia systemu Windows można przekierować do polecenia systemu Linux i na odwrót. Na przykład możesz użyć skrótu ipconfig.exe -all
polecenie, aby wyświetlić szczegółowe informacje na temat interfejsów sieciowych i podłączyć go do systemu Linux grep
polecenie wyszukiwania wyników. Na przykład, aby wyświetlić wszystkie informacje o połączeniu i wyszukać sekcje pasujące do "adresu IPv4", należy uruchomić:
/mnt/c/Windows/System32/ipconfig.exe -all | grep "Adres IPv4"
To podstawowy proces. Polecenia te będą działać również po włączeniu do skryptu Bash, więc możesz napisać skrypt Bash, który zawiera zarówno polecenia Windows, jak i narzędzia Linux. Jeśli działa w powłoce Bash, będzie działać w skrypcie Bash.
Jeśli chcesz przejść w drugą stronę, możesz użyć polecenia "bash -c", aby uruchomić polecenia Bash ze standardowego wiersza poleceń systemu Windows.