If-Koubou

Jak uruchamiać programy systemu Windows z powłoki Bash systemu Windows 10

Jak uruchamiać programy systemu Windows z powłoki Bash systemu Windows 10 (Jak)

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.

Co musisz wiedzieć

Oto kilka podstawowych informacji, które musisz wiedzieć o tej funkcji:

  • Konto użytkownika: Programy uruchamiane 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 mają ten sam "katalog roboczy" 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 systemu 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 nawiasu. 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 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.

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 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ó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.