一 cygwin
Cygwin 是一个用于 Microsoft® Windows® 操作系统的类 UNIX® 环境。它包含一个真正的 UNIX shell、一个 Portable Operating System Interface (POSIX) 模拟库以及数千个 UNIX 实用程序。

作用:
1)作为Linux/Unix的初学者,可以使用cygwin来在windows上模拟使用Linux/Unix;
2)可以基于cygwin来从windows访问Linux/Unix;
3)可以在Windows上模拟Linux的开发环境,比如使用GUN的编译和调试工具来做程序开发;
4)可以基于cygwin中间层实现Linux/Unix应用程序到windows的无代码修改的移植;(cygwin dll实现了对windows底层API的Linux/Unix风格的封装)
5)注意,cygwin中运行的Linux/Unix工具其实是这些工具的对应的windows的exe版本,cygwin不能直接运行Linux/Unix的应用程序;

主页:http://cygwin.com/

二 cygwin的安装
Cygwin 是一个用于 Windows 的类 UNIX shell 环境。 它由两个组件组成:一个 UNIX API 库,它模拟 UNIX 操作系统提供的许多特性;以及 Bash shell 的改写版本和许多 UNIX 实用程序,它们提供大家熟悉的 UNIX 命令行界面。前一个组件是一个 Windows 动态链接库 (DLL)。后一个组件是一组基于 Cygwin DLL 的程序,其中许多是用未经修改的 UNIX 源代码编译的。它们合在一起提供大家熟悉的 UNIX 环境。

Cygwin使用安装向导程序setup.exe来实现cygwin的在线安装。 同时setup.exe文件可以重新安装软件,可以添加、修改或升级 Cygwin 配置的组件。

在 Windows 系统上打开浏览器,通过访问 http://cygwin.com/setup.exe 下载 Cygwin 安装程序。安装程序本身非常小(大约 600KB),因为大多数 Cygwin 软件是在安装过程中下载的。完成下载之后,按照以下步骤安装 Cygwin:

  1 运行安装程序。
  
  2 单击 Next 进入下一个屏幕,选择要执行的安装类型。单击 Install from Internet
  3 单击 Next,然后选择一个安装目录。
     
  在大多数情况下,推荐的安装选项是合适的,也可以进行定制,但是要注意几点:
  1)不要在 Windows 系统的根目录(比如 C:)中安装 Cygwin。最好把 Cygwin 安装在它自己的子目录中,比如默认目录(C:\cygwin)或 C:\Program Files\cygwin。(您选择的目标目录将成为模拟的 UNIX 环境的根目录 /。例如,如果在 C:\cygwin 中安装,那么虚拟的 /usr/bin 实际上是 C:\cygwin\usr\bin) 。
  2)对于 Install For 选项,不要选择 Just Me。
  3)把 Default Text File 类型设置为 Unix,从而尽可能提高与其他 UNIX 机器上存储的现有文件的兼容性
  4 单击 Next。在下一个窗口中,选择一个存储 Cygwin 所需的数据的目录。不要选择前一步中选择的 Cygwin 目录。 如果可能的话,应该在有至少 1GB 空闲空间的驱动器上创建或选择一个目录。
  5 再次单击 Next,选择使用的 Internet 连接类型。通常应该选择 Direct Connection。
      6 再次单击 Next。稍等一会儿,Cygwin 会下载当前的镜像站点列表,让您选择一个镜像站点,
  
  如果不确定应该选择哪个站点,就选择地理位置比较近的站点。
  7 再次next, 经过短暂的延迟之后,安装程序显示可用的类别和包的完整列表。
  
  显示一个类别的部分内容。单击加号 (+) 展开对应的类别;单击 “循环” 标志在 Skip(忽略此包)和包的所有可用版本之间循环。如果 Cygwin 提供一个实用程序的多个版本,应该选择满足您的需求的实例。顺便说一下,如果选择 B 列,就会下载二进制包;选择 S,也会下载源代码。

在 Cygwin 中可用的包超过 1,000 个,所以应该只选择您需要的类别和包。(安装所有 Cygwin 包会占用超过 800MB 的磁盘空间)。以后随时可以添加整个类别或单独的包:只需重新运行 Cygwin 安装程序。(还可以在任何时候用相同的安装程序删除或更新包)。

  8 选择您需要的工具之后,单击 Next,下载过程开始!
  

进度条分别反映每个包的下载进度、总下载进度和磁盘使用量。

  9 最后,安装程序安装软件并(可选地)在 Start 菜单和桌面中添加快捷方式。单击 Finish

  10 通过使用 Start 菜单或双击 Cygwin 图标(如果添加了这些快捷方式的话),启动 Cygwin;也可以执行 Cygwin 目录中的 Cygwin 脚本(比如 C:\cygwin\Cygwin.bat)。

  

  显示第一次启动 Cygwin 时的情况:它创建您的主目录,执行 shell 启动文件,显示提示。现在可以运行 UNIX 命令了!

