프로그램 실행

프로그램 실행

저는 Windows를 사용하지 않으며 사용 가능한 복사본도 없습니다. WSL2의 기본 셸이 무엇인지 알고 싶습니다. sh, Bash 또는 ZSH와 함께 제공됩니까? 아니면 PowerShell을 사용합니까? WSL2에서도 작동한다는 것을 알고 있습니다.

이것은 어디에도 문서화되어 있습니까?

답변1

짧은 답변

WSL의 기본 배포판은 Ubuntu(Ubuntu의 경우)입니다.

  • 기본 대화형 셸은 다음과 같습니다.bash
  • 기본 비대화형 쉘은 다음과 같습니다.dash

따라서 "기본 상호 작용"을 의미한다고 가정하고 속성을 전달하면 WSL의 기본 셸은 bash.

자세한 내용은

며칠 전에 이 질문에 대한 답을 생각해 봤는데 실제로 "충돌"이 보장되는 것은 아닌 것 같습니다. 하지만 오늘 커뮤니티 봇이 이 질문을 자동으로 묻도록 선택했기 때문에(받아들인 답변이 없기 때문에) 약간 다른 설명을 드리겠습니다.

첫째, 지금쯤 여러분도 알고 계시겠지만 WSL은 다양한 Linux 배포판을 지원합니다. Windows의 Microsoft Store에서 일부를 설치하거나 대부분의 다른 배포판에 대해 rootfs를 가져올 수 있습니다.

나는 정말 데비안을 선호하고 동의합니다.정의쉘의 경우 "기본값"입니다. 언제나:

  • 생성 시 기본적으로 사용자에게 할당되는 기본 대화형 셸(및 root)입니다.
  • /bin/sh정의에 따르면 시스템 및 기타 "POSIX" 스크립트를 가장 빠르고 가장 호환 가능한 방식으로 실행하기 위해 연결된 모든 것을 의미하는 기본 비대화형 셸입니다 .

일부 역사

  • WSL 초기

    WSL이 있을 때먼저 발표, 그것은 (아마 불친절하게) "Bash on Ubuntu on Windows"라고 불렸습니다. 그 시점에서는 "Bash"로 귀하의 질문에 대답하는 것이 매우 분명하다고 생각합니다.

    WSL을 시작하는 명령을 사용하여 WSL/Ubuntu 세션을 시작하는 것이 일반적입니다 bash.exe. 이것회의bash사용자의 셸이 이미 에 있더라도 항상 Ubuntu 인스턴스 내의 셸로 부팅합니다 /etc/passwd.

    ubuntu.exe반면에 이 명령(또는 그 변형 중 하나)은 WSL Ubuntu 배포판을 사용자의 /etc/passwd셸로 시작합니다.

  • 최근 역사

    그런 다음 WSL에 대한 "기본 배포"가 있다고 말할 수 없는 회색 영역에 도달합니다. 먼저 WSL을 설치/활성화한 다음 Microsoft Store에서 배포판을 선택했습니다.

    시작 방법은 bash.exe"부분적으로 사용되지 않음"(Microsoft 설명서에서는 "History Command"라고 함)이었으며 새로운 방법 wsl.exe으로 대체되었습니다. 항상 그렇습니다계약 위반사용자 정의 셸에 추가되지만 모든 실행 파일은 /etc/passwd상위 프로세스를 통해(또는) 실행될 수 있습니다.wsl --execute <appname>wsl -e

    그 동안에는 "기본" distro가 없기 때문에 "distro에 따라 다릅니다." 외에 귀하의 질문에 답변하기가 어렵습니다.

  • 오늘

    Windows 10 버전 21H2 및 Windows 11부터 새로운 WSL 설치 프로세스가 있습니다. 기본 wsl명령은 Windows와 함께 제공되지만 이 명령을 다시 전달해야 합니다 wsl --install.하다기본 Ubuntu를 기본 배포판으로 사용합니다.

    따라서 현재로서는 Ubuntu가 WSL의 기본 배포판이라고 다시 말하는 것이 타당합니다.

  • 내일

    누가 알아? 지금까지 WSL의 5년 역사에서 많은 것이 분명히 바뀌었기 때문에 아마도 또 바뀔 것이라고 확신합니다 :-).

답변2

wsl을 사용하기 시작하면 bash.exe분명히 bash입니다! 하지만 새로운 버전의 Windows 10에서는 상황이 달라졌습니다.

확인 해봐: wsl의 기본 셸 변경

답변3

Microsoft 이외의 특정 문서를 찾을 수 없습니다.WSL 참조 페이지그것은 말한다:

프로그램 실행

다음 목록에는 wsl.exeWindows 버전 1903의 모든 옵션이 포함되어 있습니다.

사용:wsl [Argument] [Options...] [CommandLine]

Linux 명령 실행을 위한 매개변수

  • 매개변수 없음

명령줄이 제공되지 않으면 wsl.exe가 시작됩니다.기본 쉘.


실제로 기본 셸을 정의하는 내용은 해당 페이지에서 찾을 수 없지만FAQ 페이지그것은 말한다:

배쉬란 무엇입니까?

Bash는 널리 사용되는 텍스트 기반 셸이자 명령 언어입니다. 그것은기본 쉘Ubuntu 및 기타 Linux 배포판과 macOS에 포함되어 있습니다. 사용자는 셸에 명령을 입력하여 스크립트를 실행하거나 명령 및 도구를 실행하여 많은 작업을 완료합니다.

답변4

WSL의 기본 셸은 배포판에 따라 다릅니다. 배포판에는 기본 셸과 함께 제공되는 셸을 구성하는 정책이 있습니다.

처음 설정하는 동안 계정을 생성하면 배포판의 기본 대화형 셸이 제공됩니다. 경우에 따라 이는 기본 셸과 다릅니다. 예를 들어 Debian 및 Ubuntu의 기본 셸은 /bin/sh일반적으로 이지만 좋은 대화형 셸이 아니기 dash때문에 지정하지 않으면 새 사용자의 기본 셸이 됩니다.dashbash

이를 사용하여 chsh사용자의 셸을 변경할 수 있으며, 그렇게 하면 WSL은 적어도 대화형 사용을 위해 해당 셸을 로드합니다. 내 설정은 입니다 /bin/zsh.

PowerShell은 POSIX와 크게 다르며 대부분의 Linux 소프트웨어는 POSIX 셸이 있다고 가정하기 때문에 대부분의 Linux 배포판에서 실행 가능한 옵션으로 PowerShell을 찾을 가능성이 없습니다. 또한 많은 소프트웨어는 사용자의 셸이 POSIX를 준수하거나 그렇지 않은 경우 적어도 csh하나 또는 다른 것을 준수한다고 가정하며 fishPowerShell을 사용하면 의도하지 않은 손상이 발생할 수 있습니다.

관련 정보