我使用 Cygwin 一段时间了。当我需要新的软件包时,我打开安装程序并选择我需要的版本,安装程序会处理其余的事情。我注意到程序都下载到C:\cygwin64\bin
bin 文件夹内有许多 .exe 可执行文件。这包括 diff、find、grep、gzip、vi、vim、whatis、which、who、whoami 等。我所做的就是添加C:\cygwin64\bin
到用户 PATH 变量中。
现在,我可以访问上面提到的所有程序以及更多程序,这些程序是通过 Cygwin 以及 PowerShell 和 Windows 命令提示符下载和使用的。我很困惑。所有这些程序都应该仅在 Cygwin 或任何 Windows 终端中运行吗?如果我可以在没有 Cygwin bash 终端的情况下运行这些程序,那么首先拥有 Cygwin 的意义何在?
Cygwin 是 Linux 工具的集合,这些工具被编译为在 Windows 上作为
.exe
可执行文件运行。这是一个 描述:
实际上,Cygwin 是 Linux 源代码和 Windows API 之间的一层。它提供了经过修改的 Linux 库以使用 Windows 调用的库,同时呈现熟悉的 Linux 语法。它有一个由 实现的运行时层
cygwin1.dll
,它是执行 Windows API 转换的运行时。为了模拟统一的 Linux 环境,该 DLL 创建了一个共享内存内存段,供其所有工具及其自己的
cygwin1.dll
.Cygwin 的目的并不是像 WSL 那样作为 Linux 虚拟环境,而是作为 Linux 开发人员在熟悉的环境中在 Windows 上移植和测试其 Linux 程序的工具。
Cygwin 支持 Linux 和 Windows 文件名,这使得它的实用程序可以处理 Windows 文件夹和文件。由于 Windows 和 Linux 之间存在一些差异,因此应谨慎使用。例如,Cygwin Linux 工具使用换行符作为行结束符,而 Windows 使用两个字符。
所有 Cygwin 工具都是
.exe
在 Windows 上运行的程序,并且可以在可以使用 Windows 工具的任何地方使用它们。参考 :