Cygwin是一款可以在windows环境下模拟unix环境的应用程序,可以方便unix爱好者在win平台下学习unix和linux的各种操作,集成了很多实用的工具。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在 windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。
安装教程:
1、 双击运行cyg_win_setup.exe 安装程序安装时,请用管理员账户安装(你的电脑的登录用户是Administor身份)!!安装过程中,有时候会停止不动,不要强行关闭,不是死机,只是进行的很慢!
2. 选择"Install from Local Directory"安装;
3、选择安装包时不建议都选上,因为安装时间较长、占用磁盘空间过大。
(OpenSSL和OpenSSH-------sshd的服务包、cygrunsrv------cygwin的服务包、sed------Base Category下的,方便在eclipse使用Hadoopvim ---Editors Category下的,方便在Cygwin上修改分配置文件subversion ------Devel Category下的)
4、配置环境变量时,JAVA_HOME指向jdk安装目录,Path路径中添加JDK的bin目录、jre的bin目录和Cygwin的bin目录,usr的sbin目录;
(变量名为:CYGWIN,变量值为:ntsec mintty (tty1.17版本不支持tty)或者不添加环境变量,而是直接修改cygwin.bat文件,在@echo off之后加入“set CYGWIN=ntsec mintty“ 即可。不设置在安装ssh-host-config时也是需要输入的)
5、建议修改.sh文件时,使用vi命令修改。
【安装成功后注意:】
1、第一次运行cygwin会产生home/用户名文件夹,在这个文件夹下(c:\cygwin\home\当前用户)生成三个配置文件,.bashrc,.bash_profile和.inputrc文件,这三个文件中最重要的是.bashrc文件,用户以后要自定义环境变量要用到该文件。
(使用Cygwin Terminal,更改其相关属性option,相关信息会生成在.minttyrc文件中)
2).locale是查看本地编码
修改Cygwin编码
Cygwin中文乱码:
右键--option---text--手动修改---Locale(zh-GN),Character set(GBK Chinese);
固定修改:
cygwin设置中文
cygwin\home\用户名\.bashrc
# 让ls和dir命令显示中文和颜色
alias ls='ls --show-control-chars --color'
alias dir='dir -N --color'
# 设置为中文环境,使提示成为中文
export LANG="zh_CN.GBK"
# 输出为中文编码
export OUTPUT_CHARSET="GBK"
cygwin\home\username\.inputrc
# 可以输入中文
set meta-flag on
set output-meta on
set convert-meta off
# 忽略大小写
set completion-ignore-case on
3).对于cygwin1.71版本,CYGWIN= tty是不再支持!
若之前使用的是这个tty环境变量,重新安装注册表中不会自动更新
打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sshd\Parameters\Environment,编辑修改字符串的值【修改成你现在cygwin的执行程序的路径】
Cygwin的组成:
Cygwin包括了一套库,该库在Win32系统下实现了POSIX系统调用的API;还有一套GNU开发工具集(比如GCC、GDB),这样可以进行简单的软件开发;还有一些UNIX系统下的常见程序。2001年,新增了X Window System。
另外还有一个名为MinGW的库,可以跟Windows本地的MSVCRT库(Windows API)一起工作。MinGW占用内存、硬盘空间都比较少,能够链接到任意软件,但它对POSIX规范的实现没有Cygwin库完备。
Cygwin安装说明:
cygwin的安装文件很容易通过google找到。目前国内的网站上有"网络安装版"和"本地安装版"两种。标准的发行版应该是 网络安装版。两者并无大不同,下面介绍一下安装的过程。
step1. 下载后,点击安装文件(setup.exe)进行安装,第一个画面是GNU版权说明,点"下一步(N)—>",环境变量
开始运行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,因而不需要该变量。
进入安装模式选择画面。
step2. 安装模式有"Install from Internet"、"Download form Internet"、
"Install from Local Directory" 三种。"Install form Internet"就是直接从internet上装,适用于网速较快的情况。如果你和我一样网速不是很快,或者说装过之后想把下载的安装文件保存起来,下 次不再下载了直接安装,就应该选择"Download form Internet",下载安装的文件(大约40M左右)。
事实上,所谓的"本地安装版",也是别人从网上下载全部文件后打的包(适用于中国国情嘛^_^)
step3. 接下来是选择安装目的路径和安装源文件所在的路径,之后就进入了选择安装包所在的路径。
注意了阿,这里可是重头戏。我第一安装的时候就是没有看清这一步,结果没有把gcc装进去,导致没法编译文件。
+ All Default
+ Admin Default
....
+ Devel Default
+ Editors Default
....
你在这个TreeView的某个节点上双击,就可以改变它的状态,如Default、Install、Uninstall、Reinstall四种状态。默认的都是Default状态,很多工具的默认状态都是不安装。
在这里我选择了在All这一行上后面的Default上点Install,全部安装,以免后患。(注意:这里的树形控件和win下面的不同,你试试点在All上点 和 在All这一行后面的Default上点,会有不同的响应)
step4. 点下一步,安装成功。它会自动在你的桌面上建立一个快捷方式。
好了,下面就开始我的linux旅程了。双击cygwin的快捷方式进入系统。
首先介绍几个简单的linux命令。
pwd 显示当前的路径
cd 改变当前路径,无参数时进入对应用户的home目录
ls 列出当前目录下的文件。此命令有N多参数,比如ls -al
ps 列出当前系统进程
kill 杀死某个进程
mkdir 建立目录
rmdir 删除目录
rm 删除文件
mv 文件改名或目录改名
man 联机帮助
less 显示文件的最末几行
由于linux下面的命令大多都有很多参数,可以组合使用。所以,每当你不会或者记不清楚改用那个参数,那个开关的时候,可以用man来查找,比如,我想查找ls怎么使用,可以键入
$ man ls
系统回显信息如下:
LS(1) FSF LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by
default). Sort entries alphabetically if none of -cftuSUX
nor --sort.
-a, --all
do not hide entries starting with .
-A, --almost-all
do not list implied . and ..
-b, --escape
print octal escapes for nongraphic characters
--block-size=SIZE
use SIZE-byte blocks