﻿<?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-DZM.528-随笔分类-Linux</title><link>http://www.blogjava.net/duanzhimin528/category/42621.html</link><description>Life is a voyage, not a destination.</description><language>zh-cn</language><lastBuildDate>Tue, 22 Feb 2011 11:42:01 GMT</lastBuildDate><pubDate>Tue, 22 Feb 2011 11:42:01 GMT</pubDate><ttl>60</ttl><item><title>如何从本地计算机向ssh服务器上传文件</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/07/30/327537.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Fri, 30 Jul 2010 02:23:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/07/30/327537.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/327537.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/07/30/327537.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/327537.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/327537.html</trackback:ping><description><![CDATA[<div id="logPanel" class="Content-body" style="margin-top: 8px; margin-bottom: 8px;  overflow-x: hidden; overflow-y: hidden; text-align: left; width: 662px; line-height: 18px; ">
<div align="center" style="margin-top: 5px; margin-bottom: 20px; ">
由于使用ssh，我们无法使用简单的拖拽或者复制粘贴操作对本地计算机和ssh服务器上的文件进行交流。我们需要用到scp命令行。
</div>
<div class="UBBPanel codePanel" style="border-left-color: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #fcf9ef; ">
<div class="UBBTitle" style="font-weight: bold; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; background-image: url(http://jefftan.cn/blog/skins/Vista/ubbback.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f7efd6; background-position: 400px 0px; background-repeat: no-repeat no-repeat; ">程序代码</div>
<div class="UBBContent" style="padding-top: 6px; padding-right: 6px; padding-bottom: 6px; padding-left: 6px; line-height: 19px; ">scp &lt;本地文件名&gt; &lt;用户名&gt;@&lt;ssh服务器地址&gt;:&lt;上传保存路径即文件名&gt;</div>
</div>
<br />
<br />
举例以说明。如果希望将当前目录下的a.txt文件上传到ssh服务器上test文件夹并改名为b.txt，其中ssh服务器网址为127.0.0.1，用户名admin。代码如下：<br />
<br />
<div class="UBBPanel codePanel" style="border-left-color: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #fcf9ef; ">
<div class="UBBTitle" style="font-weight: bold; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; background-image: url(http://jefftan.cn/blog/skins/Vista/ubbback.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f7efd6; background-position: 400px 0px; background-repeat: no-repeat no-repeat; ">程序代码</div>
<div class="UBBContent" style="padding-top: 6px; padding-right: 6px; padding-bottom: 6px; padding-left: 6px; line-height: 19px; ">scp a.txt admin@127.0.0.1:./test/b.txt</div>
</div>
<br />
<br />
<a href="http://jefftan.cn/download" target="_blank" style="color: #444444; ">下载</a>也很简单，只需要将&#8220;本地文件名&#8221;和后面服务器的信息对调即可。&nbsp;</div>

