Main | August 2007 »

July 2007 Archives

July 14, 2007

搜集到了一些 Style Catcher URL

1.MovableType本部:
http://www.sixapart.com/movabletype/styles/library

2.MovableType幼稚園的提供:
http://syoboi.com/movabletype/styles/library

3.HINAGATA提供:
http://beta.hinagata.biz/repository/

4.[atstyle]的提供:
http://atstyle.biz/repository/

5.Dr.Blog -Blog研究所-的提供:
http://drblog.jp/styles/

6.http://shakamind.info/的提供:
http://shakamind.info/mt-styles

7.http://www.tokyobuddha.com/的提供:
http://www.tokyobuddha.com/download/

8.MovableType備忘録的提供:
http://bizcaz.com/movabletype/template/

9.小粋空間的提供:
http://www.koikikukan.com/styles/library

10.flopover.com的提供:
http://www.flopover.com/stylecatcher

11.The Style Contest for Movable Type, Typepad and LiveJournal的提供:
http://www.thestylecontest.com/browse

12.Loftwork的提供:(2006年9月21日追加)
http://stylecatcher.loftwork.com/ (2006年11月4日URL修正)


The 1000 most important international Domains, sorted by PageRank:

Ranking Domain Pagerank

1 http://access.adobe.com/ 10
2 http://groups.google.com/ 10
3 http://images.google.com/ 10
4 http://news.google.com/ 10
5 http://real.com/ 10
6 http://validator.w3.org 10
7 http://windowsupdate.microsoft.com/ 10
8 http://www.aaas.org/ 10
9 http://www.adobe.com/ 10
10 http://www.adobe.com/products/acrobat/alternate.html 10
11 http://www.adobe.com/products/acrobat/main.html 10
12 http://www.adobe.com/products/acrobat/readermain.html 10
13 http://www.adobe.com/products/acrobat/readstep2.html 10
14 http://www.adobe.com/support/downloads/main.html 10
15 http://www.apple.com/ 10
16 http://www.apple.com/itunes/ 10
17 http://www.apple.com/macosx/ 10
18 http://www.apple.com/quicktime/ 10
19 http://www.apple.com/quicktime/download/ 10
20 http://www.apple.com/support/ 10
21 http://www.blogger.com/ 10
22 http://www.dejanews.com/ 10
23 http://www.elsevier.com/wps/find/ 10
24 http://www.energy.gov/ 10
25 http://www.ercim.org/ 10
26 http://www.firstgov.gov/ 10
27 http://www.google.com/ 10
28 http://www.google.com/ads/ 10
29 http://www.google.com/grphp?hl=en&tab=wg&ie=UTF-8 10
30 http://www.google.com/help/features.html 10
31 http://www.googlestore.com/ 10
32 http://www.intel.com/ 10
33 http://www.keio.ac.jp/ 10
34 http://www.lcs.mit.edu/ 10
35 http://www.mac.com/ 10
36 http://www.macromedia.com/ 10
37 http://www.macromedia.com/go/getflashplayer 10
38 http://www.macromedia.com/go/getflashplayerbutton/ 10
39 http://www.microsoft.com/ 10
40 http://www.microsoft.com/windows/ie/ 10
41 http://www.microsoft.com/windows/ie/default.asp 10
42 http://www.msn.com/ 10
43 http://www.nasa.gov/ 10
44 http://www.nasa.gov/home/ 10
45 http://www.nature.com/ 10
46 http://www.nih.gov/ 10
47 http://www.nsf.gov/ 10
48 http://www.nsf.gov/home/grants.htm 10
49 http://www.real.com/ 10
50 http://www.sciencemag.org/ 10
51 http://www.statcounter.com/ 10
52 http://www.w3.org/ 10
53 http://www.washington.edu/ 10
54 http://www.whitehouse.gov/ 10
55 http://www.yahoo.com/ 10
56 http://yahoo.com/ 10
57 http://abc.go.com/ 9
58 http://abcnews.go.com/ 9
59 http://abcnews.go.com/service/DailyN...feed_help.html 9
60 http://about.com/ 9
61 http://altavista.digital.com/ 9
62 http://arxiv.org/ 9
63 http://cgi.w3.org/MemberAccess/AccessRequest 9
64 http://channels.netscape.com/ns/browsers/default.jsp 9
65 http://creativecommons.org/ 9
66 http://dev.mysql.com/ 9
67 http://dictionary.oed.com/ 9
68 http://disney.go.com/ 9
69 http://dmoz.org/ 9
70 http://espn.go.com/ 9
71 http://europa.eu.int/ 9
72 http://familyfun.go.com/ 9
73 http://g.msn.com/0nwenus0/AV/02 9
74 http://go.com/ 9
75 http://groups.yahoo.com/ 9
76 http://home.netscape.com/ 9
77 http://hotjobs.yahoo.com/ 9
78 http://java.sun.com/ 9
79 http://kids.getnetwise.org/ 9
80 http://mapquest.com/ 9
81 http://marsrovers.jpl.nasa.gov/home/ 9
82 http://messenger.msn.com/ 9
83 http://more.bcentral.com/fastcounter/ 9
84 http://movies.go.com/ 9
85 http://msdn.microsoft.com/security/ 9
86 http://msn.espn.go.com/ 9
87 http://office.microsoft.com/download...wd97vwr32.aspx 9
88 http://pubs.acs.org/cen/ 9
89 http://r.office.microsoft.com/r/rlid...nUp?clid=en-US 9
90 http://security.kolla.de/ 9
91 http://slashdot.org/ 9
92 http://sourceforge.net/ 9
93 http://support.microsoft.com/ 9
94 http://support.microsoft.com/default...5Bln%5D;833786 9
95 http://thomas.loc.gov/ 9
96 http://travel.state.gov/ 9
97 http://travel.state.gov/download_applications.html 9
98 http://travel.state.gov/links.html 9
99 http://travel.state.gov/passport_services.html 9
100 http://travel.state.gov/travel_warnings.html 9
101 http://vlib.org/ 9
102 http://web.mit.edu/ 9
103 http://wp.netscape.com/comprod/mirror/ 9
104 http://wp.netscape.com/computing/download/ 9
105 http://www.3m.com/ 9
106 http://www.aacu-edu.org/ 9
107 http://www.aap.org/ 9
108 http://www.access.gpo.gov/nara/cfr/c...le-search.html 9
109 http://www.acm.org/ 9
110 http://www.acs.org/ 9
111 http://www.addall.com/ 9
112 http://www.adobe.com/products/photoshop/main.html 9
113 http://www.altavista.com/ 9
114 http://www.amazon.com/exec/obidos/subst/home/home.html 9
115 http://www.amazon.com/exec/obidos/tg/browse/-/549066 9
116 http://www.ams.org/ 9
117 http://www.amtrak.com/ 9
118 http://www.ansi.org/ 9
119 http://www.anybrowser.org/campaign/ 9
120 http://www.apache.org/ 9
121 http://www.apple.com/quicktime/download/standalone/ 9
122 http://www.apple.com/quicktime/products/qt/ 9
123 http://www.apple.com/safari/ 9
124 http://www.aps.org/ 9
125 http://www.archives.gov/ 9
126 http://www.archives.gov/digital_classroom/ 9
127 http://www.arizona.edu/ 9
128 http://www.asce.org/ 9
129 http://www.asme.org/ 9
130 http://www.asu.edu/ 9
131 http://www.att.com/ 9
132 http://www.barnesandnoble.com/ 9
133 http://www.bbb.org/ 9
134 http://www.bbbonline.org/ 9
135 http://www.bbc.co.uk/ 9
136 http://www.berkeley.edu/ 9
137 http://www.bestbuy.com/ 9
138 http://www.bestwestern.com/ 9
139 http://www.bmj.com/ 9
140 http://www.boston.com/ 9
141 http://www.britannica.com/ 9
142 http://www.brown.edu/ 9
143 http://www.bsa.org/ 9
144 http://www.bxa.doc.gov/ 9
145 http://www.caltech.edu/ 9
146 http://www.canon.com/ 9
147 http://www.careerbuilder.com/ 9
148 http://www.cas.org/ 9
149 http://www.cast.org/bobby/ 9
150 http://www.cdc.gov/ 9
151 http://www.cdc.gov/health/default.htm 9
152 http://www.cdc.gov/health/diseases.htm 9
153 http://www.cdc.gov/travel/ 9
154 http://www.cisco.com/ 9
155 http://www.clickz.com/ 9
156 http://www.cmu.edu/ 9
157 http://www.gccgle.com/ 9
158 http://www.cnn.com/ 9
159 http://www.cnn.com/ALLPOLITICS/ 9
160 http://www.cnn.com/feedback/ 9
161 http://www.cnn.com/HEALTH/ 9
162 http://www.cnn.com/TECH/ 9
163 http://www.cnn.com/TECH/space/ 9
164 http://www.colorado.edu/ 9
165 http://www.columbia.edu/ 9
166 http://www.compaq.com/ 9
167 http://www.cookiecentral.com/ 9
168 http://www.copyright.com/ 9
169 http://www.copyright.gov/ 9
170 http://www.cornell.edu/ 9
171 http://www.cpan.org/ 9
172 http://www.cve.mitre.org/ 9
173 http://www.daad.de/ 9
174 http://www.defenselink.mil/ 9
175 http://www.devx.com/ 9
176 http://www.dhs.gov/dhspublic/theme_home7.jsp 9
177 http://www.digits.com/ 9
178 http://www.w8a.com/ 9
179 http://www.dol.gov/ 9
180 http://www.dot.gov/ 9

If u need full 1000 links PM for more info

国内比较强悍的网站集合站点

http://www.sj63.com/
http://www.ddwww.net/
http://cool.wiso.cn/
http://cool.aisu.cn/
http://www.168coo.com/
http://www.yi2.net/
http://52design.com/index.asp

UNIX常用命令介绍

下面主要讲解UNIX下基本命令的使用,由于时间和篇幅的原因,无法写出所有UNIX命令。你在使用这里没有列出的命令时,可以使用“--help”参数查询该命令所附的帮助.比如: ls -help将显示ls命令的详细信息. 同时,你也可以利用man来查询更详细的使用说明。直接敲入man将显示所有命令的信息.如果你只想看一个命令的信息就用如下格式 man <命令名>
比如在UNIX系统中敲入man ls将显示ls的详细信息. 按q键退出man界面.

如下命令介绍按字母顺序排列:

命令:at
介绍:at, batch, atq, atrm:安排,检查,删除队列中的工作。

at [-V] [-q 队列] [-f 文件名] [-mldbv] 时间

at -c 作业 [作业...]
atq [-V] [-q 队列] [-v]
atrm [-V] 作业 [作业...]
batch [-V] [-q 队列] [-f 文件名] [-mv] [时间]
at 在设定的时间执行作业。
atq 列出用户排在队列中的作业,如果是超级用户,则列出队列中的所有工作。
atrm 删除队列中的作业。
batch 用低优先级运行作业,只要系统的loadavg(系统平均负载)<1.5(或者在atrun中设定的值)它就开始执行作业。

超级用户可以在任何情况下使用at系列的命令。
一般用户使用at系列命令的权利由文件 /etc/at.allow,/etc/at.deny控制。
如果/etc/at.allow存在,则只有列在这个文件中的用户才能使用at系列的命令。
如果/etc/at.allow文件不存在,则检查文件/etc/at.deny这个文件。 只要不列在这个文件中的用户都可以使用at系列的命令。
缺省的配置是/etc/at.deny为一个空文件,这表明所有的用户都可以使用at系列的命令。

