我在 Windows 11 上安装了 cygwin。现在,当我打开 Windows 命令行时,我希望命令bash.exe
运行 cygwin 的 bash 命令,而不是与 wsl(适用于 Linux 的 Windows 子系统)链接的 bash。换句话说,当我运行时,bash.exe
我不想看到“适用于 Linux 的 Windows 子系统没有安装发行版。”消息,而是从我的 cygwin 安装中运行 bash。我尝试将 cygwin 的“bin”目录添加到 Windows PATH 环境变量中,但没有效果。
编辑
最初,我写道将 cygwin 的“bin”文件夹路径添加到 Windows PATH 环境变量中没有任何效果,虽然bash-exe
从 Windows cmd shell 运行确实如此,但实际上它同时解决了从 Python 脚本运行的问题bash.exe
,这实际上是我的问题。我以为无论是从 cmd shell 还是从 Python 脚本运行,运行命令的行为都是一样的,但显然是有区别的。
答案1
当您说“命令行”时,我会假设您指的是 CMD shell,尽管您可能指的是 PowerShell。
对于 CMD,最简单的方法可能是使用doskey
别名bash
:
doskey bash=D:\cygwin\bin\bash.exe $*
要使此设置永久生效,请参阅这个答案。
对于 PowerShell,使用New-Alias
等效项并在 PowerShell 配置文件中设置它。
其他选择:
Windows 终端
但是,您可能需要考虑另外两个工具来使这甚至(在我看来)更容易:
- Windows 终端
- 微软 PowerToys使用 PowerToys Run。
这两个都是微软产品,都可以从微软商店安装。
您可以在 Windows 终端中设置一个名为“Bash”的 Cygin 配置文件,然后使用 PowerToys 运行,通过 激活它_Bash
。任何终端配置文件的前缀都是_
,但如果您经常使用它,您甚至可以跳过它。Power Run 将根据使用情况将其排到顶部。
我建议打开选项在新选项卡中打开个人资料在 PowerToys Run 的“Windows 终端”设置中。
调整路径
您可以调整路径,但您需要在当前 CMD 或 PowerShell 会话中执行此操作,因此您仍然需要启动 CMD 脚本或 PowerShell 配置文件。考虑到这一点,我认为 Alias 方法可能更好。
答案2
我遇到与作者相同的问题,安装了 WSL 和 Cygwin。
我设置了 PATH:Win+Pause - 高级系统设置 - 环境变量 - 用户和系统部分中的 PATH 首先都是 C:\Cygwin64\bin。计算机已重新启动。
我运行 Win+R-cmd.exe
设置路径
我首先看到 c:\Cygwin64\bin。
其中 bash
执行程序:\cygwin64\bin\bash.exe 执行程序:\Windows\System32\bash.exe
bash-bash 已启动
$ uname
CYGWIN_NT-10.0-19045
$ cat /etc/发布
猫:'/etc/发布': 没有这样的文件或目录
但是。Win-R - bash
$uname
Linux
$cat /etc/发布
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=22.04 DISTRIB_CODENAME=jammy DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS" ...
如果我尝试在桌面上创建快捷方式:
上下文菜单 - 新建 - 快捷方式 - 输入项目的位置 - 输入“bash” - 下一步 - 完成
然后使用目标创建快捷方式:C:\Windows\System32\bash.exe