安装 MKS Toolkit 后恢复 Cygwin

安装 MKS Toolkit 后恢复 Cygwin

我曾经在 Windows 桌面上使用过 Cygwin 一段时间,一直很开心,直到最近我安装了其他应用程序。此应用程序本身与此无关(我们称之为 ABC 应用程序),主要原因是它安装了 MKS Toolkit。由于我以管理员身份安装该应用程序,安装管理器在系统 PATH 变量的开头添加了 MKS Toolkit。现在 MKS Toolkit 遮蔽/隐藏了 Cygwin,而 Cygwin 实际上已损坏。我可以从系统 PATH 中删除 MKS Toolkit,因为我不会直接使用它,但我不确定这会如何影响 ABC 应用程序。

问题是:有什么方法可以让我保留 MKS Toolkit 位于系统 PATH 的开头并同时使用 Cygwin 吗?如果可以,那么应该怎么做?

这就是我运行 Cygwin 的方式(实际上是默认的快捷方式):

<my_path_to_cygwin>\bin\mintty.exe -i /Cygwin-Terminal.ico -

我现在在 Cygwin 中拥有的内容:

echo $PATH
C:\Program Files (x86)\MKS Toolkit\mksnt;C:\PROGRA~2\MKSTOO~in64;C:\PROGRA~2\MKSTOO~in;C:\PROGRA~2\MKSTOO~in\X11;...the rest of the PATH...

which bash
C:/Program Files (x86)/MKS Toolkit/mksnt/bash.exe

我在cmd.exe中的内容:

echo %PATH%
C:\Program Files (x86)\MKS Toolkit\mksnt;C:\PROGRA~2\MKSTOO~1\bin64;C:\PROGRA~2\MKSTOO~1\bin;C:\PROGRA~2\MKSTOO~1\bin\X11;...the rest of the PATH...

which bash
C:/Program Files (x86)/MKS Toolkit/mksnt/bash.exe

附注:我也有 GitBash,似乎它没有受到 MKS Toolkit 的影响。

我在 GitBash 中拥有的内容:

$ echo $PATH
/c/Users/<username>/bin:.:/usr/local/bin:/mingw/bin:/bin:/c/Program Files (x86)/MKS Toolkit/mksnt:/c/PROGRA~2/MKSTOO~1/bin64:/c/PROGRA~2/MKSTOO~1/bin:/c/PROGRA~2/MKSTOO~1/bin/X11:...the rest of the PATH...
$ which bash
/bin/bash

答案1

我仔细读了 mintty man (https://mintty.github.io/mintty.1.html) 并发现:

如果在命令行中提供了程序名称,则将使用给定的任何其他参数执行该程序。否则,mintty 会在命令行中查找要执行的 shellSHELL 环境变量。如果未设置,它会从 /etc/passwd 读取用户的默认 shell 设置。作为最后的手段,它会返回到 /bin/sh。

SHELL因此,我添加了一个具有值的用户级环境变量/bin/bash,它恢复了我的 Cygwin。我不必修改 mintty 快捷方式目标。

相关内容