Как программно запустить WSL в терминале Windows и запустить команду
Aug 18 2020
Я хотел бы запустить Ubuntu WSL [shell: bash
] внутри Windows Terminal из командного файла и передать команду, которая должна выполняться сразу после запуска.
- При прямом запуске WSL я могу сделать это с помощью
-c
аргумента; например, следующее открывает WSL и устанавливает SSH-соединение с некоторыми перенаправлениями локальных портов:bash -c "ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]"
Как мне добиться этого с помощью Windows Terminal?
Ответы
1 suamikim Aug 18 2020 at 22:19
Я нашел два способа, оба из которых пока работают:
- Создать специальный раздел: вариант также принимает аргументы, которые непосредственно передаются оболочки при старте, что позволяет напрямую использовать с дополнительным «запуска команды»:
commandline
wsl.exe
Теперь я могу запустить оболочку с помощью командного файла, который запускается, как показано ниже: Однако недостатком является то, что новый профиль отображается в меню выбора профиля Windows Terminal :{ "guid": "{...}", "hidden": false, "name": "Ubuntu SSH", "commandline": "wsl.exe ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]", }
wt -p "Ubuntu SSH"
- Перейти
commandline
кwt
:
Как показано в Варианте 1, этотcommandline
параметр может включать дополнительные параметры для целевой оболочки, при этом при вызове из пакетного файла работают следующие параметры:
Я не нашел никаких официальных онлайн-ресурсов, объясняющих, почему это работает, корректировки предложений в этом ответе , поэтому я не уверен, должно ли это работать таким образом, или это скрытая / непреднамеренная функция, которая может сломаться в будущих версиях.wt wsl.exe ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]
harrymc Aug 18 2020 at 16:57
Сообщение об ошибке правильное: Терминал Windows не имеет -c
параметра.
Синтаксис является:
wt [options] [command ; ]
Где единственные варианты:
-h,--help Print this help message and exit
-v,--version Display the application version
-M,--maximized Excludes: --fullscreen
Launch the window maximized
-F,--fullscreen Excludes: --maximized
Launch the window in fullscreen mode
-p Profile
-d Directory