Windows怎么执行.sh文件?小白也能看懂的完整教程
很多从Linux过来的朋友,或者下载了一些开源项目,经常会碰到.sh结尾的文件。双击它,Windows直接懵圈,要么提示用什么程序打开,要么根本跑不起来。其实.sh就是Shell脚本,Linux/Unix下用Bash等解释器执行的文本命令集合,Windows本身没有自带这个环境,所以需要额外准备。
下面按从易到难的顺序,把目前最常用、最靠谱的几种方法讲清楚。每一步都写得足够细,电脑小白照着做就行。
一、先确认你的文件和系统情况
- 文件扩展名必须是
.sh,最好用记事本或VS Code打开看一眼,确认里面是英文命令而不是乱码。 - Windows 10/11 用户优先推荐后面的WSL方法,兼容性最好。
- 脚本里如果写了
#!/bin/bash这类开头,说明它依赖Bash,别随便用PowerShell硬跑。
二、方法一:用Git Bash执行(最简单,5分钟搞定)
适合只是临时跑一下脚本、不想折腾系统的新手。
- 去Git官网下载最新版Git for Windows,一路下一步安装,记得勾选“Git Bash Here”。
- 安装完成后,找到你的
.sh文件所在文件夹。 - 在空白处按住Shift键再右键,选择“在此处打开Git Bash窗口”(或者直接右键菜单里的Git Bash Here)。
- 在弹出的黑色窗口里输入:
bash 你的脚本名.sh如果文件名有空格,就加引号:
bash "my script.sh"。 - 回车。如果脚本需要参数,就写成
bash xxx.sh 参数1 参数2。
执行过程中如果提示“Permission denied”,先输入:
chmod +x 你的脚本名.sh
再重新执行。
Git Bash其实自带了一套精简的Linux命令环境,大多数日常脚本都能跑。路径写法注意:Windows的C:\Users\xxx在Git Bash里变成/c/Users/xxx。
三、方法二:用WSL执行(Windows 10/11官方推荐,兼容性最强)
这是目前最接近真实Linux的方式,很多服务器脚本、开发工具都建议用这个。
- 以管理员身份打开PowerShell,输入下面两条命令并回车:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart - 重启电脑。
- 打开微软商店,搜索“Ubuntu”(推荐20.04或22.04 LTS),点安装。
- 第一次启动Ubuntu会让你设置用户名和密码(密码输入时屏幕不显示,正常现象)。
- 把
.sh文件复制到Ubuntu能访问的位置。最简单的办法是把文件放在C:\Users\你的用户名下,然后在Ubuntu里进入:cd /mnt/c/Users/你的用户名 - 执行脚本:
bash 你的脚本名.sh或者先给执行权限:
chmod +x 你的脚本名.sh ./你的脚本名.sh
以后想直接在Windows资源管理器里跑,可以在地址栏输入\\wsl$,就能看到Ubuntu的文件系统。
WSL2比WSL1性能更好,建议安装完后在PowerShell执行:
wsl --set-default-version 2
四、方法三:用Cygwin(老牌方案,适合需要大量Linux工具的人)
- 去Cygwin官网下载setup-x86_64.exe。
- 运行安装程序,选择一个镜像源,在Select Packages界面搜索并勾选
bash、coreutils等基础包。 - 安装完成后,打开Cygwin Terminal,用
cd命令进入脚本目录(路径格式类似/cygdrive/c/Users/...)。 - 执行方式与Git Bash相同:
bash xxx.sh或./xxx.sh。
Cygwin体积稍大,但工具非常全,适合经常混用Windows和Linux命令的用户。
五、其他快速办法和注意事项
-
PowerShell直接调用(有限支持)
如果你已经装了Git或WSL,可以在PowerShell里直接敲:bash .\脚本名.sh前提是系统PATH里已经有bash。
-
路径和编码问题
Windows下写的脚本经常出现换行符是CRLF,Linux认LF。用VS Code打开,右下角把CRLF改成LF再保存。中文路径、中文文件名有时会出乱码,尽量用英文。 -
脚本依赖其他命令
如果提示“command not found”,说明缺软件。Git Bash和WSL里可以用apt或对应包管理器安装,例如Ubuntu下:sudo apt update && sudo apt install 需要的包名。 -
权限和杀毒软件
个别脚本需要管理员权限,右键以管理员运行终端。部分国产杀毒会拦截.sh,临时添加信任即可。 -
长期使用建议
经常跑Linux脚本的,直接把WSL设为默认终端,或者装一个Windows Terminal,把Ubuntu设成默认配置文件,体验会好很多。开发环境也可以考虑直接装Docker Desktop,里面跑Linux容器更干净。
掌握以上方法后,基本上99%的.sh文件都能在Windows上顺利执行。Git Bash适合临时救急,WSL适合长期和正式项目。遇到具体报错,把完整错误信息复制出来,对照脚本内容排查依赖和路径,通常很快就能定位。

还没有评论,来说两句吧...