Comment démarrer WSL dans le terminal Windows par programme et exécuter la commande
Aug 18 2020
Je voudrais démarrer Ubuntu WSL [shell: bash
] à l'intérieur du terminal Windows à partir d'un fichier batch et passer une commande, qui devrait s'exécuter immédiatement après le démarrage.
- Lors du démarrage direct de WSL, je suis capable de le faire en utilisant l'
-c
argument; Par exemple, ce qui suit ouvre WSL et établit une connexion SSH avec certaines redirections de port locales:bash -c "ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]"
Comment pourrais-je y parvenir en utilisant Windows Terminal?
Réponses
1 suamikim Aug 18 2020 at 22:19
J'ai trouvé deux moyens, les deux fonctionnant jusqu'à présent:
- Créer un profil dédié:
L'commandline
option accepte également les arguments, qui sont directement passés au shell au démarrage, permettant l'utilisation directe dewsl.exe
avec une "commande de démarrage" supplémentaire:
Je peux maintenant démarrer le shell via un fichier batch, qui fonctionne en utilisant le ci-dessous; cependant, l'inconvénient est que le nouveau profil est affiché dans le menu de sélection de profil du 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"
- Passer
commandline
àwt
:
comme indiqué dans l'option 1, l'commandline
option peut inclure d'autres paramètres pour le shell cible, les éléments suivants fonctionnant lorsqu'ils sont appelés à partir d'un fichier de commandes:
Je n'ai trouvé aucune ressource en ligne officielle expliquant pourquoi cela fonctionne, ajustant les suggestions de cette réponse , donc je ne suis pas sûr que cela soit censé fonctionner de cette façon ou si c'est une fonctionnalité cachée / involontaire qui pourrait casser dans les versions futures.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
Le message d'erreur est correct: le terminal Windows n'a pas de -c
paramètre.
La syntaxe est:
wt [options] [command ; ]
Où les seules options sont:
-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