WSL中使用sudo执行code命令失效的原因及解决咨询
解决sudo code提示"command not found"的问题
问题根源
sudo执行命令时会加载root用户的环境变量配置,你在普通用户.zshrc里添加的/usr/share/code/bin路径不会被root的PATH继承,所以sudo找不到code命令。
可行解决方法
临时应急/单次执行:直接带上当前用户的PATH执行命令
sudo env PATH=$PATH code永久别名简化操作:在普通用户的.zshrc里添加别名,让sudo默认继承当前用户PATH
- 编辑.zshrc:
code ~/.zshrc - 添加一行:
alias sudo='sudo env PATH=$PATH' - 生效配置:
source ~/.zshrc
之后直接用sudo code即可正常启动。
- 编辑.zshrc:
给root用户添加PATH:修改root的环境变量配置
- 切换到root:
sudo su - 编辑root的.zshrc(如果用zsh):
code /root/.zshrc - 添加一行:
export PATH="/usr/share/code/bin:$PATH" - 生效配置:
source /root/.zshrc
退出root后,sudo就能找到code命令。
- 切换到root:
创建软链接到系统默认PATH目录:把code命令链接到sudo默认能识别的路径
sudo ln -s /usr/share/code/bin/code /usr/local/bin/code/usr/local/bin默认在root的PATH中,执行后sudo code即可正常使用。
验证方法
执行以下命令,若返回code的路径则说明配置成功:
sudo which code
内容的提问来源于stack exchange,提问作者Stephan
相关产品推荐
相关产品推荐

