安装Rust时提示‘sh 未被识别’该如何解决?
这问题我太熟了!你在Windows的PowerShell或CMD里执行这条命令报错,核心原因是Windows默认环境没有sh这个Unix Shell程序,官方那条curl | sh的安装命令是给Linux/macOS这类类Unix系统设计的。给你几个简单可行的解决办法:
方法1:用Rust官方Windows安装包(最省心)
直接用Windows专属的安装方式就行,要么去Rust官网下载exe格式的安装程序,双击后跟着向导走,它会自动配置环境变量、安装必要组件;如果习惯用命令行,也可以用Windows自带的包管理器winget安装,打开PowerShell执行:
winget install Rustlang.Rustup
(注:Win10/11一般自带winget,若没有可从微软商店安装)
方法2:在WSL里安装(适合偏好Linux环境的用户)
如果你平时常用Linux命令行,可以先启用Windows子系统(WSL),安装一个Ubuntu之类的发行版,然后在WSL的终端里执行你原本的那条命令:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
这样sh命令就能被正常识别,而且能获得完整的Linux风格开发环境。
方法3:用Git Bash/MinGW等带Unix工具的终端
如果你已经装了Git,打开Git Bash(安装Git时默认附带这个终端),直接在里面执行原来的安装命令即可——因为Git Bash内置了sh、curl这些Unix工具,完全能运行官方的安装脚本。
额外提醒
不管用哪种方法安装完成后,记得重启终端,或者在PowerShell里执行refreshenv命令刷新环境变量,这样你才能在命令行里正常使用rustc、cargo这些Rust工具。
内容的提问来源于stack exchange,提问作者Anish