<img src ="http://www.blogjava.net/duanzhimin528/aggbug/327537.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-07-30 10:23 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/07/30/327537.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu下运行Shell脚本提示"declare not found"的问题</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/07/01/324965.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Thu, 01 Jul 2010 03:25:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/07/01/324965.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/324965.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/07/01/324965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/324965.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/324965.html</trackback:ping><description><![CDATA[
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Verdana; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;">
				<span class="Apple-style-span" style="font-size: 14px; line-height: 24px; text-align: left;">
						<p style="border-width: 0px; margin: 0px 0px 1em; padding: 0px; text-indent: 0px;">此种问题只在 Ubuntu 下才会出现！安装 debian 系统根本不存在此类问题，因为只有<span class="Apple-converted-space"></span>Ubuntu 把默认的 bash 替换成了 dash. <span class="Apple-converted-space"></span><br /></p>
						<p style="border-width: 0px; margin: 0px 0px 1em; padding: 0px; text-indent: 0px;">在学习 Shell 脚本的时候，有两个例子在运行时出现异常。比如，我在 test-dash.sh脚<span class="Apple-converted-space"></span>本输入如下内容：<span class="Apple-converted-space"> </span><br />echo -e "Trekshot. \a \n"<span class="Apple-converted-space"> </span><br />declare -i number=7<span class="Apple-converted-space"> </span><br />echo $number<span class="Apple-converted-space"> </span><br />在 Ubuntu 系统下使用 sh test-bash.sh 运行将出现如下提示信息：<span class="Apple-converted-space"> </span><br />-e Trekshot.<span class="Apple-converted-space"> </span><br />test-dash.sh: 2: declare: not found:<span class="Apple-converted-space"> </span><br /><br />有两个问题：<span class="Apple-converted-space"> </span><br />a. echo 的参数 '-e' 怎么也打印出来了？<span class="Apple-converted-space"> </span><br />b. 一个简单的整数声明语句为何提示 "declare: not found"?<span class="Apple-converted-space"> </span><br /><br /><b><font color="#ff0000">1</font></b>.<span class="Apple-converted-space"></span>出现此问题的原因并非代码本身有误，而是 Ubuntu 系统的问题。我们在编写脚本时，第一<span class="Apple-converted-space"></span>行经常要写这么一行内容：#!/bin/bash. 这是对该脚本所使用的 shell 进行声明，因为<span class="Apple-converted-space"></span>Linux 上的 shell 并非只有一种，而各个 shell 的语法是由差别的。之所以把 echo 命令<span class="Apple-converted-space"></span>的参数误打出来，就是因为 sh 命令没有理解该语法，即当前使用的并不是 bash.下面来证<span class="Apple-converted-space"></span>明：<span class="Apple-converted-space"> </span><br />获取 /bin 中相关文件的属性：<span class="Apple-converted-space"> </span><br />-rwxr-xr-x 1 root root 725136 2008-05-13 02:48 bash<span class="Apple-converted-space"> </span><br />-rwxr-xr-x 1 root root 87924 2008-06-21 00:07 dash<span class="Apple-converted-space"> </span><br />lrwxrwxrwx 1 root root 4 2010-03-25 14:29 sh -&gt; dash<span class="Apple-converted-space"> </span><br /><br />这表明在执行 sh test-dash.sh 的时候，我们使用的是一个叫 "dash" 的命令（注意 sh<span class="Apple-converted-space"></span>实为链接文件），而并不是脚本第一行中声明的 bash. 这就是上面现象的原因。 其实，如<span class="Apple-converted-space"></span>果使用 bash test-dash.sh 命令执行的话，上面两个错误根本不会出现。<span class="Apple-converted-space"> </span><br /><br /><b><font color="#ff0000">2</font></b>.<span class="Apple-converted-space"></span>dash(Debian Almquist SHell) Ubuntu 自 6.10 后，将先前的 bashshell 更换成了<span class="Apple-converted-space"></span>dash (有待考证). 在设置 dash 的说明中有下面文字：<span class="Apple-converted-space"> </span><br /><br />The default /bin/sh shell on Debian and Debian-based systems is bash.<span class="Apple-converted-space"> </span><br /><br />However, since the default shell is required to be POSIX-compliant, any<span class="Apple-converted-space"> </span><br />shell that conforms to POSIX, such as dash, can serve as /bin/sh. You may<span class="Apple-converted-space"> </span><br />wish to do this because dash is faster and smaller than bash.<span class="Apple-converted-space"> </span><br /><br />大致意思是说默认的 shell 是 bash shell, 但只要是能兼容 POSIX 的 shell 都可以，而<span class="Apple-converted-space"></span>dash 比 bash 速度更快、更小巧，因此 Ubuntu 安装了 dash.<span class="Apple-converted-space"> </span><br /><br /><b><font color="#cc0000">3</font></b>.<span class="Apple-converted-space"></span>怎么能把 dash 去掉而使用默认的 bash？使用如下命令：<span class="Apple-converted-space"> </span><br /><font color="#ff0000">sudo dpkg-reconfigure dash</font><span class="Apple-converted-space"> </span><br />此命令是对已安装的包进行重新配置，在菜单（dash-bash-sh.png）中选择是否将 sh 链接<span class="Apple-converted-space"></span>到 dash (Install dash as /bin/sh?) 选择否即可。<span class="Apple-converted-space"> </span><br /><br />附图一：Ubuntu 下设置 dash 界面</p>
						<p style="border-width: 0px; margin: 0px 0px 1em; padding: 0px; text-indent: 0px;">
								<a class="thickbox" title="点击放大" href="http://www.liehuo.net/uploads/allimg/1004/1_100404182342_1.jpg" rel="results" style="border-style: none ! important; padding: 0px ! important; color: rgb(16, 92, 182); text-decoration: none; position: relative; background-image: none ! important;">
										<img alt="ubuntu 设置 dash - 烈火网" src="http://www.liehuo.net/uploads/allimg/1004/1_100404182342_1.jpg" style="border: 1px solid rgb(247, 247, 247); margin: 0px; padding: 0px; max-width: 630px;" />
								</a>
						</p>
				</span>
		</span>
