Como iniciar o WSL no terminal do Windows de forma programática e executar o comando
Aug 18 2020
Gostaria de iniciar o Ubuntu WSL [shell: bash
] dentro do Terminal do Windows a partir de um arquivo em lote e passar um comando, que deve ser executado imediatamente após a inicialização.
- Ao iniciar diretamente o WSL, posso fazer isso usando o
-c
argumento; por exemplo, o seguinte abre WSL e estabelece uma conexão SSH com alguns encaminhamentos de porta local:bash -c "ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]"
Como eu faria isso usando o Terminal do Windows?
Respostas
1 suamikim Aug 18 2020 at 22:19
Encontrei duas maneiras, com ambas funcionando até agora:
- Criar um perfil dedicado:
acommandline
opção também aceita argumentos, que são passados diretamente para o shell na inicialização, permitindo o uso direto dewsl.exe
com um "comando de inicialização" adicional:
Agora posso iniciar o shell por meio de um arquivo em lote, que é executado usando o abaixo; no entanto, a desvantagem é que o novo perfil é mostrado no menu de seleção de perfil do Terminal 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"
- Passe
commandline
parawt
:
Conforme mostrado na Opção 1, acommandline
opção pode incluir outros parâmetros para o shell de destino, com o seguinte funcionando quando chamado de um arquivo em lote:
Não encontrei nenhum recurso online oficial explicando por que isso funciona, ajustando as sugestões nesta resposta , então não tenho certeza se isso deveria funcionar dessa forma ou se é um recurso oculto / não intencional que pode falhar em versões 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
A mensagem de erro está correta: O Terminal do Windows não possui um -c
parâmetro.
A sintaxe é:
wt [options] [command ; ]
Onde as únicas opções são:
-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
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas