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 włączać polecenia Windows do skryptu Bash.
Oto kilka podstawowych informacji, które musisz wiedzieć o tej funkcji:
Płyta CD
polecenie zmiany katalogów roboczych.Mając to na uwadze, przyjrzyjmy się, jak uruchomić program.
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 nawiasu. Te znaki muszą być "uniknięte" lub Bash nie zda sobie sprawy, że znaki są częścią ścieżki do pliku.
Powłoka Bash przekazuje argumenty bezpośrednio do poleceń, które wykonujesz.
Na przykład, jeśli chcesz pingować 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.
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
Środowisko Windows Services dla systemu Linux traktuje pliki wykonywalne systemu Windows w podobny sposób, w jaki traktuje pliki binarne 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
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ótuipconfig.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. Aby na przykład 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.
A jeśli chcesz przejść w drugą stronę, możesz użyć polecenia "bash -c", aby uruchamiać polecenia Bash ze standardowego wiersza poleceń systemu Windows.