配置 cygwin 中的服务程序
详细情况阅读 /usr/share/doc/Cygwin/cygserver.README
,要让一个apache httpd或者 proftpd成功运行,在winxp下:
- 需要把
/bin/cygrunsrv
以LocalSystem
的身份设置为系统服务,最简单的方法就是运行脚本/usr/bin/cygserver-config
。这将在 “Control Panel > Admin Tools > Services” 里边出现一个名为CYGWIN cygserver
的服务项目。 - 然后设置环境变量
CYGWIN
,最简单的方法就是在cygwin.bat
中添加一行:set CYGWIN=server
。
配置服务或应用程序之前,阅读 /usr/share/doc
中罗列的文档。
配置 apache httpd2 服务
配置 httpd2 很简单,直接用 setup 的安装程序安装好 httpd2。然后运行如下命令即可:
apachectl2 start
要是找不到 apachectl2
,看看 /usr/sbin
有没有加入到 PATH
中。
配置 proftpd 服务
阅读 /usr/share/doc/proftpd-1.2.10/*
下的一堆文档,按照配置来,先test。
配置应用程序
配置rxvt
Windows自带的cmd实在太难用了,而且中文乱码问题不好处理,所以rxvt是一个很好的解决方案。这里是term颜色配置,写入 ~/.Xdefaults
:
Rxvt*title: Cygwin-Rxvt
Rxvt*geometry: 82x24-120+20
Rxvt*background: #BFDFBF
Rxvt*foreground: #001123
Rxvt*scrollBar_right: true
Rxvt*colorBD: 1
Rxvt*font: Courier New
Rxvt*blodFont: Courier New
Rxvt*saveLines: 2000
Rxvt.backspacekey: ^?
Rxvt*loginShell: True
!! VIM-like colors
Rxvt*color0: #000000
Rxvt*color1: #911B08
Rxvt*color2: #00A800
Rxvt*color3: #DD0000
Rxvt*color4: #0000A8
Rxvt*color5: #A800A8
Rxvt*color6: #00A8A8
Rxvt*color7: #D8D8D8
Rxvt*color8: #B5613B
Rxvt*color9: #966BEB
Rxvt*color10: #00A800
Rxvt*color11: #FFFF00
Rxvt*color12: #0000A8
Rxvt*color13: #A800A8
Rxvt*color14: #00A8A8
Rxvt*color15: #B5613B
使用cygwin.bat
脚本运行rxvt:
@echo off
set CYGWIN=server
set HOME=d:\MyDoc
d:
chdir d:\cygwin\bin
rxvt -title "Cygwin-Rxvt" -sr -sl 2000 -tn rxvt-cygwin -fn "bitstream vera sans mono-19" -e /bin/bash -login
定制提示符
编辑 ~/.bashrc
:
PS1="`whoami`@`hostname | sed 's/..*//'`"
PS1="[e[32;1m]${PS1}[e[0m]:[e[31;1m]w[e[0m]n"
case `id -u` in
0) PS1="${PS1}# ";;
*) PS1="${PS1}$ ";;
esac
解决中文乱码
设置locale为Windows默认GBK,避免中文乱码:
export LC_CTYPE=zh_CN.gbk
export CHARSET=GBK
在 ~/.inputrc
里加入中文编码支持:
# Allow 8-bit input/output
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on
设置alias:
alias ls='ls -hF --color=tty --show-control-chars'
与Emacs搭配
cygwin能够提供Emacs在Windows环境下依赖的一系列工具,比如find、grep、diff等等,但还远远说不上完美。
Shell
因为Emacs运行外部命令和变量exec-path
有关系,所以只需指定bash的路径即可,无需额外配置Windows的环境变量。可以让Cygwin inferior shell跑起来,但是补全有些问题。
(setq explicit-shell-file-name "d:/Cygwin/bin/bash.exe")
(setq shell-file-name "bash")
(setq explicit-bash.exe-args '("--noediting" "--login" "-i"))
(setenv "SHELL" shell-file-name)
(add-hook 'comint-output-filter-functions 'comint-strip-ctrl-m)
遗憾的是M-x term
无法工作,原因可能是stty和Windows环境不能协调工作,具体参见函数 term-exec-1
,有如下错误提示:
/bin/stty: standard input: Inappropriate ioctl for device
进入term
之后,能够运行命令,但是排版混乱,具体还不清楚是什么原因。