cygwin 汉化即其他新特性[转]
cygwin 汉化即其他新特性 |
cygwin 汉化即其他新特性 使用cygwin的原因 最近在研究java的源码,源码官方的编译文档里提到一个unix环境到windows移植的 工具包MKS,在网上百觅不得,于是想起了久违的cygwin,使用之后居然能启动java 那庞大makefile系统,于是觉得有必要写点东西向大家推介推介。 安装 从http://www.cygwin.com/下载网络安装setup.exe,该安装程序会一步步提示,只 是选取安装包的那一节自己注意点,针对自己的需要看看有什么要额外装的。比如 编译java源码时就要多选取几个:perl、gawk、make、binutils(好像就这几个, 反正编译时会有提示找不到那个执行程序,届时用setup.exe到网上再下就可以了。 ),另外vim这个包是linux下编辑文本必备的,在windows下的cygwin中也是如此。 cygwin环境汉化 修改三个文件: 1、~/.bashrc BASH的配置文件 # base-files version 3.4-2 # WARNING # # IF THIS .bashrc IS MODIFIED IT WILL NOT BE UPDATED BY THE CYGWIN # SETUP PROGRAM. IT BECOMES YOUR RESPONSIBILITY. # # The latest version as installed by the Cygwin Setup program can # always be found at /etc/defaults/etc/skel/.bashrc # User dependent .bashrc file # See man bash for more options... # Don't wait for job termination notification # set -o notify # Don't use ^D to exit # set -o ignoreeof # Don't put duplicate lines in the history. # export HISTCONTROL=ignoredups # Ignore some controlling instructions # export HISTIGNORE="[ ]*:&:bg:fg" # Some example alias instructions # If these are enabled they will be used instead of any instructions # they may mask. For example, alias rm='rm -i' will mask the rm # application. To override the alias instruction use a \ before, ie # \rm will call the real rm not the alias. # Interactive operation... # alias rm='rm -i' # alias cp='cp -i' # alias mv='mv -i' # Default to human readable figures # alias df='df -h' # alias du='du -h' # Misc :) # alias less='less -r' # raw control characters # alias whence='type -a' # where, of a sort # alias grep='grep --color' # show differences in colour # Some shortcuts for different directory listings # alias ls='ls -hF --color=tty' # classify files in colour # alias dir='ls --color=auto --format=vertical' # alias vdir='ls --color=auto --format=long' # alias ll='ls -l' # long list # alias la='ls -A' # all but . and .. # alias l='ls -CF' # # Some example functions # function settitle() { echo -n "^[]2;$@^G^[]1;$@^G"; } ###################### 以下为添加部分 ################################ # cygwin中取\usr\share\locale\zh_CN\LC_MESSAGES中*.mo文件,如果提示信息中 # 的字符集为utf8则会显示有误(不知何解?,magiclinux无类似情况),为gb2312 # 则正常,大概与gettext这个模块有关,这个模块的作用是使linux程序提示信息 # 区域话,即不同地区用不同语言,即常说的i18n;像我们设置的zh_CN.GBK,“.” # 之前部分“zh_CN”表示地区即“中国大陆”,后面部分“GBK”表示字符集编码, # 像我们下面的设置,当程序调用时会到\usr\share\locale\目录中查找,发现地 # 区为“zh_CN”则到该目录中查找程序对应的*.mo文件,*.mo文件的名称是在调用 # 的程序中设置了的。然后取该语种的对应提示,然后按编码(在mo文件中指明了) # 处理该文字。 # 当然这些不是自动处理的,要在程序中调用像setlocale、textdomian、gettext # 这样的函数处理。 # 在cygwin中有些程序,做了下面的设置,因为对应的mo文件中编码为utf8而无法 # 显示,我是直接将它删除,之后程序会因为找不到mo文件而用默认的英文来显示 # 的。(下面的编码设置并没有错,应该是cygwin程序中的BUG,只是设置了LC_ALL # 就没必要设LANG了,有的文档上面这样写的:)) export set LC_ALL=zh_CN.GBK export set LANG=zh_CN.GBK #export set LC_CTYPE=zh_CN.UTF-8 #export set CHARSET=UTF-8 # 解决ls中文显示问题 alias ls='ls --show-control-chars' alias dir='ls --show-control-chars' alias less='less --raw-control-chars' # 添加清屏处理 alias clear='clearn' alias clr='clearn' # 添加whereis的别名 alias whereis='which' 2、~/.inputrc BASH中命令行输入出控制的配置文件 # base-files version 3.4-2 # WARNING # # IF THIS .inputrc IS MODIFIED IT WILL NOT BE UPDATED BY THE CYGWIN # SETUP PROGRAM. IT BECOMES YOUR RESPONSIBILITY. # # The latest version as installed by the Cygwin Setup program can # always be found at /etc/defaults/etc/skel/.inputrc # don't beep at me # set bell-style visible # the following line is actually # equivalent to "\C-?": delete-char "\e[3~": delete-char # VT "\e[1~": beginning-of-line "\e[4~": end-of-line # kvt "\e[H":beginning-of-line "\e[F":end-of-line # rxvt and konsole (i.e. the KDE-app...) "\e[7~":beginning-of-line "\e[8~":end-of-line ###################### 以下为添加部分 ################################ # 关闭bash命令行8字节字符转义符的转换 set convert-meta off # 使bash命令行支持8字节字符输入 set input-meta on # 使bash命令行支持8字节字符输出 set output-meta on # 让bash的命令行已vi模式执行,屏蔽掉下面一行,BASH的命令行操作 # 就像vi中编辑文本一样,默认为INSERT模式,可以在BASH启动后直接 # 输入:set -o vi,来启动该开关,set +o vi关闭该模式,但在cygwin # 中调用set +o vi关闭时会出现一些乱码,估计也是一个BUG #set editing-mode vi 3、~/.vimrc vim的资源控制文件 " 显示语法高亮度 :syntax on " 设置字符编码,可使显示中文光标移动和字符删除操作变为双字节 :set encoding=cp936 " 设置vim中TAB缩进为4个空格 :set ts=4 cygwin的新特性 windows驱动器的管理 cygwin启动后,windows中驱动器自动挂接到cygdrive目录。 比如: cygdrive是一个虚拟目录,它在注册表中设置。 看看这个: wj@wj-server1 ~ $ regtool get '\HKLM\software\Cygnus Solutions\Cygwin\mounts v2\cygdrive divfix' /cygdrive regtool是cygwin中注册表的操作工具,get选项会把上面注册表项的值显示出来。 我们把/cygdrive该成/media试试。 wj@wj-server1 ~ $ regtool set '\HKLM\software\Cygnus Solutions\Cygwin\mounts v2\cygdrive divfix' '/media' 重启cygwin 在cygwin中也可以这样操作驱动器,比如我们要进入到E盘 wj@wj-server1 ~ $ cd e: wj@wj-server1 /media/e $ wj@wj-server1 /media/e $ ls DZSW20050606.rar EDUMS20050606.rar cvs ftp.txt music temp Downloads Recycled ebook job oracle work EDUMS20050529.rar ctais film linux rav.rar 全国DNS地址.txt 直接输盘符cd就可以了。等同于下面的操作。 wj@wj-server1 ~ $ cd /media/e wj@wj-server1 /media/e $ 另外, '\HKLM\software\Cygnus Solutions\Cygwin\mounts v2\'下面的项可以制 定目录的连接关系,比如该项下面有一个项叫‘/’该项中有个值叫‘native’为字 符串‘C:\cygwin’,cygwin启动的时候就会将根目录‘/’指向‘C:\cygwin’本地 目录。所以你无论从那个目录启动bash.exe程序,根目录是不会变的,以前的好像 不是,默认的关联还有‘/usr/bin’指向‘C:\cygwin/bin’所以cygwin中/usr/bin 和/bin其实是同一个目录,因为根目录/为‘C:\cygwin’,‘/usr/lib’指向 ‘C:\cygwin/lib’,同理/usr/lib与/lib为同一个目录。 |