三 cygwin使用
你可以使用几乎所有的linux/unix命令来操作你本地的windows系统。哈哈!
例如使用 df -h来查看你的磁盘的使用情况:

Cygwin 安装目录作为虚拟 UNIX 系统的根目录。Cygwin 把安装目录中的子目录映射到 UNIX 目录。它以单独的卷的形式提供 Windows 驱动器,比如 /cygwin/c。可以使用这样的虚拟路径启动 Windows 程序。请尝试输入 /cygdrive/c/Program\ Files/Internet\ Explorer/IEXPLORE.EXE 从命令行启动 Windows Internet Explorer®。(还可以使用 Tab 键自动展开路径的元素) 。

顺便说一句,如果要把 Windows 路径名转换为等效的 UNIX 路径名或者相反,可以试试内置命令 cygpath。在默认情况下,cygpath 产生 UNIX 路径名。使用 -w 选项产生 Windows 路径。

$ cygpath -w /cygwin/c/Program\ Files/Internet\ Explorer/IEXPLORE.EXEc:\Program Files\Internet Explorer\IEXPLORE.EXE

还有帮助沟通这两个环境的其他特性:

  • Cygwin 提供它自己的 lpr(/usr/bin/lpr 而不是 Windows 的 LPR.EXE),可以直接从模拟的 UNIX 环境进行打印。只需把 PRINTER 环境变量设置为 \\server\printer_name 或 //server/printer_name 这样的 Cygwin UNC;前向斜杠和反向斜杠都可以,在 Cygwin 中的其他地方也是如此。
  • 在 Cygwin 中用 ln -s 创建的符号链接在 Windows 中被解释为快捷方式。同样,Windows 快捷方式在 Cygwin 中被解释为符号链接。因此,可以使用 Windows 快捷方式带参数启动 UNIX 命令。
  • 因为 Cygwin 提供完整的 Bash shell,所以可以使用上述的所有兼容特性(和其他特性)编写 UNIX shell 脚本来维护 Windows!

    例如,可以使用 UNIX find 在驱动器上搜索数据。请注意一点:在 Windows 文件名中常常使用空格。为了保持完整的文件名(请记住,UNIX 参数以空格分隔),一定要使用 find -print0xargs -0

四 更新和扩展 Cygwin

正如前面提到的,在任何时候都可以通过运行 Cygwin 安装程序添加、删除和更新 Cygwin 类别和包。我们来添加几个软件开发包,以便像在传统的 UNIX 系统上那样从源代码构建程序。

再次运行 Cygwin setup.exe 应用程序,依次通过前几个对话框,直到到达 Select Packages 窗口。展开 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 中的主目录,展开压缩文件。

$ cp /cygdrive/c/Documents\ and\ Settings/Martin/My\ Documents/wget-1.11.4.tar ~$ tar xzvf wget-11.4.tarwget-1.11.4/wget-1.11.4/AUTHORSwget-1.11.4/NEWSwget-1.11.4/COPYINGwget-1.11.4/configure.batwget-1.11.4/ChangeLogwget-1.11.4/ChangeLog.READMEwget-1.11.4/msdos/wget-1.11.4/msdos/ChangeLogwget-1.11.4/msdos/Makefile.DJ...wget-1.11.4/src/cookies.cwget-1.11.4/src/http.hwget-1.11.4/src/log.hwget-1.11.4/src/sysdep.hwget-1.11.4/src/alloca.cwget-1.11.4/src/getopt.cwget-1.11.4/src/gnu-md5.hwget-1.11.4/src/ftp.cwget-1.11.4/config.subwget-1.11.4/config.guess$ 

当 Cygwin 下载和安装过程完成时,单击 Finish。现在可以从源代码构建 wget 实用程序了。

$ cd wget-1.11.4$ ./configureconfigure: Configuring for GNU wget 1.11.4...creating po/Makefile$ makegcc -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 开发工具,包括最流行的脚本编程语言。

五 cygwin中实现linux程序到windows的移植和跨平台软件的开发

如果您不喜欢 Microsoft Visual Studio® 等 Windows 开发工具,可以用 Cygwin 中的 UNIX 编译器和工具构建原生 Windows WIN32 应用程序。但是一般的大部分的使用情况我们是借助cygwin来实现Linux/Unix程序到windows的移植,或用来编写夸平台的应用。
例如,我们可以在cygwin中使用vim来编写一个简单的hello.c的c文件:
int main(void)
{
  printf( "Hello World!");
}
然后我们输入编译指令:
# gcc hello.c -o hello
然后执行:
# ./hello
此时的hello运行正常且是一个windows的exe程序。你可以拷贝hello.exe和cygwin.dll到一个单独的目录,在windows去执行。

