Поиск по сайту:

Как запускать команды Linux из-за пределов оболочки Bash в Windows 10


Windows 10 включает в себя базовую «подсистему Windows для Linux» для запуска приложений Linux, но она доступна только через оболочку Bash. Однако есть способ запускать приложения Linux без предварительного запуска окна Bash.

Это возможно благодаря команде bash -c. Используйте его для запуска команд Linux через командную строку и PowerShell или даже создайте ярлык на рабочем столе, который запускает команду или программу Linux при запуске.

Обновление. Если у вас установлено несколько сред Linux, вы можете использовать команду wslconfig, чтобы выбрать среду Linux по умолчанию. Также есть способ запускать команды в определенных средах Linux.

Как выполнять команды Linux в командной строке или PowerShell

Прежде чем делать что-либо из этого, вам необходимо установить и настроить оболочку Bash для Windows 10. После этого вы можете открыть окно командной строки и выполнить следующую команду, чтобы запустить программное обеспечение Linux вне окна Bash:

bash -c "command"

Например, допустим, вы хотите установить пакет emacs через apt-get. Вы должны запустить следующую команду в окне командной строки:

bash -c "sudo apt-get install emacs"

Когда вы используете bash -c, Windows запускает оболочку Bash в фоновом режиме и передает ей команду. Команда будет выполняться до тех пор, пока не будет выполнена, а затем завершится вместе с оболочкой Bash. Любой вывод терминала при выполнении текущей команды будет отображаться непосредственно в окне командной строки, а не в отдельном окне оболочки Bash.

Этот трюк также позволяет вам запускать команды Linux в PowerShell так же, как вы запускаете обычный исполняемый файл Windows. Это можно сделать, запустив файл .exe напрямую, как в окне командной строки, или с помощью любого другого метода запуска исполняемых файлов в PowerShell.

bash -c "uname -a"

Как и в случае с окном командной строки, вывод команды появится непосредственно в PowerShell. Эти методы также можно использовать для добавления команд Linux в пакетный файл или сценарий PowerShell.

Как запускать команды Linux из диалогового окна «Выполнить» или меню «Пуск»

Этот трюк также работает для запуска команд из диалогового окна «Выполнить», меню «Пуск» или любого стороннего средства запуска приложений.

Например, чтобы запустить vi из диалогового окна «Выполнить», вы должны нажать Windows + R на клавиатуре, а затем выполнить следующую команду:

bach -c "vi"

Текстовый редактор vi появится в отдельном окне.

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

Как запускать команды Linux с помощью ярлыка на рабочем столе

Команда bash -c также позволяет запускать приложения Linux с помощью ярлыка на рабочем столе. Например, предположим, что вы хотите запустить текстовый редактор vi с помощью ярлыка на рабочем столе. Вы должны щелкнуть правой кнопкой мыши на рабочем столе, выбрать «Создать»> «Новый ярлык» и ввести следующую цель:

bash -c "vi"

Теперь вы можете сохранить ярлык, и он будет запускать vi при двойном щелчке по нему.

Интересно, что этот трюк также работает для запуска графических приложений Linux с ярлыка на рабочем столе. Установите X-сервер и настройте графические настольные приложения Linux. Вы должны иметь возможность создавать ярлыки для их прямого запуска.

Однако вам придется запускать их так:

bash -c "DISPLAY=:0 command"

Хотя вы можете запускать команды Bash из любого места в Windows, нет возможности запускать программное обеспечение или исполняемые файлы Windows непосредственно из окна оболочки Bash.