프로그래밍 방식으로 Windows 터미널에서 WSL을 시작하고 명령을 실행하는 방법
Aug 18 2020
bash
Windows 터미널 내에서 배치 파일에서 Ubuntu WSL [shell : ]을 시작하고 시작 후 즉시 실행되어야하는 명령을 전달하고 싶습니다 .
- WSL을 직접 시작할 때
-c
인수를 사용하여이 작업을 수행 할 수 있습니다 . 예를 들어 다음은 WSL을 열고 일부 로컬 포트 전달을 사용하여 SSH 연결을 설정합니다.bash -c "ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]"
Windows 터미널을 사용하여 어떻게해야합니까?
답변
1 suamikim Aug 18 2020 at 22:19
지금까지 두 가지 방법을 모두 찾았습니다.
- 전용 프로필 만들기 :
이commandline
옵션은 또한 시작시 셸로 직접 전달되는 인수를 허용하므로wsl.exe
추가 "시작 명령"과 함께 직접 사용할 수 있습니다 .
이제 아래를 사용하여 실행되는 배치 파일을 통해 셸을 시작할 수 있습니다. 그러나 단점은 새 프로필이 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"
- 패스
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