기본적으로 로그인 셸을 시작하도록 WSL을 얻으려면 어떻게 해야 하나요?

기본적으로 로그인 셸을 시작하도록 WSL을 얻으려면 어떻게 해야 하나요?

"Bash on Ubuntu on Windows" 애플리케이션은 항상 bash로 시작됩니다. 나는 chsh로그인 쉘로 다른 쉘을 설정하곤 했습니다. 대신 WSL이 해당 셸을 시작하도록 하려면 어떻게 해야 하나요?

답변1

이 문제는 다음에서 수정되었습니다.현재 내부자 전용 빌드, 새로운 wsl.exe명령을 사용하여:

인수 없이(또는 ~ 인수를 사용하여) bash.exe를 실행할 때 빌드 16188부터 bash는 로그인 셸로 시작됩니다. 새로운 wsl.exe 바이너리의 경우에도 마찬가지입니다(wsl이 사용자의 기본 셸을 로그인 셸로 시작한다는 점은 제외).

그 전에는 명령줄 매개변수(예: )를 추가하기 위해 바로가기를 편집해야 합니다 -c 'exec "$SHELL" -l'.

답변2

요즘 새로운 답변을 추가하려는 사람을 위한 약간의 역사적 맥락입니다. 이 질문은 원래 WSL 초기의 암흑기에 다시 요청되었습니다. 그때는:

  • Ubuntu/WSL은 "Bash on Ubuntu on Windows"로 알려졌습니다.
  • bash.exe명령 을 통해 실행되었습니다.
  • 그것언제나Bash 쉘을 시작했습니다

bash.exe명령은 더 이상 사용되지 않으며 wsl.exe@muru가 언급한 명령 으로 대체되었습니다.이 답변.

이제 언급된 표준 Ubuntu 방법을 사용하여 기본/로그인 셸을 Fish(또는 일반적으로 다른 셸)로 변경할 수 있습니다.이 답변. 간단히 말해서:

  • 쉘이/etc/shells
  • chsh -s <path_to_shell>
  • 아니면 일반적으로,chsh -d $(which fish)

답변3

예를 들어 WSL의 Ubuntu에서 피싱을 시작하려면 목표를 다음으로 설정하십시오.

C:\Windows\system32\wsl.exe --distribution Ubuntu --exec fish

관련 정보