Come avviare WSL nel terminale di Windows a livello di codice ed eseguire il comando
Aug 18 2020
Vorrei avviare Ubuntu WSL [shell: bash
] all'interno di Windows Terminal da un file batch e passare un comando, che dovrebbe essere eseguito immediatamente dopo l'avvio.
- Quando si avvia direttamente WSL, sono in grado di farlo utilizzando l'
-c
argomento; ad esempio, quanto segue apre WSL e stabilisce una connessione SSH con alcuni port forwarding locali:bash -c "ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]"
Come potrei ottenere ciò utilizzando Windows Terminal?
Risposte
1 suamikim Aug 18 2020 at 22:19
Ho trovato due modi, entrambi funzionanti finora:
- Crea un profilo dedicato:
L'commandline
opzione accetta anche argomenti, che vengono passati direttamente alla shell all'avvio, consentendo l'uso diretto diwsl.exe
con un "comando di avvio" aggiuntivo:
Ora posso avviare la shell tramite un file batch, che viene eseguito utilizzando il seguente; tuttavia, lo svantaggio è che il nuovo profilo viene mostrato nel menu di selezione del profilo del terminale di 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"
- Passa
commandline
awt
:
come mostrato nell'opzione 1, l'commandline
opzione può includere ulteriori parametri per la shell di destinazione, con il funzionamento seguente quando viene richiamato da un file batch:
Non ho trovato alcuna risorsa online ufficiale che spieghi perché funziona, modificando i suggerimenti in questa risposta , quindi non sono sicuro se dovrebbe funzionare in questo modo o se si tratta di una funzionalità nascosta / involontaria che potrebbe interrompersi nelle versioni future.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
Il messaggio di errore è corretto: Windows Terminal non dispone di un -c
parametro.
La sintassi è:
wt [options] [command ; ]
Dove le uniche opzioni sono:
-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