﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-kwj-文章分类-Linux</title><link>http://www.blogjava.net/kwj/category/29250.html</link><description>蓝色旅行，与你携手！</description><language>zh-cn</language><lastBuildDate>Mon, 07 Apr 2008 14:45:10 GMT</lastBuildDate><pubDate>Mon, 07 Apr 2008 14:45:10 GMT</pubDate><ttl>60</ttl><item><title>用户与用户组</title><link>http://www.blogjava.net/kwj/articles/191191.html</link><dc:creator>木剑</dc:creator><author>木剑</author><pubDate>Mon, 07 Apr 2008 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/kwj/articles/191191.html</guid><wfw:comment>http://www.blogjava.net/kwj/comments/191191.html</wfw:comment><comments>http://www.blogjava.net/kwj/articles/191191.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kwj/comments/commentRss/191191.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kwj/services/trackbacks/191191.html</trackback:ping><description><![CDATA[用户（user）和用户组（group）相关的配置文件、命令或目录；<br />
<br />
<br />
1、与用户（user）和用户组（group）相关的配置文件；<br />
<br />
<br />
1）与用户（user）相关的配置文件；<br />
<br />
/etc/passwd 注：用户（user）的配置文件；<br />
/etc/shadow 注：用户（user）影子口令文件；<br />
<br />
<br />
2）与用户组（group）相关的配置文件；<br />
<br />
/etc/group 注：用户组（group）配置文件；<br />
/etc/gshadow 注：用户组（group）的影子文件；<br />
<br />
<br />
2、管理用户（user）和用户组（group）的相关工具或命令；<br />
<br />
<br />
1）管理用户（user）的工具或命令；<br />
<br />
useradd&nbsp;&nbsp;&nbsp; 注：添加用户<br />
adduser&nbsp;&nbsp;&nbsp; 注：添加用户<br />
passwd&nbsp;&nbsp;&nbsp;&nbsp; 注：为用户设置密码<br />
usermod&nbsp; 注：修改用户命令，可以通过usermod 来修改登录名、用户的家目录等等；<br />
pwcov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：同步用户从/etc/passwd 到/etc/shadow<br />
pwck&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整；<br />
pwunconv&nbsp; 注：是pwcov 的立逆向操作，是从/etc/shadow和 /etc/passwd 创建/etc/passwd ，然后会删除 /etc/shadow 文件；<br />
finger&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：查看用户信息工具<br />
id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：查看用户的UID、GID及所归属的用户组<br />
chfn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：更改用户信息工具<br />
su&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：用户切换工具<br />
sudo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：sudo 是通过另一个用户来执行命令（execute a command as another user），su 是用来切换用户，然后通过切换到的用户来完成相应的任务，但sudo 能后面直接执行命令，比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令；但得通过visudo 来编辑/etc/sudoers来实现；<br />
visudo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：visodo 是编辑 /etc/sudoers 的命令；也可以不用这个命令，直接用vi 来编辑 /etc/sudoers 的效果是一样的；<br />
sudoedit&nbsp; 注：和sudo 功能差不多；<br />
<br />
<br />
2）管理用户组（group）的工具或命令；<br />
<br />
groupadd&nbsp; 注：添加用户组；<br />
groupdel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：删除用户组；<br />
groupmod&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：修改用户组信息<br />
groups&nbsp;&nbsp;&nbsp;&nbsp; 注：显示用户所属的用户组<br />
grpck<br />
grpconv&nbsp;&nbsp; 注：通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ，如果/etc/gshadow 不存在则创建；<br />
grpunconv&nbsp;&nbsp; 注：通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ，然后删除gshadow文件；<br />
<br />
<br />
3、/etc/skel 目录；<br />
<br />
/etc/skel目录一般是存放用户启动文件的目录，这个目录是由root权限控制，当我们添加用户时，这个目录下的文件自动复制到新添加的用户的家目录下；/etc/skel 目录下的文件都是隐藏文件，也就是类似.file格式的；我们可通过修改、添加、删除/etc/skel目录下的文件，来为用户提供一个统一、标准的、默认的用户环境；<br />
<br />
[root@localhost beinan]# ls -la /etc/skel/<br />
总用量 92<br />
drwxr-xr-x&nbsp;&nbsp;&nbsp; 3 root root&nbsp; 4096&nbsp; 8月 11 23:32 .<br />
drwxr-xr-x&nbsp; 115 root root 12288 10月 14 13:44 ..<br />
-rw-r--r--&nbsp;&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp; 24&nbsp; 5月 11 00:15 .bash_logout<br />
-rw-r--r--&nbsp;&nbsp;&nbsp; 1 root root&nbsp;&nbsp; 191&nbsp; 5月 11 00:15 .bash_profile<br />
-rw-r--r--&nbsp;&nbsp;&nbsp; 1 root root&nbsp;&nbsp; 124&nbsp; 5月 11 00:15 .bashrc<br />
-rw-r--r--&nbsp;&nbsp;&nbsp; 1 root root&nbsp; 5619 2005-03-08&nbsp; .canna<br />
-rw-r--r--&nbsp;&nbsp;&nbsp; 1 root root&nbsp;&nbsp; 438&nbsp; 5月 18 15:23 .emacs<br />
-rw-r--r--&nbsp;&nbsp;&nbsp; 1 root root&nbsp;&nbsp; 120&nbsp; 5月 23 05:18 .gtkrc<br />
drwxr-xr-x&nbsp;&nbsp;&nbsp; 3 root root&nbsp; 4096&nbsp; 8月 11 23:16 .kde<br />
-rw-r--r--&nbsp;&nbsp;&nbsp; 1 root root&nbsp;&nbsp; 658 2005-01-17&nbsp; .zshrc<br />
<br />
/etc/skel 目录下的文件，一般是我们用useradd 和adduser 命令添加用户（user）时，系统自动复制到新添加用户（user）的家目录下；如果我们通过修改 /etc/passwd 来添加用户时，我们可以自己创建用户的家目录，然后把/etc/skel 下的文件复制到用户的家目录下，然后要用chown 来改变新用户家目录的属主；<br />
<br />
4、/etc/login.defs 配置文件；<br />
<br />
/etc/login.defs 文件是当创建用户时的一些规划，比如创建用户时，是否需要家目录，UID和GID的范围；用户的期限等等，这个文件是可以通过root来定义的；<br />
<br />
比如Fedora 的 /etc/logins.defs 文件内容；<br />
<br />
# *REQUIRED*<br />
#&nbsp;&nbsp; Directory where mailboxes reside, _or_ name of file, relative to the<br />
#&nbsp;&nbsp; home directory.&nbsp; If you _do_ define both, MAIL_DIR takes precedence.<br />
#&nbsp;&nbsp; QMAIL_DIR is for Qmail<br />
#<br />
#QMAIL_DIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Maildir<br />
MAIL_DIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var/spool/mail&nbsp; 注：创建用户时，要在目录/var/spool/mail中创建一个用户mail文件；<br />
#MAIL_FILE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .mail<br />
<br />
# Password aging controls:<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS_MAX_DAYS&nbsp;&nbsp; Maximum number of days a password may be used.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS_MIN_DAYS&nbsp;&nbsp; Minimum number of days allowed between password changes.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS_MIN_LEN&nbsp;&nbsp;&nbsp; Minimum acceptable password length.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS_WARN_AGE&nbsp;&nbsp; Number of days warning given before a password expires.<br />
#<br />
PASS_MAX_DAYS&nbsp;&nbsp; 99999&nbsp;&nbsp; 注：用户的密码不过期最多的天数；<br />
PASS_MIN_DAYS&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：密码修改之间最小的天数；<br />
PASS_MIN_LEN&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：密码最小长度；<br />
PASS_WARN_AGE&nbsp;&nbsp; 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注：<br />
<br />
#<br />
# Min/max values for automatic uid selection in useradd<br />
#<br />
UID_MIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 500&nbsp; 注：最小UID为500 ，也就是说添加用户时，UID 是从500开始的；<br />
UID_MAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60000&nbsp;&nbsp; 注：最大UID为60000；<br />
<br />
#<br />
# Min/max values for automatic gid selection in groupadd<br />
#<br />
GID_MIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 500&nbsp;&nbsp; 注：GID 是从500开始；<br />
GID_MAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60000<br />
<br />
#<br />
# If defined, this command is run when removing a user.<br />
# It should remove any at/cron/print jobs etc. owned by<br />
# the user to be removed (passed as the first argument).<br />
#<br />
#USERDEL_CMD&nbsp;&nbsp;&nbsp; /usr/sbin/userdel_local<br />
<br />
#<br />
# If useradd should create home directories for users by default<br />
# On RH systems, we do. This option is ORed with the -m flag on<br />
# useradd command line.<br />
#<br />
CREATE_HOME&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp; 注：是否创用户家目录，要求创建；<br />
<br />
<br />
5、/etc/default/useradd 文件；<br />
<br />
通过useradd 添加用户时的规则文件；<br />
# useradd defaults file<br />
GROUP=100<br />
HOME=/home&nbsp; 注：把用户的家目录建在/home中；<br />
INACTIVE=-1&nbsp; 注：是否启用帐号过期停权，-1表示不启用；<br />
EXPIRE=&nbsp;&nbsp; 注：帐号终止日期，不设置表示不启用；<br />
SHELL=/bin/bash&nbsp; 注：所用SHELL的类型；<br />
SKEL=/etc/skel&nbsp;&nbsp; 注： 默认添加用户的目录默认文件存放位置；也就是说，当我们用adduser添加用户时，用户家目录下的文件，都是从这个目录中复制过去的； <br />
<img src ="http://www.blogjava.net/kwj/aggbug/191191.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kwj/" target="_blank">木剑</a> 2008-04-07 10:49 <a href="http://www.blogjava.net/kwj/articles/191191.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu   配置phpmyadmin</title><link>http://www.blogjava.net/kwj/articles/182561.html</link><dc:creator>木剑</dc:creator><author>木剑</author><pubDate>Wed, 27 Feb 2008 13:41:00 GMT</pubDate><guid>http://www.blogjava.net/kwj/articles/182561.html</guid><wfw:comment>http://www.blogjava.net/kwj/comments/182561.html</wfw:comment><comments>http://www.blogjava.net/kwj/articles/182561.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kwj/comments/commentRss/182561.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kwj/services/trackbacks/182561.html</trackback:ping><description><![CDATA[sudo apt-get install phpmyadmin<br />
<br />
安装完后是在/usr/share/phpmyadmin/下。<br />
<br />
udo ln -s /usr/share/phpmyadmin&nbsp;&nbsp;&nbsp; /apache目录/phpmyadmin (增加软连接)<br />
<img src ="http://www.blogjava.net/kwj/aggbug/182561.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kwj/" target="_blank">木剑</a> 2008-02-27 21:41 <a href="http://www.blogjava.net/kwj/articles/182561.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单的条件测试和expr用法</title><link>http://www.blogjava.net/kwj/articles/180015.html</link><dc:creator>木剑</dc:creator><author>木剑</author><pubDate>Fri, 15 Feb 2008 01:55:00 GMT</pubDate><guid>http://www.blogjava.net/kwj/articles/180015.html</guid><wfw:comment>http://www.blogjava.net/kwj/comments/180015.html</wfw:comment><comments>http://www.blogjava.net/kwj/articles/180015.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kwj/comments/commentRss/180015.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kwj/services/trackbacks/180015.html</trackback:ping><description><![CDATA[test一般有两种格式，即：<br />
test condition<br />
或[condition]<br />
使用方括号是，在条件两边要加上空格。<br />
<br />
最常用的文件状态<br />
-d 目录<br />
-f 正规文件<br />
-L 符号连接<br />
-r 可读<br />
-s 文件长度大于0，非空<br />
-w 可写<br />
-x 可执行<br />
<br />
test -w test.txt<br />
echo $?&nbsp; #查看测试的结果，0为真，1为假<br />
[ -w test.txt ]<br />
<br />
[ -w test.txt -a -w test2.txt ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #-a表示&#8220;与&#8221;的关系<br />
[ -w test.txt -o -w test2.txt ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #-o表示&#8220;或&#8221;的关系<br />
<br />
测试字符串<br />
=,!=,-z(空串),-n(非空串)<br />
<br />
TAPE="/dev/rmt0";<br />
TAPE2="/dev/rmt1";<br />
[ "$TAPE" = "$TAPE" ]<br />
<br />
测试数值<br />
-eq,-ne,-gt,-lt,-le,-ge.<br />
<br />
number=100<br />
[ "$number" -eq "100" ]<br />
<br />
<br />
expr用法<br />
expr 10+10<br />
<br />
expr 20\*10&nbsp; #转义<br />
<br />
loop=0<br />
loop=`expr $loop+1`&nbsp; #反引号里面的内容为执行命令<br />
<br />
expr "hello"+30&gt;/dev/null 2&gt;&amp;1<br />
<img src ="http://www.blogjava.net/kwj/aggbug/180015.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kwj/" target="_blank">木剑</a> 2008-02-15 09:55 <a href="http://www.blogjava.net/kwj/articles/180015.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>grep的应用</title><link>http://www.blogjava.net/kwj/articles/179933.html</link><dc:creator>木剑</dc:creator><author>木剑</author><pubDate>Thu, 14 Feb 2008 07:22:00 GMT</pubDate><guid>http://www.blogjava.net/kwj/articles/179933.html</guid><wfw:comment>http://www.blogjava.net/kwj/comments/179933.html</wfw:comment><comments>http://www.blogjava.net/kwj/articles/179933.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kwj/comments/commentRss/179933.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kwj/services/trackbacks/179933.html</trackback:ping><description><![CDATA[grep的应用举例<br />
<br />
grep "kwj" /etc/passwd<br />
<br />
ps ax | grep "named"<br />
<br />
查询多个文件<br />
grep "sort" *.doc<br />
<br />
显示匹配的所有行行数<br />
grep -n "123" data.txt<br />
<br />
显示非匹配行<br />
grep -v "123" data.txt<br />
<br />
大小写不敏感匹配<br />
grep -i "sept" data.txt<br />
<br />
正则匹配<br />
grep '[a-z]123' data.txt<br />
<br />
grep '^[^123]' data.txt<br />
<br />
grep '4\{2\}' data.txt<br />
<br />
grep '^$' myfile #匹配空行<br />
<br />
<br />
<img src ="http://www.blogjava.net/kwj/aggbug/179933.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kwj/" target="_blank">木剑</a> 2008-02-14 15:22 <a href="http://www.blogjava.net/kwj/articles/179933.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell输入与输出</title><link>http://www.blogjava.net/kwj/articles/179925.html</link><dc:creator>木剑</dc:creator><author>木剑</author><pubDate>Thu, 14 Feb 2008 06:57:00 GMT</pubDate><guid>http://www.blogjava.net/kwj/articles/179925.html</guid><wfw:comment>http://www.blogjava.net/kwj/comments/179925.html</wfw:comment><comments>http://www.blogjava.net/kwj/articles/179925.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kwj/comments/commentRss/179925.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kwj/services/trackbacks/179925.html</trackback:ping><description><![CDATA[shell输入与输出<br />
<br />
echo "Test"<br />
<br />
read name&nbsp;&nbsp;&nbsp; //从标准的输入（键盘）获得字符给变量name赋值<br />
echo $name<br />
<br />
cat命令可以用来显示文件，创建文件。当显示文件时，它不会分页显示，它会一下显示完整个文件，所以可以通过管道把输出传递到另一个具有分页功能的命令。<br />
如cat myfile | more<br />
&nbsp; cat myfile | pg<br />
<br />
如果希望创建一个新文件，并向其中输入一些内容，可以按如下操作：<br />
cat&gt;myfile<br />
This is a new file.<br />
&lt;CTRL-D&gt;&nbsp; //键盘按ctrl+D<br />
<br />
管道符号|是一个很重要的符号，命令1 | 命令2 这样的格式，通过管道符号命令1执行的输出结果作为命令2的输入。<br />
ps aux | grep "java"<br />
<br />
文件重定向<br />
ls &gt; ls.out表示ls的结果放在ls.out中。<br />
ls &gt;&gt; ls.out表示ls的结果追加到ls.out的末尾，不覆盖到原来的内容。<br />
<br />
重定向标准错误输出<br />
ls -al myfile 2&gt;my.err<br />
<br />
ls -al &gt;ls.out 2&gt;&amp;1&nbsp;&nbsp; 错误也同正确输出同样放在一个文件ls.out<br />
<br />
<br />
<img src ="http://www.blogjava.net/kwj/aggbug/179925.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kwj/" target="_blank">木剑</a> 2008-02-14 14:57 <a href="http://www.blogjava.net/kwj/articles/179925.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>正则表达式的使用</title><link>http://www.blogjava.net/kwj/articles/179888.html</link><dc:creator>木剑</dc:creator><author>木剑</author><pubDate>Thu, 14 Feb 2008 03:01:00 GMT</pubDate><guid>http://www.blogjava.net/kwj/articles/179888.html</guid><wfw:comment>http://www.blogjava.net/kwj/comments/179888.html</wfw:comment><comments>http://www.blogjava.net/kwj/articles/179888.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kwj/comments/commentRss/179888.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kwj/services/trackbacks/179888.html</trackback:ping><description><![CDATA[<div align="center"><img alt="" src="http://www.blogjava.net/images/blogjava_net/kwj/iCapture-0034.JPG" height="200" width="571" /></div>
<br />
<img src ="http://www.blogjava.net/kwj/aggbug/179888.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kwj/" target="_blank">木剑</a> 2008-02-14 11:01 <a href="http://www.blogjava.net/kwj/articles/179888.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>&amp;&amp;和||的用法</title><link>http://www.blogjava.net/kwj/articles/179885.html</link><dc:creator>木剑</dc:creator><author>木剑</author><pubDate>Thu, 14 Feb 2008 02:39:00 GMT</pubDate><guid>http://www.blogjava.net/kwj/articles/179885.html</guid><wfw:comment>http://www.blogjava.net/kwj/comments/179885.html</wfw:comment><comments>http://www.blogjava.net/kwj/articles/179885.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kwj/comments/commentRss/179885.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kwj/services/trackbacks/179885.html</trackback:ping><description><![CDATA[命令1 &amp;&amp; 命令2<br />
表示只有命令1执行成功了，才执行命令2<br />
如：<br />
mv /apps/bin /apps/dev/bin &amp;&amp; rm -r /apps/bin<br />
这样可以保证/apps/bin被成功的移动道/apps/div/bin目录下时才去删除/apps/bin。<br />
<br />
命令1 || 命令2<br />
表示只有命令1执行失败了，才执行命令2<br />
cp test.txt test2.txt || echo "if you are seeing this cp failed"<br />
<br />
<br />
<img src ="http://www.blogjava.net/kwj/aggbug/179885.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kwj/" target="_blank">木剑</a> 2008-02-14 10:39 <a href="http://www.blogjava.net/kwj/articles/179885.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu配置php</title><link>http://www.blogjava.net/kwj/articles/179060.html</link><dc:creator>木剑</dc:creator><author>木剑</author><pubDate>Sat, 02 Feb 2008 09:17:00 GMT</pubDate><guid>http://www.blogjava.net/kwj/articles/179060.html</guid><wfw:comment>http://www.blogjava.net/kwj/comments/179060.html</wfw:comment><comments>http://www.blogjava.net/kwj/articles/179060.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kwj/comments/commentRss/179060.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kwj/services/trackbacks/179060.html</trackback:ping><description><![CDATA[<div class="Content-body" id="logcontent_67" style="table-layout: fixed;"><span style="color: red;">（信息的保存，只为方便查阅之用）
</span>
<p>本文是站长学习Ubuntu的使用手册，此手册会不定期更新。<br />
1、安装<br />
只设置网络部分，其它部分全不安装，系统进入后自行安装。<br />
2、系统设置篇<br />
Ubuntu默认root是没有密码的，那么进入到init 1时自动进入到shell,<br />
#sudo passwd root改变root's password<br />
3、C/C++编译环境安装配置</p>
<p>#apt 命令默认从cdrom安装</p>
<p>注释掉/etc/apt/sources.list中的deb cdrom项, apt会从互联网上安装安装gcc，make<br />
安装gcc，make</p>
<p>sudo apt-get install gcc g++ libgcc1 libg++ make gdb automake</p>
<p><br />
测试环境配置<br />
编写cpp文件</p>
<p><br />
$ echo '<br />
#include &lt;stdio.h&gt;<br />
#include &lt;iostream&gt;<br />
using namespace std;<br />
int main() {<br />
&nbsp;&nbsp;&nbsp; printf("Hello<br />
");<br />
&nbsp;&nbsp;&nbsp; cout&lt;&lt;"World!!<br />
";<br />
} ' &gt; helloworld.cpp<br />
编写makefile</p>
<p><br />
$ echo -e '<br />
all:helloworld<br />
helloworld:helloworld.cpp<br />
g++ -g -o $@ helloworld.cpp<br />
' &gt; makefile<br />
}</p>
<p>编译执行</p>
<p>$ make all<br />
$ helloworld<br />
如果屏幕输出</p>
<p>Hello<br />
World!!<br />
则安装成功</p>
<p>4、远程ssh安装<br />
#sudo apt-get install ssh<br />
5、Apache安装<br />
#sudo apt-get install apache2<br />
#sudo vi /etc/apache2/apache2.conf<br />
增加内容<br />
ServerName 192.168.2.1(服务器IP地址)<br />
#sudo ./apache2 restart<br />
增加安全模块，以保障Apache服务的正常运行，现在我们安装mod-security。（可选）<br />
#sudo apt-get install libapache2-mod-security<br />
sudo apt-get install libapache2-mod-security<br />
该模块默认是没激活的，我们可以在/etc/apache2/mods-available目录下看到有mod-security.load文件，但在/etc/apache2/mods-enabled目录却没有它的软链接。我们现在激活它：</p>
<p>$sudo ln -s /etc/apache2/mods-available/mod-security.load /etc/apache2/mods-enabled/mod-security.load<br />
$sudo cp /usr/share/doc/libapache2-mod-security/examples/httpd2.conf.example-full /etc/apache2/mods-available/mod-security.conf<br />
$sudo cp /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-available/mod-security.conf.orig<br />
#sudo vi /etc/ports.conf<br />
Listen 80<br />
Listen 443<br />
#Listen&nbsp; 8080(如果配置JSP虚拟主机的话，请关闭此处端口)</p>
<p>NameVirtualHost 220.201.35.7<br />
#NameVirtualHost *:443<br />
$sudo vi /etc/apache2/mods-available/mod-security.conf</p>
<p>==== mod-security.conf 文件内容开始====<br />
# 检测内容长度以避免堆溢出攻击<br />
SecFilterForceByteRange 32 254 =&gt;SecFilterForceByteRange 32 126</p>
<p># debug设置<br />
SecFilterDebugLevel 9 =&gt;SecFilterDebugLevel 0</p>
<p># 设置缺省的动作<br />
SecFilterDefaultAction "deny,log,status:499" =&gt;SecFilterDefaultAction "deny,log,status:404"</p>
<p># 把设置传递给子目录<br />
SecFilterInheritance Off</p>
<p># Redirect user on filter match<br />
# 当匹配sh的时候,重新定向到一个特殊的警告页面,该页面是自行编写的，写些警告的话让攻击者知难而退，该段先不要生效，等到相关配置配好之后再失效不迟。记住在配好之后要使之生效。<br />
#SecFilter sh redirect:http://localhost/hack/warning.htm</p>
<p># Prevent OS specific keywords<br />
#过滤一些敏感的东西，我们使用*是为了攻击者使用/etc/./passwd来绕开检测<br />
SecFilter /etc/passwd =&gt;SecFilter /etc/*passwd<br />
SecFilter /bin/*sh</p>
<p># Very crude filters to prevent SQL injection attacks<br />
# 防止SQL插入(SQL Injection)攻击<br />
SecFilter "delete[[:space:]]+from"<br />
SecFilter "insert[[:space:]]+into"<br />
SecFilter "select.+from"<br />
SecFilter "select[[:space:]]+from"<br />
SecFilter "union[[:space:]]+from"<br />
==== mod-security.conf 文件内容结束====</p>
<p>sudo ln -s /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-enabled/mod-security.conf<br />
重启Apache2服务即可。</p>
<p>虚拟主机设置<br />
Ubuntu 的 /etc/apache2/ 目录下有个 Apache2 的主配置文件 apache2.conf。在该文件中我们可以看到有这么一行内容：</p>
<p>Include /etc/apache2/sites-enabled/[^.#]*<br />
这行的意思表明该文件包含了 /etc/apache2/sites-enabled/ 目录中文件名不含 "." 或 "#"
这两个字符的所有文件。而当我们列出该目录的文件时，发现只有一个 000-default 的软链接文件，实际连接的是
/etc/apache2/sites-available 目录中的 default 文件，不难看出该文件的文件名中并不包含 "." 或
"#"。所以这个文件当然是要被配置文件 apache2.conf
所包含的了。打开该文件，发现它其实是一个虚拟主机的配置文件，不过由于该文件中的虚拟主机为
*，所以它实际上是一个通用配置文件。如果我们要建立虚拟主机的话，那么就要把该文件改成如下所示：</p>
<p>#NameVirtualHost 220.201.35.7<br />
&lt;VirtualHost 220.201.35.7&gt;<br />
&nbsp;&nbsp;&nbsp; ServerName ubuntu.91ds.com<br />
&nbsp;&nbsp;&nbsp; ServerAlias <a href="http://www.ubuntu.91ds.com/">www.ubuntu.91ds.com</a><br />
&nbsp;&nbsp;&nbsp; ServerAdmin <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#119;&#101;&#98;&#109;&#97;&#115;&#116;&#101;&#114;&#64;&#57;&#49;&#100;&#115;&#46;&#99;&#111;&#109;">webmaster@91ds.com</a><br />
&nbsp;&nbsp;&nbsp; DocumentRoot /var/www/ubuntu<br />
&nbsp;&nbsp;&nbsp; &lt;Directory /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options FollowSymLinks<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AllowOverride None<br />
&nbsp;&nbsp;&nbsp; &lt;/Directory&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;Directory /var/www/ubuntu&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options Indexes FollowSymLinks MultiViews<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AllowOverride None<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order allow,deny<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allow from all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # This directive allows us to have apache2's default start page<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # in /apache2-default/, but still have / go to the right place<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Commented out for Ubuntu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #RedirectMatch ^/$ /apache2-default/<br />
&nbsp;&nbsp;&nbsp; &lt;/Directory&gt;<br />
&lt;/VirtualHost&gt;<br />
#&nbsp;&nbsp;&nbsp; ScriptAlias /cgi-bin/ /var/www/ubuntu/cgi-bin/<br />
#&nbsp;&nbsp;&nbsp; &lt;Directory "/var/www/ubunut/cgi-bin"&gt;<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AllowOverride None<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options ExecCGI -MultiViews +SymLinksIfOwnerMatch<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order allow,deny<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Allow from all<br />
#&nbsp;&nbsp;&nbsp; &lt;/Directory&gt;<br />
&lt;VirtualHost 220.201.35.7&gt;<br />
&nbsp;&nbsp;&nbsp; ServerName linux.91ds.com<br />
&nbsp;&nbsp;&nbsp; ServerAdmin <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#119;&#101;&#98;&#109;&#97;&#115;&#116;&#101;&#114;&#64;&#57;&#49;&#100;&#115;&#46;&#99;&#111;&#109;">webmaster@91ds.com</a><br />
&nbsp;&nbsp;&nbsp; DocumentRoot /var/www/linux<br />
&nbsp;&nbsp;&nbsp; &lt;Directory /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options FollowSymLinks<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AllowOverride None<br />
&nbsp;&nbsp;&nbsp; &lt;/Directory&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;Directory /var/www/linux&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options Indexes FollowSymLinks MultiViews<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AllowOverride None<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order allow,deny<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allow from all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # This directive allows us to have apache2's default start page<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # in /apache2-default/, but stillhave / go to the right place<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Commented out for Ubuntu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #RedirectMatch ^/$ /apache2-default/<br />
&nbsp;&nbsp;&nbsp; &lt;/Directory&gt;<br />
#&nbsp;&nbsp;&nbsp; ScriptAlias /cgi-bin/ /var/www/ubuntu/cgi-bin/<br />
#&nbsp;&nbsp;&nbsp; &lt;Directory "/var/www/ubunut/cgi-bin"&gt;<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AllowOverride None<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options ExecCGI -MultiViews +SymLinksIfOwnerMatch<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order allow,deny<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Allow from all<br />
#&nbsp;&nbsp;&nbsp; &lt;/Directory&gt;<br />
&nbsp;&nbsp;&nbsp; ErrorLog /var/log/apache2/error.log</p>
<p>&nbsp;&nbsp;&nbsp; # Possible values include: debug, info, notice, warn, error, crit,<br />
&nbsp;&nbsp;&nbsp; # alert, emerg.<br />
&nbsp;&nbsp;&nbsp; LogLevel warn</p>
<p>#&nbsp;&nbsp;&nbsp; CustomLog /var/log/apache2/access.log combined<br />
#&nbsp;&nbsp;&nbsp; ServerSignature On</p>
<p>#&nbsp;&nbsp;&nbsp; Alias /doc/ "/usr/share/doc/"<br />
#&nbsp;&nbsp;&nbsp; &lt;Directory "/usr/share/doc/"&gt;<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options Indexes MultiViews FollowSymLinks<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AllowOverride None<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order deny,allow<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deny from all<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Allow from 127.0.0.0/255.0.0.0 ::1/128<br />
#&nbsp;&nbsp;&nbsp; &lt;/Directory&gt;</p>
<p>&lt;/VirtualHost&gt;<br />
下面我们来分析一下上面这段设置中与虚拟主机有关的设置语句：</p>
<p>NameVirtualHost 220.201.35.7：表示我们要做的是一个基于名称的虚拟主机，且其 IP 地址为 220.201.35.7</p>
<p>&lt;VirtualHost 220.201.35.7&gt; 和 &lt;/VirtualHost&gt;：表示在其中的是一个虚拟主机的配置</p>
<p>ServerName ubuntu.91ds.com：设置虚拟主机的域名</p>
<p>ServerAdmin <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#119;&#101;&#98;&#109;&#97;&#115;&#116;&#101;&#114;&#64;&#57;&#49;&#100;&#115;&#46;&#99;&#111;&#109;">webmaster@91ds.com</a>：设置该虚拟主机网管员的邮件</p>
<p>DocumentRoot /var/www/ubuntu：设置该虚拟主机的主目录路径</p>
<p>ErrorLog /var/log/apache2/error.log：设置该虚拟主机的出错信息</p>
<p>CustomLog /var/log/apache2/access.log combined：设置该虚拟主机的访问信息<br />
#sudo a2dissite ubuntu<br />
#sudo /etc/init.d/apache2 restart<br />
即可，这样既可以维护&nbsp;ubuntu 这个站点，同时还不影响其他站点的正常运行。<br />
4. 高级配置<br />
上面谈了一下简单的虚拟主机配置方法。这个基本上能满足我们大部分的需要。但如果要是安装 Zope+Plone
的话，上面的这点设置是远远不够的，由于 Zope+Plone
结构所采用的端口并非是80端口，所以我们还得做端口重定向。为了能够做这个，我们得激活 Rewrite 和 Proxy
两个模块。激活模块很简单，同站点配置目录一样，在 Apache2 中也有两个模块配置目录：mods-available 和
mods-enabled。在 mods-available 目录中的是所有可用的模块，而在 mods-enabled 目录中的则是已被安装到
Apache2 中的模块。由于在 mods-available 目录中已经有了 Rewrite 和 Proxy
模块的配置引导文件，所以只需要简单地将其安装到 Apache2 中即可。使用命令：</p>
<p>sudo a2enmod rewrite<br />
sudo a2enmod proxy<br />
然后，添加虚拟主机站点 plone.firehare.com，同 edunuke
站点创建相似在/etc/apache2/sites-available/ 目录中建立一个文件 plone。显然这个文件名中是没有 "." 或
"#" 这两个字符的了。然后编辑该文件：</p>
<p>&lt;VirtualHost 10.39.6.59&gt;<br />
&nbsp;&nbsp;&nbsp; ServerName plone.firehare.com<br />
&nbsp;&nbsp;&nbsp; ServerAdmin <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#117;&#98;&#117;&#110;&#116;&#117;&#46;&#102;&#105;&#114;&#101;&#104;&#97;&#114;&#101;&#64;&#102;&#105;&#114;&#101;&#104;&#97;&#114;&#101;&#46;&#99;&#111;&#109;">ubuntu.firehare@firehare.com</a><br />
&nbsp;&nbsp;&nbsp; ErrorLog "/var/log/apache2/plone_errors.log"<br />
&nbsp;&nbsp;&nbsp; CustomLog "/var/log/apache2/plone_accesses.log" common</p>
<p>&nbsp;&nbsp;&nbsp; RewriteEngine on<br />
&nbsp;&nbsp;&nbsp; RewriteRule ^/(.*) <a href="http://127.0.0.1:8081/VirtualHostBase/http/plone.firehare.com:80/plone/VirtualHostRoot/$1">http://127.0.0.1:8081/VirtualHostBase/http/plone.firehare.com:80/plone/VirtualHostRoot/$1</a> [L,P]</p>
<p>&nbsp;&nbsp;&nbsp; &lt;Proxy *&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order Deny,Allow<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deny from all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Allow from all<br />
&nbsp;&nbsp;&nbsp; &lt;/Proxy&gt;</p>
<p>&lt;/VirtualHost&gt;<br />
这样就安装好了 plone.firehare.com 虚拟主机站点，可以在浏览器中地址栏中输入 <a href="http://plone.firehare.com/">http://plone.firehare.com</a> 就可以重定向到 Zope+Plone 站点去了。<br />
Apache 服务之 PHP 配置<br />
Apache 服务之 PHP 配置<br />
将系统更新到最新状态，在做任何操作之前都要做这一步，以确保系统的稳定，同时也不会有一些莫名其妙的现象出现。<br />
$sudo apt-get update<br />
$sudo apt-get dist-upgrade<br />
安装PHP支持<br />
$sudo apt-get install libapache2-mod-php5<br />
$sudo apt-get install php5<br />
$sudo apt-get install php5-gd<br />
$sudo apt-get install php5-mysql<br />
$sudo apt-get install php5-pgsql<br />
如果想支持图形就加php5-gd，如果想支持Mysql就加php5-mysql，这里之所以要单独列出libapache2-mod-php5，主要
是由于php5的依赖关系没有做好，有可能会安装上libapache-mod-php5的包，所以为了避免不必要的麻烦，干脆还是单独指定比较好。如果
有朋友还是会出现问题，请在新立得中查找libapache-mod-php5包，如果安装的话请将其删除。<br />
修改PHP配置文件，以限制内存和文件最大上传尺寸<br />
我们编辑/etc/php5/apache2/php.ini文件，先做一般配置，在改动之前，请先将该配置文件做个备份。以便在出错的时候可以恢复。...<br />
memory_limit = 8M =&gt;修改成你所需的内存大小<br />
upload_max_filesize = 2M =&gt;修改文件最大上传尺寸<br />
...<br />
extension=mysql.so 支持Mysql服务<br />
extension=gd.so 支持gd函数<br />
...<br />
其实在Ubuntu下，如果你安装了php5-mysql和php5-gd之后，会自动修改以上二行的，我们做的只不过是确认一下它们前面的注释符是否去掉。<br />
目前大多数php的open source都是用php4写的，为了兼容以前的php版本，有时需要将register_long_arrays打开，否则$HTTP_GET_VARS和$HTTP_POST_VARS等变量将无法使用，会出现一些莫名其妙的问题。<br />
另外，在装完php5后最好确认一下/etc/apache2/mods-enabled/下是否有链接：<br />
php5.load -&gt; /etc/apache2/mods-available/php5.load<br />
加固PHP，以增强安全性。注意，下面的安全性要因情况而定，所以我已经把它们的功能写清楚了，如果有问题的话，看看是否由于下面哪种限制条件所造成，可
相应将其注释掉。那么让我们开始吧,我们将再次编辑/etc/php5/apache2/php.ini文件，之所以没有一次改完，主要是为了给大家一个
清晰的思路。<br />
#打开安全模式，打开他的好处就是PHP文件只能访问所有者和PHP文件所有着一样的文件，即使在chroot环境下也无法访问jail
中属主不一样的文件，类似于php
shell这样的后门就没用武之地了哦，phpshell是很流行的php后门，他可以执行系统命令，就象他的名字一样，和shell很接近。<br />
safe_mode = On<br />
#下面的设置就限制了fopen(),
file()等函数可以操作的目录范围,避免了入侵者非法读取文件,一定要在/var/www后面加"/",否则/var/wwww下的文件也能被访问。
该选项会禁止任何不在/var/www/目录下的PHP文件运行，包括任何以软链接方式链到/var/www/目录下的程序，如PhpMyAdmin
包，就在该选项设定后无法正常运行。<br />
open_basedir = /var/www/<br />
#禁止使用phpinfo和get_cfg_var函数，这样可以避免泄露服务信息，一般在在确认PHP能正常工作之后再使之关闭<br />
disable_functions = phpinfo,get_cfg_var<br />
#设置php程序错误日志<br />
error_reporting = E_ALL<br />
log_errors = On<br />
error_log = /var/log/php_err.log<br />
#如果php程序没有指明需要register_globals的话，最好把register_globals设置为Off,这样可以避免很多安全问题的。注意，如果你的程序是需要register_globals的话，可千万别关。Ubuntu默认是关闭的。<br />
register_globals = Off<br />
#禁止打开远程地址,记得最近出的php include的那个漏洞吗？就是在一个php程序中include了变量，那么入侵者就可以利用这个控制服务器在本地执行远程的一个php程序，例如phpshell,所以我们关闭这个。<br />
allow_url_fopen = Off</p>
</div>
<img src ="http://www.blogjava.net/kwj/aggbug/179060.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kwj/" target="_blank">木剑</a> 2008-02-02 17:17 <a href="http://www.blogjava.net/kwj/articles/179060.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu安装mysql</title><link>http://www.blogjava.net/kwj/articles/179032.html</link><dc:creator>木剑</dc:creator><author>木剑</author><pubDate>Sat, 02 Feb 2008 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/kwj/articles/179032.html</guid><wfw:comment>http://www.blogjava.net/kwj/comments/179032.html</wfw:comment><comments>http://www.blogjava.net/kwj/articles/179032.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kwj/comments/commentRss/179032.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kwj/services/trackbacks/179032.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em;">安装MySQL
</p>
<p style="text-indent: 2em;">sudo apt-get install mysql-server
</p>
<p style="text-indent: 2em;">配置MySQL
</p>
<p style="text-indent: 2em;">注意，在Ubuntu下MySQL缺省是只允许本地访问的，如果你要其他机器也能够访问的话，那么需要改变/etc/mysql/my.cnf配置文件了！下面我们一步步地来：
</p>
<p style="text-indent: 2em;">默认的MySQL安装之后根用户是没有密码的，所以首先用根用户进入：
</p>
<p style="text-indent: 2em;">$mysql -u root
</p>
<p style="text-indent: 2em;">在这里之所以用-u
root是因为我现在是一般用户（kwj），如果不加-u
root的话，mysql会以为是kwj在登录。注意，我在这里没有进入根用户模式，因为没必要。一般来说，对mysql中的数据库进行操作，
根本没必要进入根用户模式，只有在设置时才有这种可能。
</p>
<p style="text-indent: 2em;">进入mysql之后，最要紧的就是要设置Mysql中的root用户密码了，否则，Mysql服务无安全可言了。
</p>
<p style="text-indent: 2em;">mysql&gt; GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";
</p>
<p style="text-indent: 2em;">这样的话，就设置好了MySQL中的root用户密码了，然后就用root用户建立你所需要的数据库。我这里就以test为例：
</p>
<p style="text-indent: 2em;">mysql&gt;CREATE DATABASE test；
</p>
<p style="text-indent: 2em;">mysql&gt;GRANT select,insert,update,delete,create,references,index,alert,Lock tables ON test.* TO test_root@localhost IDENTIFIED BY "123456";
</p>
<p style="text-indent: 2em;">这样就建立了一个test_roots的用户，它对数据库test有着全部权限。以后就用test_root来对test数据库进行管理，而无需要再用root用户了，而该用户的权限也只被限定在test数据库中。
</p>
<p style="text-indent: 2em;">mysql&gt;GRANT ALL PRIVILEGES ON test.* TO test_root@"%" IDENTIFIED BY "123456";
</p>
<p style="text-indent: 2em;">允许test_root用户可以从任意机器上登入MySQL。
</p>
<img src ="http://www.blogjava.net/kwj/aggbug/179032.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kwj/" target="_blank">木剑</a> 2008-02-02 15:15 <a href="http://www.blogjava.net/kwj/articles/179032.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu 安装tomcat</title><link>http://www.blogjava.net/kwj/articles/178961.html</link><dc:creator>木剑</dc:creator><author>木剑</author><pubDate>Sat, 02 Feb 2008 03:40:00 GMT</pubDate><guid>http://www.blogjava.net/kwj/articles/178961.html</guid><wfw:comment>http://www.blogjava.net/kwj/comments/178961.html</wfw:comment><comments>http://www.blogjava.net/kwj/articles/178961.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kwj/comments/commentRss/178961.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kwj/services/trackbacks/178961.html</trackback:ping><description><![CDATA[ 安装JAVA环境<br />
打开终端，执行以下命令，或使用《新立得软件管理器》，在其中分别搜索&#8220;sun-java5-jre&#8220;和&#8220;sun-java5-jdk&#8221;并标记安装。<br />
sudo apt-get install sun-java5-jre<br />
# 如果空间富裕，建议安装一个JDK。呵呵<br />
sudo apt-get install sun-java5-jdk<br />
设置当前默认的java解释器<br />
sudo update-alternatives &#8211;config java<br />
执行后会出现类似如下的画面:<br />
There are 4 alternatives which provide `java&#8217;.<br />
<br />
Selection&nbsp;&nbsp;&nbsp;  Alternative<br />
———————————————&#8211;<br />
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /usr/lib/jvm/java-gcj/jre/bin/java<br />
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /usr/bin/gij-wrapper-4.1<br />
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /usr/bin/gij-wrapper-4.0<br />
4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /usr/lib/jvm/java-1.5.0-sun/jre/bin/java<br />
Press enter to keep the default<br />
<br />
or type selection number:<br />
<br />
输入 有包含 &#8220;sun&#8221; 的行的前面的数字。如上面显示，则输入 4，然后回车确定。<br />
<br />
配置JAVA_HOME环境变量<br />
<pre><code>vim /etc/profile<br />
<br />
</code><code>...<br />
JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun-1.5.0.06<br />
export JAVA_HOME<br />
export PATH=$PATH:$JAVA_HOME/bin<br />
umask 022</code><br />
</pre>
<br />
<br />
2、下载tomcat <br />
从 http://tomcat.apache.org/这里下载tomcat.当然下面的文件名也要做相应的修改.<br />
3、解压tomcat <br />
$sudo tar zxvf apache-tomcat-5.5.25.tar.gz -C /opt <br />
$sudo mv /opt/apache-tomcat-5.5.25.tar.gz /opt/tomcat <br />
5、启动tomcat <br />
$sudo /opt/tomcat/bin/startup.sh <br />
如果能看到下列提示，就表明启动成功了！ <br />
&gt;Using CATALINA_BASE:   /opt/tomcat <br />
&gt;Using CATALINA_HOME:   /opt/tomcat <br />
&gt;Using CATALINA_TMPDIR: /opt/tomcat/temp <br />
&gt;Using JRE_HOME:       /usr/lib/j2sdk1.5-sun <br />
6、测试：打开Firefox，在地址栏中输入http://localhost:8080，如果出来Tomcat的缺省界面，说明测试通过！ <br />
7、停止Tomcat服务 <br />
$sudo /opt/tomcat/bin/shutdown.sh <br />
设置Tomcat管理员帐号<br />
<br />
Tomcat的用户帐号信息都保存在tomcat-users.xml的文件中，运行<br />
sudo gedit /opt/tomcat/conf/tomcat-users.xml<br />
<br />
在&lt;/tomcat-users&gt;的标签前添加一行<br />
&lt;user username="用户名" password="密码" roles="admin,manager"/&gt;<br />
<br />
保存并关闭。重新运行tomcat即可输入该用户名和密码，登录Tomcat的管理页面。<br />
<br />
安装最新版本的Tomcat<br />
<img src ="http://www.blogjava.net/kwj/aggbug/178961.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kwj/" target="_blank">木剑</a> 2008-02-02 11:40 <a href="http://www.blogjava.net/kwj/articles/178961.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件的权限学习</title><link>http://www.blogjava.net/kwj/articles/178497.html</link><dc:creator>木剑</dc:creator><author>木剑</author><pubDate>Wed, 30 Jan 2008 04:24:00 GMT</pubDate><guid>http://www.blogjava.net/kwj/articles/178497.html</guid><wfw:comment>http://www.blogjava.net/kwj/comments/178497.html</wfw:comment><comments>http://www.blogjava.net/kwj/articles/178497.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kwj/comments/commentRss/178497.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kwj/services/trackbacks/178497.html</trackback:ping><description><![CDATA[ls -l列出文件的信息<br />
ls -al列出包括隐藏文件（.开头）的信息<br />
<br />
权限有：r（读4），w（写2），x（执行1）<br />
<br />
权限分配有三种:文件属主（u），组用户（g），其他用户（o）<br />
<br />
较常见的文件类型有：d（目录），-（普通文件），l（符号链接）<br />
<br />
但我们用touch file创建文件或mkdir file创建目录的时候，通过ls -l查看时，都可<br />
<br />
以看到其有默认的权限属性，其实是umask的作用了。umask命令确定了你创建文件的<br />
<br />
缺省模式，可以在$HOME目录下的.profile或.bash_profile文件中修改其默认值。如<br />
<br />
果要修改所有用户的，可以在/etc/profile中修改其值。对于文件来说，umask的值最<br />
<br />
大只能是6（即不允行赋予其执行的权限），而目录最大值就可以达到7。<br />
<br />
chmod实例<br />
chmod a-x file<br />
chomod og-w file<br />
chmod g+w file<br />
chmod -R 755 file<br />
<br />
chgrp实例<br />
chgrp file admin<br />
<br />
chown实例<br />
chown admin file<br />
<br />
建立软链接(类似windows的快捷方式)<br />
ln -s source_path target_path&nbsp;&nbsp; //绝对路径<br />
<br />
<br />
find的使用<br />
find /etc -name "host*" -print<br />
find /var/logs -type f -mtime +7 -exec rm {} \;<br />
find /etc/init.d -name "httpd" -exec ls -l {} \;<br />
(说明：exec后面跟执行的命令，一对{}，一个空格，然后一个\,最后一个分号；<br />
<img src ="http://www.blogjava.net/kwj/aggbug/178497.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kwj/" target="_blank">木剑</a> 2008-01-30 12:24 <a href="http://www.blogjava.net/kwj/articles/178497.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>