但是当我们将以上的源文件hello.c拷贝的正真的Linux/Unix系统,然后重复上面的编译的执行指令,程序任然正常的运行,但是此时的程序已经是Linux/Unix的可执行格式。

六 参考:http://www.ibm.com/developerworks/cn/aix/library/au-spunix_cygwin/index.html#resources

完!

[在windows上使用Unix工具]cygwin相关推荐

  1. Windows上开发测试工具集合

    工欲善其事必先利其器,之前喜欢Linux,一方面是因为Linux是开源的,另一方面Linux里面的工具可以满足你各种各样的需求. 很长一段时间,我都不知道windows上面有什么好用的工具软件(指开发 ...

  2. 手把手教你在Windows上编译Swift工具链

    2020/5/27更新:大家现在可以直接从Saleem Abdulrasool的Azure Pipeline中下载打包好的Swift Windows SDK了,在他的GitHub中找到swift-bu ...

  3. Squirrel的安装(windows上Phoneix可视化工具)

    一.下载安装 下载地址:http://www.squirrelsql.org/ 下载所需版本 或者 从网址http://www.squirrelsql.org/下载相应版本的squirrel的安装ja ...

  4. windows下的linux工具,Windows下的Unix/Linux工具集:UnxUtils

    最近用dos命令多了些,感觉方便得多,对付一些老机器特别有效~只是可惜dos命令功效有限,如果能使用到linux系统上类似grep,sed,cat这样命令就完美了~ 果然和想得差不多,网上还真有&qu ...

  5. Windows上优秀的命令行(Terminal Emulator)工具推荐

    强大的命令行对于开发者是必要的,而Windows自带的cmd实在太弱了,Powershell勉强还行,但着实没有Linux上的命令行方便.为此也有一些WIndows第三方命令行工具开发出来,如cmde ...

  6. Windows上堪称神器的6个效率工具

    在生活中,我们总会遇到一些重复又繁琐的工作,不仅极大的拖累了咱们的工作效率,也容易令人烦躁焦虑.其实,我们可以通过Windows上一些好用的工具,简化工作步骤,提高工作效率.下面这6个堪称神器的效率工 ...

  7. Github | 在windows上本地整个项目(包含所有文件/文件夹)到 Github

    转载自https://blog.csdn.net/csjapan/article/details/79373732 1.注册并登陆Github. 2.登陆进去之后的页面,点击这个"库&quo ...

  8. windows上hadoop安装(cygwin等)

    http://cjnetwork.iteye.com/blog/1474745 hadoop运行方式 1.本机方式:不做任何配置 2.伪分布式:pseudo distributed 3.全分布式:fu ...

  9. 在windows上模拟linux环境,Windows下使用NCL(Cygwin模拟Linux环境)

    参考自:http://bbs.lasg.ac.cn/bbs/thread-37043-1-1.html 1.下载 所需文件均可在此下载:http://yunpan.cn/cQsvAEe3Axs2Z   ...

最新文章

  1. java何时支持await,内存-为什么Java等待这么长时间才能运行垃圾回收器?
  2. php制作标签,ThinkPHP标签制作教程
  3. scp选择二进制_二进制传输与文本传输区别
  4. 史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等
  5. 【.NET】XML文件的创建,修改,删除
  6. CA服务器的安装和学习.
  7. ThinkPHP入门篇(一)
  8. ESP8285与ESP8266的差异
  9. 主曲率、平均曲率、高斯曲率、法曲率、主方向
  10. mysql不等于多个数怎么写_mysql不等于符号怎么写
  11. 【Rust日报】2021-10-06 [Rust游戏] - 自走棋
  12. 【京东】会员激励体系,会员体系结构分析
  13. 【hadoop生态之Hive】Hive的DDL数据定义语言【笔记+代码】
  14. 计算机组成原理---第二章运算器和运算方法
  15. 滴滴云 远程访问jupyter
  16. java利用二维数组查找鞍点_java找二维数组的鞍点
  17. 【FreeBSD】VMware 安装 FreeBSD
  18. 【软考中级】多媒体应用设计师复习笔记第十章
  19. HashMap面试六问
  20. web前端技术的学习(一)

热门文章

  1. UVA455 Periodic Strings
  2. nginx 安装配置指南
  3. Android Studio(九):引用jar及so文件
  4. linux 环境下git的安装与配置
  5. keepalived架设简单高可用的nginx的web服务器   ----那些你不知道的秘密
  6. 驾驭系统 做一个Windows XP的“***”(图)3
  7. 春节期间新闻回顾:思科微软多事 熊猫烧香完事
  8. 安卓robot自动化测试包经常用的方法
  9. 面向 Android* Jelly Bean 4.3 的英特尔® 凌动™ x86 映像安装指南 - 推荐
  10. 基础总结篇之六:ContentProvider之读写联系人