<img src ="http://www.blogjava.net/duanzhimin528/aggbug/324965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-07-01 11:25 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/07/01/324965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu下安装PostgreSQL及配置</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/06/24/324311.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Thu, 24 Jun 2010 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/06/24/324311.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/324311.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/06/24/324311.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/324311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/324311.html</trackback:ping><description><![CDATA[安装postgresql<br />
$sudo apt-get install postgresql<br />
<br />
这样就安装好了PostgreSQL 8.3了，该安装将自动创建一个缺省的数据库集群（pgsqldb.org中的译法）&#8220;main&#8221;，且生成一个数据库超级用户postgres。<br />
<br />
以超级用户postgres登录<br />
sudo su postgres -c psql template1<br />
<br />
修改密码<br />
ALTER USER postgres WITH PASSWORD 'postgres';<br />
<br />
接下来就是要对数据库用户及权限进行设置了，首先要得到超级用户postgres的一个Shell，在这里可以通过下面的方式得到：<br />
$sudo -u postgres sh<br />
<br />
在这个Shell中创建一个同你用户相同的数据库用户，在这里我使用chimin，因为这也是我登录Ubuntu的用户名<br />
<br />
$createuser -A -D -P chimin<br />
<br />
然后为该用户创建一个数据库，在这里我以mydb为例<br />
<br />
$createdb -O chimin mydb<br />
<br />
注意以上操作都是用户在postgres的Shell中完成的，然后退出该用户Shell环境，进入自己用户的Shell中。<br />
<br />
$exit<br />
<br />
当然您也可以使用命令的简写方式：<br />
<br />
sudo -u postgres createuser -A -D -P chimin<br />
sudo -u postgres createdb -O chimin mydb<br />
<br />
现在作为chimin用户，你可以通过下面的命令连接到你的mydb数据库中了<br />
<br />
$psql mydb<br />
<br />
退出用\q<br />
<br />
您可以使用图形化软件 pgadmin3 来管理您的 PostgreSQL 数据库，可以使用以下命令来安装该软件：<br />
$sudo apt-get install pgadmin3<br />
<br />
<br />
一些PostgreSQL的操作：<br />
<span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><strong>导出数据到sql文件：</strong></span>
<p style="font: normal normal normal 12px/normal song, Verdana; border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">pg_dump -U postgres -d mydatabase &gt; dump.sql<br style="font: normal normal normal 12px/normal song, Verdana; " />
<strong>从sql文件导入数据：</strong><br style="font: normal normal normal 12px/normal song, Verdana; " />
psql -d newdatabase -U postgres -f dump.sql<br style="font: normal normal normal 12px/normal song, Verdana; " />
<strong>执行sql文件：</strong><br style="font: normal normal normal 12px/normal song, Verdana; " />
在相应的数据库中 \i sql文件 （这个如果是在windows下，要将\改为/）<br style="font: normal normal normal 12px/normal song, Verdana; " />
在shell中 psql -s 数据库名 -f sql文件</p>
<p style="font: normal normal normal 12px/normal song, Verdana; border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</p>
<p style="font: normal normal normal 12px/normal song, Verdana; border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">下面这个是基本sql的<br style="font: normal normal normal 12px/normal song, Verdana; " />
</p>
<span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><strong>从一个表中查询数据，将结果插入到另一个表中：</strong></span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">insert into temptable select id from product where category_id=3;</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">create table temptest as select id from product where category_id=3;</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">以上两行都是从product表中找到category_id为3的记录的id号，然后将id号插入到temptable中。不同的时第一行的sql语句 要求数据库中必须已经存在temptable表，此时temptable表可以不知有id这一个字段，只不过插入数据之后其他字段为空；第二行的sql语 句不要求数据库已经存在temptable表，它会创建这个表，然后将数据插入，此时temptable表中只有id一个字段</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><span style="font-weight: bold; ">创建用户：</span></span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">CREATE USER username WITH PASSWORD 'password'</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">这就创建了一个具有所有权限的普通用户</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><span style="font-weight: bold; ">创建超级用户：</span></span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">CREATE ROLE name SUPERUSER（这个角色是不能登录的）</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><span style="font-weight: bold; ">用户登录：</span></span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">psql -h IP地址 -p 端口号 -U 用户名 默认数据库</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">其中-h IP地址， -p 端口号可以省略；默认IP地址localhost，默认端口号是5432。默认的数据库好像不能够省略，省略之后PostgreSQL会自动使用名字为用户名的数据库作为默认数据库，如果这个数据库不存在就会报错。</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><span style="font-weight: bold; ">在PostgreSQL中，创建用户：</span></span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">CREATE USER&nbsp; name&nbsp; [ [ WITH ]&nbsp; option [ ... ] ]&nbsp; [ WITH ] { ENCRYPTED | UNENCRYPTED } PASSWORD &#8216;password&#8217;[ [ WITH ]&nbsp; option [ ... ] ]</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">其中Option可以是：</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">SUPERUSER | NOSUPERUSER</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">| CREATEDB | NOCREATEDB</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">| CREATEROLE | NOCREATEROLE</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">| CONNECTION LIMIT connlimit</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">| VALID UNTIL &#8217;timestamp&#8217;</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">一个创建用户的例子：</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">CREATE USER testuser WITH CREATEDB PASSWORD '123456'</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">以上的语句创建了一个名字为testuser，密码为123456，具有创建数据库权限的用户</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><span style="font-weight: bold; ">修改用户属性的方法是：</span></span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">ALTER USER name [ [ WITH ] option [ ... ] ]</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">其中option可以是：</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">SUPERUSER | NOSUPERUSER</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">| CREATEDB | NOCREATEDB</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">| CREATEROLE | NOCREATEROLE</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">| CONNECTION LIMIT connlimit</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">| { ENCRYPTED | UNENCRYPTED } PASSWORD &#8217;password&#8217;</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">| VALID UNTIL &#8217;timestamp&#8217;</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">一个修改用户的例子是：</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">ALTER USER testuser WITH CREATEROLE</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">上面的语句就给testuser这个用户加上了创建角色的权限</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">&nbsp;</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><span style="font-weight: bold; ">删除用户：</span></span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">DROP USER [ IF EXISTS ] name [, ...]</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><span style="font-style: italic; font-weight: bold; ">角色可以理解为用户。不同的地方是用户创建时默认是带有登录权限的，而角色没有，所有如果创建了一个角色没有给显式地赋予LOGIN 权限，这个角色相当于是不能用的，因为不能登录。</span></span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><span style="font-weight: bold; ">创建角色：</span></span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">CREATE ROLE name</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">一个创建角色的例子：</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">CREATE ROLE testrole LOGIN</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">创建了一个具有登录权限的角色</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; "><br style="font: normal normal normal 12px/normal song, Verdana; " />
</span><span style="border-collapse: collapse; font-family: song, Verdana; font-size: 12px; ">另外创建角色的时候也可以加上创建用户时的option</span>
<img src ="http://www.blogjava.net/duanzhimin528/aggbug/324311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-06-24 10:19 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/06/24/324311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux命令集合（二）</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/05/27/322009.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Thu, 27 May 2010 04:25:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/05/27/322009.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/322009.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/05/27/322009.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/322009.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/322009.html</trackback:ping><description><![CDATA[使用Linux有一段时间了，整理一下常用的Linux命令：
<br /><strong>1.ls 目录列举（dir）</strong><br />一般我们这么写：<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=ls%20" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>ls   </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">ls </pre>列举当前目录的所有文件，如果文件很多的话，这么看很复杂。我们可以加关键字，例如我们要看包含xml的全部文件。<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=ls%20*xml*" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>ls *xml*  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">ls *xml*</pre>如果这个时候，我们想要看到这些文件的所有者信息可以这么写：<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=ls%20-la" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>ls -la  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">ls -la</pre><br /><br /><strong>2.cd 目录切换</strong><br />和其他目录切换命令一样，没有差别。<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=cd%20a" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>cd a  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">cd a</pre>切换到a目录。
<br /><br /><strong>3.chown 改变文件（文件夹）的拥有者</strong><br />上文通过ls我们看到了一堆文件，可能有的文件我们不能操作，这时候需要root账户执行chown命令改变文件所属，可以这样写：<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=chown%20boss.boss%20*" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>chown boss.boss *  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">chown boss.boss *</pre>这个操作就是把当前目录下的所有文件赋予boss用户以及boss组的用户所有权力。那么子文件夹下的文件（文件夹）需要修改该如何做呢？执行<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=chown%20-R%20boss.boss%20*" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>chown -R boss.boss *  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">chown -R boss.boss *</pre><br /><br /><strong>4.mkdir 建立目录</strong><br />这个命令很简单，执行<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=mkdir%20x" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>mkdir x  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">mkdir x</pre>我们就在当前目录下构建了一个x目录。
<br /><br /><strong>5.cat 文件查看</strong><br />我们可以通过cat命令查看文件内容，执行<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=cat%20a.xml" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>cat a.xml  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">cat a.xml</pre>我们可以查看这个文件的内容，当然以文本方式。
<br /><br /><strong>6.tail 文件查看（可以跟踪文件）</strong><br />这个命令如果不加参数的话，和cat没有区别，最终要的就是他可以跟踪文件的内容，我们常常用它来监控日志，例如<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=tail%20-f%20javaeye.log" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>tail -f javaeye.log  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">tail -f javaeye.log</pre>当javaeye.log文件发生增长时，我们可以在控制台捕获这个改动，如果这个日志文件变化的很快的话看起来就有点像是黑客帝国的中的场景了（黑底绿字，不停的刷屏！）。
<br /><br /><strong>7.tar 文件压缩</strong><br />压缩解压缩，这是部署工作的基本操作。<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=tar%20-zvcf%20java.tar.gz%20java" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>tar -zvcf java.tar.gz java  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">tar -zvcf java.tar.gz java</pre>将java 目录下的文件包含子文件夹全部压缩成java.tar.gz文件。
<br />反过来，解压缩执行<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=tar%20-xzvf%20java.tar.gz" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>tar -xzvf java.tar.gz  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">tar -xzvf java.tar.gz</pre><br /><br /><strong>8.rm 删除</strong><br />折腾了这么一番，生成了一堆垃圾文件。赶紧清理掉，呵呵！<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=rm%20*" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>rm *  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">rm *</pre><span style="color: red;">我的妈诶！太恐怖了！还好没执行！！！兄弟们千万记住，执行删除命令的时候一定不要用这个命令！！！如果你是超级管理员，将有可能删除所有文件，系统在重启瞬间就会瘫痪！！！</span>最好指定文件名或路径名，避免全部删除，这简直就是自杀！哎呀，目录不能删除，有子文件的不能删除怎么办？<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=rm%20-R%20xml" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>rm -R xml  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">rm -R xml</pre>这样就能彻底删除xml目录。
<br /><br /><strong>9.su 超级用户命令</strong><br />刚才做chown的时候，我们需要切换到超级用户也就是root用户，怎么做？执行<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=su" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>su  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">su</pre>按提示输入root用户密码，轻松切换到超级用户。非必要情况不建议使用该账户！
<br /><br /><strong>10.vim（vi）文本编辑</strong><br />这个说起来就比较复杂了，我们直说简单操作可以满足我们需要的。编写文件，无非就是写点东西进去。vi、vim用起来，感觉还是vim舒服一点。编辑一个文件，<div class="dp-highlighter"><div class="bar"><div class="tools">Linux代码 <embed src="http://snowolf.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=vim%20a.txt" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14"></embed></div></div><ol class="dp-default" start="1"><li><span><span>vim a.txt  </span></span></li></ol></div><pre style="display: none;" name="code" class="linux">vim a.txt</pre>这时候文件打开了，但是还不能编辑，键入<strong>i</strong>。提示<strong>insert</strong>，插入状态，我们可以插入文字了。写完了，<strong>ctrl+c</strong>终结输入状态，键入<strong>:w</strong>，保存不退出，键入<strong>:wq</strong>，保存退出。如果不保存强制退出呢？键入<strong>:q!</strong>。当然，如果你只是上来看看内容直接退出，那就键入<strong>:q</strong>就可以了。如果想要在文件中找到一个关键字可以键入<strong>/x</strong>。<strong>/</strong>表示搜索，<strong>x</strong>就是关键字。
  <img src ="http://www.blogjava.net/duanzhimin528/aggbug/322009.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-05-27 12:25 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/05/27/322009.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vsFTPd 服务器初学者指南</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/05/12/320690.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Wed, 12 May 2010 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/05/12/320690.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/320690.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/05/12/320690.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/320690.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/320690.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: vsFTPD是一款小巧易用FTP服务器程序；本文面向初学者的一点疑问，能让初学者在最短的时间内学会最简单的vsftpd服务器的架设；本文应该算是初学者练手篇；正在更新之中；本文基于 vsftpd-2.0.3&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/05/12/320690.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/320690.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-05-12 13:57 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/05/12/320690.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux命令集合（vi编辑）</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/03/01/314189.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Mon, 01 Mar 2010 09:30:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/03/01/314189.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/314189.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/03/01/314189.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/314189.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/314189.html</trackback:ping><description><![CDATA[
		<span id="zoom" class="a14c">
				<p style="text-indent: 2em;">进入vi的命令 </p>
				<p style="text-indent: 2em;">vi filename :打开或新建文件，并将光标置于第一行首 </p>
				<p style="text-indent: 2em;">vi +n filename ：打开文件，并将光标置于第n行首 </p>
				<p style="text-indent: 2em;">vi + filename ：打开文件，并将光标置于最后一行首 </p>
				<p style="text-indent: 2em;">vi +/pattern filename：打开文件，并将光标置于第一个与pattern匹配的串处 </p>
				<p style="text-indent: 2em;">vi -r filename ：在上次正用vi编辑时发生系统崩溃，恢复filename </p>
				<p style="text-indent: 2em;">vi filename....filename ：打开多个文件，依次进行编辑 </p>
				<p style="text-indent: 2em;"> </p>
				<p style="text-indent: 2em;">移动光标类命令 </p>
				<p style="text-indent: 2em;">h ：光标左移一个字符 </p>
				<p style="text-indent: 2em;">l ：光标右移一个字符 </p>
				<p style="text-indent: 2em;">space：光标右移一个字符 </p>
				<p style="text-indent: 2em;">Backspace：光标左移一个字符 </p>
				<p style="text-indent: 2em;">k或Ctrl+p：光标上移一行 </p>
				<p style="text-indent: 2em;">j或Ctrl+n ：光标下移一行 </p>
				<p style="text-indent: 2em;">Enter ：光标下移一行 </p>
				<p style="text-indent: 2em;">w或W ：光标右移一个字至字首 </p>
				<p style="text-indent: 2em;">b或B ：光标左移一个字至字首 </p>
				<p style="text-indent: 2em;">e或E ：光标右移一个字至字尾 </p>
				<p style="text-indent: 2em;">) ：光标移至句尾 </p>
				<p style="text-indent: 2em;">( ：光标移至句首 </p>
				<p style="text-indent: 2em;">}：光标移至段落开头 </p>
				<p style="text-indent: 2em;">{：光标移至段落结尾 </p>
				<p style="text-indent: 2em;">nG：光标移至第n行首 </p>
				<p style="text-indent: 2em;">n+：光标下移n行 </p>
				<p style="text-indent: 2em;">n-：光标上移n行 </p>
				<p style="text-indent: 2em;">n$：光标移至第n行尾 </p>
				<p style="text-indent: 2em;">H ：光标移至屏幕顶行 </p>
				<p style="text-indent: 2em;">M ：光标移至屏幕中间行 </p>
				<p style="text-indent: 2em;">L ：光标移至屏幕最后行 </p>
				<p style="text-indent: 2em;">0：（注意是数字零）光标移至当前行首 </p>
				<p style="text-indent: 2em;">$：光标移至当前行尾 </p>
				<p style="text-indent: 2em;"> </p>
				<p style="text-indent: 2em;">屏幕翻滚类命令 </p>
				<p style="text-indent: 2em;">Ctrl+u：向文件首翻半屏 </p>
				<p style="text-indent: 2em;">Ctrl+d：向文件尾翻半屏 </p>
				<p style="text-indent: 2em;">Ctrl+f：向文件尾翻一屏 </p>
				<p style="text-indent: 2em;">Ctrl＋b；向文件首翻一屏 </p>
				<p style="text-indent: 2em;">nz：将第n行滚至屏幕顶部，不指定n时将当前行滚至屏幕顶部。 </p>
				<p style="text-indent: 2em;"> </p>
				<p style="text-indent: 2em;">插入文本类命令 </p>
				<p style="text-indent: 2em;">i ：在光标前 </p>
				<p style="text-indent: 2em;">I ：在当前行首 </p>
				<p style="text-indent: 2em;">a：光标后 </p>
				<p style="text-indent: 2em;">A：在当前行尾 </p>
				<p style="text-indent: 2em;">o：在当前行之下新开一行 </p>
				<p style="text-indent: 2em;">O：在当前行之上新开一行 </p>
				<p style="text-indent: 2em;">r：替换当前字符 </p>
				<p style="text-indent: 2em;">R：替换当前字符及其后的字符，直至按ESC键 </p>
				<p style="text-indent: 2em;">s：从当前光标位置处开始，以输入的文本替代指定数目的字符 </p>
				<p style="text-indent: 2em;">S：删除指定数目的行，并以所输入文本代替之 </p>
				<p style="text-indent: 2em;">ncw或nCW：修改指定数目的字 </p>
				<p style="text-indent: 2em;">nCC：修改指定数目的行 </p>
				<p style="text-indent: 2em;"> </p>
				<p style="text-indent: 2em;">删除命令 </p>
				<p style="text-indent: 2em;">ndw或ndW：删除光标处开始及其后的n-1个字 </p>
				<p style="text-indent: 2em;">do：删至行首 </p>
				<p style="text-indent: 2em;">d$：删至行尾 </p>
				<p style="text-indent: 2em;">ndd：删除当前行及其后n-1行 </p>
				<p style="text-indent: 2em;">x或X：删除一个字符，x删除光标后的，而X删除光标前的 </p>
				<p style="text-indent: 2em;">Ctrl+u：删除输入方式下所输入的文本 </p>
				<p style="text-indent: 2em;"> </p>
				<p style="text-indent: 2em;">搜索及替换命令 </p>
				<p style="text-indent: 2em;">/pattern：从光标开始处向文件尾搜索pattern </p>
				<p style="text-indent: 2em;">?pattern：从光标开始处向文件首搜索pattern </p>
				<p style="text-indent: 2em;">n：在同一方向重复上一次搜索命令 </p>
				<p style="text-indent: 2em;">N：在反方向上重复上一次搜索命令 </p>
				<p style="text-indent: 2em;">：s/p1/p2/g：将当前行中所有p1均用p2替代 </p>
				<p style="text-indent: 2em;">：n1,n2s/p1/p2/g：将第n1至n2行中所有p1均用p2替代 </p>
				<p style="text-indent: 2em;">：g/p1/s//p2/g：将文件中所有p1均用p2替换 </p>
				<p style="text-indent: 2em;"> </p>
				<p style="text-indent: 2em;">选项设置 </p>
				<p style="text-indent: 2em;">all：列出所有选项设置情况 </p>
				<p style="text-indent: 2em;">term：设置终端类型 </p>
				<p style="text-indent: 2em;">ignorance：在搜索中忽略大小写 </p>
				<p style="text-indent: 2em;">list：显示制表位(Ctrl+I)和行尾标志（$) </p>
				<p style="text-indent: 2em;">number：显示行号 </p>
				<p style="text-indent: 2em;">report：显示由面向行的命令修改过的数目 </p>
				<p style="text-indent: 2em;">terse：显示简短的警告信息 </p>
				<p style="text-indent: 2em;">warn：在转到别的文件时若没保存当前文件则显示NO write信息 </p>
				<p style="text-indent: 2em;">nomagic：允许在搜索模式中，使用前面不带“\”的特殊字符 </p>
				<p style="text-indent: 2em;">nowrapscan：禁止vi在搜索到达文件两端时，又从另一端开始 </p>
				<p style="text-indent: 2em;">mesg：允许vi显示其他用户用write写到自己终端上的信息 </p>
				<p style="text-indent: 2em;"> </p>
				<p style="text-indent: 2em;">最后行方式命令 </p>
				<p style="text-indent: 2em;">：n1,n2 co n3：将n1行到n2行之间的内容拷贝到第n3行下 </p>
				<p style="text-indent: 2em;">：n1,n2 m n3：将n1行到n2行之间的内容移至到第n3行下 </p>
				<p style="text-indent: 2em;">：n1,n2 d ：将n1行到n2行之间的内容删除 </p>
				<p style="text-indent: 2em;">：w ：保存当前文件 </p>
				<p style="text-indent: 2em;">：e filename：打开文件filename进行编辑 </p>
				<p style="text-indent: 2em;">：x：保存当前文件并退出 </p>
				<p style="text-indent: 2em;">：q：退出vi </p>
				<p style="text-indent: 2em;">：q!：不保存文件并退出vi </p>
				<p style="text-indent: 2em;">：!command：执行shell命令command </p>
				<p style="text-indent: 2em;">：n1,n2 w!command：将文件中n1行至n2行的内容作为command的输入并执行之，若不指定n1，n2，则表示将整个文件内容作为command的输入 </p>
				<p style="text-indent: 2em;">：r!command：将命令command的输出结果放到当前行 </p>
				<p style="text-indent: 2em;"> </p>
				<p style="text-indent: 2em;">寄存器操作 </p>
				<p style="text-indent: 2em;">"?nyy：将当前行及其下n行的内容保存到寄存器？中，其中?为一个字母，n为一个数字 </p>
				<p style="text-indent: 2em;">"?nyw：将当前行及其下n个字保存到寄存器？中，其中?为一个字母，n为一个数字 </p>
				<p style="text-indent: 2em;">"?nyl：将当前行及其下n个字符保存到寄存器？中，其中?为一个字母，n为一个数字 </p>
				<p style="text-indent: 2em;">"?p：取出寄存器？中的内容并将其放到光标位置处。这里？可以是一个字母，也可以是一个数字 </p>
				<p style="text-indent: 2em;">ndd：将当前行及其下共n行文本删除，并将所删内容放到1号删除寄存器中。</p>
		</span>
