이 답변은 VS Code에서 터미널에 WSL을 사용할 때 다른 사람들이 문제 해결에 1-2 시간을 소비하지 않고 일반적인 문제에 대해 서로 다른 솔루션을 천천히 찾는 데 도움이됩니다. 특정 패키지 설치는 다루지 않지만, 존재 여부에 의존하는 것을 설치하고 관련 공통 설정을 수정할 때 종속성으로 제대로 설치되지 않을 수있는 일반적인 패키지입니다.
단계 요약
- WSL 설치
- 터미널 용으로 구성된 VS 코드 (또는 기타 IDE)
- .profile에 설치된 NPM 및 경로 수정 (다른 도구에 도움이 될 수 있음)
- 빌드 필수 설치 (make / gcc / etc를 사용하는 모든 도구에 도움이 됨)
- WSL을 사용하는 VS 코드 작업
- 기타
시작 및 요구 사항
- 당신은해야한다 WSL가 설치되어 . ( 적절한 업데이트와 함께 64 비트 Windows 10을 실행해야 함을 의미합니다 .) 아직 설치하지 않은 경우 설치 가이드를 따릅니다 . 이를 위해서는 재부팅이 필요합니다.
VS 코드 터미널 구성
어느 CTRL+의 ,키보드 단축키 또는 File
→ Preferences
→Settings
편집 창의 오른쪽 상단에서 올바른 컨텍스트 ( 사용자 설정 또는 작업 공간 설정) 에서 작업하고 있는지 확인 합니다 .
설정 검색 창에서 입력하십시오 terminal.integrated.shell.windows
(또는 충분히 오래 걸리면 무엇이든)
실제 설정 파일에서 설정을 찾아 사용하고 Edit
(마우스를 선 위에 놓으면 왼쪽에 있습니다. 마우스가없는 터치 스크린에서는 선의 왼쪽을 간단히 탭할 수 있어야합니다.)Replace in Settings
오른쪽 창에서 수정 된 json 파일에 생성 된 항목을 수정합니다. 이전 설정을 다음으로 바꿉니다.
"C:\\WINDOWS\\Sysnative\\bash.exe"
기타 IDE : IntelliJ
설정 / 도구 / 터미널을 열고 "셸 경로"필드를 "C:\Users\USERNAME\AppData\Local\Microsoft\WindowsApps\ubuntu.exe"
개발자 용 WSL Ubuntu Bash 터미널 기능 만들기
당신이 사용하는 경우 CTRL+ `터미널을 열고, 당신은 지금 떠들썩한 터미널이 있어야합니다.
bash.exe를 처음 실행하는 경우 Ubuntu 설치에 대한 질문이 표시 될 수 있습니다. 그렇게하세요. 설치가 완료되면 WSL Ubuntu에서 사용할 사용자 이름과 암호를 선택합니다. 이는 현재 Windows 계정과 일치하지 않아도되며 Windows 계정의 암호 변경에 따라 변경되지 않는다는 점에 유의해야합니다.
완료되면 터미널에 bash 명령 프롬프트가 표시됩니다.
Windows의 git-bash와 달리 이것은 별도의 환경입니다. 외부에서 Windows 소프트웨어 를 시작 하는 데 사용할 수 있지만 실제 터미널에서 실행하려면 적절한 Ubuntu 패키지가 필요합니다.
현재 WSL에는 예상하거나 사용하던 모든 것이 포함되어 있지 않으며 기본 프로필 설정에 따라 Windows에서로드 한 소프트웨어와 일부 문제가 충돌 할 수 있습니다.
업데이트 및 자식
참고 : 나는 이것의 단일 부분이 필요한 사람들을 위해 이것을 sudo로 문서화 할 것이지만 처음에 한 가지 옵션은 대신 sudo su
sudo없이 다음 명령을 실행하는 것입니다.
Ubuntu 패키지 가 최신 상태 인지 확인하십시오 .
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade
sudo apt autoremove
git 설치 :
sudo apt-get install git
Node.js 및 NPM
Windows에 Node 또는 NPM이 이미로드되어있는 경우 Ubuntu에서 실행하면 경로 문제로 인해 문제가 발생할 수 있습니다. 따라서 Ubuntu 기본 버전을 설치하고 대신 사용되는지 확인해야합니다.
먼저 NPM과 함께 node.js를 설치 합니다. (대안 : NVM 을 설치하고이를 사용하여 node.js 설치)
설치 후 npm 명령을 실행하면 실패 할 수 있습니다. 예를 들어 다음과 같은 결과를 npm -v
얻을 수 있습니다.
: not foundram Files/nodejs/npm: 3: /mnt/c/Program Files/nodejs/npm:
: not foundram Files/nodejs/npm: 5: /mnt/c/Program Files/nodejs/npm:
/mnt/c/Program Files/nodejs/npm: 6: /mnt/c/Program Files/nodejs/npm: Syntax error: word unexpected (expecting "in")
이것은 매우 간단한 솔루션 의 경로 지정 문제 때문 입니다. (같은 당신의 마음에 드는 CLI 편집기를 사용하여 nano
, vim
, emacs
, cat
와 sed
... 등), 열려면~/.profile
nano ~/.profile
참고 : Windows 도구를 사용하여 Linux 파일을 편집하지 마십시오 . ( 이를 설명하는 굵은 빨간색 텍스트가있는 공식 링크에 대한 @ david-c-rankin의 의견 에 감사드립니다 ) 터미널에서 CLI 편집기를 사용하지 않으려면이 게시물 하단에서 방법에 대한 링크를 참조하십시오. GUI 하나를 실행합니다.
현재 WSL의 기본 bash PATH 변수는 다음과 같습니다.
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
처음 두 바이너리 디렉토리 뒤에 Windows 경로를 삽입합니다. 불행히도 이것은 Windows가 npm을 설치하기 전에 / usr / bin이 사용되는 결과를 초래하지 않으므로 최종 $ PATH 앞에 추가하십시오.
PATH="$HOME/bin:$HOME/.local/bin:/usr/bin:$PATH"
저장 한 다음 터미널을 다시로드하거나 경로 파일을 소싱하십시오.
source ~/.profile
빌드 필수
컴파일이 필요한 모든 것을 사용하거나 다른 방법으로 make를 사용한다면, 이것들을 설치해야 할 것입니다. 따라서 node.js를 설치하는 동안 설치하지 않은 경우 설치하십시오. 모든 것을 개별적으로 설치하는 것보다 빌드 필수 패키지 를 사용 하는 것이 훨씬 쉽습니다 .
Ruby FFI에 의존하는 Compass와 같은 패키지는 이것 없이는 실패합니다. 도구를 올바르게 설치하고 실행하는 데 문제가있는 경우 gcc가 있는지 확인하고 설치하는 것이 좋은 시작점이 될 수 있습니다.
sudo apt-get install -y build-essential
Ubuntu를 사용하여 작업 실행
VS Code의 tasks.json을 사용하여 빌드 작업을 실행하는 경우 기본적으로 Ubuntu 대신 Windows 하위 시스템을 사용하여 실행됩니다. 때로는 이것이 원하는 것일 수 있지만 Windows가 아닌 Ubuntu에서 grunt-cli 설치를 마쳤다면 아마도 그렇지 않을 것입니다.
VS Code는 최근 작업 실행기를 터미널로 설정할 수있는 작업 작동 방식에 대한 2017 년 5 월 업데이트를 제공했습니다 . 이것은 작업을 마이그레이션하는 가장 쉬운 방법입니다.
간단히 설정
"runner": "terminal",
당신에 tasks.json
당신이 완료 (가정 적절한 모든 도구가 지금 WSL 우분투에 설치 실행하려고있다).
이것은 매우 이식성이 뛰어나 WSL이 있거나없는 시스템 또는 다른 OS간에 변경이 필요하지 않으며 내가 권장하는 방법입니다.
현재이 메서드는 다른 TERMINAL
탭 인스턴스 (드롭 다운에서 액세스)를 생성합니다 . 여전히 적절한 감시자를 설정할 수 있지만 더 이상 OUTPUT
탭 에 있지 않음을 의미합니다 .
이전 메서드는 WSL Ubunutu Bash 셸을 호출하고에 표시 할 수 있으며 OUTPUT
-c 인수를 사용하여 bash.exe를 호출하거나 셸 스크립트를 사용합니다. 불행히도 우리가 bash
명령을 만들고 대신 인자로 실행하려는 것을 전달하기 때문에 의미 론적이지 않습니다 . 이것은 또한 다른 시스템에 빠르게 이식 할 수 없음을 의미합니다.
터미널 자체에 대해 이전에 VS Code에 지정한 것과 동일한 위치를 C:\\WINDOWS\\Sysnative\\bash.exe
값으로 사용할 수 있습니다.command
args
배열 의 첫 번째 요소 -c
를 실행하려는 명령으로 설정하고 두 번째 요소를 설정하십시오 ( 이 답변의 후반부에 대한 크레딧 ).
또는 여기에 표시된대로 대신 쉘 스크립트를 실행할 수 있습니다 .
추가 유용한 정보
WSL Bash 명령 줄에서 Windows에서 VSCode 를 시작 하시겠습니까 ?
WSL Ubuntu를위한 그래픽 인터페이스를 원하십니까 ? (이것은 당신이 사용하는 같은 파일에 대한 리눅스 GUI 편집기를 일을 할 수 있습니다 내 : NPM 섹션에서 주석 / 메모를 참조하지 편집 그들에게 도구를 편집 Windows를 사용합니까 우분투 시스템 자체)
WSL Ubuntu 내 에서 빌드하고 (WSL에 대해 올바르게 VS Code 작업을 설정하는 방법에 대한 위 부분 참조) 완전히 디버깅 하고 싶으십니까? (이것은 gdb를 사용하여 그렇게하는 방법을 보여 주지만 pipeTransport
개념은 다른 디버거와 함께 사용할 수 있습니다) ( 이 답변에 대한 크레딧 이지만 이전의 답변 은 유용 할 수있는 로컬 루프백을 사용하는 방법도 제공합니다)