因为 Cygwin 提供完整的 Bash shell,所以可以使用上述的所有兼容特性(和其他特性)编写 UNIX shell 脚本来维护 Windows!
例如,可以使用 UNIX find 在驱动器上搜索数据 。请注意一点:在 Windows 文件名中常常使用空格 。为了保持完整的文件名(请记住,UNIX 参数以空格分隔),一定要使用 find -print0 和 xargs -0 。
如何更新和扩展 Cygwin
正如前面提到的,在任何时候都可以通过运行 Cygwin 安装程序添加、删除和更新 Cygwin 类别和包 。我们来添加几个软件开发包,以便像在传统的 Unix 系统上那样从源代码构建程序 。
再次运行 Cygwin setup.exe 应用程序,依次通过前几个对话框,直到到达 Select Packages 窗口,见 图 4 。展开 Devel 类别,使用循环控件选择以下包的最高版本:
autoconf2.1
automake1.10
binutils
gcc-core
gcc4-core
gdb
pcre
pcre-devel
做出选择之后(为了满足依赖性,可能会自动选择其他包),单击 Next 开始更新 。与前面一样,下载和安装过程需要一定的时间(开发包往往相当大) 。
在此期间,打开一个浏览器并通过访问 http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz 下载 GNU wget 实用程序的最新源代码 。(wget 是一种命令行工具,它可以下载任何东西 。关于此工具的更多信息,请参见 参考资料) 。使用 Cygwin 把此文件复制到 Cygwin 中的主目录,展开压缩文件 。清单 1 显示压缩文件的内容 。
清单 1. wget-1.11.4.tar 的内容
$ cp /cygdrive/c/Documents and Settings/Martin/My Documents/wget-1.11.4.tar ~
$ tar xzvf wget-11.4.tar
wget-1.11.4/
wget-1.11.4/AUTHORS
wget-1.11.4/NEWS
wget-1.11.4/COPYING
wget-1.11.4/configure.bat
wget-1.11.4/ChangeLog
wget-1.11.4/ChangeLog.README
wget-1.11.4/msDos/
wget-1.11.4/msdos/ChangeLog
wget-1.11.4/msdos/Makefile.DJ
...
wget-1.11.4/src/cookIEs.c
wget-1.11.4/src/http.h
wget-1.11.4/src/log.h
wget-1.11.4/src/sysdep.h
wget-1.11.4/src/alloca.c
wget-1.11.4/src/getopt.c
wget-1.11.4/src/gnu-md5.h
wget-1.11.4/src/ftp.c
wget-1.11.4/config.sub
wget-1.11.4/config.guess
$
当 Cygwin 下载和安装过程完成时,单击 Finish 。现在可以从源代码构建 wget 实用程序了 。
$ cd wget-1.11.4
$ ./configure
configure: Configuring for GNU wget 1.11.4
...
creating po/Makefile
$ make
gcc -I. ...
$ make install
...
/usr/bin/install -c -m 644 ./wget.1 /usr/local/share/man/man1/wget.1
$ type wget
/usr/local/bin/wget
为了测试这个新的实用程序,在 Cygwin 中运行它并下载 wget 源代码:
$ /usr/local/bin/wget http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz
稍后就会得到一个新的源代码压缩文件 。使用 Cygwin 安装程序从 Cygwin 存储库获得实用程序是最简单的方法,但是也可以在 Cygwin 中构建下载的或自己的源代码 。在 Cygwin 中可以使用全套 Unix 开发工具,包括最流行的脚本编程语言 。
如果您不喜欢 Microsoft Visual Studio?等 Windows 开发工具,甚至可以用 Cygwin 中的 UNIX 编译器和工具构建原生 Windows WIN32 应用程序 。
结束语
Cygwin 并不是完美的 UNIX 模拟环境,但已经相当好了 。核心组件的文档很完善,而且特别方便,它们介绍了模拟 DLL 中的限制和安全风险 。如果希望把复杂的 UNIX 包迁移到 Cygwin,请参考开发人员指南(参见 参考资料),评估 Cygwin 的支持是否能够满足您的 API 需要 。
推荐阅读
- UNIX 网络分析
- vivo运动计步怎么在锁屏显示
- 设置 UNIX 文件系统
- 怎么用u盘拷贝文件
- 对话 UNIX: Squirrel--可移植的 shell 和脚本语言
- 依沙瓦克在哪
- 现在公章是加原子还是光敏
- 抖音如何让音乐变长
- 跟踪 UNIX 应用程序的解决方案
- UNIX操作系统复杂的关机过程
