WSL2 - VSCode의 셸 명령 'code'가 더 이상 Linux 터미널에서 작동하지 않습니다.

WSL2 - VSCode의 셸 명령 'code'가 더 이상 Linux 터미널에서 작동하지 않습니다.

저는 전반적으로 Linux와 WSL을 처음 접했습니다. VSCode에서 현재 디렉터리를 여는 데 사용할 수 있었지만 code .기억나지 않는 항목을 삭제한 후에는 더 이상 작동하지 않습니다. 명령을 입력했는데 그냥 거기에 멈췄습니다.

Ubuntu-20.04 인스턴스를 삭제하고 다시 생성했지만 여전히 작동하지 않습니다. 또한 내 $PATH를 확인했는데 거기에 있는 것 같습니다.

또한 add shell commandVSCode의 가 나타나지 않아 셸 바로가기를 제거하고 다시 설치할 수 없습니다.

누구든지 어떤 생각을 가지고 있습니까?

drewbie@drewbie:/$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/dotnet/:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files (x86)/QuickTime/QTSystem/:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/Go/bin:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/ProgramData/DockerDesktop/version-bin:/mnt/c/Users/Andrew/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Program Files/heroku/bin:/mnt/c/Users/Andrew/AppData/Local/GitHubDesktop/bin:/mnt/c/Users/Andrew/go/bin:/snap/bin

코드를 입력한 후 . 그냥 거기 앉아있어

어디에 그리고 어느

drewbie@drewbie:~$ whereis code
code: /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code.cmd
drewbie@drewbie:~$ which code
/mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code

아래 스레드에서 @NotTheDr01ds가 말한 대로 수행한 후

drewbie@drewbie:~$ vi "$(which code)"
drewbie@drewbie:~$ code .
+ [  = true ]
+ COMMIT=899d46d82c4c95423fb7e10e68eba52050e30ba3
+ APP_NAME=code
+ QUALITY=stable
+ NAME=Code
+ DATAFOLDER=.vscode
+ realpath /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code
+ dirname /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code
+ dirname /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin
+ VSCODE_PATH=/mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code
+ ELECTRON=/mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/Code.exe
+ IN_WSL=false
+ [ -n Ubuntu-20.04 ]
+ IN_WSL=true
+ [ true = true ]
+ export WSLENV=ELECTRON_RUN_AS_NODE/w:WT_SESSION::WT_PROFILE_ID
+ wslpath -m /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js
+ CLI=C:/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js
+ WSL_EXT_ID=ms-vscode-remote.remote-wsl
+ ELECTRON_RUN_AS_NODE=1 /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/Code.exe C:/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js --ms-enable-electron-run-as-node --locate-extension ms-vscode-remote.remote-wsl

답변1

이 문제는 자동으로 발생한 VSCode 업데이트로 인해 발생한 것 같습니다.

이를 해결하려면:

  1. Windows에서 VSCode 열기

  2. 원격 탐색기를 엽니다

    원격 탐색기

  3. 관심 있는 WSL 대상의 폴더를 클릭하면 재설치가 발생하는 것을 볼 수 있습니다.

  4. $ code .이제 예전처럼 WSL2의 폴더에서 명령을 사용하여 돌아갈 수 있습니다 .

답변2

허용된 답변은 부작용에 의존하고 저에게 효과가 없었으며 두 번째 답변은 완전히 허용되지 않기 때문에(WSL 전체 재설치) 조금 더 검색하여 발견했습니다.좀 더 안전하고 효과적인 방법:

에서이것StackOverflow의 이전 질문에 대한 답변rrmesquita:

WSL 터미널 내에서 rm -r ~/.vscode-serverVS Code WSL 서버를 삭제하려면 입력하세요.

터미널을 종료하고 PowerShell/Cmd에서 를 실행합니다 wsl --shutdown. 그런 다음 WSL에 다시 로그인하여 실행하면 code . 정상적으로 작동합니다.

Google이 저를 여기로 이끌었기 때문에 답변을 드리며 아마도 이것이 다른 사람의 삶을 더 쉽게 만들어 줄 것입니다 =)

답변3

방금 .bashrc에 이것을 추가했습니다.

alias code='/mnt/c/Users/[YOUR USER DIR NAME]/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code'

답변4

내 작업은 @cloudcreatordotio 와 약간 다르게 작동합니다. 이 줄을 .bashrc에 추가하고 아래에 표시된 단계를 수행합니다.

  1. 우분투 쉘을여십시오

  2. .bashrc를 엽니다

    nano .bashrc
    
  3. 다음 줄을 추가하세요

    alias code="'/mnt/c/Users/[YOUR USER DIR NAME]/AppData/Local/Programs/Microsoft VS Code/Code.exe'"
    

관련 정보