Что тебе нужно знать
Вот некоторые основные сведения, которые вам нужно знать об этой функции:
- Учетная запись пользователя: Программы, запущенные из оболочки Bash, будут запускаться так, как если бы они были запущены текущей учетной записью пользователя Windows.
- права доступа: Эти программы будут иметь те же разрешения, что и процесс Bash.exe. Итак, если вы хотите, чтобы эти команды имели доступ администратора, вам нужно запустить оболочку Bash в качестве администратора.
-
Рабочий каталог: Программы Windows используют один и тот же «рабочий каталог» в качестве оболочки Bash. Итак, если вы запустите команду, в которой перечислены содержимое текущего каталога, она отобразит содержимое текущего рабочего каталога в оболочке Bash. Использовать
cd
команду изменить рабочие каталоги.
Имея это в виду, давайте посмотрим, как запустить программу.
Как запустить программу Windows
Чтобы запустить программу Windows, введите путь к файлу.exe программы в оболочке Bash. Помните, что ваш диск Windows C: доступен в / mnt / c в Bash. Среда Bash также чувствительна к регистру, поэтому вам нужно указать правильную капитализацию.
Предположим, вы хотели запустить утилиту Ping, расположенную в C: Windows System32 PING.EXE. Вы должны выполнить следующую команду:
/mnt/c/Windows/System32/PING.EXE
Следующая команда не будет работать, потому что Bash чувствителен к регистру:
/mnt/c/windows/system32/ping.exe
Например, предположим, что вы хотите запустить программу Internet Explorer, расположенную в папке C: Program Files (x86) Internet Explorer iexplore.exe. Вам нужно будет запустить следующую команду в Bash:
/mnt/c/Program Files (x86)/Internet Explorer/iexplore.exe
Обратите внимание на «» перед символами пробела и скобки. Эти символы должны быть «экранированы», или Bash не понимает, что символы являются частью пути к файлу.
Как передать аргумент команде
Оболочка Bash передает аргументы непосредственно командам, которые вы выполняете.
Например, если вы хотите выполнить ping example.com, вы должны запустить:
/mnt/c/Windows/System32/PING.EXE example.com
Или, если вы хотите открыть файл Windows hosts в «Блокноте», вы должны запустить:
/mnt/c/Windows/System32/notepad.exe 'C:WindowsSystem32driversetchosts'
Вы используете стандартный путь к файлу Windows при передаче пути к файлу напрямую в программу Windows. Это потому, что Баш передает аргумент напрямую. Notepad.exe и другие программы Windows ожидают путь к файлу Windows.
Как запустить встроенную команду
Некоторые команды Windows не являются.exe-файлами, а встроены в командную строку. Например, это включает
dir
вы обычно можете запустить в командной строке. Чтобы выполнить такую команду, вам нужно запустить
cmd.exe
двоичный код, связанный с командной строкой, и передать ему команду в качестве аргумента с / C, например:
/mnt/c/Windows/System32/cmd.exe /C command
Например, для запуска
dir
команды, встроенной в Командную строку, вы должны выполнить следующую команду:
/mnt/c/Windows/System32/cmd.exe /C dir
Как добавить каталоги на путь
В среде Windows Services for Linux рассматриваются исполняемые файлы Windows, похожие на способы использования двоичных файлов Linux. Это означает, что вы можете добавить каталог, содержащий файлы.exe, в путь, а затем выполнить эти.exe-файлы напрямую. Например, чтобы добавить каталог System32 к вашему пути, вы должны запустить:
export PATH=$PATH:/mnt/c/Windows/System32
Затем вы можете запустить Windows.exe файлы, расположенные в папке System32, так:
PING.exe example.com
notepad.exe
cmd.exe /C dir
Как вывести вывод одной команды в другую
Результат команды Windows можно передать в команду Linux, и наоборот. Например, вы можете использовать
ipconfig.exe -all
команду, чтобы просмотреть сведения о ваших сетевых интерфейсах и передать их в Linux
grep
команду для поиска вывода. Например, чтобы перечислить всю информацию о вашем соединении и найти разделы, соответствующие «IPv4 Address», вы должны запустить:
/mnt/c/Windows/System32/ipconfig.exe -all | grep 'IPv4 Address'
Это основной процесс. Эти команды также будут работать, если они включены в сценарий Bash, поэтому вы можете написать сценарий Bash, который включает в себя как команды Windows, так и утилиты Linux. Если он работает в оболочке Bash, он будет работать в сценарии Bash.
И, если вы хотите пойти другим путем, вы можете использовать команду «bash -c» для запуска команд Bash из стандартной командной строки Windows.