`
dowhathowtodo
  • 浏览: 777578 次
文章分类
社区版块
存档分类
最新评论

Cygwin

 
阅读更多
什么是Cygwin?Cygwin是什么意思?

Cygwin 是 Cygwin 公司(http://cygwin.com/)的产品,它提供了 Windows 操作系统下的一个 UNIX 环境,它可以帮助程序开发人员把应用程序从 UNIX/Linux 移植到 Windows 平台,是一个功能强大的工具集。

Cygwin 由两部分组成:

(1)cygwin1.dll:它作为 UNIX 的一个仿真层,提供 UNIX API 功能;

(2)一组工具:它的功能是负责创建一个 UNIX 或 Linux 的外观界面。Cygwin 动态链接库,即 cygwin1.dll 可以在 Windows CE 以外,Windows 95 以上的所有非 beta 版本的 Windows OS 下工作,如 Windows 98,Windows 2000 等。目前该软件的最新版本的 Cygwin 是 1.1.x 或 1.3.x.可以从 cygwin 公司的网站上直接下载(http://cygwin.com/setup.exe )

Cygwin 的功能

网络管理人员通过 Cygwin 可以很容易地远程登录到任何一台 PC 机,在 UNIX/Linux 外壳(shell)下解决问题。在任何一台 Windows OS 计算机上运行外壳(shell)脚本命令。高级外壳脚本命令可以用标准 shell、sed 和 awk 等创建。标准 Windows 命令行工具甚至可以与 UNIX/Linux 外壳脚本环境共同管理 Windows 操作系统。

安装设置cygwin

1、安装

要安装网络版的cygwin,可以到http://cygwin.com,点击"Install Cygwin Now!"。这样会先下载一个叫做setup.exe的GUI安装程序,用它能下载一个完整的cygwin。按照每一屏的指示可以方便的进行安装。

2、环境变量

开始运行bash之前,应该设置一些环境变量。cygwin提供了一个.bat文件,里面已经设置好了最重要的环境变量。通过它来启动bash是最安全的办法。这个.bat文件安装在cygwin所在的根目录下。 可以随意编辑该文件。

CYGWIN变量用来针对cygwin运行时系统进行多种全局设置。开始时,可以不设置CYGWIN或者在执行bash前用类似下面的格式在dos框下把它设为tty

C:\> set CYGWIN=tty notitle glob

PATH变量被cygwin应用程序作为搜索可知性文件的路径列表。当一个cygwin进程启动时,该变量被从windows格式(e.g. C:\WinNT\system32;C:\WinNT)转换成unix格式(e.g., /WinNT/system32:/WinNT)。如果想在不运行bash的时候也能够使用cygwin工具集,PATH起码应该包含x:\cygwin\bin,其中x:\cygwin 是你的系统中的cygwin目录。

HOME变量用来指定主目录,推荐在执行bash前定义该变量。当cygwin进程启动时,该变量也被从windows格式转换成unix格式,例如,作者的机器上HOME的值为C:\(dos命令set HOME就可以看到他的值,set HOME=XXX可以进行设置),在bash中用echo $HOME看,其值为/cygdrive/c.

TERM变量指定终端型态。如果美对它进行设置,它将自动设为cygwin。

LD_LIBRARY_PATH被cygwin函数dlopen()作为搜索.dll文件的路径列表,该变量也被从windows格式转换成unix格式。多数Cygwin应用程序不使用dlopen,因而不需要该变量。

3、改变cygwin的最大存储容量

Cygwin程序缺省可以分配的内存不超过384 MB(program+data)。多数情况下不需要修改这个限制。然而,如果需要更多实际或虚拟内存,应该修改注册表的HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER区段。田家一个DWORD键heap_chunk_in_mb并把它的值设为需要的内存限制,单位是十进制MB。也可以用cygwin中的regtool完成该设置。例子如下:

regtool -i set /HKLM/Software/Cygnus\ Solutions/Cygwin/heap_chunk_in_mb 1024

regtool -v list /HKLM/Software/Cygnus\ Solutions/Cygwin

使用cygwin

这一段讲一下cygwin和传统unix系统的不同之处。

1、映射路径名

1.1、引言

cygwin同时支持win32和posix风格的路径,路径分隔符可以是正斜杠也可以是反斜杠。还支持UNC路径名。(在网络中,UNC是一种确定文件位置的方法,使用这种方法用户可以不关心存储设备的物理位置,方便了用户使用。在Windows操作系统,Novell Netware和其它操作系统中,都已经使用了这种规范以取代本地命名系统。在UNC中,我们不用关心文件在什么盘(或卷)上,不用关心这个盘(或卷)所在服务器在什么地方。我们只要以下面格式就可以访问文件:

\\服务器名\共享名\路径\文件名

共享名有时也被称为文件所在卷或存储设备的逻辑标识,但使用它的目的是让用户不必关心这些卷或存储设备所在的物理位置。)

符合posix标准的操作系统(如linux)没有盘符的概念。所有的绝对路径都以一个斜杠开始,而不是盘符(如c:)。所有的文件系统都是其中的子目录。例如,两个硬盘,其中之一为根,另一个可能是在/disk2路径下。

因为许多unix系统上的程序假定存在单一的posix文件系统结构,所以cygwin专门维护了一个针对win32文件系统的内部posix视图,使这些程序可以在windows下正确运行。在某些必要的情况下,cygwin会使用这种映射来进行win32和posix路径之间的转换。

1.2、 cygwin mount表

cygwin中的mount程序用来把win32盘符和网络共享路径映射到cygwin的内部posix目录树。这是与典型unix mount程序相似的概念。对于那些对unix不熟悉而具有windows背景的的人来说,mount程序和早期的dos命令join非常相似,就是把一个盘符作为其他路径的子目录。

路径映射信息存放在当前用户的cygwin mount表中,这个mount table 又在windows的注册表中。这样,当该用户下一次登录进来时,这些信息又从注册表中取出。mount 表分为两种,除了每个用户特定的表,还有系统范围的mount表,每个cygwin用户的安装表都继承自系统表。系统表只能由拥有合适权限的用户(windows nt的管理员)修改。

当前用户的mount表可以在注册表"HKEY_CURRENT_USER/Software/Red Hat, Inc./Cygwin/mounts v" 下看到。系统表

存在HKEY_LOCAL_MACHINE下。

posix根路径/缺省指向系统分区,但是可以使用mount命令重新指向到windows文件系统中的任何路径。cygwin从win32路径生成posix路径时,总是使用mount表中最长的前缀。例如如果c:被同时安装在/c和/,cygwin将把C:/foo/bar转换成/c/foo/bar.

如果不加任何参数地调用mount命令,会把Cygwin当前安装点集合全部列出。在下面的例子中,c盘是POSIX根,而d盘被映射到/d。本例中,根是一个系统范围的安装点,它对所有用户都是可见的,而/d仅对当前用户可见。

c:\> mount

f:\cygwin\bin on /usr/bin type system (binmode)

f:\cygwin\lib on /usr/lib type system (binmode)

f:\cygwin on / type system (binmode)

e:\src on /usr/src type system (binmode)

c: on /cygdrive/c type user (binmode,noumount)

e: on /cygdrive/e type user (binmode,noumount)

还可以使用mount命令增加新的安装点,用umount删除安装点。

当Cygwin不能根据已有的安装点把某个win32路径转化为posix路径时,cygwin会自动把它转化到一个处于缺省posix路径/cygdrive下的的一个安装点. 例如,如果Cygwin 访问Z:\foo,而Z盘当前不在安装表内,那么Z:\将被自动转化成/cygdrive/Z.

可以给每个安装点赋予特殊的属性。自动安装的分区显示为“auto”安装。安装点还可以选择是"textmode"还是 "binmode",这个属性决定了文本文件和二进制文件是否按同样的方式处理。

1.3 、其他路径相关信息

cygpath工具提供了在shell脚本中进行win32-posix路径格式转换的能力。

HOME, PATH,和LD_LIBRARY_PATH环境变量会在cygwin进程启动时自动被从Win32格式转换成了POSIX格式(例如,如果存在从该win32路径到posix路径的安装,会把c:\cygwin\bin转为/bin)。

分享到:
评论

相关推荐

    Cygwin 64位免安装版

    Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件(该公司开发的著名工具还有eCos,不过现已被Redhat收购)。它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序...

    windows下配置eclipse+CDT+Cygwin调试平台

    在Windows下用Eclipse+CDT+cygwin搭建GDB调试平台 以下软件均为Windows平台下的版本。 1、 安装JDK,目的是为了Eclipse的运行。 版本是jdk-1_5_0_06-windows-i586-p.exe或更高 ,下载地址...

    Cygwin离线安装包6

    在64位win7下完美使用的Cygwin,是个离线安装包,可用于32和64位的win7和xp。集成gcc/g++/gfortran/make, 等等,基本linux下的常用者都有. 里面有详细而简单的安装说明并附带在Cygwin中使用intel visual fortran 的...

    Cygwin离线安装包5

    在64位win7下完美使用的Cygwin,是个离线安装包,可用于32和64位的win7和xp。集成gcc/g++/gfortran/make, 等等,基本linux下的常用者都有. 里面有详细而简单的安装说明并附带在Cygwin中使用intel visual fortran 的...

    cygwin下的arm交叉编译工具链

    cygwin下的arm交叉编译工具链,cygwin下的arm交叉编译工具链

    Cygwin离线安装包2

    在64位win7下完美使用的Cygwin,是个离线安装包,可用于32和64位的win7和xp。集gcc/g++/gfortran/make, 等等,基本linux下的常用者都有. 里面有详细而简单的安装说明并附带在Cygwin中使用intel visual fortran 的...

    cygwin所需cyg*.dll

    cygattr-1.dll cygbz2-1.dll cygform-10.dll cygformw-10.dll cyggcc_s-1.dll cyggmp-3.dll cyghistory7.dll cygicons-0.dll cygiconv-2.dll cygintl-8.dll cyglsa.dll cyglsa64.dll ...cygwin1.dll cygz.dll

    windows下运行linux命令-Cygwin

    Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件(该公司开发的著名工具还有eCos,不过现已被Redhat收购)。它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序...

    Cygwin 1.7.1(new)

    这个是目前最新版本的cygwin安装程序。cygwin 是一个运行在windows下的一个linux模拟环境。

    Cygwin2.738安装包第一部分

    Cygwin最新版2.738本地安装包(本安装包是已专门为编写Android NDK使用的定制包),内附详细的傻瓜式安装教程,专为Android NDK定制,集合make3.8.1、gcc3.4.4,附带一些基本常用命令,本人亲测成功。测试版本:...

    Cygwin2.738安装包第三部分

    Cygwin最新版2.738本地安装包(本安装包是已专门为编写Android NDK使用的定制包),内附详细的傻瓜式安装教程,专为Android NDK定制,集合make3.8.1、gcc3.4.4,附带一些基本常用命令,,本人亲测成功。测试版本:...

    CYGWIN

    cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的...

    32位的 cygwin 安装文件

    win8 上还是用32位的 cygwin吧,64位的cygwin 无法运行"ssh localhost

    最新Cygwin1.7.9完整离线安装包

    cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的...

    Cygwin离线安装包3

    在64位win7下完美使用的Cygwin,是个离线安装包,可用于32和64位的win7和xp。集成gcc/g++/gfortran/make, 等等,基本linux下的常用者都有. 里面有详细而简单的安装说明并附带在Cygwin中使用intel visual fortran 的...

    Cygwin_绿色版.zip

    cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的...

    cygwin1.dll

    如果在运行某软件或编译程序时提示缺少、找不到cygwin1.dll等类似提示,您可将载来的cygwin1.dll拷贝到指定目录即可(一般是system系统目录或放到软件同级目录里面),或者重新添加文件引用。 下载下来文件之后,先将...

    Cygwin64位Cygwin64位

    Cygwin64位

    Cygwin 在windows平台上运行的unix模拟环境

    cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的...

    Windows下的SSH安装之Cygwin

    Windows下的SSH安装之Cygwin

Global site tag (gtag.js) - Google Analytics