Główna » jak » Jak uruchamiać programy systemu Windows z powłoki Bash systemu Windows 10

    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.