shell - 通过 WSL2 在 VSCODE 终端中的 $PATH 设置不正确
问题描述
我在我的 Windows 10 笔记本电脑上通过 WSL2 运行 Ubuntu-20.04。我已经开始在 VSCode 中遇到问题,集成终端没有正确初始化其 $PATH。
如果我通过 Windows 终端打开一个 Ubuntu shell 并运行,echo $PATH
我会得到以下输出:
/home/<user>/bin:/home/<user>/.nvm/versions/node/v15.1.0/bin:/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin:/opt/devkitpro/tools/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/Common Files/Oracle/Java/javapath:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/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)/ATI Technologies/ATI.ACE/Core-Static:/mnt/c/Program Files (x86)/AMD/ATI.ACE/Core-Static:/mnt/c/Program Files (x86)/Calibre2/:/mnt/c/Program Files/Calibre2/:/mnt/c/Program Files/PuTTY/:/mnt/c/Program Files/FileBot/:/mnt/c/Users/<User>/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/<User>/AppData/Local/Programs/Microsoft VS Code/bin:/snap/bin
但是,一旦通过 VSCode 连接到 WSL,如果我在集成终端中运行相同的命令,我会得到:
/home/<user>/.local/bin
这意味着我什至无法运行最基本的命令,例如ls
.
我不明白为什么会这样?VSCode 中是否有一些设置会干扰我的 shell 初始化,从而阻止 $PATH 正确设置?我什至无法运行 env 来查看其他环境变量在做什么。
VSCode 中的默认 shell 设置为 bash。
据我了解,bash 读取/etc/profile
设置 shell 变量的指令。这些指令没有被阅读有什么原因吗?
解决方案
好的,所以我弄清楚了导致问题的原因。
在我的.bashrc
中,我添加了以下行:
export `PATH="/home/<user>/.local/bin"`
大概是为了能够从任何目录访问位于那里的程序。无论出于何种原因,当从Windows Terminal启动 shell 时,这都不会导致问题,但是VS Code不喜欢它!.bashrc
只需从解决问题中删除上述行。
猜猜我有很多东西要学习.bashrc
,.bash_profile
等等,以及在启动 bash shell 时如何访问它们。如果有人想阐明这一点,请随时在下面发表评论。
推荐阅读
- c++ - C ++:用相同类型的新对象替换std :: vector“就地”中的对象,但保留对该对象的引用
- npm-live-server - Live-Server 扩展 VS 代码不起作用
- python - 如何选择所有标签HTML
- amazon-web-services - Amazon RDS 和 VPC 终端节点连接
- vue.js - 具有计算属性的 href 中的值不是动态的
- docker - 如何在两个服务之间共享 docker 卷,其中一个是事实来源?
- python - 并行化pytorch中的嵌套for循环
- python - python:pyti平均真实范围函数输入的列表结构
- django - django rest框架知道视图是类还是函数
- php - 如何使用 Laravel 在数据库中搜索未知的属性名称