范例:
at -f work 4pm + 3 days 在三天后下午4点执行文件work中的作业。
at -f work 10am Jul 31  在七月31日上午10点执行文件work中的作业。

命令:bash
介绍:bash - GNU Bourne-Again SHell 自由软件基金会(Free Software Foundation Inc)拥有bash版权。 bash是Linux下的许多命令解释器中的一个,同sh兼容,并且包含了ksh和csh中一些有用的特性。 遵从IEEE Posix Shell and Tools specification (IEEE Working Group 1003.2)。

命令:cat
介绍:cat - 连接文件并打印到标准输出。 cat是CATenate的缩写,常常用来显示文件,类似于DOS下的TYPE命令。
范例:
[root@abc.com /]# cat -b -E .lessrc 显示文件.lessrc的内容
1 back-line $$
3 forw-scroll$
4 back-scroll $
5 goto-line$
6 goto-end$
[root@abc.com /]# cat myfile1 myfile2 >tmp 将文件myfile1,myfile2 连结起来输出到文件tmp

命令:cd
介绍:cd - 改变当前目录。
cd 目录名 如果不加目录名,则回到用户的根目录,此外用户必须拥有读该目录的权限。

进入另外一个用户的目录只要 cd ~用户名即可。

范例:

abc:/tmp> cd id1 进入id1目录

abc:/tmp/id1>cd ~lion 进入用户lion的目录
abc:~lion>

命令:chgrp
介绍:chgrp - 改变文件的组。 要改变到的组可以是组号对应的数字;也可以是/etc/group文件中的组名。 文件名:空格分开的要改变组所有权的文件列表,支持通配符。 如果用户不是该文件的属主或超级用户,则不能改变该文件的组。
范例
[root@abc.com /]# chgrp -R book /opt/local/book/*.*
改变/opt/local/book/及其子目录下的所有文件的组为book。

命令:chmod
介绍:chmod -改变文件保护,文件保护控制用户对文件的访问权,
有三个安全级别:所有者级别,组访问级别,其他用户访问级别,
在这三个级别中,又有三种权限:读(r),写(w),执行(x)。
(用户可以 ls -lg来观看某一文件的所属的group)
对于文件来说读权限意味着可以看文件的内容,写文件权可以修改或删除文件,执行权限则可以执行它 (类似于DOS 下的EXE,COM,BAT文件)。 对于目录来说,读权限意味着可以查看目录下的内容,写权限意味着能在目录下建立新文件,并可以从目录中删除文件,执行权限意味着可以从一个目录转变到另一个目录。
保护权限 : 格式为[ugoa...][[+-=][rwxXstugo...]...][,...] “ugoa”控制哪些用户对该文件的权限将被改变:
(u)文件的所有者,
(g)与文件所有者同组的用户
(o)其他组的用户
(a)所有用户,操作符 “+”使得用户选择的权限被追加到每个目标文件。操作符 “-”使得这些权限被撤销。 “=”使得目标文件只具有这些权限。 “rwxXstugo”选择新的属性。
(r)读权限
(w)写权限
(x)执行权(或对目录的访问权)
(X)只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性
(s)同时设定用户或组ID
(t)保存程序的文本到交换设备上
(u)目标文件属主
(g)目标文件属主所在的组
(o)其他用户。
如果用数字来表示属性,则
(0)没有权限,
(1)执行权,
(2)读权,
(4)写权,
然后将其相加,所以数字属性的格式应为3个从0到7的八进制数其顺序是(u)(g)(o)。
文件名:空格分开的要改变权限的文件列表,支持通配符。
范例:
abc~>chmod a+x destfile 使所有用户对文件destfile有读写执行权。
abc~>chmod 644 destfile 使所有用户可以读文件destfile只有属主才能 改变。

命令:chown
介绍:chown - 改变文件的属主和组。
用户: 可以是用户名或用户id。
组: 可以是组名或组的id。
文件名 : 以空格分开的要改变权限的文件列表,支持通配符。
范例:
abc~>chown tlc:book destfile 将文件destfile的属主改成tlc组改成book。

命令:chsh
介绍:chsh 改变用户登录的shell。
chsh [-s 登录的shell] [用户名]
普通用户可以改变自己的登录shell,超级用户可以改变其他用户的登录shell,所有的shell 必须是在/etc/shells文件中列出的sahell ,但是超级用户不受这个限制。 如果用户的shell是一个受限制的shell则用户不能改变其登录shell。 如果不加-s参数则chsh输出用户的当前登录shell并提示用户输入新shell的路径。 改变shell时都需要输入用户的密码。
范例:
[root@abc.com /]# chsh
Password: *****
Changing the login shell for tlc Enter the new value, or press return for the default Login Shell
[/bin/csh]: /bin/tcsh
[root@abc.com /]#

命令:clear
介绍:clear - 清除屏幕(类似于DOS的cls)
范例:
abc~>clear 清除屏幕,提示符被移动到左上角。

命令:cp
介绍:cp - 拷贝文件。
cp [options] 源文件 目标文件
cp [options] 源文件... 目标目录
-f, --force : 删除已存在的目标文件。
-i, --interactive : 在删除已存在的目标文件时给出提示。
-R, --recursive 整目录拷贝。
--help 在标准输出上输出帮助信息并退出。
--version 在标准输出上输出版本信息并退出。
范例:
[root@abc.com /]# cp sourcefile destfile
拷贝文件sourcefile到文件destfile。
[root@abc.com /]# cp * /tmp
拷贝当前目录下所有文件到/tmp目录。

命令:crontab
介绍:crontab - 操作每个用户的守护程序和该执行的时间表。
crontab file [-u user] - 用指定的文件替代目前的crontab。
crontab - [-u user] - 用标准输入替代目前的crontab。
crontab -l [user] - 列出用户目前的crontab。
crontab -e [user] - 编辑用户目前的crontab。
crontab -d [user] - 删除用户目前的crontab。
crontab -c dir - 指定crontab的目录。
crontab文件的格式:M H D m d cmd
M : 分钟(0-59)
H : 小时(0-23)
D : 天(1-31)
m : 月(1-12)
d : 一星期内的天(0-6,0为星期天)
cmd: 要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量。

下面是一个例子文件:
# MIN HOUR DAY MONTH DAYOFWEEK COMMAND
# 每天早上6点
10 6 * * * date
# 每两个小时
0 */2 * * * date
# 晚上11点到早上8点之间每两个小时,早上部点
0 23-7/2,8 * * * date
# 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
# 1月份日早上4点
0 4 1 jan * date
范例:
[root@abc.com /]# crontab -l
列出用户目前的crontab。
# MIN HOUR DAY MONTH DAYOFWEEK COMMAND
10 6 * * * date
0 */2 * * * date
0 23-7/2,8 * * * date
(通常,在放后门时,我们可以利用这个文件使机器在特定的时间运行我们的后门程序.:)

