windows怎么执行.sh文件

老刘

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分钟搞定)

适合只是临时跑一下脚本、不想折腾系统的新手。

  1. 去Git官网下载最新版Git for Windows,一路下一步安装,记得勾选“Git Bash Here”。
  2. 安装完成后,找到你的.sh文件所在文件夹。
  3. 在空白处按住Shift键再右键,选择“在此处打开Git Bash窗口”(或者直接右键菜单里的Git Bash Here)。
  4. 在弹出的黑色窗口里输入:
    bash 你的脚本名.sh

    如果文件名有空格,就加引号:bash "my script.sh"

  5. 回车。如果脚本需要参数,就写成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的方式,很多服务器脚本、开发工具都建议用这个。

  1. 以管理员身份打开PowerShell,输入下面两条命令并回车:
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  2. 重启电脑。
  3. 打开微软商店,搜索“Ubuntu”(推荐20.04或22.04 LTS),点安装。
  4. 第一次启动Ubuntu会让你设置用户名和密码(密码输入时屏幕不显示,正常现象)。
  5. .sh文件复制到Ubuntu能访问的位置。最简单的办法是把文件放在C:\Users\你的用户名下,然后在Ubuntu里进入:
    cd /mnt/c/Users/你的用户名
  6. 执行脚本:
    bash 你的脚本名.sh

    或者先给执行权限:

    chmod +x 你的脚本名.sh
    ./你的脚本名.sh

以后想直接在Windows资源管理器里跑,可以在地址栏输入\\wsl$,就能看到Ubuntu的文件系统。

WSL2比WSL1性能更好,建议安装完后在PowerShell执行:

wsl --set-default-version 2

四、方法三:用Cygwin(老牌方案,适合需要大量Linux工具的人)

  1. 去Cygwin官网下载setup-x86_64.exe。
  2. 运行安装程序,选择一个镜像源,在Select Packages界面搜索并勾选bashcoreutils等基础包。
  3. 安装完成后,打开Cygwin Terminal,用cd命令进入脚本目录(路径格式类似/cygdrive/c/Users/...)。
  4. 执行方式与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适合长期和正式项目。遇到具体报错,把完整错误信息复制出来,对照脚本内容排查依赖和路径,通常很快就能定位。

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,1人围观)

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

目录[+]