如果您是本专栏的忠实读者,应该已经熟悉了许多 Unix 行话。“用管道重定向输出、“杀死进程 和 “使用通配符 等行话对于新手来说很奇怪,但是您应该很熟悉这些说法了。
对于 UNIX 本身,也有各种称呼。IBM® 大型机用户说各种带字母 “z 的行话,比如 IBM z/OS® 和 System z9 Virtual Machine (z/VM);嵌套系统开发人员使用 eCos 这个词;在聊天中还会提到其他许多风格的 UNIX,比如 Linux®、FreeBSD、Sun Solaris 和 Mac OS X。现代信息技术使用各种各样的方言,简直就像是圣经中巴别塔的故事。
当然,也有不少人说 Windows 术语,尽管大多数人只掌握 “指向和单击 这样的简单词汇。经过 20 年的发展,大多数 Windows 用户已经忘了古老的 Dos 术语。
但是,与 UNIX shell 相比,Windows COMMAND 实用程序的功能实在很差;因此,UNIX 用户通常认为 Windows 是一种让人灰心丧气的平台。对于习惯于使用丰富的命令行工具集的 UNIX 软件开发人员来说,Windows 尤其别扭。对于 UNIX 开发人员来说,使用 Windows 简直就像是到了陌生的外国。
幸运的是,Cygwin(见 参考资料)在 Windows 环境中提供大家熟悉的一片天地,就像是美国人在法国找到了麦当劳。
Cygwin 是一个用于 Windows 的类 UNIX shell 环境。 它由两个组件组成:一个 UNIX API 库,它模拟 UNIX 操作系统提供的许多特性;以及 Bash shell 的改写版本和许多 UNIX 实用程序,它们提供大家熟悉的 UNIX 命令行界面。前一个组件是一个 Windows 动态链接库 (DLL)。后一个组件是一组基于 Cygwin DLL 的程序,其中许多是用未经修改的 UNIX 源代码编译的。它们合在一起提供大家熟悉的 UNIX 环境。
#p#副标题#e#在本期的 对话 Unix 专栏中,我们要安装 Cygwin,讨论它的命令行界面 (CLI),并构建标准 Cygwin 发行版中未包含的开放源码,以此体会把 UNIX 应用程序(至少是一部分 UNIX 应用程序)迁移到这个模拟环境是多么容易。
安装 Cygwin
与这里介绍的其他软件不同,Cygwin 使用 Windows 安装程序。Cygwin setup.exe 文件可以重新安装软件,可以添加、修改或升级 Cygwin 配置的组件。
在 Windows 系统上打开浏览器,通过访问 http://cygwin.com/setup.exe 下载 Cygwin 安装程序。安装程序本身非常小(大约 600KB),因为大多数 Cygwin 软件是在安装过程中下载的。完成下载之后,按照以下步骤安装 Cygwin:
运行安装程序。图 1 显示 Cygwin 欢迎屏幕。
图 1. 在安装 Cygwin 期间出现的第一个对话框
单击 Next 进入下一个屏幕,选择要执行的安装类型。
单击 Install from Internet。
单击 Next,然后选择一个安装目录。
配置安装的窗口见图 2。
图 2. Cygwin 安装选项
在大多数情况下,重庆oa办公,推荐的安装选项是合适的,也可以进行定制,但是要注意几点:
不要在 Windows 系统的根目录(比如 C:)中安装 Cygwin。最好把 Cygwin 安装在它自己的子目录中,比如默认目录(C:cygwin)或 C:Program Filescygwin。(您选择的目标目录将成为模拟的 UNIX 环境的根目录 /。例如,如果在 C:cygwin 中安装,那么虚拟的 /usr/bin 实际上是 C:cygwinusrbin)。
#p#副标题#e#对于 Install For 选项,不要选择 Just Me。
把 Default Text File 类型设置为 Unix,从而尽可能提高与其他 UNIX 机器上存储的现有文件的兼容性。
单击 Next。
在下一个窗口中,选择一个存储 Cygwin 所需的数据的目录。不要选择前一步中选择的 Cygwin 目录。 如果可能的话,应该在有至少 1GB 空闲空间的驱动器上创建或选择一个目录。
再次单击 Next,选择使用的 Internet 连接类型。通常应该选择 Direct Connection。
再次单击 Next。
稍等一会儿,Cygwin 会下载当前的镜像站点列表,让您选择一个镜像站点,见图 3。如果不确定应该选择哪个站点,就选择地理位置比较近的站点。
图 3. 选择您认为可靠的或地理位置比较近的安装站点
经过短暂的延迟之后,安装程序显示可用的类别和包的完整列表。图 4 显示一个类别的部分内容。单击加号 (+) 展开对应的类别;单击 “循环 标志在 Skip(忽略此包)和包的所有可用版本之间循环。如果 Cygwin 提供一个实用程序的多个版本,应该选择满足您的需求的实例。顺便说一下,如果选择 B 列,就会下载二进制包;选择 S,也会下载源代码。
图 4. 选择最适合需要的包和实例
#p#分页标题#e#在 Cygwin 中可用的包超过 1,000 个,所以应该只选择您需要的类别和包。(安装所有 Cygwin 包会占用超过 800MB 的磁盘空间)。以后随时可以添加整个类别或单独的包:只需重新运行 Cygwin 安装程序。(还可以在任何时候用相同的安装程序删除或更新包)。搜索 Cygwin 包列表(参见 参考资料),检查您喜欢的 UNIX 实用程序是否在 Cygwin 中可用。
#p#副标题#e#选择您需要的工具之后,单击 Next,下载过程开始!
进度条分别反映每个包的下载进度、总下载进度和磁盘使用量。图 5 是在我的测试计算机上在安装期间截取的屏幕图。
图 5. Cygwin 下载大量软件,所以请耐心等待
最后,安装程序安装软件并(可选地)在 Start 菜单和桌面中添加快捷方式。单击 Finish。
通过使用 Start 菜单或双击 Cygwin 图标(如果添加了这些快捷方式的话),启动 Cygwin;也可以执行 Cygwin 目录中的 Cygwin 脚本(比如 C:cygwinCygwin.bat)。
图 6 显示第一次启动 Cygwin 时的情况:它创建您的主目录,执行 shell 启动文件,显示提示。现在可以运行 Unix 命令了!
图 6. 现在可以在 Windows 中使用 UNIX 命令了!
例如,试一下 ls -a 或 type touch。后一个命令表明 touch 是可执行文件 /usr/bin/touch。
在 Windows 中发挥 UNIX 的优势(反之亦然)
Cygwin 在 Windows 中几乎完整地模拟一个 UNIX shell。实际上,它把这两种操作系统很好地结合在一起了。例如,可以运行 df -h 命令显示 “UNIX 机器上的空闲磁盘空间。图 7 显示结果。
图 7. 是 Windows 上的 UNIX 文件系统,还是 UNIX 上的 Windows 文件系统?