如何让Windows 10上的Cmder直接运行.sh文件?
解决Cmder中直接运行.sh文件的痛点
我之前用Cmder处理日常工作时,也被这个问题烦过——每次跑shell脚本都得手动敲bash file.sh,实在太啰嗦了!下面几个亲测有效的方法,帮你彻底解决这个问题:
方法1:给Cmder关联.sh文件(最省心)
这个方法能让你双击.sh文件直接在Cmder里运行,甚至在Cmder命令行里直接输脚本名就能执行:
- 打开Cmder设置(快捷键
Win + Alt + P) - 切换到Startup → Tasks,点击右下角的
+新建任务 - 在Task parameters里填入:
/icon "%CMDER_ROOT%\icons\cmder.ico" - Commands栏输入:
bash -c "%1",给任务起个好记的名字(比如「Run Shell Script」),保存设置 - 回到Windows资源管理器,右键任意.sh文件 → 打开方式 → 选择其他应用,找到Cmder(没显示就点「更多应用」→「在这台电脑上查找」,定位到Cmder安装目录的
Cmder.exe),勾选「始终使用此应用打开.sh文件」
搞定之后,不管是双击脚本还是在Cmder里直接敲file.sh,都能直接运行了!
方法2:设置Cmder别名(轻量快捷)
如果只是想在Cmder命令行里少敲几个字,设置别名是最快的:
- 找到Cmder安装目录下的
config文件夹,打开user_aliases.cmd(没有就新建一个) - 添加一行:
sh=bash $1 - 重启Cmder,以后只需要输入
sh file.sh就能运行脚本,比全打bash省事不少
方法3:系统全局关联(进阶操作)
想让整个Windows系统都默认用bash打开.sh文件?可以试试这个:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在系统变量里找到
PATHEXT,编辑它,把.SH加到扩展名列表里(记得用分号和前面的内容隔开) - 新建系统变量
SH_EXE,值填你bash.exe的完整路径(比如Cmder自带的Git bash路径:%CMDER_ROOT%\vendor\git-for-windows\bin\bash.exe) - 打开注册表(
Win + R输入regedit),找到HKEY_CLASSES_ROOT\.sh,把默认值设为shfile;再新建HKEY_CLASSES_ROOT\shfile\shell\open\command,默认值填"你的bash路径" "%1"
这个方法稍复杂,新手优先用前两个~
内容的提问来源于stack exchange,提问作者Daniel Santos




