Как запустить программы Windows из Windows Bash Shell

Оглавление:

Как запустить программы Windows из Windows Bash Shell
Как запустить программы Windows из Windows Bash Shell

Видео: Как запустить программы Windows из Windows Bash Shell

Видео: Как запустить программы Windows из Windows Bash Shell
Видео: Как загрузить файл на гугл диск и отправить ссылку - YouTube 2024, Май
Anonim
В обновлении создателей оболочка Bash от Windows 10 теперь позволяет запускать двоичные файлы Windows и стандартные команды командной строки прямо из Bash. Вы можете запускать как Linux, так и Windows-программы из одной оболочки Bash или даже включать команды Windows в сценарий Bash.
В обновлении создателей оболочка Bash от Windows 10 теперь позволяет запускать двоичные файлы Windows и стандартные команды командной строки прямо из Bash. Вы можете запускать как Linux, так и Windows-программы из одной оболочки Bash или даже включать команды Windows в сценарий Bash.

Что тебе нужно знать

Вот некоторые основные сведения, которые вам нужно знать об этой функции:

  • Учетная запись пользователя: Программы, запущенные из оболочки 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

Это немного сложнее, если путь содержит сложные символы, такие как пробелы и скобки, например папки Program Files. Вы должны «избегать» пробелов, скобок и других сложных символов, префикс их символом «».
Это немного сложнее, если путь содержит сложные символы, такие как пробелы и скобки, например папки Program Files. Вы должны «избегать» пробелов, скобок и других сложных символов, префикс их символом «».

Например, предположим, что вы хотите запустить программу Internet Explorer, расположенную в папке C: Program Files (x86) Internet Explorer iexplore.exe. Вам нужно будет запустить следующую команду в Bash:

/mnt/c/Program Files (x86)/Internet Explorer/iexplore.exe

Обратите внимание на «» перед символами пробела и скобки. Эти символы должны быть «экранированы», или Bash не понимает, что символы являются частью пути к файлу.

Image
Image

Как передать аргумент команде

Оболочка 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.

Image
Image

Как запустить встроенную команду

Некоторые команды Windows не являются.exe-файлами, а встроены в командную строку. Например, это включает

dir

вы обычно можете запустить в командной строке. Чтобы выполнить такую команду, вам нужно запустить

cmd.exe

двоичный код, связанный с командной строкой, и передать ему команду в качестве аргумента с / C, например:

/mnt/c/Windows/System32/cmd.exe /C command

Например, для запуска

dir

команды, встроенной в Командную строку, вы должны выполнить следующую команду:

/mnt/c/Windows/System32/cmd.exe /C dir

Image
Image

Как добавить каталоги на путь

В среде 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

Image
Image

Как вывести вывод одной команды в другую

Результат команды Windows можно передать в команду Linux, и наоборот. Например, вы можете использовать

ipconfig.exe -all

команду, чтобы просмотреть сведения о ваших сетевых интерфейсах и передать их в Linux

grep

команду для поиска вывода. Например, чтобы перечислить всю информацию о вашем соединении и найти разделы, соответствующие «IPv4 Address», вы должны запустить:

/mnt/c/Windows/System32/ipconfig.exe -all | grep 'IPv4 Address'

Image
Image

Это основной процесс. Эти команды также будут работать, если они включены в сценарий Bash, поэтому вы можете написать сценарий Bash, который включает в себя как команды Windows, так и утилиты Linux. Если он работает в оболочке Bash, он будет работать в сценарии Bash.

И, если вы хотите пойти другим путем, вы можете использовать команду «bash -c» для запуска команд Bash из стандартной командной строки Windows.

Рекомендуемые: