wiki笔记

维基百科三项内容指导方针:
Wikipedia:可供查证
Wikipedia:非原始研究
Wikipedia:中立的观点

Help:编辑
http://zh.wikipedia.org/wiki/Help:%E5%A6%82%E4%BD%95%E7%BC%96%E8%BE%91%E9%A1%B5%E9%9D%A2
Wikipedia:格式手册
http://zh.wikipedia.org/wiki/Wikipedia:%E6%A0%BC%E5%BC%8F%E6%8C%87%E5%8D%97
Wikipedia:繁简分歧词表
http://zh.wikipedia.org/wiki/%E5%90%84%E5%9C%B0%E5%8D%8E%E4%BA%BA%E8%AF%8D%E6%B1%87%E5%AF%B9%E7%85%A7
译名表
http://zh.wikipedia.org/wiki/%E5%90%84%E5%9C%B0%E5%8D%8E%E4%BA%BA%E8%AF%8D%E6%B1%87%E5%AF%B9%E7%85%A7
Wikipedia:更优秀条目写作指南
http://zh.wikipedia.org/wiki/Wikipedia:%E6%9B%B4%E4%BC%98%E7%A7%80%E6%9D%A1%E7%9B%AE%E5%86%99%E4%BD%9C%E6%8C%87%E5%8D%97

条目
====
条目名称在文章当中第一次出现时,请用三对半角单引号,让它以粗体显示。例如:

”’条目题目”’会显示成条目题目。

标题格式
========
==标题1==

===标题1.1===

====标题1.1.1====

==标题2==

换行
====
另起一行
会变成一个空格。

但一个空行开始一个新段落。

列表
====
*符号列表很不错:
**每一行用一个星号(*)开始
***星号越多,表示列表的层级更深入

#数字列表也不错
##很整齐
##容易理解

;定義列表 : 包含許多定義的列表
;條目 : 條目的定義
;另外一条
:其他的定义

:每一行都可以
::缩进
:::好几层呢

一条水平线将页面分隔成了上面
—-
和下面。

斜体
====
连用两对半角单引号可以把中间的文字变成斜体。
”Romeo and Juliet” is a famous play by William Shakespeare
西文的斜体一般相当于中文的专名号。请注意中文并无斜体用法,所以在中文维基百科,请不要滥用斜体

图片说明格式
============
图片,包含:
[[Image:Wiki.png中文维基]]
图片可以加框加标题:
[[Image:Wiki.pngframe中文维基]]

自由链接的格式
==============
文中某些字词名称值得读者参考阅读的话,请使用[[]]代码转成内部链接。
链接所显示的文字不一定要与目标条目的名称相同,如[[朱熹朱子]]。但请确保读者不需按下链接也能够清楚链接的目的地。

[[Wikipedia:野猪]]页面不存在。
你可以点击该链接而创建该页面。

因特网及地址的格式
==================
放进一对方括号中间,[地址 空白后附加的描述文字]。该地址必须是以“http://”或其它形式(如“ftp://”)开头。

“参看”及“相关题目”的格式
============================
一些未在文中自由链接的有关题目可以不正式地用“参看:”来处理,如:

参看:春分、夏至、秋分
如果您想在文中明确地表明某条目的链接很有用,可以在其他地方使连结:

每个地方的法律对于割体的态度也不同(参阅割体的法律地位)。
有时可以用更正式的方式来表达相关题目的链接:

== 相关题目 ==
*[[表达主义]]
*[[立体主义]]

简单的表格
==========
任何一行以空格(不包括中文全角空格)作开始的文字会自动变成固定阔度的字体,而可以用来造一个简单的表格。

重定向
======
例如:如欲将[[苛性钠]]页面重定向到氢氧化钠页,请在苛性钠的页面输入:

#REDIRECT [[氢氧化钠]]

tips
====
标签用于转义

screen笔记

还是写下来吧,不然又忘了

screen -S sessionname
screen -r sessionname
screen -ls

C-a tab (focus) Switch the input focus to the next region.
C-a C-a (other) Toggle to the window displayed previously.
C-a c
C-a C-c (screen) Create a new window with a shell and switch to that window.
C-a d
C-a C-d (detach) Detach screen from this terminal.
C-a S (split) Split the current region into two new ones.
C-a ‘ (select) Prompt for a window name or number to switch to.
C-a ” (windowlist -b) Present a list of all windows for selection.

Subversion笔记

在dreamhost的主机上配置subversion
http://wiki.dreamhost.com/index.php/Subversion

通过SSH和TortoiseSVN访问subversion服务器
http://tortoisesvn.sourceforge.net/?q=node/5

在Linux/Unix服务器上生成SSH密钥
cd ~ssh-keygen -b 1024 -t rsa -N SomeLongTextForPassphrase -f rsakeymkdir .ssh
mv rsakey.pub .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
最后仍需通过puttygen进行格式转换。(通过putty工具包中的pageant,配置authentication agent认证代理,putty会自动从pageant取得认证密钥)

最后通过svn+ssh://mysiteSSH/home/myusername/svn/myproject访问服务器。其中mysiteSSH为服务器域名或putty中存储的session名;

For overnight checkouts
screen
svn co &> ~/log_co &
^ad

《使用Subversion进行版本控制》,O’Reilly
http://svnbook.red-bean.com/
SVN使用技巧
http://xyzboard.com/?q=node/110

subversion中的关键字替换
http://svnbook.red-bean.com/en/1.0/ch07s02.html
$Date$
$Rev$
$Author$
$URL$
$Id$
svn propset svn:keywords “LastChangedDate Author” weather.txt
svn propedit svn:ignore somedir
find ./ -name \*.tcl xargs svn propset svn:keywords “Date Author Id”

subversion客户端配置文件
### Section for configuring miscelleneous Subversion options.
[miscellany]
### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its `status’ output.
global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#*

enable-auto-props = yes
[auto-props]
*.c = svn:keywords=Date Author Id
*.cc = svn:keywords=Date Author Id
*.cpp = svn:keywords=Date Author Id
*.py = svn:keywords=Date Author Id
*.tcl = svn:keywords=Date Author Id

cscope笔记

LNX=/home/jru/linux-2.4.18
cd /
find $LNX -path “$LNX/arch/*” ! -path “$LNX/arch/i386*” -prune -o -path “$LNX/include/asm-*” ! -path “$LNX/include/asm-i386*” -prune -o -path “$LNX/tmp*” -prune -o -path “$LNX/Documentation*” -prune -o -path “$LNX/scripts*” -prune -o -path “$LNX/drivers*” -prune -o -name “*.[chxsS]” -print >/home/jru/cscope/cscope.files

cscope -b -q -k
-b build the database without launching Cscope GUI
-q additional ‘inverted index’
-k ‘kernel’ mode, turn off the use of default include dir

export CSCOPE_DB=./cscope.out

vim -t symbol_name

See also
http://cscope.sourceforge.net/large_projects.html

VIM笔记

=============================
help
=============================
PREPEND
Visual mode commands v_
Insert mode commands i_
Command-line commands :
Command-line editing c_
Options ‘ // :help ‘textwidth’

=============================
editing
=============================
:g+//+s/foobar/barfoo/g // g[lobal]默认作用范围是整个文件
:g/./,/^$/join

!5Gsort<Enter>
!{motion}{filter}
!!{filter}

set virtualedit=all
set virtualedit=

=============================
motion
=============================
:map <Space> W
g前缀使命令不是linewise的,常在wrap时和原命令有所区别

; Repeat latest f, t, F or T [count] times.
, Repeat latest f, t, F or T in opposite direction [count] times.

word WORD w W
sentences ( )
paragraph { }
section ]] ][ [[ [] // 函数”{“须在第一列
]} [{ ]) [( ]/ [/

// Text object selection
// can only be used while in Visual mode or after an operator
The commands that start with “a” select “a”n object including white space, the
commands starting with “i” select an “inner” object without white space, or
just the white space.

aw aW as ap a] a[ a) a( a> a< a} a{ // s for sentence && p for paragraph
iw iW is ip i] i[ i) i( i> i< i} i{ // excluding ] [ ) ( > < } {

:set guioptions+=b // 显示滚动条

ze when ‘wrap’ off scroll horizontally to position the cursor at the end (right side) of the screen.
zh when ‘wrap’ off scroll screen N characters to the right.
zl when ‘wrap’ off scroll screen N characters to the left.
zs when ‘wrap’ off scroll horizontally to position the cursor at the start (left side) of the screen.

=============================
motion-II
=============================
CTRL-O Go to [count] Older cursor position in jump list (not a motion command).
CTRL-I Go to [count] newer cursor position in jump list (not a motion command).

=============================
programming
=============================
:tags // 显示tag stack
:tag {tagname} // 缺省时至stack的top
CTRL-]
:ptag tagname // preview
CTRL-W }
:pclose
:pedit
:psearch
:stag tagname
CTRL-W ]
CTRL-T

:set tags=./tags,./../tags,./*/tags
:set tags=./*/tags
:!ctags -R *

:tnext
:tselect tagname
:tag /block 再按tab补齐

[i // 第一个匹配项
[I // [<Tab> 跳转到[I找到的第一条匹配项
]I // start at the current cursor position
[D // 宏定义

:set path+=d:\mingw\include\*
:checkpath

=============================
text formatting
=============================
:set cindent shiftwidth=4
gg=G
:set textwidth=80

<CTRL-V> // <CTRL-Q> for Windows
Istring<Esc>
cstring<Esc>

:center // :{range}center [width]
:right

=============================
map command autocmd
=============================
:omap <F7> a{
:map <F3> oDate: <Esc>:read !date<CR>kJ

:command -nargs=* DoIt :call AFunction(<f-args>)

:autocmd [group] {events} {file_pattern} [nested] {command}

:augroup cprograms
: autocmd BufReadPost *.c,*.h :set sw=4 sts=4
: autocmd BufReadPost *.cpp :set sw=3 sts=3
:augroup END

:autocmd! cprograms //删除

=============================
vim-script
=============================
b:name buffer variable
w:name window variable
g:name global variable (also in a function)
v:name variable predefined by Vim
s:name script variable
l:name local variable
a:name function argument

$NAME environment variable
&name option
@r register

:execute “tag ” . tag_name // . for cancatenate
—> :tag tag_name
:normal gg=G
:execute “normal ” . normal_commands
:execute “normal Inew text \<Esc>”

=============================
useful links for VIM scripts
=============================
c.vim http://vim.sourceforge.net/scripts/script.php?script_id=213
——-
Setting
——-
see doc
——-
Usage
——-
<A-F9> save and compile
<F9> link
<C-F9> run

taglist.vim http://vim.sourceforge.net/scripts/script.php?script_id=273
——-
Notes
——-
noremap <silent> <F11> <Esc><Esc>:Tlist<CR>
inoremap <silent> <F11> <Esc><Esc>:Tlist<CR>
——-
Usage
——-
<CR> Jump to the location where the tag under cursor is
defined.
o Jump to the location where the tag under cursor is
defined in a new window.
p Display the tag definition in the file window and
keep the cursor in the taglist window itself.
<Space> Display the prototype of the tag under the cursor.
u Update the tags listed in the taglist window
s Change the sort order of the tags (by name or by order)
d Remove the tags for the file under the cursor
x Zoom-in or Zoom-out the taglist window
+ Open a fold
– Close a fold
* Open all folds
= Close all folds
[[ Jump to the beginning of the previous file
<Backspace> Jump to the beginning of the previous file
]] Jump to the beginning of the next file
<Tab> Jump to the beginning of the next file

EnhCommentify.vim http://vim.sourceforge.net/scripts/script.php?script_id=23
——-
Setting
——-
let g:EnhCommentifyRespectIndent = ‘yes’
let g:EnhCommentifyPretty = ‘yes’
let g:EnhCommentifyAlignRight = ‘yes’
——-
Usage
——-
\x \c

bufexplorer.zip http://vim.sourceforge.net/scripts/script.php?script_id=42
——-
Notes
——-
Needed by winmanager
——-
Usage
——-
\be \bs

winmanager http://vim.sourceforge.net/scripts/script.php?script_id=95
——-
Notes
——-
noremap <silent> <F4> <Esc><Esc>:WMToggle<CR>
inoremap <silent> <F4> <Esc><Esc>:WMToggle<CR>
——-
Usage
——-
:WManager :WMClose :WMToggle

1: File Explorer Area
<tab> : open the file or directory in a new window in the FileEditing area.
c : change the pwd to the directory currently displayed
C : change the currently displayed directory to pwd (converse of c)
s : select sort field (size, date, name)
r : reverse direction of sort
R : rename file
D : delete file
– : move up one level

cppcomplete http://vim.sourceforge.net/scripts/script.php?script_id=527
——-
Notes
——-
default mapping of <F9> conflicts with c.vim
<F8> <F9> –> <F7> <F8>
——-
Usage
——-
<A-j> <A-l> <F7> <F8> <F5>

a.vim http://vim.sourceforge.net/scripts/script.php?script_id=31
——-
Usage
——-
:A :AS :AV

borland.vim http://vim.sourceforge.net/scripts/script.php?script_id=92
——-
Usage
——-
:colorscheme borland

xmledit http://vim.sourceforge.net/scripts/script.php?script_id=301
cvsmenu.vim http://vim.sourceforge.net/scripts/script.php?script_id=58
project.tar.gz http://vim.sourceforge.net/scripts/script.php?script_id=69
grep.vim http://vim.sourceforge.net/scripts/script.php?script_id=311

————————————————–
摘录自:
VIM USER MANUAL
VIM 手册中文版 by ZhaoRuFei

awk笔记

awk -F”:” ‘{ print “username: ” $1 “\t\tuid:” $3 }’ /etc/passwd

awk ‘FS=”:” {OFS=”-“} {print NR “–>” $1, $2}’ /etc/passwd

awk ‘{x=x+$3} {print NR, $3, x}’ data
awk ‘{x=x+$3} END {print NR, $3, x}’ data

awk ‘{x=x+$3} {print NR, $3, x “sort -nr”}’ data

FS=”[[:space:]+]”

NF The number of fields in the current input record.
NR The total number of input records seen so far.
OFMT The output format for numbers, “%.6g”, by default.
OFS The output field separator, a space by default.
ORS The output record separator, by default a newline.

awk中数组从1开始

for ( x in myarray ) {
print myarray[x]
}
当 awk 在数组下标之间轮转时,它不会依照任何特定的顺序

delete fooarray[1]

print length(mystring)

print index(mystring,”you”)

print tolower(mystring)
print toupper(mystring)
print mystring // unchanged

mysub=substr(mystring,startpos,maxlen)

print match(mystring,/you/), RSTART, RLENGTH
RSTART 包含返回值(第一个匹配的位置),RLENGTH 指定它占据的字符跨度(如果没有找到匹配,则返回 -1)。

sub(regexp,replstring,mystring)
sub() 将替换第一个 regexp 匹配(如果有的话),gsub() 将执行全局替换

numelements=split(“Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec”,mymonths,”,”)

test.awk
———
BEGIN { x=0 }
/^$/ { x=x+1 }
END { print “I found ” x ” blank lines. :)” }
—————
awk -f test.awk inputfile

摘录自:
http://www-128.ibm.com/developerworks/cn/linux/shell/awk/awk-1/index.html
http://www-128.ibm.com/developerworks/cn/linux/shell/awk/awk-2/index.html
http://www-128.ibm.com/developerworks/cn/linux/shell/awk/awk-3/index.html

Makefile笔记

objects := $(wildcard *.o)
all: $(objects)
$(objects): %.o: %.c
$(CC) -c $(CFLAGS) $< -o $@

%.o : %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@

.PHONY : clean
clean :
rm $(objects) # 或-rm或@rm
—————————————————————-
$@
表示规则中的目标文件集。

$%
仅当目标是函数库文件中,表示规则中的目标成员名。例如,如果一个目标是”foo.a(bar.o)”,那么,”$%”就是”bar.o”,”$@”就是”foo.a”。如果目标不是函数库文件(Unix下是[.a],Windows下是[.lib]),那么,其值为空。

$<
依赖目标中的第一个目标名字。如果依赖目标是以模式(即”%”)定义的,那么”$<“将是符合模式的一系列的文件集。注意,其是一个一个取出来的。

$?
所有比目标新的依赖目标的集合。以空格分隔。

当你希望只对更新过的依赖文件进行操作时,”$?”在显式规则中很有用,例如,假设有一个函数库文件叫”lib”,其由其它几个object文件更新。那么把object文件打包的比较有效率的Makefile规则是:

lib : foo.o bar.o lose.o win.o
ar r lib $?

$^
所有的依赖目标的集合。以空格分隔。如果在依赖目标中有多个重复的,那个这个变量会去除重复的依赖目标,只保留一份。

$+
这个变量很像”$^”,也是所有依赖目标的集合。只是它不去除重复的依赖目标。
—————————————————————-
sources = foo.c bar.c
sinclude $(sources:.c=.d)
# 变量$(sources)所有[.c]的字串都替换成[.d]
%.d: %.c
@set -e; rm -f $@; $(CC) -MM $(CPPFLAGS) $< > $@.$$$$; sed ‘s,\($*\)\.o[ :]*,\1.o $@ : ,g’ < $@.$$$$ > $@; rm -f $@.$$$$
# main.o : main.c defs.h –> main.o main.d : main.c defs.h
—————————————————————-
make -n 或 –just-print
make -nw

The `-W’ flag provides two features:

* If you also use the `-n’ or `-q’ flag, you can see what `make’
would do if you were to modify some files.

* Without the `-n’ or `-q’ flag, when `make’ is actually executing
commands, the `-W’ flag can direct `make’ to act as if some files
had been modified, without actually modifying the files.

使用”-C”参数来指定make下层Makefile时,”-w”会被自动打开的

make -t 或 –touch
make -q 或 –question
make -s 或 –silent
make -C <dir> 或 –directory=<dir> 指定读取makefile的目录
make -i 或 –ignore-errors
make -k 或 –keep-going 及 .IGNORE目标
—————————————————————-
exec:
cd /home/hchen
pwd

exec:
cd /home/hchen; pwd
—————————————————————-
IMMEDIATE = DEFERRED
IMMEDIATE ?= DEFERRED
# 如果没定义
IMMEDIATE := IMMEDIATE
# 只能使用已定义好的变量
IMMEDIATE += DEFERRED or IMMEDIATE

For the append operator, `+=’, the right-hand side is considered
immediate if the variable was previously set as a simple variable
(`:=’), and deferred otherwise.

define IMMEDIATE
DEFERRED
endef
—————————————————————
ifeq (0,${MAKELEVEL})
cur-dir := $(shell pwd)
whoami := $(shell whoami)
host-type := $(shell arch)
MAKE := ${MAKE} host-type=${host-type} whoami=${whoami}
endif
—————————————————————
nullstring :=
space := $(nullstring) # end of the line
—————————————————————
libs_for_gcc = -lgnu
normal_libs =

ifeq ($(CC),gcc)
libs=$(libs_for_gcc)
else
libs=$(normal_libs)
endif

foo: $(objects)
$(CC) -o foo $(objects) $(libs)
—————————————————————
comma:= ,
empty:=
space:= $(empty) $(empty)
foo:= a b c
bar:= $(subst $(space),$(comma),$(foo))
# 把$(foo)中的空格替换成逗号,所以$(bar)的值是”a,b,c”
—————————————————————
$(subst <from>,<to>,<text>)
$(patsubst <pattern>,<replacement>,<text>)
$(patsubst %.c,%.o,x.c.c bar.c)
$(strip <string>)
去掉<string>字串中开头和结尾的空字符
$(strip a b c )从”a b c “得到”a b c”
—————————————————————
$(dir <names…>)

名称:取目录函数–dir。
功能:从文件名序列<names>中取出目录部分。目录部分是指最后一个反斜杠(”/”)之前的部分。如果没有反斜杠,那么返回”./”。
返回:返回文件名序列<names>的目录部分。
示例: $(dir src/foo.c hacks)返回值是”src/ ./”。

$(notdir <names…>)

名称:取文件函数–notdir。
功能:从文件名序列<names>中取出非目录部分。非目录部分是指最后一个反斜杠(”/”)之后的部分。
返回:返回文件名序列<names>的非目录部分。
示例: $(notdir src/foo.c hacks)返回值是”foo.c hacks”。

$(suffix <names…>)

名称:取后缀函数–suffix。
功能:从文件名序列<names>中取出各个文件名的后缀。
返回:返回文件名序列<names>的后缀序列,如果文件没有后缀,则返回空字串。
示例:$(suffix src/foo.c src-1.0/bar.c hacks)返回值是”.c .c”。

$(basename <names…>)

名称:取前缀函数–basename。
功能:从文件名序列<names>中取出各个文件名的前缀部分。
返回:返回文件名序列<names>的前缀序列,如果文件没有前缀,则返回空字串。
示例:$(basename src/foo.c src-1.0/bar.c hacks)返回值是”src/foo src-1.0/bar hacks”。

$(addsuffix <suffix>,<names…>)

名称:加后缀函数–addsuffix。
功能:把后缀<suffix>加到<names>中的每个单词后面。
返回:返回加过后缀的文件名序列。
示例:$(addsuffix .c,foo bar)返回值是”foo.c bar.c”。

$(addprefix <prefix>,<names…>)

名称:加前缀函数–addprefix。
功能:把前缀<prefix>加到<names>中的每个单词后面。
返回:返回加过前缀的文件名序列。
示例:$(addprefix src/,foo bar)返回值是”src/foo src/bar”。

$(join <list1>,<list2>)

名称:连接函数–join。
功能:把<list2>中的单词对应地加到<list1>的单词后面。如果<list1>的单词个数要比<list2>的多,那么,<list1>中的多出来的单词将保持原样。如果<list2>的单词个数要比<list1>多,那么,<list2>多出来的单词将被复制到<list2>中。
返回:返回连接过后的字符串。
示例:$(join aaa bbb , 111 222 333)返回值是”aaa111 bbb222 333″。
—————————————————————
$(foreach <var>,<list>,<text>)
names := a b c d
files := $(foreach n,$(names),$(n).o)
# $(files)的值是”a.o b.o c.o d.o”。
—————————————————————
reverse = $(2) $(1)

foo = $(call reverse,a,b)
—————————————————————
sources = foo.c bar.c
ifneq ( $(MAKECMDGOALS),clean)
include $(sources:.c=.d)
endif
只要我们输入的命令不是”make clean”,那么makefile会自动包含”foo.d”和”bar.d”这两个makefile。
—————————————————————
There are two reasons to use a phony target: to avoid a
conflict with a file of the same name, and to improve performance.

.PHONY: all
all: prog1 prog2 prog3 prog4

—————————————————————

“-b”
“-m”
这两个参数的作用是忽略和其它版本make的兼容性。

“-B”
“–always-make”
认为所有的目标都需要更新(重编译)。

“-C <dir>;”
“–directory=<dir>;”
指定读取makefile的目录。如果有多个”-C”参数,make的解释是后面的路径以前面的作为相对路径,并以最后的目录作为被指定目录。如:”make -C ~hchen/test -C prog”等价于”make -C ~hchen/test/prog”。

“-debug[=<options>;]”
输出make的调试信息。它有几种不同的级别可供选择,如果没有参数,那就是输出最简单的调试信息。下面是<options>;的取值:
a — 也就是all,输出所有的调试信息。(会非常的多)
b — 也就是basic,只输出简单的调试信息。即输出不需要重编译的目标。
v — 也就是verbose,在b选项的级别之上。输出的信息包括哪个makefile被解析,不需要被重编译的依赖文件(或是依赖目标)等。
i — 也就是implicit,输出所以的隐含规则。
j — 也就是jobs,输出执行规则中命令的详细信息,如命令的PID、返回码等。
m — 也就是makefile,输出make读取makefile,更新makefile,执行makefile的信息。

“-d”
相当于”–debug=a”。

“-e”
“–environment-overrides”
指明环境变量的值覆盖makefile中定义的变量的值。

“-t”
“–touch”
相当于UNIX的touch命令,只是把目标的修改日期变成最新的,也就是阻止生成目标的命令运行

“-W <file>;”
“–what-if=<file>;”
“–new-file=<file>;”
“–assume-file=<file>;”
假定目标<file>;需要更新,如果和”-n”选项使用,那么这个参数会输出该目标更新时的运行动作。如果没有”-n”那么就像运行UNIX的”touch”命令一样,使得<file>;的修改时间为当前时间。
—————————————————————
http://www.chinaunix.net/jh/23/408225.html 及 make manual摘录

CVS-client笔记

cvs -d :pserver:usrname@127.0.0.1:/home/cvsroot/proj login
cvs import -m “msg” modulename
cvs ci -m “msg” modulename
cvs co -m “msg” modulename
cvs up modulename
cvs st modulename
cvs add modulename
cvs remove modulename
cvs update -D “2002-10-19 10:00:0 GMT”
cvs -q update -A
cvs tag tagname
cvs co -r tagname
cvs tag -b branchname

cd main_branch_working_directory
cvs update -j branchname
cvs ci -m “branchname and MAIN merged”

cvs -q export -r rev -d dir module

VNC笔记

rpm -q vnc vnc-server
sudo vi /etc/sysconfig/vncservers
vncpasswd
ls ~/.vnc
sudo /sbin/service vncserver start
vncviewer localhost:1

sudo vim /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5901 -j ACCEPT
sudo /sbin/service iptables restart

CVS-server笔记

rpm -q | grep cvs
groupadd cvs
useradd -g cvs -G cvs –d /home/cvsroot cvsroot
passwd cvsroot
chmod –R 770 /home/cvsroot
su – cvsroot
mkdir proj
cvs -d /home/cvsroot/proj init
chmod –R 770 /home/cvsroot/proj
exit
vim /etc/xinetd.d/cvspserver

service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server= /usr/bin/cvs
server_args= -f –allow-root=/home/cvsroot/proj pserver
log_on_failure += USERID
}

vim /etc/services

cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service

su – cvsroot
vim proj/CVSROOT/passwd
usrname::cvsroot

Page 1 of 212