<img src ="http://www.blogjava.net/duanzhimin528/aggbug/314189.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-03-01 17:30 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/03/01/314189.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux命令集合（一）</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/03/01/314187.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Mon, 01 Mar 2010 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/03/01/314187.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/314187.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/03/01/314187.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/314187.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/314187.html</trackback:ping><description><![CDATA[
		<p>sudo apt－get install 软件名 安装软件命令 <br />sudo nautilus 打开文件（有root权限） <br />su root 切换到“root”</p>
		<p>ls 列出当前目录文件（不包括隐含文件） <br />ls -a 列出当前目录文件（包括隐含文件） <br />ls -l 列出当前目录下文件的详细信息</p>
		<p>cd .. 回当前目录的上一级目录 <br />cd - 回上一次所在的目录 <br />cd ~ 或 cd 回当前用户的宿主目录 <br />mkdir 目录名 创建一个目录 <br />rmdir 空目录名 删除一个空目录 <br />rm 文件名 文件名 删除一个文件或多个文件 <br />rm -rf 非空目录名 删除一个非空目录下的一切</p>
		<p>mv 路经/文件 /经/文件 移动相对路经下的文件到绝对路经下 <br />mv 文件名 新名称 在当前目录下改名 <br />find 路经 -name “字符串” 查找路经所在范围内满足字符串匹配的文件和目录</p>
		<p>fdisk -l 查看系统分区信息 <br />fdisk /dev/sdb 为一块新的SCSI硬盘进行分区 <br />chown root /home 把/home的属主改成root用户 <br />chgrp root /home 把/home的属组改成root组 <br />
