Рейтинг:3

WSL2 — команда оболочки VSCode «код» больше не работает в терминале Linux

флаг ng

Я очень новичок в Linux и WSL в целом. я смог использовать код . чтобы открыть мой текущий каталог в VSCode, но после удаления чего-то, что я не помню, он просто больше не работает. Я ввожу команду, и она просто висит там.

Я удалил экземпляр Ubuntu-20.04 и создал его заново, но он все равно не работает. Также проверил мой $ PATH, и он, кажется, там.

Так же добавить команду оболочки в VSCode не появляется, поэтому я не могу удалить и переустановить ярлык оболочки.

У кого-нибудь есть идеи?

drawbie@drewbie:/$ эхо $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/версия-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 /бен:/снап/бен

После ввода кода. он просто сидит там

где и какой

drawbie@drewbie:~$ где код
код: /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
drawbie@drewbie:~$ какой код
/mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code

После того, как @NotTheDr01ds сказал в теме ниже

drawbie@drewbie:~$ vi "$(какой код)"
drawbie@drewbie:~$ код .
+ [ = правда ]
+ КОММИТ=899d46d82c4c95423fb7e10e68eba52050e30ba3
+ APP_NAME=код
+ КАЧЕСТВО = стабильно
+ ИМЯ=Код
+ ПАПКА ДАННЫХ = .vscode
+ реальный путь /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code
+ имя каталога /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code
+ имя каталога /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=ложь
+ [-n Ubuntu-20.04]
+ IN_WSL=истина
+ [правда = правда]
+ экспорт 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
NotTheDr01ds avatar
флаг vn
Можете ли вы удалить и переустановить расширение *Remote - WSL* в VSCode? В худшем случае, как насчет удаления и переустановки самого VSCode? Обычно я не прибегаю к «переустановке» в качестве первого ответа, но, учитывая (а) вы не уверены, что вы удалили, и (б) переустановка выполняется довольно быстро и безболезненно, я думаю, что стоит попробовать первый.
drewkiimon avatar
флаг ng
@ NotTheDr01ds Я удалил и переустановил расширение «Remote - WSL», но это не помогло. Я немного сомневаюсь в удалении VSCode. В последний раз, может быть. Но не сейчас.
NotTheDr01ds avatar
флаг vn
Справедливо. `код` на самом деле является сценарием оболочки, поэтому вы можете попробовать отладить его, чтобы потенциально увидеть, где он зависает. `vi $(который код)` и добавьте `set -x` в качестве первой строки после шебанга. Затем попробуйте запустить и добавьте вывод в вопрос. По крайней мере, я могу сравнить его со своим.
drewkiimon avatar
флаг ng
Я пытался сделать то, что вы сделали, безрезультатно. :( Я смог выяснить, какой код он использует и где он находится. Не уверен, что мне нужно сделать какую-то символическую ссылку? Я иногда вижу, что это бросается в глаза.
NotTheDr01ds avatar
флаг vn
Ах, извините, это, вероятно, из-за пробелов в пути. Это мой недостаток - я должен уметь цитировать такие вещи. Попробуйте с кавычками - `vi "$(какой код)"`?
drewkiimon avatar
флаг ng
@ NotTheDr01ds У меня все получилось! Разместив это в моем вопросе выше. Большое спасибо за вашу помощь до сих пор!
Рейтинг:3
флаг jp

Я думаю, что эта проблема была вызвана автоматическим обновлением VSCode.

Чтобы решить эту проблему:

  1. открыть VSCode в Windows

  2. открыть удаленный проводник

    Удаленный проводник

  3. щелкните папку в интересующей цели WSL: вы увидите, что это вызывает повторную установку

  4. Теперь вы можете вернуться к использованию $ код. команду из папки в WSL2, как раньше

drewkiimon avatar
флаг ng
Данг. Я бы проверил это, но я решил просто выполнить двойную загрузку Linux вместо этого на отдельном диске. Если кто-то может подтвердить это, я сделаю это ответом!
mickmackusa avatar
флаг ve
@Ando, ​​несмотря на то, что ты являешься участником более 7 лет, ты до сих пор не участвовал в [туре]; пожалуйста, сделай.
Рейтинг:2
флаг ng

В конце концов я заставил его работать. Я считаю, что это было исправлено следующим образом.

  1. Зайдите в свой Терминал и удалите настройки.json файл. Сначала вы хотите сохранить резервную копию. Указанный файл открылся из терминала

  2. Ты собираешься ctrl-a, удалите все это, затем СОХРАНИТЕ ФАЙЛ.

  3. Очень важный шаг. Вернувшись в Терминал, нажмите СОХРАНИТЬ в правом нижнем углу. Кнопка Сохранить нажмите ее!

  4. Теперь это не весело, но мы собираемся отменить регистрацию Убунту-20.04 из пауэршелла.

    Запись: Это разрушительный операции, и все данные внутри файловой системы экземпляра WSL будут потеряны. Опять же, перед этим шагом вы можете сначала сделать резервную копию с помощью wsl --export Ubuntu-20.04 <backup-filename.tar> быть в безопасности. Когда будете готовы, из powershell напишите wsl --отменить регистрацию Ubuntu-20.04 или каким бы ни был ваш дистрибутив.

  5. Перезагрузите компьютер!!!

  6. Когда ваш компьютер снова включится, вы переустановите свой дистрибутив и установите его по умолчанию. wsl --install -d <имя дистрибутива>

  7. Пройдите настройки, затем все, что я сделал, это код . и получил взаимодействие ниже. Теперь это работает для меня.

Drawbie@drewbie:~$ cd ~
drawbie@drewbie:~$ ls
drawbie@drewbie:~$ ls -la
всего 24
drwxr-xr-x 3 Drawbie Drawbie 4096 12 января 18:12 .
drwxr-xr-x 3 root root 4096 12 января 18:12 ..
-rw-r--r-- 1 Drawbie Drawbie 220 12 января 18:12 .bash_logout
-rw-r--r-- 1 Drawbie Drawbie 3771 12 января 18:12 .bashrc
drwxr-xr-x 2 Drawbie Drawbie 4096 12 января 18:12 .landscape
-rw-r--r-- 1 Drawbie Drawbie 0 Янв 12 18:12 .motd_shown
-rw-r--r-- 1 Drawbie Drawbie 807 Янв 12 18:12 .profile
drawbie@drewbie:~$ код .
Установка VS Code Server для x64 (899d46d82c4c95423fb7e10e68eba52050e30ba3)
Загрузка: 100%
Распаковка: 100%
Распаковал 1722 файла и папки в /home/drewbie/.vscode-server/bin/899d46d82c4c95423fb7e10e68eba52050e30ba3.
NotTheDr01ds avatar
флаг vn
Отлично - Рад слышать, что у вас все получилось! В любом случае, немного радикально, с удалением WSL / Ubuntu и удалением настроек терминала Windows, но рад, что вы решили проблему. Я собираюсь внести небольшое редактирование в ваш ответ ради «безопасности», но ничего страшного.
drewkiimon avatar
флаг ng
@ NotTheDr01ds, спасибо за исправление! Правда потеряют все на своем инстансе :(

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.