msys 和 Cygwin

先介绍msys吧

msys: 简单地说就是把一些GNU工具(如:bash、 make、 gawk、grep、gcc)收集到一块,然后重新编译代码,使它们能够在windows下应用。这些小工具通常是一些类似于windwos下的命令提示符的一些外部命令(如:deltree),是尺寸很小的exe,主要在命令提示符下运行,可以在windows自带的命令提示符中运行,也可以使用mintty、或rxvt这些虚拟终端,而且后两个工具我们可以设置其中字体、颜色等,编辑起来也很方便(比如都支持按tab键自动补全)。
msys项目的一些主要工具在sourceforge上可以找到,但是七零八散的,自己也没找到好的下载方法。所以就没下载sf上的。 我在 (谷 && 歌) 上还看到msys中国项目(msys-cn),这个把一些常用工具制作成一个压缩包,解压后即可使用,所以很是方便(还可以使用API进行Windows编程,此外还有许多扩展的工具包,均可以在msys-cn的download页面下载)。

 

接下来介绍Cygwin。

其实自己知道Cygwin更早一点。Cygwin类似于msys。按照网上的说法是msys体积更小,运行速度更快(不过根据个人目前短时间体验,暂时没感觉出msys有什么明显的速度优势)。
后来上网查,Cygwin完全安装占用空间在GB数量级。当时确实有点怯了。
昨天,下载了一个Cygwin,发现并不是这样子。

先说一下Cygwin的下载方式吧!
先从Cygwin下载一个名为setup.exe的可执行文件(几百kb),然后双击运行。这样它可以获取官网上的mirror.lst的镜像列表,然后让我们选择一个可用的镜像(当时我选的163镜像,因为毕竟近嘛)。然后,这个setup就读取你选择的镜像站上cygwin目录下的文件,然后进行下载(可以只下载、也可以下载并安装,取决于你的选择)。
我当时选择的是只下载不安装,当时只下载了大概20几M东西(因为大部分工具被忽略而不下载了),然后从本地软件包安装。

当然,由于下载的东西少,一些linux下常用工具,比如zip、unzip、vim都没有。不过,你可以在你选择的镜像站的cygwin目录下单独下载它们,并运行setup.exe从本地安装额外的软件包。例如:我想要额外安装vim,我就需要去163镜像站下载cygwin/release/vim/vim-7.3.447-1.tar.bz2。
从上面我的经历可以看出, 安装Cygwin你可以有选择的安装,而不是非得把UNIX下所有命令都搬过来才行。这样子来看Cygwin,它不是一个庞然大物。

两者的共同点。

无论是Cygwin还是msys,他们都会在windows上模拟UNIX文件系统。如果把Cygwin安装在C:\Cygwin,然后打开这个文件夹,你会发现,多么熟悉的名字:bin、dev、etc、home、lib、tmp、usr、var,完全是个活生生的Linux文件系统啊!

下面贴几张Cygin、MSYS-cn的图片。

Cygin默认以mintty作为终端,MSYS-cn默认以rxvt作为终端(它也可以用mintty作为终端)。最开始由于MSYS-cn中字体设置问题,我感觉没有Cygin好看:

下图:Cygwin的mintty终端,字体很细腻很漂亮:

msys 和 Cygwin_第1张图片

下图:MSYS-cn的默认rxvt终端,自带的bat文件中字体设置为Fixedsys(VC++6.0的默认字体好像),看起来略显粗犷:

msys 和 Cygwin_第2张图片
不过,修改一下字体的rxvt看起来还是不错的:

msys 和 Cygwin_第3张图片
msys 和 Cygwin_第4张图片

有点悲剧的是MSYS-cn自带的rxvt终端字体修改后输入中文会有乱码。

最后说一下mount命令。

这个命令我并不了解(您可以百科一下或是直接man一下)。在Cygwin、MSYS中它的作用,用我的话说就是,重新映射本地磁盘的地址。因为Cygwin、MSYS终端是UNIX风格的。所以我们访问windows下的C盘不能直接敲击C:。在Cygin下,C盘被挂载在/cygdrive/c(就是说本地磁盘的windows分区被看做一个可移动的介质——类似于U盘——挂载在UNIX上),所以如果我们要切换到C盘下windows文件夹,我们要使用cd /cygdrive/c/windows或cd c:\windows,而不是cd /d c:\windows。在MSYS下,C盘的映射就简单了,我们可以直接用cd /c/windows就可以完成把当前工作目录切换到c盘下的windows文件夹下了。

用Windows自带的命令提示符作为终端。

终端只是个媒介,我们可以选择mintty、rxvt、colorconsole或是直接用windows原生态的命令提示符。我们可以下载这些UNIX下的小组件后,在环境变量中添加一个路径信息,就能直接在windows下的cmd中体验这些UNIX上的命令。当然这样可能会引起冲突,因为有些命令是UNIX和windows下都有的,比如cd、dir、ipconfig、ping、……,而且语法格式还稍有不同。所以这并不是一个好的选择。

其他选择?

这里只是提一下GnuWin和winbash。GnuWin获取方法和Cygwin类似,先下载个GetGnuWin32,然后双击运行即可下载安装。但是,我并没有成功。

winbash算是比较mini的了。它集成了100多个常用gnu工具,压缩包里边有一个start_shell.bat,直接使用windows自带的命令提示符。

结语。

愤怒的菜鸟这篇菜文终于写完了,文中夹杂许多个人的看法,望各位童鞋不要全信之。自己体验了才好。

许多GNU小工具还是蛮好玩的,比如wget、grep、awk、sed、file等,例如awk、sed强大到可以直接解析正则表达式来处理文件,file命令则可以判断一个文本文件的编码、视频文件的格式等,gcc、g++、gdb、vim这些大名鼎鼎的工具更是不用我介绍了(实际上它们已经有windows版的了)。

无论您是想在windows下学习shell、C/C++,还是想用一些GNU小工具来辅助自己的日常工作,相信Cygwin、MSYS都会让您很愉快。好了,祝您的旅途快乐——如果您已经迫不及待想要体验它们的话!

你可能感兴趣的:(默认分类)