chmod XXX filename<br />×××（所有者\组用户\其他用户）<br />
×=4 读的权限 ×=2 写的权限 ×=1 执行的权限<br />
sudo chmod 600 ××× （只有所有者有读和写的权限）<br /> 
sudo chmod 644 ××× （所有者有读和写的权限，组用户只有读的权限）<br />
sudo chmod 700 ××× （只有所有者有读和写以及执行的权限）<br />
sudo chmod 666 ××× （每个人都有读和写的权限）<br />
sudo chmod 777 ××× （每个人都有读和写以及执行的权限）</p>
		<p>文件权限除了r、w、x外还有s、t、i、a权限：</p>
		<p>s：文件属主和组设置SUID和GUID，文件在被设置了s权限后将以root身份执行。在设置s权限时文件属主、属组必须先设置相应的x权限，否
则s权限并不能正真生效（c h m o d命令不进行必要的完整性检查，即使不设置x权限就设置s权限，chmod也不会报错，当我们ls
-l时看到rwS，大写S说明s权限未生效）。Linux修改密码的passwd便是个设置了SUID的程序，普通用户无读写/etc/shadow文件
的权限确可以修改自己的密码。</p>
		<blockquote>
				<p>ls -al /usr/bin/passwd<br />-rw<span style="color: rgb(255, 0, 0);">s</span>r-xr-x 1 root root 32988 2008-12-08 17:17 /usr/bin/passwd</p>
		</blockquote>
		<p>我们可以通过字符模式设置s权限：chmod a+s filename，也可以使用绝对模式进行设置：</p>
		<blockquote>
				<p>设置s u i d：将相应的权限位之前的那一位设置为4；<br />设置g u i d：将相应的权限位之前的那一位设置为2；<br />两者都置位：将相应的权限位之前的那一位设置为4+2=6。</p>
		</blockquote>
		<p>如：chmod <span style="color: rgb(255, 0, 0);">4</span>764 filename   //设置SUID</p>
		<p>t ：设置粘着位，一个文件可读写的用户并一定相让他有删除此文件的权限，如果文件设置了t权限则只用属主和root有删除文件的权限，通过chmod +t filename 来设置t权限。</p>
		<p>i：不可修改权限  例：chattr u+i filename 则filename文件就不可修改，无论任何人，如果需要修改需要先删除i权限，用chattr -i filename就可以了。查看文件是否设置了i权限用lsattr filename。</p>
		<p>a：只追加权限， 对于日志系统很好用，这个权限让目标文件只能追加，不能删除，而且不能通过编辑器追加。可以使用chattr +a设置追加权限。</p>
		<p>Useradd 创建一个新的用户 <br />Groupadd 组名 创建一个新的组 <br />Passwd 用户名 为用户创建密码 <br />Passwd -d用户名 删除用户密码也能登陆 <br />Passwd -S用户名 查询账号密码 <br />Usermod -l 新用户名 老用户名 为用户改名 <br />Userdel–r 用户名 删除用户一切</p>
		<p>tar -c 创建包 –x 释放包 -v 显示命令过程 –z 代表压缩包 <br />tar –cvf benet.tar /home/benet 把/home/benet目录打包 <br />tar –zcvf benet.tar.gz /mnt 把目录打包并压缩 <br />tar –zxvf benet.tar.gz 压缩包的文件解压恢复 <br />tar –jxvf benet.tar.bz2 解压缩</p>
		<p>make 编译 <br />make install 安装编译好的源码包 <br />reboot Init 6 重启LINUX系统 <br />Halt Init 0 Shutdown –h now 关闭LINUX系统</p>
		<p>uname -a 查看内核版本 <br />cat /etc/issue 查看ubuntu版本 <br />lsusb 查看usb设备 <br />sudo ethtool eth0 查看网卡状态 <br />cat /proc/cpuinfo 查看cpu信息 <br />lshw 查看当前硬件信息 <br />sudo fdisk -l 查看磁盘信息 <br />df -h 查看硬盘剩余空间 <br />free -m 查看当前的内存使用情况 <br />ps -A 查看当前有哪些进程 <br />kill 进程号(就是ps -A中的第一列的数字)或者 killall 进程名( 杀死一个进程) <br />kill -9 进程号 强制杀死一个进程</p>
		<p>常用apt命令：</p>
		<p>apt-cache search package 搜索包 <br />apt-cache show package 获取包的相关信息，如说明、大小、版本等 <br />sudo apt-get install package 安装包 <br />sudo apt-get install package - - reinstall 重新安装包 <br />sudo apt-get -f install 修复安装”-f = –fix-missing” <br />sudo apt-get remove package 删除包 <br />sudo apt-get remove package - - purge 删除包，包括删除配置文件等 <br />sudo apt-get update 更新源 <br />sudo apt-get upgrade 更新已安装的包 <br />sudo apt-get dist-upgrade 升级系统 <br />sudo apt-get dselect-upgrade 使用 dselect 升级 <br />apt-cache depends package 了解使用依赖 <br />apt-cache rdepends package 是查看该包被哪些包依赖 <br />sudo apt-get build-dep package 安装相关的编译环境 <br />apt-get source package 下载该包的源代码 <br />sudo apt-get clean &amp;&amp; sudo apt-get autoclean 清理无用的包 <br />sudo apt-get check 检查是否有损坏的依赖</p>
		<p>清理所有软件缓存（即缓存在/var/cache/apt/archives目录里的deb包 ） <br />sudo apt-get clean</p>删除系统不再使用的孤立软件 <br />sudo apt-get autoremove<img src ="http://www.blogjava.net/duanzhimin528/aggbug/314187.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-03-01 17:24 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/03/01/314187.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu-关于分区</title><link>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301802.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Tue, 10 Nov 2009 03:52:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301802.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/301802.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301802.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/301802.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/301802.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 关于Ubuntu分区（图文解说）&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301802.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/301802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2009-11-10 11:52 <a href="http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301802.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu Linux下的J2EE（JAVA EE）环境配置</title><link>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301794.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Tue, 10 Nov 2009 03:08:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301794.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/301794.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301794.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/301794.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/301794.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 究竟怎么配置J2EE开发环境呢？分以下几步： 1，安装JDK； 2，安装eclipse； 3，安装安装Tomcat; 4，安装数据库&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301794.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/301794.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2009-11-10 11:08 <a href="http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301794.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux学习系列之系统安装</title><link>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301790.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Tue, 10 Nov 2009 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301790.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/301790.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301790.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/301790.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/301790.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 使用Linux有将近一年的时间了，回想从对其一无所知开始到现在，不禁心生感叹,想想确实不容易，经历了不知多少的疑难，往往为了一个问题的解决不知 Google了多少次，在论坛上徘徊、询问了多少回；因为一个问题造成了linux无法正常启动，为了解决问题，不惜重启机器n次以尝试解决问题；……。在网上搜索到此系列文章，涵盖了从系统安装到使用等一些我碰见的比较常间的问题，以帮助那些和我一样在linux道路上探索着，却找不到出路的朋友。&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301790.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/301790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2009-11-10 11:04 <a href="http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301790.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>