Cómo iniciar WSL en la terminal de Windows mediante programación y ejecutar el comando
Aug 18 2020
Me gustaría iniciar Ubuntu WSL [shell: bash
] dentro de la Terminal de Windows desde un archivo por lotes y pasar un comando, que debería ejecutarse inmediatamente después del inicio.
- Al iniciar WSL directamente, puedo hacer esto usando el
-c
argumento; Por ejemplo, lo siguiente abre WSL y establece una conexión SSH con algunos reenvíos de puertos locales:bash -c "ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]"
¿Cómo puedo lograr esto usando Windows Terminal?
Respuestas
1 suamikim Aug 18 2020 at 22:19
Encontré dos formas, ambas funcionando hasta ahora:
- Crear un perfil dedicado:
lacommandline
opción también acepta argumentos, que se pasan directamente al shell en el inicio, lo que permite el uso directo dewsl.exe
con un "comando de inicio" adicional:
Ahora puedo iniciar el shell a través de un archivo por lotes, que se ejecuta usando lo siguiente; sin embargo, la desventaja es que el nuevo perfil se muestra en el menú de selección de perfil de la terminal de Windows :{ "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"
- Pasar
commandline
awt
:
como se muestra en la Opción 1, lacommandline
opción puede incluir más parámetros para el shell de destino, con lo siguiente funcionando cuando se llama desde un archivo por lotes:
No encontré ningún recurso oficial en línea que explique por qué funciona, ajustando las sugerencias en esta respuesta , por lo que no estoy seguro de si se supone que funciona de esta manera o si es una característica oculta / involuntaria que podría fallar en versiones futuras.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
El mensaje de error es correcto: Windows Terminal no tiene un -c
parámetro.
La sintaxis es:
wt [options] [command ; ]
Donde las únicas opciones son:
-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