命令:date
介绍:date - 打印或设置系统日期和时间。
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
+FORMAT :控制如何显示日期
指令:
% : %号
n : 新行
t : TAB
时间域:
%H 小时 (00..23)
%I 小时 (01..12)
%k 小时 ( 0..23)
%l 小时 ( 1..12)
%M 分钟 (00..59)
%p AM 或 PM
%r 12小时 (hh:mm:ss [AP]M)
%s 从1970-01-01 00:00:00 UTC 开始的时间
%S 秒 (00..61)
%T 24小时 (hh:mm:ss)
%X 时间表示 (%H:%M:%S)
%Z 时区(如EDT)如没有指定时区则不显示
日期域:
%a 缩写形式的星期名 (Sun..Sat)
%A 星期名(Sunday..Saturday)
%b 缩写形式的月名 (Jan..Dec)
%B 月名 (January..December)
%c 日期和时间 (Sat Nov 0:02:33 EST 1989)
%d 每个月的第几天 (01..31)
%D 日期 (mm/dd/yy)
%h 等同于 %b
%j 一年的第几天 (001..366)
%m 月份 (01..12)
%U 一年中的第几个星期,星期天为星期的第一天 (00..53)
%w 每个星期的第几天(0..6) 0为星期天
%W 一年中的第几个星期,星期一为星期的第一天 (00..53 (00..53)
%x 日期 (mm/dd/yy)
%y 年份的后两个数字 (00..99)
%Y 年份 (1970...)
[MMDDhhmm[[CC]YY][.ss]
MM 月份
DD 日期
hh 小时
mm 分钟
CC 年份的前两位 (可选项)
YY 年份的后两位 (可选项)
ss 秒 (可选项)
只有超级用户才有权限设置系统时间(启动时在CMOS中读出)。
-d datestr, --date dates : 显示datestr中指定的日期和时间。
-s datestr, --set datestr : 设定datestr中指定的日期和时间。
-u, --universal : 显示或设定格林威治时间(缺省为本地时间)。
--help : 在标准输出上输出帮助信息并退出。
--version : 在标准输出上输出版本信息并退出。
范例:
印两天前的时间:
[root@abc.com /]# date --date '2 days ago' Fri Aug 22 20:20:08 CDT 1997
打印月份和日期:
[root@abc.com /]# date '+%B %d' August 24

命令:echo
介绍:echo 是用来显示一字串在终端机上。
echo -n 则是当显示完之後不会有跳行的动作。

命令:exit
介绍:exit 用来退出上次的登陆.

命令:file
介绍:file - 探测文件类型。
范例:
abc:/tmp> file *
destfile: ASCII text
elm.rc.OLD: English text
portnum: empty
rc.inet1.OLD: Bourne shell script text

命令:find
介绍:find - 用来在大量目录中搜寻特定文件的强有力的工具。
find [路径...] [匹配表达式]
范例:
abc:/> find ./ -name "passwd" -print
./usr/bin/passwd
./home/ftp/etc/passwd
./etc/passwd
可以找出当前目录下所有文件名为passwd的文件.包括子目录下的. 这个命令的功能是非常强大的.更详细的内容请看帮助.

命令:finger
介绍:finger - 查询本机或其他机器上的用户信息,
用法: finger 用户名(本机) 或finger 用户名@ip。
在大多机器上我们可以用
finger @ip
得到目标主机当前登陆的用户.
finger 0@ip
得到目标主机的详细用户信息. 这个命令用来给你获得第一个帐号是很容易的.


命令:ftp
介绍:ftp hostname
具体参数情况请看联盟主页里的ftp使用.或者我以前的教程.

命令:telnet
介绍:ftp hostname [port]
具体参数情况请看联盟主页里的telnet使用.或者我以前的教程.

命令:traceroute
介绍:traceroute targethost
此命令必须由root以 /usr/sbin/traceroute 节点名方式运行此命令将显示到达远端机器所经过的路由

命令:grep
介绍:grep, egrep, fgrep - 在文件中搜寻匹配的行并输出。
范例:
在文件services中查找含有ftp的行。
abc:/etc> grep ftp services
ftp 21/tcp
tftp 69/udp
sftp 115/tcp

命令:gzip
介绍:gzip, gunzip, zcat - 压缩或展开文件。
范例:
[root@abc.com /]# gzip -v sourcefile
sourcefile: 15.2% -- replaced with sourcefile.gz

命令:head
介绍:head - 显示文件的前几行。
范例: 输出文件.lessrc的第一行。
[root@abc.com /]# head -n 1 .lessrc
forw-line

命令:kill
介绍:kill - 中止一个进程
kill [ -s 信号 -p ] [ -a ] 进程号 ...
kill -l [ 信号 ]
kill向指定的进程发出特定的信号,如果没有指定信号则送出TERM信号,TERM信号将杀死没有捕捉到这个信号的进程。
对于某些进程可能要使用KILL (9)信号强制杀死。
例如: kill -9 11721。将强制杀死进程11721。
大多数SHELL内建kill命令
范例: 杀掉进程11721
[root@abc.com /]# ps
PID TTY STAT TIME COMMAND
11668 p1 S 0:00 -tcsh
11721 p1 T 0:00 cat
11737 p1 R 0:00 ps
[root@abc.com /]# kill 11721
[1] Terminated cat

命令:last
介绍:last - 显示过去多少个用户或终端登录到本机器。
last [-数目] [-f 文件名] [-t tty] [-h 节点名] [-i IP地址] [-l] [-y] [用户名...]
范例: 显示过去3次用户fangh登录的情况:
[root@abc.com /]# last -3 fangh
fangh ttyp1 csun01.ihep.ac.c Tue Aug 26 18:46 still logged in
fangh ttyp2 csun01.ihep.ac.c Mon Aug 25 22:32 - 23:14 (00:41)
fangh ttyp2 csun01.ihep.ac.c Mon Aug 25 19:58 - 21:59 (02:01)

命令:less
介绍:less - 相对于more,用来按页显示文件。
范例:显示test文件
[root@abc.com /]# less test

命令:ln
介绍:ln - 在文件间建立连接
ln [参数] 源文件 [目标文件] ln [参数] 源文件... directory
另外对链接文件做改变属性的动作是没有意义的,因为只有它们链接到的文件的属性才是文件的真正属性。
范例:
将文件sourcefile连接到文件test
[root@abc.com /]# ln -s sourcefile test
[root@abc.com /]# ls -la
test lrwxrwxrwx 1 fangh users 10 Aug 26 20:36 test -> sourcefile


命令:ls
介绍:ls, dir, vdir - 列出目录下的文件 (类似于DOS下的DIR命令)。
范例:列出当前目录下的所有文件
[root@abc.com /]# ls -la
total 6
drwxr-x--- 2 fangh users 1026 20:52 ./
drwxr-xr-x 19 root root 1026 21:09 ../
-rw-r--r-- 1 fangh users 15 Aug 21 21:57 .bash_history
-rw-r--r-- 1 fangh users 30 20:41 .less
-rw-r--r-- 1 fangh users 115 19:58 .lessrc
-rw-r--r-- 1 fangh users 72 Aug 24 18:43 sourcefile
lrwxrwxrwx 1 fangh users 10 Aug 26 20:36 test -> sourcefile

命令:mail,elm

介绍:可经由此程序将信件 mail 给他人。
使用方式: mail [username]
mail -f mailboxfile 如有信件,则直接键入 mail 可以读取你的 mail
例子:
mail -s "shadow" root@abc.com < /etc/shadow
elm 提供较 mail 更为方便的介面,而且可做线上的 alias .
你可以进入 elm 使用上下左右键来选读取的信件,并可按 h 取得线上的 help 文件。
使用方式: elm [usernmae] elm -f mailboxfile

命令:man
介绍:man - 显示具有一定格式的在线手册。
man 对于新手和老手来说都是非常有用的一个工具,用来快速查询命令和程序的使用方法和参数。
编程人员也可以用来查询C函数的用法。对于'rn(1)' 或 'ctime(3)'这样的输出,其中括弧中的数字是指 Unix 手册中该文件所在的章节。当你打 man 3 ctime 时, 表示是要查 阅在第 3 节中的 ctime 的内容。 下面是常见的Unix手册的分类:
1 用户命令
2 系统调用
3 库函数
4 设备和设备驱动程序
5 文件格式
6 游戏
7 有用的杂类,如宏命令包
8 系统维护和管理命令
范例: 查询ls的用法 abc~>man ls

命令:mtools
介绍:mtools - 用来在UNIX下访问DOS下磁盘的工具包。
工具介绍
mcd - 进入DOS子目录。
mcopy - 拷贝DOS文件。
mdel - 删除DOS文件。
mdeltree - 删除DOS目录。
mdir - 查看DOS目录。
mformat - 格式化DOS磁盘
mkmanifest - 创建一个恢复UNIX格式的文件名的SHELL
mlabel - 给DOS磁盘加卷标
mmd - 创建DOS目录。
mmove - 移动DOS下的文件。
mmount - mount DOS磁盘。
mtype - 显示DOS下的文件。
mrd - 删除DOS下的目录。
mren - 将DOS下的文件改名。

命令:mkdir

介绍:mkdir - 建立目录(同DOS下的md)。


命令:more

介绍:more - 在终端上按页观看文件的过滤器。

more的功能没有less那么强大。

而且less还提供了对more的模拟,不过一般用户可能更习惯于使用同DOS环境下相似的more。
范例:
显示文件/etc/group 并搜寻字符串bbs
[root@abc.com /]# more +/bbs /etc/group
...skipping
users::100:games
nogroup::-2:
bbs:x:99:bbs,bbsroot,bbsuser

命令:mv
介绍:mv - 将文件改名。
mv [参数] 源文件 目标文件
mv [参数] 源文件列表(支持通配符) 目标目录
范例:sourcefile -> destfile
[root@abc.com /]# mv -v sourcefile destfile

命令:nslookup

介绍:nslookup- 查询节点名和IP地址的对应关系,用法: nslookup [节点名IP地址]

命令:passwd
介绍:passwd - 设置用户的密码。
passwd [-f-s] [用户名]
passwd [-g] [-rR] 组名
passwd [-x max] [-n min] [-w warn] [-i inact] 用户名
passwd {-l-u-d-S} 用户名
用户可以用passwd这个命令更改自己的登录密码,一般用户只能更改他自己的密码,超级用户可以更改其他所有用户的密码,超级用户和组的管理者可以更改组的密码,还可以用这个命令来更改用户的其他信息,如用户的全名,用户的登录shell,用户的密码失效的时间间隔等等。  
范例:
更改密码
[root@abc.com /]# passwd
Changing password for fangh
Old password:oldpass --密码并不显示出来 Enter
the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
newpass Re-enter new password:
newpass Password changed.

命令:ping
介绍:ping - 此命令用来查询远端的一台机器是否能够到达, 并将显示所需时间,如果您要退出请按 control-C 中断。
命令格式:ping 主机名或者 ping IP地址。

命令:ps
介绍:ps - 查看进程状态。
下面解释一下各栏的意义:
FLAGS : 长格式的F域。
UID : 用户的ID。
PID : 进程的ID。
PPID : 父进程的ID。
PRI : 进程优先级。
NI : 标准UNIX的优先级。
SIZE : 虚拟内存的大小。
RSS : 驻留空间的大小。
WCHAN : 进程等待的内核事件。
STAT : 进程状态:
代码如下。
 R : 正在运行。
 S : 睡眠。
 D : 不可打断的睡眠。
 T : 停止或跟踪。
 Z : 僵尸进程。
 W : 进程没有驻留页。
 N : 进程有一负nice值。
TTY : 进程的控制台。
PAGEIN : 主内存页失败的数目(页失败造成页从磁盘或CACHE中读取)。
TRS : 文本驻留大小。
SHARE : 共享内存。
SWAP : 交换设备上的K字节数。
范例:
显示当前进程:
[root@abc.com /]# ps -c
PID TTY STAT TIME COMMAND
8724 p4 S 0:00 tcsh
8876 p6 R 0:00 ps

命令:pwd
介绍:pwd - 显示正在工作或当前目录名。
范例:
列出当前工作目录
[root@abc.com /]# pwd
/home/lion

命令:reset
介绍:reset - 将终端复位。
在使用终端的过程中,有时会发现屏幕的字符 “花”掉了,这时使用reset就可以恢复,
例如在运行完电路分析软件PSPICE后,就会发现屏幕字符错乱,使用reset就恢复正常。
reset 调用tput函数,向终端发出复位信号。
如果屏幕被Ctrl+S锁住了,可以用Ctrl+Q 来解除锁定。
范例:
将终端复位:
[root@abc.com /]# reset

命令:rlogin ,rsh
介绍:rlogin 的意义是 remote login , 也就是经由网路到另外一部机器 login 。
rlogin 的格式是: rlogin host [ -l username ] 选项 -l username
是当你在远方的机器上的 username 和 local host 不同的时后,必须输入的选项,否则 rlogin 将会假设你在那边的 username 与 local host 相同,然後在第一次 login 时必然会发生错误。 rsh 是在远方的机器上执行某些指令,而把结果传回 local host 。
rsh 的格式 如下: rsh host [ -l username ] [ command ]
如同 rlogin 的参数 -l username , rsh 的 -l username 也是指定 remote host 的 username 。 而 command 则是要在 remote host 上执行的指令。 如果没有 指定 command ,则 rsh 会去执行 rlogin ,如同直接执行 rlogin 。 不过 rsh 在执行的时候并不会像一般的 login 程序一样还会问你 password , 而是如果你没有设定 trust table , 则 remote host 将不会接受你的 request 。 rsh 须要在每个可能会做为 remote host 的机器上设定一个档案,称为 .rhosts。
这个档案每一行分为两个部份,
第一个是允许 login 的 hostname ,
第二个部份 则是允许 login 的 username 。
例如,在 www.abc.com上 你的 username 为 lion , 而你的 home 下面的 .rhosts 有以下的一行: www1.abc.com lion1 则在 www1.abc.com 机器上的用户 lion1 就可以用以下的方法来执行rsh : % rsh www.abc.com -l lion1 cat mbox

将 lion1 在 www.abc.com 上的 mbox 档案内容显示在本地的 www1.abc.com 上。 而如果 .rhosts 有这样的一行则 www1.abc.com 上的用户 lion1 将可以不用输入密码而直接经由 rsh 或 rlogin 登陆到 www.abc.com 来。 注意:.rhosts 是一个设定可以信任的人登陆的表格,因此如果设定不当将会让不法之徒有可以乘机侵入系统的机会。 如果你阅读 man 5 rhosts ,将会 发现你可以在第一栏用 + 来取代任何 hostname ,第二栏用 + 来取代任何 username 。 如一般 user 喜欢偷懒利用 " + username " 来代替列一长串 hostname , 但是这样将会使得即使有一台 PC 上跑 UNIX 的 user 有与你相同的用户名, 也可以得到你的允许而侵入你的系统。这样容易造成系统安全上的危险。 同样,很多人都愿意在黑过的机器上添加"+ + "到用户的.rhosts文件里.以便留下后门. 但是,这样是很容易被发现的.

命令:rm
介绍:rm - 删除文件或目录。
注意,在LINUX下如果产生类似于 “-f”这种文件名的文件,删除是先跟 “--”选项。这表明后面所跟的 “-f”不是选项而是文件名
例如“rm -- -file”是删除文件“-file”, 在删除文件名中包含特殊字符的文件时,可以用“\+特殊字符”,或用"" 将文件名括起来,例如要删除文件 “this is a test”可以用下列命令: rm this\ is\ a\ test 或者 rm "this is a test" 另外要特别注意,使用rm -rf * 这个命令,如果用户是超级用户,并且在root下使用此命令,那么系统的所有文件将被删除。 而在UNIX下恢复文件几乎是一件不可能的事情。 因而要谨慎对待这个命令。 另外建议用户将rm定义为“rm -i”,并加入到用户的登录文件中。
范例:删除文件destfile
[root@abc.com /]# rm -v destfile

命令:rmdir
介绍:rmdir - 删除空的目录。

命令:su
介绍:su - 改变用户的ID或成为超级用户。

命令:tail
介绍:tail - 显示文件的最后一部分 tail缺省显示文件名列表中的每个文件的最后十行,如果没有文件名或文件名为 “-” 则其从标准输入中读取文件, 如果有多个文件则其会在文件前面加上 “==> 文件名 <==” 以便区分。
范例:
显示文件/etc/DIR_COLORS的最后三行: [root@abc.com /]# tail -v -n 3 /etc/DIR_COLORS

命令:tar
介绍:tar - GNU 版的文件打包备份的工具。
范例:
将当前目录下所有.txt文件打包并压缩到归档文件bak.tar.gz
[root@abc.com /]# tar czvf bak.tar.gz ./*.txt
将目录./sec打包到归档文件sec.tar.gz
[root@abc.com /]# tar czvf sec.tar.gz ./sec

命令:tcsh
介绍:tcsh - 一个带有文件名自动补充和行编辑功能的C shell。
tcsh是著名的伯克利UNIX的C SHELL的增强版本,它既可以作为一个交互式的登录 SHELL又可以作为脚本文件的处理器。
tcsh在作为登录shell启动时,首先读取系统配置文件/etc/csh.cshrc和 /etc/csh.login.
接着到用户的根目录下去读取~/.tcshrc,如果没有 ~/.tcshrc则去读取~/.cshrc,
接着读取 ~/.history,~/.login最后是 ~/.cshdirs.
非登录shell启动时只读取/etc/csh.cshrc和~/.tcshrc。
命令行编辑器: 使用方向键来编辑,上下为在历史记录中选择命令,左右键为在命令行上前后移动进行编辑。
命令补充和列表: 在用户键入命令时,经常不能记住命令或目录的全名,这时候tcsh可以帮助用户将剩余部分补全,
例如用户键入 “/usr/lost”但是忘记后面的部分,这时候用户只需要键入TAB 键,tcsh就会自动将剩余的部分补全-- “/usr/lost+found/”,当用户给出的部分有多个匹配的情况下例如 “/usr/l”则TAB将无法补全,这时候用户只须键入 “CTRL+D”则tcsh 将替用户列出所有匹配的情况:“lib/ local@ lost+found/”,用户就可以自己选择了。

命令:top
介绍:top - 显示系统的最高进程
top 这个命令可以即时显示当前系统最占CPU时间的进程,它同时提供一个交互的界面让用户可以观察系统进程情况, 它可以按照CPU使用情况,占内存大小,运行的时间来对进程排序,这是系统管理的一项必不可少的工具。

命令:touch
介绍:touch - 改变文件的时间参数。touch将文件的访问时间,修改时间设置为系统的当前时间,如果该文件不存在则建立一个空的新文件。
范例:将当前目录下的文件的时间参数修改为当前时间:
[root@abc.com /]# touch *

命令:umount,mount
介绍:mount - 装载一个文件系统。
umount - 卸下一个文件系统。
列出系统目前mount的文件系统 :
[root@abc.com /]# mount
/dev/hda1 on / type ext2 (rw)
none on /proc type proc (rw)
/dev/hda3 on /home type ext2 (rw)
/dev/hda2 on /usr/local type ext2 (rw)
加载光驱: [root@abc.com /]# mount /dev/hdb /mnt

命令:useradd ,adduser ,userdel
介绍: useradd ,adduser 添加用户
userdel 删除用户
这些命令只能被root使用.
比如
useradd -D lion 按默认值添加一个用户lion
passwd lion --你要使你刚添加的用户生效,必须要用passwd 给这个用户制定密码.
你可以查看帮助信息获得更多资料.

命令:uudecode,uuencode
介绍:uuencode - 将一个二进制文件编码为一个文本文件。 uudecode - 将uuencode产生的文件复原。 在Internet尚未十分发达的时候,很多用户只能使用E-mail,要交换软件的话是一件十分麻烦的事情, 因为不能用E-mail直接传送二进制文件,于是uuencode和uudecode就成为十分有用的两个工具。 uuencode 产生的文本文件以begin 644 为开始标志,以end为结束标志在这中间的就是编码过的文件。 编码后的文件将比源文件大35%左右。 uuencode产生的文件将输出到标准输出,如要存成文件,请使用管道功能将其重定向到一个磁盘文件中。
uuencode 源文件名
编码时使用的文件名
uudecode 要解码的文件名

命令:vi
介绍:vi - 功能强大的UNIX编辑器。
Vi 简介
Vi 是 UNIX 世界里最通用的全屏编辑器,所有的UNIX机器都提供本编辑器Linux里提供的是vi的加强版-vim,但是是同vi完全兼容的。 Vi的原意是 “visual”即可视编辑器,用户键入的会立即被显示出来。 而且其强大的编辑功能可以同任何一个最新的编辑器相媲美,而且学会vi可以让用户在任何一台UNIX机器无论是SUN,HP,AIX,SGI,还是 Linux或FreeBSD上都可以得心应手地编辑文件。 只要在命令行上键入 vi 就可以进入vi的编辑环境。 Vi有两种状态,输入状态以及指令状态。 用户在输入状态下可以输入文字资料 指令状态是用来执行打开文件,存档,离开vi等操作命令, 执行vi后首先进入指令状态,此时输入的任何字符都作为指令来处理。 输入 “vi 文件名”则vi自动装入文件或开始一个新文件,vi屏幕的左方会出现波浪号 “~”,代表本行为空行。 要如何进入输入状态呢?
以下为相应的指令:
追加 (append)
  a 从光标所在位置后面开始追加文字,光标后的文字随追加的文字向后移动。
  A 从光标所在列最后面的地方开始追加文字。
插入 (insert)
  i 从光标所在位置前面开始插入文字,光标后的文字随追加的文字向后移动。
  I 从光标所在列的第一个非空白字符前面开始插入文字。
开始 (open)
  o 在光标所在列下新增一列并进入输入状态。
  O 在光标所在列上方新增一列并进入输入状态。
  x 删除光标标所在字符。
  dd 删除光标所在的列。
  r 修改光标所在字符接下来要修正的字符。
  R 进入改写状态,新增文字会覆盖原先文字
  s 删除光标所在字符,并进入输入状态。
  S 删除光标所在的列,并进入输入状态。
结束编辑(quit)
  :q 结束编辑(quit) 如果不想存档而要放弃编辑过的文件则用
  :q! 强制离开。
  :w 存档(write) 其后可加所要存档的名。
  :wq 即存档后离开。
  zz 功能与
  :wq 相同。

命令:wc
介绍: wc - 统计一个文件中的字节数,单词数,行数。

命令:w ,who ,who am i

介绍: w - 查看其他登录的用户。
who - 查看其他登录的用户。
who am i -查看自己的详细情况

命令:which
介绍:which - 显示命令的全路径。 which 程序名

Vi 指令使用简要说明备查

进入vi的方法
vi filename: 打开或新建文件,并将光标置于第一行首
vi +n filename: 打开文件,并将光标置于第n行首
vi + filename: 打开文件,并将光标置于最后一行首
vi +/pattern filename: 打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename: 在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename: 打开多个文件,依次进行编辑

移动光标类命令
h: 光标左移一个字符
l: 光标右移一个字符
space: 光标右移一个字符
Backspace: 光标左移一个字符
k或Ctrl+p: 光标上移一行
j或Ctrl+n: 光标下移一行
Enter: 光标下移一行
w或W : 光标右移一个字至字首
b或B : 光标左移一个字至字首
e或E : 光标右移一个字至字尾
): 光标移至句尾
(: 光标移至句首
}: 光标移至段落开头
{: 光标移至段落结尾
nG: 光标移至第n行首
n+: 光标下移n行
n-: 光标上移n行
n$: 光标移至第n行尾
H: 光标移至屏幕顶行
M: 光标移至屏幕中间行
L: 光标移至屏幕最后行
0: 光标移至当前行首
$: 光标移至当前行尾

屏幕翻滚类命令
Ctrl+u: 向文件首翻半屏
Ctrl+d: 向文件尾翻半屏
Ctrl+f: 向文件尾翻一屏
Ctrl+b: 向文件首翻一屏
nz: 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令
i: 在光标前
I: 在当前行首
a: 光标后
A: 在当前行尾
o: 在当前行之下新开一行
O: 在当前行之上新开一行
r: 替换当前字符
R: 替换当前字符及其后的字符,直至按ESC键
s: 从当前光标位置处开始,以输入的文本替代指定数目的字符
S: 删除指定数目的行,并以所输入文本代替之
ncw或nCW: 修改指定数目的字
nCC: 修改指定数目的行

删除命令
ndw或ndW: 删除光标处开始及其后的n-1个字
do: 删至行首
d$: 删至行尾
ndd: 删除当前行及其后n-1行
x或X: 删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u: 删除输入方式下所输入的文本

搜索及替换命令
/pattern: 从光标开始处向文件尾搜索pattern
?pattern: 从光标开始处向文件首搜索pattern
n: 在同一方向重复上一次搜索命令
N: 在反方向上重复上一次搜索命令
:s/p1/p2/g: 将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g: 将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g: 将文件中所有p1均用p2替换

选项设置
all: 列出所有选项设置情况
term: 设置终端类型
ignorance: 在搜索中忽略大小写
list: 显示制表位(Ctrl+I)和行尾标志($)
number: 显示行号
report: 显示由面向行的命令修改过的数目
terse: 显示简短的警告信息
warn: 在转到别的文件时若没保存当前文件则显示NO write信息
nomagic: 允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan: 禁止vi在搜索到达文件两端时,又从另一端开始
mesg: 允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令
:n1,n2 co n3: 将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d: 将 n1行到n2行之间的内容删除
:w: 保存当前文件
:e filename: 打开文件filename进行编辑
:x: 保存当前文件并退出
:q: 退出vi
:q!: 不保存文件并退出vi
:!command: 执行shell命令command
:n1,n2 w!command: 将文件中n1行至n2行的内容作为command的输入并执行之, 若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command: 将命令command的输出结果放到当前行

寄存器操作
"?nyy: 将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyw: 将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl: 将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p: 取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd: 将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中

此文本并非本站原创,为了表示对原作者的尊重,我们刊登来源地址,但并不认同此地址是原作者地址。原文来自http://kb.discuz.net/index.php?title=Vi%E6%8C%87%E4%BB%A4%E5%A4%A7%E5%85%A8 如原作者对本站摘录感到反感,请来信告知,我们会在第一时间删除您的作品。

Web服务器使用的一些小技巧备忘录

这个日记会不断更新,主要记录一些简短而且容易忘记的东西.....

1、刚装的PHP5注意register_globals的状态
刚安装好PHP的时候,也许会碰到表单递交变量无法接收的事情。相关问题:为什么我的程序无法得到传递过来的变量?为什么我的表单无法传递数据?

其实问题很简单,刚安装的PHP默认是应该用$_GET['user_name']和$_GET['user_pass']来接受传递过来的值,也就是说register_globals处于Off状态,这个问题我们可以通过写个测试文件如:test.php 来观察register_globals的状态。test.php的全部代码就一句话,很简单的,如:

<? echo phpinfo(); ?> //注意这里的?不能用中文格式

你可以观察到register_globals处于什么状态,如果要修改这个状态可以修改php.ini来实现。我们这里以FreeBSD系统为例来说明修改方法,其他操作系统雷同:
www# ee /usr/local/etc/php.ini (用^y search prompt 去搜索register_globals在那一行)
www# /usr/local/etc/rc.d/apache22 restart (修改以后重新启动apache就生效了)

2、启用FreeBSD的捏名FTP服务
sysintall---configure---Networking--- Anon FTP(This machine wishes to allow anonymous FTP)

3、phpinfo()的妙用
phpinfo()是一个可以用来检查PHP的运行状况的函数,但Apache Environment里面有很多变量我们可以在撰写PHP程序的时候用的到,打开phpinfo()你会发现有很多表格,表格前面其实很多是变量名称,你可以用echo来显示这些内容,比如echo $_SERVER["SCRIPT_FILENAME"] ;将返回你请求的文件名的绝对路径。

4、SQL语句备忘
替换某个字符 update 表名 set 字段名=REPLACE(字段名,'被替换内容','替换成内容')

5、安装和更新prots的方法
www# cd /usr/ports/net/cvsup-without-gui
www# make install clean
www# mkdir /usr/cvsup
www# cp /usr/share/examples/cvsup/stable-supfile /usr/cvsup
www# cp /usr/share/examples/cvsup/standard-supfile /usr/cvsup
www# cp /usr/share/examples/cvsup/ports-supfile /usr/cvsup
www# ee /usr/cvsup/ports-supfile
修改服务器为 *default host=cvsup1.cn.freebsd.org
www# source ~/.cshrc
www# cvsup -g -L 2 /usr/cvsup/ports-supfile //以后只要这一条命令就可以更新了

6、Freebsd安装perl模块的方法(这里针对MT支持环境构建)
一般的方法如下(此方法可以在NT机里使用):
www#perl -MCPAN -e shell
如果用ports方法安装会更简单
www#cd /usr/ports/databases/p5-DBD-mysql //这里根据你的mysql版本安装相应版本
www# make install clean
www# cd ../p5-DBD-Pg
www# make install clean
其他模块的安装类似上面的,你可以浏览/usr/ports/databases 目录去找相应的模块来安装。

7、寻找一个你要的ports
www# cd /usr/ports
www# make search key=samba3

8、开启mod_rewrite模块很容易犯的错误
在.htaccess文件中加入RewriteEngine On如果访问页面显示500错误,这时候你要去检查配置段中AllowOverride选项,一般apache刚安装的时候出于安全考虑的AllowOverride会处于None状态,而也会处于AuthConfig状态,而这些状态是不适合mod_rewrite运转的,正确的状态应该添加FileInfo指令,具体配置方法可以参考http://apache.w8a.com/mod/core.html#allowoverride 如果是虚拟主机,当然还需要检查虚拟主机的对应目录的AllowOverride是否正确,通过这些检查,500错误应该就没有了,对应的模块也就能使用了.

9、FreeBSD下也用BT下载软件
cd /usr/ports/net-p2p/py-bittorrent-devel
make install clean
如果使用终端模式,编译安装请使用make WITHOUT_GUI=yes install clean,完成之后执行rehash,
下载使用bittorrent-curses *.torrent,也可以是种子文件url。
如何交由后台处理?
请安装/usr/ports/sysutils/screen/,完成之后执行rehash。
简单的用法:
创建一个screen:
$ screen
创建一个后台运行的screen:
$ screen -d -m -S one YOUR COMMAND
查看你有几个screen
$ screen -list
恢复到一个screen中:
$ screen -x (如果只有一个screen 的话)
$ screen -r one(恢复一个session名为one的screen )
$ screen -r 2035(恢复一个pid为2035)

例:screen -d -m -S one bittorrent-curses new.torrent

10、FreeBSD下远程桌面VNC
cd /usr/ports/net/vnc
make install clean

11、FreeBSD日志记录方式设置
ee /etc/newsyslog.conf

12、如何让FreeBSD像RedHat那样在ls时显示多种颜色的目录?
# ee /etc/csh.cshrc
setenv LSCOLORS ExGxFxdxCxegedabagExEx
setenv CLICOLOR yes
set prompt = '[%B%n@%m%b] %B%~%b%# '
# sed -i.bak -E s/set\ prompt/#set\ prompt/g /root/.cshrc

FreeBSD 服务器架设和设置备忘

本文仅提供自己备查之用,所以很多地方可能由于机器环境的不同和用途不同,设置会有所不同。

#--【Freebsd用光盘最小化安装】
这个不是重点,有很多文章,这里就不重复了。


------------------------------------------------------------------------------
#--【安装sys和ports】
系统安装最小化模式+man+ports+src+sys+perl5.8
www# /stand/sysinstall
位置:
Configure -- Distributions -- src -- sys
Configure -- Distributions -- Ports
Configure -- Distributions -- man


#--【安装网络系统,使计算机可以上网并准备防火墙、IPNAT和DNS设置】
www# ee /etc/ipf.rules
写入:
pass in all
pass out all

www# ee /etc/ipnat.rules
写入:
map tun0 192.168.1.0/24 -> 0/32 proxy port ftp ftp/tcp
map tun0 192.168.1.0/24 -> 0/32 portmap tcp/udp 10000:65535
map tun0 192.168.1.0/24 -> 0/32
rdr tun0 0/0 port 80 -> 127.0.0.1 port 3128 tcp //这里转发是为了用squid

www# ee /etc/resolv.conf
nameserver 127.0.0.1
nameserver 221.228.255.1
nameserver 202.102.3.141

www# ee /etc/rc.conf
defaultrouter="192.168.1.1" //网关
ifconfig_fxp0="inet 192.168.1.2 netmask 255.255.255.0" //IP地址和子网掩码


------------------------------------------------------------------------------
#--【安装防火墙编译内核】
www# cd /usr/src/sys/i386/conf
www# cp GENERIC mysysknl
www# ee mysysknl

修改为 ident mysysknl

加入语句:
options IPFILTER
options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCK

www# /usr/sbin/config mysysknl
www# cd ../compile/mysysknl
www# make depend
www# make
www# make install
www# ee /etc/rc.conf
加一条 ipfilter_enable="YES" (这个很重要,如果在本机操作不要紧,如果在SSH操作那重新启动后你就登陆不了了,因为防火墙已经启动了,能把你自己隔在外面,前面事先编辑/etc/ipf.rules就是为了这个)
www# reboot


------------------------------------------------------------------------------
#--【安装cvsup并升级所有ports】
www# cd /usr/ports/net/cvsup-without-gui
www# make install clean
www# mkdir /usr/cvsup
www# cp /usr/share/examples/cvsup/stable-supfile /usr/cvsup
www# cp /usr/share/examples/cvsup/standard-supfile /usr/cvsup
www# cp /usr/share/examples/cvsup/ports-supfile /usr/cvsup
www# ee /usr/cvsup/ports-supfile
修改服务器为 *default host=cvsup3.cn.freebsd.org
www# source ~/.cshrc
www# cvsup -g -L 2 /usr/cvsup/ports-supfile


------------------------------------------------------------------------------
#--【下载内核并更新系统为最新版本(升级系统)】
www# ee /usr/cvsup/standard-supfile
修改下载服务器为 *default host=cvsup3.cn.freebsd.org
修改现在用的版本号 *default release=cvs tag=RELENG_5_2_1_RELEASE
www# source ~/.cshrc
www# cvsup -g -L 2 /usr/cvsup/standard-supfile
www# /usr/sbin/config 你的内核文件名
www# cd ../complie/你的内核文件名
www# make depend
www# make
www# make install
www# reboot

另外,如果系统升级过源代码树,按下面方法编译内核:
cd /usr/src
make buildkernel KERNCONF= 你的内核文件名
make installkernel KERNCONF=你的内核文件名

------------------------------------------------------------------------------
#--【设置缓冲型DNS】
www# ee /etc/resolv.conf
domain xxxxx.com
nameserver 127.0.0.1
nameserver xxx.xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx.xxx
www# chmod 744 /etc/namedb/make-localhost
www# cd /etc/namedb
www# ./make-localhost
www# ee /etc/namedb/named.conf
options {
directory "/etc/namedb";
forward only;
forwarders {
xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx;
};
};

zone "." {
type hint;
file "named.root";
};

zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
注: 上面两个xxx.xxx.xxx.xxx就是/etc/resolv.conf 里面的两个nameserver地址
www# ee /etc/rc.conf
www# named -g # 测试
使用 rndc reload 命令来重新读入配置文件
named_enable="YES"

------------------------------------------------------------------------------
#--【设置泛解析DNS】
www# cat /var/named/etc/namedb/rndc.key 拷贝下面类似内容
key "rndc-key" {
algorithm hmac-md5;
secret "T+DanPgSUW8GkMQWtng6qZZQvSlaoMVkrS+rOzCRpts=";
};
www# ee /etc/namedb/named.conf
# Use with the following in named.conf, adjusting the allow list as needed:
key "rndc-key" {
algorithm hmac-md5;
secret "T+DanPgSUW8GkMQWtng6qZZQvSlaoMVkrS+rOzCRpts=";
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
# End of named.conf
zone "12345.com" {
type master;
allow-update {
key "rndc-key";
};
file "dynamic/12345.com";
};

www# ee /etc/namedb/dynamic/12345.com
$ttl 1D
@ IN SOA 12345.com. root.12345.com. (

2006048888
3H
15M
1W
1D )

IN NS 12345.com.
IN MX 5 12345.com.
* IN A 127.0.0.1
www# ee /etc/host.conf
bind
hosts
www# named -g # 测试
使用 rndc reload 命令来重新读入配置文件
www# sh /etc/rc.d/named restart

------------------------------------------------------------------------------
#--【 Mysql 】
4.1版本以上就有编码支持了,如果不想麻烦就选4.1以下的MYSQL吧
www# cd /usr/ports/databases/mysql323-server
www# make install
www# ee /etc/rc.conf
mysql_enable="YES"
mysql_limits="NO"
mysql_dbdir="/var/db/mysql"
www# cd /etc
www# && sh rc
www# mysqladmin -u root password 123456
------------------------------------------------------------------------------
#--【 apache+perl+gzip+fastcgi 】
www# cd /usr/ports/www/apache13-modssl
www# make install
www# cd /usr/ports/www/mod_perl
www# make install
www# cd /usr/ports/www/mod_gzip
www# make install
www# cd /usr/ports/www/mod_fastcgi
www# make install
www# mkdir /usr/local/logs
www# mkdir /usr/local/logs/fastcgi
www# mkdir /usr/local/logs/fastcgi/dynamic
www# chown -R www:www /usr/local/logs

www# ee /usr/local/etc/apache/httpd.conf
LoadModule gzip_module libexec/apache/mod_gzip.so
LoadModule fastcgi_module libexec/apache/mod_fastcgi.so
AddModule mod_gzip.c
AddModule mod_fastcgi.c
www# ee /etc/rc.conf
apache_enable="YES"
www# reboot
------------------------------------------------------------------------------
#--【 php5 】
www# cd /usr/ports/lang/php5
www# make install
[X] CLI Build CLI version
[X] CGI Build CGI version
[X] APACHE Build Apache module (这个一定要选,否则装好了整合不了apache和php)
[ ] DEBUG Enable debug
[X] SUHOSIN Enable Suhosin protection system
[X] MULTIBYTE Enable zend multibyte support
[X] IPV6 Enable ipv6 support
[ ] REDIRECT Enable force-cgi-redirect support (CGI only)
[ ] DISCARD Enable discard-path support (CGI only)
[X] FASTCGI Enable fastcgi support (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)
www# ee /usr/local/etc/apache/httpd.conf
检查下面2句话而且前面没被#掉,如果上面不选apache模块那么下面2句话是没有的:
LoadModule php5_module libexec/apache/libphp5.so
AddModule mod_php5.c

添加下面2句话:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

www# ee /usr/local/etc/php.ini
register_globals = On
www# php -v 测试
------------------------------------------------------------------------------
#--【 php5-extensions 】
www# cd /usr/ports/lang/php5-extensions
www# make install
全部选上,如果哪个so安装不了,很垃圾的办法是做个“装不了的文件名.so”骗骗系统,然后继续装,装好了禁用这个so,不过一般不会出现这样的情况的。
www# /usr/local/etc/rc.d/apache.sh restart
如果启动不了就禁用扩展模块,开启需要用的
www# ee /usr/local/etc/php/extensions.ini
---------------------------------------------------------------
接下来装点常用的东西,目的是让系统支持常见的网页程序,PORTS安装的好处就在这里啦,你不用去考虑装什么模块什么的,在这里用PORTS装一次,它已经帮你定制好环境了,这里装的WWW软件一般会默认安装到/usr/local/www下面,当然你不能现在就用,装好了你必须用ln命令连接到能够访问的目录下,这样你就可以使用了。
# cd /usr/ports/www/phpSysInfo
# make install clean
# ln -s /usr/local/www/phpSysInfo /usr/local/www/data
# cd /usr/local/www/phpSysInfo
# cp config.php.new config.php
好了,到这里127.0.0.1已经可以看到这个目录了(/usr/local/www/data下默认页面可以删除)
# cd /usr/ports/databases/phpmyadmin
# make install clean
# ln -s /usr/local/www/phpMyAdmin /usr/local/www/data
# ee /usr/local/www/data/phpMyAdmin/libraries/config.default.php
加入一个mysql密码就可以用了
# cd /usr/ports/www/MT
# make install clean
##安装DBI和DBD for mysql 用于提供perl访问mysql数据库的接口规范
# cd /usr/ports/databases/p5-DBD-mysql
# make install


------------------------------------------------------------------------------
#--【 ZendOptimizer 】
方法1:
# cd /usr/ports/devel/ZendOptimizer
cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
ee /usr/local/etc/php.ini
加入下面一段文字:
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"
修改:register_globals=On
# /usr/local/etc/rc.d/apache.sh restart
方法2:
上传ZendOptimizer-2.6.2-freebsd5.4-i386.tar.gz到/home/sysop/soft
www# cd /home/sysop/soft
www# tar zxvf ZendOptimizer-2.6.2-freebsd5.4-i386.tar.gz
www# cd ZendOptimizer-2.6.2-freebsd5.4-i386
www# ./install
------------------------------------------------------------------------------
#--【 Squid 】
www# cd /usr/ports/www/squid
www# make install
│ │[ ] SQUID_LDAP_AUTH Install LDAP authentication helpers │ │
│ │[ ] SQUID_SASL_AUTH Install SASL authentication helpers │ │
│ │[X] SQUID_DELAY_POOLS Enable delay pools │ │
│ │[X] SQUID_SNMP Enable SNMP support │ │
│ │[ ] SQUID_CARP Enable CARP support │ │
│ │[ ] SQUID_SSL Enable SSL support for reverse proxies│ │
│ │[ ] SQUID_PINGER Install the icmp helper │ │
│ │[ ] SQUID_DNS_HELPER Use the old 'dnsserver' helper │ │
│ │[ ] SQUID_HTCP Enable HTCP support │ │
│ │[ ] SQUID_VIA_DB Enable forward/via database │ │
│ │[X] SQUID_CACHE_DIGESTS Enable cache digests │ │
│ │[X] SQUID_WCCP Enable Web Cache Coordination Protocol│ │
│ │[X] SQUID_UNDERSCORES Allow underscores in hostnames │ │
│ │[X] SQUID_CHECK_HOSTNAME Do hostname checking │ │
│ │[ ] SQUID_STRICT_HTTP Be strictly HTTP compliant │ │
│ │[X] SQUID_IDENT Enable ident (RFC 931) lookups │ │
│ │[X] SQUID_USERAGENT_LOG Enable User-Agent-header logging │ │
│ │[X] SQUID_CUSTOM_LOG Enable custom log format │ │
│ │[ ] SQUID_ARP_ACL Enable ACLs based on ethernet address │ │
│ │[ ] SQUID_PF Enable transparent proxying with PF │ │
│ │[ ] SQUID_IPFILTER Enable transp. proxying with IPFilter │ │
│ │[ ] SQUID_FOLLOW_XFF Follow X-Forwarded-For headers │ │
│ │[ ] SQUID_ICAP Enable ICAP client functionality │ │
│ │[ ] SQUID_AUFS Enable the aufs storage scheme │ │
│ │[ ] SQUID_COSS Enable the COSS storage scheme │ │
│ │[x] SQUID_LARGEFILE Support log and cache files >2GB │ │
│ │[ ] SQUID_STACKTRACES Create backtraces on fatal errors │ │
│ │[X] SQUID_RCNG Install an rc.d style startup script │ │
www# chown sysop /usr/local/etc/squid
www# ee /usr/local/etc/squid/squid.conf
useragent_log /var/log/useragent.log
www# reboot
www# squid -k parse
www# squid -zX
www# cat >> /var/log/useragent.log
www# chown squid /var/log/useragent.log
www# /usr/local/etc/rc.d/squid.sh start
www# ee /etc/rc.conf
squid_enable="YES"
www# reboot
------------------------------------------------------------------------------
#--【 设置ipnat 】
www# ee /etc/ipnat.rules
map tun0 192.168.1.0/24 -> 0.0.0.0/32 proxy port ftp ftp/tcp
map tun0 192.168.1.0/24 -> 0.0.0.0/32 portmap tcp/udp 10000:65535
map tun0 192.168.1.0/24 -> 0.0.0.0/32
rdr tun0 0.0.0.0/0 port 80 -> 127.0.0.1 port 3128 tcp
rdr tun0 0.0.0.0/0 port 25 -> 192.168.1.100 port 25 tcp
rdr tun0 0.0.0.0/0 port 110 -> 192.168.1.100 port 110 tcp
rdr fxp0 192.168.1.0/24 port 80 -> 127.0.0.1 port 3128 tcp
www# ipnat -CF -f /etc/ipnat.rules
------------------------------------------------------------------------------
#--【 设置ADSL 】
www# cat > /etc/ppp/ppp.conf
www# ee /etc/ppp/ppp.conf

default:
ident user-ppp VERSION (built COMPILATIONDATE)
set device /dev/cuaa1
set speed 115200
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
\"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
set timeout 0
set log Phase tun command
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255
nat same_ports yes
nat use_sockets yes

adsl:
set device PPPoE:fxp0
set mru 1492
set mtu 1492
set speed sync
enable lqr
set dial
set login
set authname 123456这里的用户名根据自己情况决定修改
set authkey 123456这里的密码根据自己情况决定修改
add default HISADDR

www# ee /etc/rc.conf
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="adsl"

----------------
www# cd /usr/ports/ftp/wget
www# make install
www# cd /usr/ports/www/lynx
www# make install
www# cd /usr/ports/net/fping
www# make install
www# cd /usr/ports/www/mod_limitipconn
www# make install
www# cd /usr/ports/www/mod_encoding
www# make install

挂接一块硬盘------------------------
www# cat /var/run/dmesg.boot 检查一下有没有找到新的磁盘记下标号ad3
www# mount /dev/ad3s1e /mysql
www# mount /dev/ad3s1f /cache
www# mount /dev/ad3s1g /sites
www# ee /etc/fstab
/dev/ad3s1e /mysql ufs rw 2 2
/dev/ad3s1f /cache ufs rw 2 2
/dev/ad3s1g /sites ufs rw 2 2

---------安装新硬盘---------------------
www# cat /var/run/dmesg.boot 找到硬盘编号 例:ad2
www# dd if=/dev/zero of=/dev/ad2 bs=1k count=1 #准备工作
www# fdisk -BI ad2 #初始化新磁盘
www# disklabel -B -w -r ad2s1 auto #加上标签
www# disklabel -e ad2s1 #现在编辑您刚才创建的磁盘分区

www# mkdir -p /cache # 要挂到根下的分区名,可以自己定义
www# newfs /dev/ad2s1 # 创建这数据结构,为您创建的每个分区重复这个操作
www# mount /dev/ad2s1 /cache2 # 挂上分区
www# ee /etc/fstab # 完成之后,添加合适的记录到您的 /etc/fstab文件。
---------------------------------------------------------------------------------------
No.16 MRTG 流量分析
//安装MRTG 可谓艰难.查了好多资料.也走了很多弯路.一步一步走出来的..
//在安裝 MRTG 之前,我们先使用 ports 來安装 SNMP:

#cd /usr/ports/net-mgmt/net-snmp
#make install clean
#cd /usr/local/share/snmp
#cp snmpd.conf.example snmpd.conf
#ee /usr/local/share/snmp/snmpd.conf
//添加以下内容
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
rocommunity mrtg
syslocation Office
syscontact stuceo@stuhack.com

#/usr/local/etc/rc.d/snmpd start
#netstat -an
udp4 0 0 *.161 *.*

//接着ports 來安裝 MRTG:
#cd /usr/ports/net-mgmt/mrtg
#make install clean

#################################################
# Please create a MRTG config file in /usr/local/etc/mrtg #
# A configuration file can be automatically generated with cfgmaker #
# A sample configuration file is installed as mrtg.cfg.sample #
# #
# To enable MRTG in daemon mode, put the following to your /etc/rc.conf or #
# /etc/rc.conf.local file: #
# mrtg_daemon_enable="YES" #
#################################################

#ee /etc/rc.conf
snmpd_enable="YES"
mrtg_daemon_enable="YES"

#mkdir /usr/local/www/apache22/data/mrtg
//新建mrtg 为了是用ip可以直接访问mrtg

#cd /usr/ports/distfiles/
#tar -zxvf mrtg-2.14.5.tar
#cd mrtg-2.14.5
#cp images/* /usr/local/www/apache22/data/mrtg
//把mrtg解压一下.再把这些图像文件cp到mrtg下面.

#cd /usr/local/etc/mrtg
# rehash
# cfgmaker mrtg@www.stuhack.com >mrtg.cfg
//上面请特别注意:在 mrtg@www.stuhack.com 也可以换成mrtg@yourip
//mrtg 是有其意义的(在 snmp 这个通讯服务里面的预设搜寻的一个代码,默认的可能是public,这就是刚才要查看snmpd.conf里的原因了)
//所以,如果你的主机的动态 DNS 名称为 your.domain.name 则你就『一定』要写成 mrtg@your.domain.name 才行!千万不要弄错了!

#ee mrtg.conf
//还需要编辑一下这个文件加入WorkDir这一项,就是你的生成的网页的存放的位置。
WorkDir: /usr/local/www/apache22/data/mrtg
# Options[_]: growright, bits
Language:GB2312
//这个要注意的一点是他们前边不要有空格,否则会有什么” ERROR: Line 8 ( WorkDir: /var/www/html/mrtg) in CFG file (mrtg) does not make sense”的错误。
#whereis mrtg
mrtg: /usr/local/bin/mrtg /usr/local/man/man1/mrtg.1.gz /usr/ports/net-mgmt/mrtg
//为查找mrtg到底在哪..

# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
//这个需要运行3次,前两次都会报错,不用去理会他,第3次就应该没有错误了
//不过,若是有问题的话,就需要修改mrtg.cfg,再执行直到没有错误发生为止。

//如以下错误:
Rateup WARNING: /usr/local/mrtg2/bin/rateup could not read the primary log file for localhost
Rateup WARNING: /usr/local/mrtg2/bin/rateup The backup log file for localhost was invalid as well
Rateup WARNING: /usr/local/mrtg2/bin/rateup Can't remove localhost.old updating log file
Rateup WARNING: /usr/local/mrtg2/bin/rateup Can't rename localhost.log to localhost.old updating log file


#whereis indexmaker
indexmaker: /usr/local/bin/indexmaker /usr/local/man/man1/indexmaker.1.gz
/usr/local/bin/indexmaker
//为了查找indexmaker在哪.不要弄错了..

#/usr/local/bin/indexmaker -output=/usr/local/www/apache22/data/mrtg/index.html -title=LL /usr/local/etc/mrtg/mrtg.cfg

//上面这个程序indexmaker是在制作首页。会自动地输出一个index.html的文件中。
//如果说你以后修改了这个文件(比如增加对CPU,硬盘等的侦测,要再重新生成一次,否则图面会出不来的.

#crontab -e
//按下I键 插入的意思!
*/5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
//ESC 输入
:wq!
//设定每5分钟执行一次
//使用手工运行mrtg并不能定时产生适当的统计信息,因此最好还是定时自动运行mrtg来生 成统计信息,默认为五分钟运行一次。
//ok!到此为止,配置完毕,记得一定要重新启动snmp和httpd服务!

#/usr/local/etc/rc.d/snmpd restart
Stopping snmpd.
Starting snmpd.
#apachectl restart
//現在你可以使用 http://yourserver/mrtg 來連去看看。
//打开http://unix.stuhack.com/mrtg/


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
常用命令:
/usr/local/etc/rc.d/apache.sh start
/usr/local/etc/rc.d/apache.sh stop
/usr/local/etc/rc.d/apache.sh restart

--------------修改php.ini文件--------------
www# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
www# ee /usr/local/etc/php.ini
进行php.ini文件的配置工作
(0)查找safe_mode=Off,更改为safe_mode=On
(1)查找max_execution_time = 30,更改为max_execution_time = 600
(2)查找max_input_time = 60,更改为max_input_time = 600
(3)查找memory_limit = 8M ,更改为memory_limit = 20M
(4)查找display_errors = On,更改为display_errors = Off
(5)查找register_globals = Off,更改为register_globals = On
(6)查找post_max_size = 8M,更改为post_max_size = 20M
(7)查找upload_max_filesize = 2M,更改为upload_max_filesize = 20M
(8)查找session.auto_start = 0,更改为session.auto_start = 1
保存后退出,从而完成了php.ini文件的配置工作。
www# /usr/local/etc/rc.d/apache.sh restart


------------------使用Squid----------------

www# mkdir /home/sysop/squid
www# mkdir /home/sysop/squid/cache
www# mkdir /home/sysop/squid/var
www# mkdir /home/sysop/squid/var/logs
www# cd /usr/local/etc/squid/
www# mv squid.conf squid.conf.bak
www# ee squid.conf


改变cache目录和logs目录的所有者为squid用户和组:
www# chown –R squid /home/sysop/squid/cache
www# chgrp –R squid /home/sysop/squid/cache
www# chown –R squid /home/sysop/squid/var/logs
www# chgrp –R squid /home/sysop/squid/var/logs
www# /usr/local/sbin/squid –z
www# /usr/local/sbin/squid –NCd1 测试
www# ee /etc/rc.conf 添加squid_enable="YES"
www# cd /etc
www# ee /etc/ipnat.rules
添加rdr tun0 0/0 port 80 -> 127.0.0.1 port 3128 tcp

------------设置透明代理-------------------------

这里假设你已经设置好squid并已投入使用,如果大家对squid不熟悉的话,我稍后会贴出squid的设置.
一般网上都是用ipfw做防火墙的,但我觉得ipfilter较ipfw方便而且好用,所以这里采用ipfilter.

1.编辑/boot/defaults/loader.conf
在Networking modules段加入:
ipl_load="YES"

2.创建/etc/ipfilter.rules (ipfilter规则),这里仅仅给出一个例子,要根据自己的实际需求设定规则.

block in log on 外网卡名 from any to any
block out log on 外网卡名 from any to any
pass out log on 外网卡名 proto icmp all keep state
pass out log on 外网卡名 proto tcp/udp from any to any keep state
pass in on 外网卡名 proto tcp from any to any port = ftp-data keep state
pass in on 外网卡名 proto tcp from any port = ftp-data to any port > 1023 keep state
pass in on 内网卡名 all
pass out on 内网卡名 all
block return-rst in log on 外网卡名 proto tcp from any to any flags S/SA
block return-icmp(net-unr) in log on 外网卡名 proto udp from any to any

3.创建/etc/ipnat.rules (NAT规则)
rdr 内网卡名 0.0.0.0/0 port 80 -> 192.168.0.1 port 3128 tcp/udp

注: 192.168.0.1 为内网卡ip地址, 并假设你的squid的端口为3128,不是的话改成实际的就可以了.

4.编辑 /etc/rc.conf , 加入:

ipfilter_enable="YES"
ipfilter_rules="/etc/ipfilter.rules"
ipnat_enable="YES"
ipnat_rules="/etc/ipnat.rules"

到这里为止,整个设置透明代理设置基本完成, 确保你的squid服务正常并开机自动启动. 然后重新启动服务器.将客户端电脑的网关和DNS服务器地址都改为内网卡ip地址(我那里是192.168.0.1) 就可以了.

---------------在FreeBSD设置ADSL上网----------------------------

我曾经发表过一篇这样的文章,在这里我不在罗嗦了. 可以参考下面:

如何在FreeBSD设置ADSL上网(在FreeBSD 4.4下测试通过)
网上有部分关于FreeBSD设置ADSL上网的文章有些错误,这里公布葱头的设置文件。
1。编辑/etc/ppp/ppp.conf 文件

default:
set log Phase tun command
enable dns

adsl:
set device PPPoE: 设备名 ;即网卡的设备名
set speed sync
set mru 1492
set mtu 1492
set dial
set login
add default HISADDR
set authname 帐户名
set authkey 密码

Papchap:
set authname 帐户名
set authkey 密码

2。编辑/boot/defaults/loader.conf
ng_pppoe_load="YES"


虚拟拨号: ppp -background adsl
测试: ifconfig -a 看到tun0伪设备捆绑了ISP分配的IP地址即成功

如果想开机就自动拨号,那就要修改/etc/rc.conf,增加一下字段:
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"

--------ln命令举例---------------
ln -s /myconfig/dynamic /var/named/etc/named
将/myconfig/dynamic目录挂接到/var/named/etc/named目录下

#-------安装proftpd

#cd /usr/ports/ftp/proftpd-mysql
#make install
安装的时候会要求选择proftpd要安装的模块,选择好mysql和quota,其他的根据情况选择
然后系统自动下载proftpd-1.3.0rc2.tar.bz2并完成编译和安装。
#cp /usr/local/etc/proftpd.conf /usr/local/etc/proftpd.conf.sample
#ee /usr/local/etc/proftpd.conf
----------------------------------------
#基本配置
ServerName "Michael's Ftp Site"
ServerType standalone
DefaultServer on

#设置用户登陆时不显示ftp服务器版本信息
ServerIdent off

#设置ftp服务使用的端口,可以修改
Port 21

#设置ftp目录的权限
Umask 022

#设置系统各种超时时间和重试次数
MaxLoginAttempts 3
TimeoutLogin 120
TimeoutIdle 600
TimeoutNoTransfer 900
TimeoutStalled 3600

#允许最大的同时连接用户数
MaxClients 10

#允许每个用户主机最大并发连接数
MaxClientsPerHost 3

AllowOverwrite no
AllowStoreRestart on
UseReverseDNS off

#如果shell为空时允许用户登录
RequireValidShell off

#将用户限制在自己的主目录下 ,这个设置很重要
DefaultRoot ~

#设置系统最大的进程数,防止dos攻击,默认是30
MaxInstances 10

#设置系统用于运行proftpd服务的用户和用户组(需要后面自己创建)
User FTPUSR
Group FTPGRP

#设置对全局的文件可以进行改写

AllowOverwrite on

#设置系统运行日志和文件传输日志
SystemLog /var/log/proftpd.syslog
TransferLog /var/log/proftpd.transferlog


######################## 下面是匿名登陆部分的设置 #################
#匿名用户登陆后访问的目录为 ftp用户的主目录

User ftp
Group ftpusers

#设置anonymous用户为系统实际用户ftp的别名
UserAlias anonymous ftp

#设置匿名用户同时在线最大用户数
#此用户数受限于前面的全局同时在线用户数
MaxClients 5

#设置welcome.msg文件作为用户登陆的提示信息文件
#.message文件作为用户每次进入的目录提示信息
DisplayLogin welcome.msg
DisplayFirstChdir .message

#设置一些特殊的权限,比如写文件和登陆限制等 (可以不用)

DenyAll


Order deny,allow
Deny from 61.101.201.0/32
Allow from all


######################## 完成匿名登陆的设置 #################


######################## 下面是磁盘限额Quota设置 ############
#启用磁盘限额
QuotaDirectoryTally on

SQLHomedirOnDemand on

#磁盘限额单位 b"|"Kb"|"Mb"|"Gb"
QuotaDisplayUnits "Mb"

QuotaEngine on

#磁盘限额日志记录
QuotaLog "/var/log/proftpd.quotalog"

#打开磁盘限额信息 "quote SITE QUOTA"命令
QuotaShowQuotas on
####################### 完成磁盘配额设置 ####################


####################### 下面是MySQL数据库部分设置 ###########
#数据库联接的信息
#FTP是数据库名,localhost是MySQL主机名,3306是mysql服务的端口号
#Michael是连接数据库的用户名,testpwd是密码(如果没有密码留空)
SQLConnectInfo FTP@localhost:3306 Michael testpwd

#数据库认证的类型
SQLAuthTypes Backend Plaintext

#指定用来做用户认证的表的有关信息。(将在后面创建)
SQLUserInfo FTPUSERS userid passwd uid gid homedir shell
SQLGroupInfo FTPGRPS groupname gid members

#数据库认证
SQLAuthenticate users groups usersetfast groupsetfast

#proftpd进行的mysql调用语句,别修改任何地方
SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail,files_in_avail, files_out_avail, files_xfer_avail FROM quotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" quotatallies

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

----------------------------------------

完成proftpd.conf配置文件后,需要进行数据库表的配置,包括创建表和插入数据
1、登陆mysql或者使用phpmyadmin工具创建数据库 FTP
#mysqladmin create FTP
2、运行下面的sql语句创建表和插入必要数据

-- phpMyAdmin SQL Dump
-- version 2.6.4-pl2
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2005 年 11 月 03 日 14:23
-- 服务器版本: 4.1.14
-- PHP 版本: 4.4.0
--
-- 数据库: `FTP`
--

-- --------------------------------------------------------

--
-- 表的结构 `FTPGRPS`
--

CREATE TABLE `FTPGRPS` (
`groupname` text NOT NULL,
`gid` smallint(6) NOT NULL default '0',
`members` text NOT NULL
) ENGINE=MyISAM;;

--
-- 导出表中的数据 `FTPGRPS`
--

INSERT INTO `FTPGRPS` VALUES ('FTPGRP', 2001, 'FTPUSR');
INSERT INTO `FTPGRPS` VALUES ('ftpusers', 2002, 'ftp');

-- --------------------------------------------------------

--
-- 表的结构 `FTPUSERS`
--

CREATE TABLE `FTPUSERS` (
`userid` text NOT NULL,
`passwd` text NOT NULL,
`uid` int(11) NOT NULL default '0',
`gid` int(11) NOT NULL default '0',
`homedir` text,
`shell` text
) ENGINE=MyISAM;;

--
-- 导出表中的数据 `FTPUSERS`
--

INSERT INTO `FTPUSERS` VALUES ('Michael', 'testftp', 2001, 2001, '/var/ftp/incoming', '');

-- --------------------------------------------------------

--
-- 表的结构 `quotalimits`
--

CREATE TABLE `quotalimits` (
`name` varchar(30) default NULL,
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
`per_session` enum('false','true') NOT NULL default 'false',
`limit_type` enum('soft','hard') NOT NULL default 'soft',
`bytes_in_avail` float NOT NULL default '0',
`bytes_out_avail` float NOT NULL default '0',
`bytes_xfer_avail` float NOT NULL default '0',
`files_in_avail` int(10) unsigned NOT NULL default '0',
`files_out_avail` int(10) unsigned NOT NULL default '0',
`files_xfer_avail` int(10) unsigned NOT NULL default '0'
) ENGINE=MyISAM;;

--
-- 导出表中的数据 `quotalimits`
--
-- 设置Michael用户,磁盘配额1G,可以上传下载流量2G,最多文件数10个
INSERT INTO `quotalimits` VALUES ('Michael', 'user', 'false', 'soft', 1.024e+09, 0, 2.048e+09, 10, 0, 0);

-- --------------------------------------------------------

--
-- 表的结构 `quotatallies`
--

CREATE TABLE `quotatallies` (
`name` varchar(30) NOT NULL default '',
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
`bytes_in_used` float NOT NULL default '0',
`bytes_out_used` float NOT NULL default '0',
`bytes_xfer_used` float NOT NULL default '0',
`files_in_used` int(10) unsigned NOT NULL default '0',
`files_out_used` int(10) unsigned NOT NULL default '0',
`files_xfer_used` int(10) unsigned NOT NULL default '0'
) ENGINE=MyISAM;;
如果你想设置quota,只要在ftpquotalimits表里设置一下就行了,这个表里的各个参数分别代表:

代码:
quotalimits表
name: - 用户帐号
quota type: - user, group, class, all (we use user)
per_session: - true or false (we use true)
limit_type: - 硬限制 or 软限制 (我们一般用硬限制)
bytes_in_avail: - 允许上传的字节数
bytes_out_avail: - 允许下载的字节数
bytes_xfer_avail: - 允许传输的字节数(包括上传/下载)
files_in_avail: - 允许上传的文件数
files_out_avail: - 允许下载的文件数
files_xfer_avail: - 允许传输的文件数(包括上传/下载)

五、完成最后的用户、用户组和目录设置
1、创建proftpd服务运行的用户和用户组
#pw groupadd FTPGRP -g 2001
#pw adduser FTPUSR -u 2001 -g 2001 -d /var/ftp/incoming -s /sbin/nologin

2、创建匿名登陆用户映射的系统用户和用户组
#pw groupadd ftpusers -g 2002
#pw adduser ftp -u 2002 -g 2002 -d /var/ftp/incoming -s /sbin/nologin

六、运行测试配置系统服务
1、运行proftpd服务
#/usr/local/sbin/proftpd

2、测试
在任何一台可以访问服务器的机器上测试ftp连接,使用Michael用户和testftp口令登陆,然后运行quote SITE QUOTA命令查看设置的磁盘限额信息
然后测试使用anonymous匿名用户登陆测试

3、监控和调试proftpd服务
#/usr/local/sbin/proftpd proftpd -n -d 5 -c /usr/local/etc/proftpd.conf
这样在测试和连接ftp的时候,可以在主机上看到所有的proftpd运行信息

4、日志监控
可以使用下面的命令查看系统日志、传送日志等
#tail -f /var/log/proftpd.syslog
#tail -f /var/log/proftpd.transferlog

5、配置系统自启动proftpd服务
#vi /etc/rc.conf
加入下面一行
proftpd_enable=”YES”
这样系统启动的时候会调用/usr/local/etc/rc.d/proftpd.sh脚本启动proftpd服务

ok
大功告成,大家可以根据自己的需要修改上面任何一个部分的细节,最好在自己理解的基础上进行修改,整个过程包括proftpd的配置都很简单。有问题欢迎大家来和我讨论,经过Michael测试使用,发现proftpd的确是个不错的东东!

----------------------------------------------------------
安全配置:
# ee /etc/ssh/sshd_config
修改22端口为您记得住的端口,防止SSH扫描。

计算机启动时候发现文件系统失效,将以-y参数运行fsck
# ee /etc/rc.conf
fsck_y_enable="YES"

使用mod_dosevasive对抗DDos攻击可参考Michael`s blog

为什么登录SSH和FTP时有长时间的停顿?
DNS引起的。

在proftpd.conf里写入
UseReverseDNS off
IdentLookups off

在sshd_config里写入
UseDNS no

FreeBSD下用rsync对网站进行同步镜像备份

前言
rsync是Linux系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。rsync的最新版本可以从 http://rsync.samba.org/rsync/获得。它的特性如下:
1、可以镜像保存整个目录树和文件系统。
2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。
3、无须特殊权限即可安装。
4、优化的流程,文件传输效率高。
5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
本文介绍了如何使用rsync服务从Linux到Windows和linux进行远程备份
软件及平台
FreeBSD 5.2 (Server and Client)

Server IP:192.168.83.80 Hostname: freebsd-1
Client IP:192.168.83.81 Hostname: freebsd-2

apache_1.3.29
rsync-2.5.7
目的
备份Rsync Server(192.168.83.80)上的 /usr/local/apache2/htdocs 目录下所有内容,到Rsync Client(192.168.83.81)的/backup/www 下


安装及配置

一,Rsync Server

Step 1: 安装
freebsd-1#cd /usr/ports/net/rsync
freebsd-1#make install clean

Step 3: 配置rsyncd.conf
freebsd-1#vi /usr/local/etc/rsyncd.conf //加入以下内容

[www]
comment = web server backup
path = /usr/local/apache2/htdocs
auth users = tonny
uid = nobody
gid = nogroup
secrets file = /usr/local/etc/rsyncd.secrets
read only = no

Step 4: 配置rsyncd.secrets
freebsd-1#vi /usr/local/etc/rsyncd.secrets //加入以下内容

tonny:123456 // 认证所需的用户名/密码

freebsd-1#chmod 600 rsyncd.secrets

Step 5: 配置rc.conf
freebsd-1#vi /etc/rc.conf //加入以下内容

rsyncd_enable="YES"

Step 6: 启动 Rsync daemon模式
freebsd-1#vi /usr/local/etc/rc.d/rsyncd.sh //加入以下内容

command_args="-4 --daemon" <<<--- 启用ipv4 协议

freebsd-1#/usr/local/etc/rc.d/rsyncd.sh start

Step 7: 检查Rsync daemon启动状态
freebsd-1# sockstat | grep rsync
root rsync 440 3 dgram -> /var/run/log
root rsync 440 4 tcp4 *:873 *:*

二,Rsync Client

Step 1: 安装
freebsd-2#cd /usr/ports/net/rsync
freebsd-2#make install clean

Step 2: 建立备份目录
freebsd-2#cd /
freebsd-2#mkdir -p backup/www

Step 3: 配置rsyncd.secrets
freebsd-2#vi /usr/local/etc/rsyncd.secrets //加入以下内容

123456 //Rsync Server上的认证密码,不用输入用户名

freebsd-2#chmod 600 rsyncd.secrets

Step 4: 检查备份同步状态
freebsd-2#/usr/local/bin/rsync -avzP --delete
--password-file=/usr/local/etc/rsyncd.secrets tonny@192.168.83.80::www
/backup/www/

--->>> 将Rsync Server的Web页面,备份或同步到了Rsync Client的/backup/www下


Step 5: Auto Rsync Shell:
freebsd-2#cd /usr/local/etc/rc.d/

freebsd-2#chmod a-x rsyncd.sh

freebsd-2#vi rsync.sh //加入以下内容

#!/bin/sh

/usr/local/bin/rsync -avzP --delete
--password-file=/usr/local/etc/rsyncd.secrets tonny@192.168.83.80::www
/backup/www/

freebsd-2#chmod a+x rsync.sh

freebsd-2#crontab -e //加入以下内容(每天下午5点半自动备份同步)

30 17 * * * /usr/local/etc/rc.d/rsync.sh

三,高级应用(Rsync With SSH)

Rsync Server
freebsd-1#/usr/bin/ssh-keygen -d

Rsync Client
freebsd-2#/usr/bin/ssh-keygen -d

freebsd-2#scp ~/.ssh/id_dsa.pub 192.168.83.80:/root/.ssh/authorized_keys

freebsd-2#ssh-agent csh 或 (ssh-agent bash) --->>> #echo $SHELL
查看当前SHELL
freebsd-2#ssh-add id_dsa --->>> 输入 passphase


freebsd-2#/usr/local/bin/rsync -avzP --delete -e ssh 192.168.83.80:/usr/local/apache2/htdocs/ /backup/www
htdocs/不加斜线,会在备备份机上建立一个文件夹

PS: 参数说明

-a, --archive archive mode, equivalent to -rlptgoD
//档案模式
-v, --verbose
//详细模式
-z, --compress compress file data
//压缩文件
-P equivalent to --partial --progress
//显示进度
--delete
This tells rsync to delete any files on the receiving side
that
aren't on the sending side.
//保持远程机器的文件同步性
-e ssh use SSH connection
//使用SSH连接,保证数据安全
-u增量同步,即服务器端有新文件时客户端只同步新文件

开启mod_rewrite模块很容易犯的500错误

在.htaccess文件中加入RewriteEngine On如果访问页面显示500错误,这时候你要去检查配置段中AllowOverride选项,一般apache刚安装的时候出于安全考虑的AllowOverride会处于None状态,而也会处于AuthConfig状态,而这些状态是不适合mod_rewrite运转的,正确的状态应该添加FileInfo指令,具体配置方法可以参考http://apache.w8a.com/mod/core.html#allowoverride 如果是虚拟主机,当然还需要检查虚拟主机的对应目录的AllowOverride是否正确,通过这些检查,500错误应该就没有了,对应的模块也就能使用了.

About July 2007

This page contains all entries posted to Gccgle BLOG in July 2007. They are listed from oldest to newest.

August 2007 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.34