关于Msys

本文介绍了一个轻量级的Shell系统MSYS,它是BourneShell终端到Windows的移植,适用于希望在Windows环境下使用类似Linux命令行工具的用户。文章详细讲解了MSYS的安装过程及其基本配置方法。

今天因为画图的原因,学习了下Msys

Winows的CMD命令行功能有限,在《设置CMD命令提示符更方便使用的几个技巧》一文中介绍了将CMD进行改造使其更加方便的方法。

如果你习惯了Linux下面命令行的方便,或者想在Winows中体验一下Linux命令行,怎么办呢。
可以使用Cygwin,这是多种Linux命令及应用到Windows的移植系统,包括一些图形界面工具。但是,功能体积都太庞大了,尽管可以定制。
我们这里只讨论命令行,因此推荐一个小巧的Linux的Shell移植系统MSYS。

MSYS 是Minimal SYStem的缩写,它是一个开源的Shell系统,是Bourne Shell终端到Windows 的轻量级的移植,包含了diff、sed、awk、sort等很有用的工具。主要用来配合Mingw进行Linux软件的跨平台移植开发。当然,单独使用也是可以的。
该软件是有绿色版和安装版两种。如果只装MSYS核心包,大小不足10M。
官方网站和下载地址在 http://www.mingw.org/wiki/MSYS 
http://sourceforge.net/project/shownotes.php?release_id=46827  
http://sourceforge.net/projects/mingw/

对于不需要编译C++的朋友,可以不安装Mingw。
下载其中的MSYS Base System就可以,下载以后直接安装。
如果要安装Mingw,注意不要将它与MSYS安装到同一个目录里面。
另外,MSYS DTK 是一个附加的开发工具包,包括Perl、autoconf、automake、libtool等工具,如果需要可以一块下载装到MSYS同一个目录里。这样安装完成应该就可以使用了。
但是,官方安装说明还有一个步骤用绿色版的MSYS覆盖MSYS安装目录的内容,好吧不管出于什么理由,将msysCORE-XXXXXXXX-bin.tar.gz解压到MSYS安装目录选择覆盖即可。
然后,点击桌面或者开始菜单的M图标,就可以启动MSYS窗口了,如图所示。

MSYS默认是没有VIM编辑器的,不知你是否需要,对于我反正不太方便。从 http://sourceforge.net/projects/mingw/files/ 下载MSYS vim装上(居然采用lzma格式压缩)。

装好以后,启动进入MSYS窗口。
本机磁盘如C:,D:,E:可以通过/c, /d, /e等访问,C:\Windows\system32在MSYS中就变成/c/windows/system32 。
可以通过编辑/etc/fstab文件,加入想要访问目录的快捷路径。比如想要用/ffdown访问E:\AppCache\Firefox\Download目录,可以先在根目录建立该目录,即
mkdir /ffdown
然后,编辑/etc/fstab,加入下面一行就行了
e:/AppCache/Firefox/Download    /ffdown
如果需要MSYS与Mingw关联,可以在fstab中加入
<你的Mingw路径>   /mingw
注意:fstab文件的换行符需要使用UNIX格式的LF,而不是DOS格式的CRLF。
也就是说fstab文件需要在MSYS系统中进行编辑,不要在Windows中用记事本等编辑器编辑,除非你知道如何将DOS格式转化为UNIX格式。

 

MSYS存在的一个缺陷是对中文路径和中文文件名支持有问题,使用ls命令查看时,中文文件和目录显示为???,如上图。
临时解决方法是,可以使用TAB补全来显示中文名称,或者使用 ls --show-control-chars 命令查看。

默认设置下,MSYS系统无法访问Windows系统中的dir等命令,而Windows的CMD中也无法访问MSYS的命令。
可以在MYS中运行 rxvt -e cmd ,出现的窗口可以支持中文文件名,而且既可以使用Windows命令也可以使用MSYS的命令。

03-30
<think>好的,我现在需要处理用户关于MSYS在软件开发或系统环境中的使用的问题。首先,我要回忆一下MSYS的相关知识,确保信息准确。根据用户提供的引用内容,MSYS2是一个Windows下的软件分发和构建平台,包含工具和库,方便安装和管理软件包,使用Pacman作为包管理器,类似Arch Linux。它支持依赖解析和系统升级,有超过2500个预构建包。 用户的问题集中在MSYS在软件开发或系统环境中的作用。我需要将回答分成几个部分,可能包括基本概念、核心功能、应用场景、优势以及与其他工具的比较。要确保结构清晰,分点说明,同时结合用户提供的引用内容。 首先,解释MSYS是什么,它的全称和基本作用,引用提供的资料,比如引用3提到MSYS2提供易于使用的环境来构建、安装和运行Windows软件。然后,核心功能方面,要提到包管理、开发环境搭建、跨平台编译、系统维护等,引用4中的Pacman包管理系统和依赖管理功能。 在应用场景部分,可以分点说明,比如C/C++开发、Unix工具移植、系统维护自动化脚本、教育研究等。每个场景都需要结合引用中的信息,例如引用1和2提到MSYS2作为构建平台和软件分发,适用于需要Unix工具的环境。 优势方面,对比Cygwin和WSL,强调轻量级、包管理强大、兼容性好,引用4中的依赖解析和系统升级功能作为优势。注意事项部分需要提醒路径问题、环境变量配置和包更新,这部分可能需要结合常见问题,但引用中没有直接提到,需要确保正确性。 最后,生成相关问题时要围绕MSYS2的功能、安装配置、与其他工具的区别、适用项目类型和常见问题,确保问题有针对性,帮助用户深入理解。 整个过程中,需要注意使用正确的LaTeX格式,行内公式用$...$,独立公式用$$...$$,但当前内容可能不需要数学公式,所以可能不需要使用。同时,回答要使用中文,结构清晰,分点明确,并在引用处添加标识。需要检查是否有遗漏的引用点,并确保每个引用标识对应正确的来源。</think>### MSYS在软件开发及系统环境中的作用解析 #### 一、基本概念 MSYS(Minimal SYStem)是一个轻量级的类Unix环境,专为Windows平台设计,用于支持开发工具链的运行。其衍生版本**MSYS2**进一步扩展了功能,集成了包管理器Pacman和大量预编译软件包[^3][^4]。它通过模拟Unix文件路径、Shell环境和工具(如`bash`、`make`),为Windows用户提供类似Linux的开发体验。 #### 二、核心功能与作用 1. **软件包管理** MSYS2通过Pacman管理超过2500个预编译包(如GCC、Python、Git),支持依赖解析和一键升级[^4]。例如安装GCC编译器: ```bash pacman -S mingw-w64-x86_64-gcc ``` 2. **开发环境搭建** - 编译C/C++项目时,提供`mingw-w64`工具链,支持生成原生Windows可执行文件。 - 支持跨平台库(如OpenSSL、GTK)的编译,解决Windows环境依赖问题[^1]。 3. **跨平台脚本支持** 通过`bash`和Unix工具(`grep`, `sed`, `awk`),可直接运行Shell脚本,例如自动化构建: ```bash ./configure && make && make install ``` 4. **系统维护** 提供`rsync`、`curl`等工具,用于文件同步和网络调试,替代PowerShell的部分功能。 #### 三、典型应用场景 | 场景 | 说明 | |---------------------|----------------------------------------------------------------------| | **C/C++开发** | 使用Mingw-w64编译Windows原生程序,避免虚拟机开销[^2] | | **移植Unix工具** | 将Linux工具(如FFmpeg)编译为Windows版本 | | **嵌入式开发** | 为ARM架构交叉编译固件,依赖MSYS2的灵活工具链 | | **科研计算** | 运行Python科学计算栈(NumPy/Pandas)并调用C扩展 | #### 四、优势对比 | 工具 | 特点 | |------------|----------------------------------------------------------------------| | **Cygwin** | 更完整的POSIX兼容,但生成程序依赖Cygwin DLL | | **WSL** | 直接运行Linux内核,但需虚拟机支持,资源占用较高 | | **MSYS2** | 轻量级(<100MB基础安装),生成原生EXE,适合混合开发环境[^3] | #### 五、配置建议 1. **路径分隔符** Windows路径需转换为MSYS格式:`C:\Users` → `/c/Users` 2. **环境变量** 通过`~/.bashrc`设置编译工具链: ```bash export PATH="/mingw64/bin:$PATH" ``` 3. **包更新** 定期执行完整升级以避免依赖冲突: ```bash pacman -Syu ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值