<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>木客网 &#187; Linux</title>
	<atom:link href="http://woodfeed.com/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://woodfeed.com</link>
	<description></description>
	<lastBuildDate>Wed, 09 Jun 2010 12:15:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>VMWare虚拟机下linux联网</title>
		<link>http://woodfeed.com/vmware-virtual-machine-under-linux-network/</link>
		<comments>http://woodfeed.com/vmware-virtual-machine-under-linux-network/#comments</comments>
		<pubDate>Wed, 12 May 2010 02:21:47 +0000</pubDate>
		<dc:creator>vayu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[联网]]></category>

		<guid isPermaLink="false">http://woodfeed.com/?p=592</guid>
		<description><![CDATA[VMWare虚拟机下安装的RedHat 9.0 linux有三种方式实现上网，桥接、nat、host-only。本来想用桥接方式的，可总是因为配置网络出现问题而不能上网，还把sygate4.5（代理服务器软件）给安装上去配置也没用。没办法 ，还是用nat方式去配置，虚拟机linux下NAT上网配置和我用的windows xp3不一样，linux要想用NAT方式上网还需进行另外的设置，试了N多遍，最后才发现，我把linux的DNS配置错了，真想哭啊，这点小错误浪费了我这么多时间。不废话了，还是先讲讲我的操作步骤吧。]]></description>
			<content:encoded><![CDATA[<p>VMWare虚拟机下安装的RedHat 9.0 linux有三种方式实现上网，桥接、nat、host-only。本来想用桥接方式的，可总是因为配置网络出现问题而不能上网，还把sygate4.5（代理服务器软件）给安装上去配置也没用。没办法 ，还是用nat方式去配置，虚拟机linux下NAT上网配置和我用的windows xp3不一样，linux要想用NAT方式上网还需进行另外的设置，试了N多遍，最后才发现，我把linux的DNS配置错了，真想哭啊，这点小错误浪费了我这么多时间。不废话了，还是先讲讲我的操作步骤吧。</p>
<p>(前提，VM选择nat方式上网，这个安装的时候可以设定，当然安装好后也可以去修改）</p>
<p>1.网上邻居-属性-可以看到在你安装好 VM虚拟机后又多了两个网络连接</p>
<p><a href="http://woodfeed.com/wp-content/uploads/2010/05/netlan.jpg" rel="lightbox[592]"><img class="aligncenter size-full wp-image-587" title="netlan" src="http://woodfeed.com/wp-content/uploads/2010/05/netlan.jpg" alt="" width="439" height="178" /></a></p>
<p>(vmnet1是host-only，也就是说，选择用vmnet1的话就相当于VMware给你提供了一个虚拟交换机，仅将虚拟机和真实系统连上了，虚拟机可以与真实系统相互共享文件，但是虚拟机无法访问外部互联网，而vmnet8是NAT，就是网络地址转换，相当于给你一个虚拟交换机，将虚拟机和真实系统连上去了，同时这台虚拟交换机又和外部互联网相连，这样虚拟机和真是系统可以相互共享，同时又都能访问外部互联网，而且虚拟机是借用真实系统的IP上网的，不会受到IP-MAC绑定的限制。)</p>
<p>右键VMnet8-属性-tcp/ip协议</p>
<p><a href="http://woodfeed.com/wp-content/uploads/2010/05/TCP_IP.jpg" rel="lightbox[592]"><img class="aligncenter size-full wp-image-588" title="TCP_IP" src="http://woodfeed.com/wp-content/uploads/2010/05/TCP_IP.jpg" alt="" width="343" height="185" /></a></p>
<p>-双击打开 -勾选使用下面的IP地址，</p>
<p>把IP地址改为192.168.132(这个自己随便设1-224内的数字）.1 /255.255.255.0 网关以及DNS不用设置，点确定。</p>
<p><a href="http://woodfeed.com/wp-content/uploads/2010/05/the_ip.jpg" rel="lightbox[592]"><img class="aligncenter size-full wp-image-589" title="the_ip" src="http://woodfeed.com/wp-content/uploads/2010/05/the_ip.jpg" alt="" width="371" height="103" /></a></p>
<p>2.打开vm虚拟机，点左上方的编辑-虚拟网络设置-nat</p>
<p><a href="http://woodfeed.com/wp-content/uploads/2010/05/vm_nat.jpg" rel="lightbox[592]"><img class="aligncenter size-full wp-image-590" title="vm_nat" src="http://woodfeed.com/wp-content/uploads/2010/05/vm_nat.jpg" alt="" width="537" height="205" /></a></p>
<p>虚拟机的DNS就是这里的网关IP地址192.168.132.2,这个vmnet8相当于局域网里的网关。把这个地址记下。</p>
<p>3.编辑-虚拟网络设置-主机虚拟网络映射,在vmnet0下拉框勾选自己的网卡，其余的一般默认即可。</p>
<p><a href="http://woodfeed.com/wp-content/uploads/2010/05/VMnet.jpg" rel="lightbox[592]"><img class="aligncenter size-full wp-image-591" title="VMnet" src="http://woodfeed.com/wp-content/uploads/2010/05/VMnet.jpg" alt="" width="539" height="400" /></a></p>
<p>4.回到win主机,开始-运行-CMD,打开DOS，输入命令ipconfig/all，可以看到相关的IP配置，记好。</p>
<p><a href="http://woodfeed.com/wp-content/uploads/2010/05/ipconfig.jpg" rel="lightbox[592]"><img class="aligncenter size-full wp-image-582" title="ipconfig" src="http://woodfeed.com/wp-content/uploads/2010/05/ipconfig.jpg" alt="" width="637" height="414" /></a></p>
<p>5.进入VM虚拟机中的linux系统，主菜单-系统设置-网络-勾选下面的设备eth0-进入以太网设备编辑状态</p>
<p><a href="http://woodfeed.com/wp-content/uploads/2010/05/linux_eth0.jpg" rel="lightbox[592]"><img class="aligncenter size-full wp-image-584" title="linux_eth0" src="http://woodfeed.com/wp-content/uploads/2010/05/linux_eth0.jpg" alt="" width="445" height="447" /></a></p>
<p>勾选静态设置的IP地址 把地址设为和VMnet8一个网段的IP地址：192.168.132.X 子网掩码:255.255.255.0 默认网关：就是上面的VMnet8的IP地址：192.168.132.2。</p>
<p>DNS也设置为192.168.132.2</p>
<p><a href="http://woodfeed.com/wp-content/uploads/2010/05/linux_DNS.gif" rel="lightbox[592]"><img class="aligncenter size-full wp-image-583" title="linux_DNS" src="http://woodfeed.com/wp-content/uploads/2010/05/linux_DNS.gif" alt="" width="437" height="402" /></a></p>
<p>设置完成保存后 主菜单-系统工具-终端 打开后输入：service network restart (重启网络命令)</p>
<p><a href="http://woodfeed.com/wp-content/uploads/2010/05/liunx_final_lan.jpg" rel="lightbox[592]"><img class="aligncenter size-full wp-image-586" title="liunx_final_lan" src="http://woodfeed.com/wp-content/uploads/2010/05/liunx_final_lan.jpg" alt="" width="582" height="195" /></a></p>
<p>OK ，搞定！来一张上网效果图</p>
<p><a href="http://woodfeed.com/wp-content/uploads/2010/05/linux_internet.jpg" rel="lightbox[592]"><img class="aligncenter size-full wp-image-585" title="linux_internet" src="http://woodfeed.com/wp-content/uploads/2010/05/linux_internet.jpg" alt="" width="670" height="398" /></a></p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li><a href="http://woodfeed.com/detailed-description-of-linux-network-configuration/" title="Linux网络配置详解">Linux网络配置详解</a><br /><small>从linux诞生的那一天起,就注定了它的网络功能空前地强大.所以在linux系统中如何配...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://woodfeed.com/vmware-virtual-machine-under-linux-network/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Apache mod_rewrite 实现301重定向</title>
		<link>http://woodfeed.com/apache-mod_rewrite-for-301-redirect/</link>
		<comments>http://woodfeed.com/apache-mod_rewrite-for-301-redirect/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 06:45:06 +0000</pubDate>
		<dc:creator>vayu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[mod_rewrite]]></category>

		<guid isPermaLink="false">http://woodfeed.com/?p=380</guid>
		<description><![CDATA[它提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试，比如服务器变量、环境变量、HTTP头、时间标记，甚至各种格式的用于匹配URL组成部分的查找数据库。

此模块可以操作URL的所有部分(包括路径信息部分)，在服务器级的(httpd.conf)和目录级的(.htaccess)配置都有效，还可以生成最终请求字符串。此重写操作的结果可以是内部子处理，也可以是外部请求的转向，甚至还可以是内部代理处理。]]></description>
			<content:encoded><![CDATA[<p><strong>Apache mod_rewrite</strong><br />
它提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试，比如服务器变量、环境变量、HTTP头、时间标记，甚至各种格式的用于匹配URL组成部分的查找数据库。</p>
<p>此模块可以操作URL的所有部分(包括路径信息部分)，在服务器级的(httpd.conf)和目录级的(.htaccess)配置都有效，还可以生成最终请求字符串。此重写操作的结果可以是内部子处理，也可以是外部请求的转向，甚至还可以是内部代理处理。</p>
<p><strong>mod_rewrite 实现301重定向<br />
</strong>1.只更换域名，后面的目录链接不变：</p>
<p><code># BEGIN WP<br />
Options +FollowSymLinks<br />
RewriteEngine On<br />
RewriteCond %{http_host} ^blog.woodfeed.com [NC]<br />
RewriteRule ^(.*)$ http://woodfeed.com/$1 [L,R=301]<br />
# END WP</code></p>
<p><code># BEGIN WP<br />
Options +FollowSymLinks<br />
RewriteEngine On<br />
RewriteCond %{http_host} ^blog\.woodfeed\.com$ [NC]<br />
RewriteRule ^(.*)$ http://woodfeed.com%{REQUEST_URI} [L,R=301]<br />
# END WP</code><br />
2.更换域名的同时，将伪静态页面的.html去掉<br />
本站blog.woodfeed.com就是用的下面代码实现的301定向。</p>
<p><code># BEGIN WP<br />
Options +FollowSymLinks<br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule ^([-a-zA-Z0-9_+]+).html$ http://woodfeed.com/$1 [L,R=301]<br />
RewriteRule ^(.*)$ http://woodfeed.com%{REQUEST_URI} [L,R=301]<br />
# END WP</code></p>
<p><strong>mod_rewrite 正则表达式<br />
</strong>现在我们可以重写URLs了！设想我们有一个显示城市信息的网站。根据URI选择城市：http://www.example.com/display.php?country=USA &amp;state=California&amp;city=San_Diego这个URL太长并且对用户也不友好，我们更希望写成这样：</p>
<p>http://www.example.com/USA/California/San_Diego</p>
<p>我们需要告诉Apache新的URL会根据一定的格式转化成这样，为了让display.php明白查询的字符，所以我们将用到正则表达式告诉 mod_rewrite匹配我们的URLs。如果你对正则表达式不太熟悉，许多网站提供了优秀的教程供你学习。在本文的末尾，我也会列举出比较好的参考网 址。如果你还是不能明白我所讲述的，那么我建议你看看后面链接中的前两篇。<br />
一个最常用的正则就是（.*）。它含有两个元素：一是“点”，表示任意字符；二是“星”，表示以前的全部字符。所以（.*）会匹配 {REQUEST_URI}的所有字符。{REQUEST_URI}是URL中出去域名以及“？”符号的所有查询字符，也是Apache 重写技术尝试匹配的字符。<br />
包裹在正则表达式中的元素存放在“原子”内，它是在规则范围内允许被匹配的变量，所以以上正则存储了USA/California/San_Diego在“原子”中，为了解决我们的问题，我们需要三个“原子”，他们可以用左斜杠“/”进行分隔，所以正则表达式成了：<br />
(.*)/(.*)/(.*)<br />
以上正则，在{REQUEST_URI}中通过两个“/”的分割存储了三个值，为了解决我们具体问题，我们得加一点限制――毕竟，第一个和最后一个原子可以匹配任何字符。<br />
开始，我们可以添加一些特殊的字符，比如表示正则“开始”或者“结束”，“^”字符表示正则的开始而“$”表示正则的结束。<br />
^(.*)/(.*)/(.*)$<br />
这个正则表示整个字符串将全部匹配，除去之前后者之后，没有任何例外。<br />
但是，这个方法仍然匹配的范围太广，我们将匹配的字符按照原子形式存放，然后通过他们形成查询字符串，所以我们必须信任我们所匹配的字符。用(.*)匹配字符串，由于允许了太多字符，所以会存在潜在的安全隐患，引用不当会使mod_rewrite运行出故障。<br />
为了避免一些不必要的麻烦，让我们更改一下我们的原子正则，让其更加准确的匹配我们允许的字符。因为这些原子代表了地区地名，所以我们完全可以用A到Z的 大小写来表示他们，另外因为地名之间有空格，所以下划线“_”也是被允许的。我们用中括弧明确我们匹配的正则，然后用短横线“-”表示连接的范围，所以被 我们允许的正则修改成了[a-zA-Z_],因为我们还要避免匹配到空名字，所以用“+”来匹配在该字符之前的一个或者多个字符，所以我们的正则成了：<br />
^([a-zA-Z_]+)/([a-zA-Z_]+)/([a-zA-Z_]+)$<br />
{REQUEST_URI}是以“/”开头。Apache 在更改版本的时候会更改正则引擎，一代Apache要求有斜杠而二代Apache却不允许！但是我们可以用^/?（？表示匹配字符本身或者前一个字符）来兼容两个版本的Apache，所以我们的正则又成了:<br />
^/?([a-zA-Z_]+)/([a-zA-Z_]+)/([a-zA-Z_]+)$正则在手，我们就可以将原子标识到URL上了：display.php?country=$1 &amp;state=$2&amp;city=$3<br />
$1表示国家原子；$2表示省州原子；$3表示城市原子，这里可以加上9个原子，分别用$1到$9表示。<br />
现在我们要做的就是在该目录下创建一个新的.htaccess文件，录入一下代码：<br />
RewriteRule ^/?([a-zA-Z_]+)/([a-zA-Z_]+)/([a-zA-Z_]+)$ display.php?country=$1 &amp;state=$2&amp;city=$3 [L]<br />
然后保存，重写规则必须写在一行并且用一个空格分开每一个参数，我们用[L]或者’last’表示匹配结束。（一会有更多flags介绍）我们的重写规则已经创建完成， URL请求字符上各原子的值将经过我们匹配的正则，加上查询变量到我们的重写URL上。display.php将从查询字符中解析这些值，然后将他们送入数据库查询或者进行其他数据库操作。<br />
如果你的正则只允许有限的几个国家，为了避免数据库错误，你可以在正则中加入一下被允许条件，例子如下：<br />
^/?(USA|Canada|Mexico)/([a-zA-Z_]+)/([a-zA-Z_]+)$<br />
如果你关心查询字符串的大小写问题，由于你数据库对大写有严格的限制，那么你可以在正则表达式后面加一个[NC]FLAG位来忽略大小写，但是不要忘记在你通过$_GET 获取传递值的时候，把他们转换成小写。<br />
如果你想用数字（0，1…..9）来表示具体的地区，那么需要更改正则中的([a-zA-Z_]+)成([0-9])来匹配单个数字，([0-9]{1,2})匹配两位数字（0到99）,([0-9]+)匹配多位数字，这个对匹配数据库ID之类的非常有用。</p>
<p><strong>RewriteCond 指令</strong><br />
当RewirteCond指令明确声明以后，mod_rewrite将根据它们做出相应的处理。<br />
RewirteCond 指令的形式和RewriteRule有点类似，形式为：RewirteCond 被匹配的字符正则 FLAG标识。逻辑FLAG标识 [OR],是非常有用的，记住所有RewirteCond 以及RewriteRule指令在[LAST]指令之前，所有的逻辑与关系都会被包含。<br />
你可以用RewirteCond指令测试服务器变量，在this is the best list of server variables一文可以找到相关说明。举一个列子，假设我们想将“www”放入你的域名中，首先你得测试你的服务器{HTTP_HOST}变量，看www.是否已经存在，如果没有那么定向到期望的主机名：<br />
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]<br />
RewriteRule .? http://www.example.com%{REQUEST_URI} [R=301,L]<br />
这里{HTTP_HOST}是一个Apache服务器变量，我们必须加一个“%”字符再之前。正则表达式以“!”开始表示如果正则不匹配那么条件成立。我 们当然也要转义“.”字符，将其作为一个普通字面字符而不是表示所有字符。再最后我们还加了一个忽略大小写的[NC]FLAG。<br />
RewriteRule匹配了零或者任意一个字符，并且定向到http://www.example.com加上原来{REQUEST_URI}值。R=301向服务器提出301请求，表明这是一个永久转向，最后一个[L]表示已经完成这段正则匹配。<br />
RewriteCond也可以创建原子，在RewriteRule中原子是以$1…..$9表示，但是在RewriteCond中是以%1….%9表示。</p>
<p><strong>mod_rewrite注释<br />
</strong>任何mod_rewrite代码之前都要加上RewriteEngine on这个状态，另外RewriteEngine on还可以用到其他地方。作为一个好的程序员，你知道注释对于程序来说是多么的重要。</p>
<p>mod_rewrite允许在RewriteEngine off 与RewriteEngine on之间加上你的注释：<br />
RewriteEngine off<br />
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]<br />
RewriteRule .? http://www.example.com%{REQUEST_URI} [R=301,L]<br />
RewriteEngine on<br />
以上所有的程序代码都不会被执行，RewriteEngine状态值的改变对新的mod_rewrite 代码开发非常有用。像你在PHP里面用/* &#8230; */注释一样，好好的运用他们。</p>
<p><strong>例子：用新的格式展示当前URI<br />
</strong>如果这就是我们当前正在运行的URLs：/index.php?id=nnnn。我们非常希望将其更改成/nnnn并且让搜索引擎以新格式展现。首先，我 们为了让搜索引擎更新成新的，得将旧的URLs重定向到新的格式，但是，我们还得保证以前的index.php照样能够运行。是不是被我搞迷糊了？<br />
实现以上功能，诀窍就在于在查询变量中加了一个访问者看不到的标记符“marker”。我们只将查询变量中没有出现“marker”标记的链接进行重定 向，然后将原有的链接替换成新的格式，并且通过[QSA]FLAG在已有的参数加一个“marker”标记。以下为实现的方式：<br />
RewriteCond %{QUERY_STRING} !marker<br />
RewriteCond %{QUERY_STRING} id=([-a-zA-Z0-9_+]+)<br />
RewriteRule ^/?index\.php$ %1? [R=301,L]<br />
RewriteRule ^/?([-a-zA-Z0-9_+]+)$ index.php?marker &amp;id=$1 [L]<br />
这里，原先的URL：http://www.example.com/index.php?id=nnnn,不包含marker，所以被第一个规则永久重 定向到http://www.example.com/nnnn，第二个规则将http://www.example.com/nnnn反定向到 http://www.example.com/index.php?marker &amp;id=nnnn，并且加了marker以及id=nnnn两个变量，最后mod_rewrite就开始进行处理过程。<br />
第二次匹配，marker被匹配，所以忽略第一条规则，这里有一个“.”字符会出现在http://www.example.com/index.php?marker &amp;id=nnnn中，所以第二条规则也会被忽略，这样我们就完成了。<br />
注意，这个解决方案要求Apache的一些扩展功能，所以如果你的网站放于在共享主机中会遇到很多障碍。<br />
了解更多：http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html</p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li><a href="http://woodfeed.com/php-code-for-301-redirect/" title="简单PHP代码实现301地址重定向">简单PHP代码实现301地址重定向</a><br /><small>重定向就是将网页自动转向重定向，即：301永久性重定向和302临时性重定向。实施301后...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://woodfeed.com/apache-mod_rewrite-for-301-redirect/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Linux常用命令详解(6)</title>
		<link>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-6/</link>
		<comments>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-6/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 09:46:37 +0000</pubDate>
		<dc:creator>vayu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux ifconfig]]></category>
		<category><![CDATA[linux netconfig]]></category>
		<category><![CDATA[linux netstat]]></category>
		<category><![CDATA[linux ping]]></category>

		<guid isPermaLink="false">http://woodfeed.com/?p=364</guid>
		<description><![CDATA[八 网络通迅
1 ifconfig 2 netconfig 3 netstat 4 ping]]></description>
			<content:encoded><![CDATA[<p>八 网络通迅<br />
1 ifconfig<br />
功能说明：显示或设置网络设备。<br />
语　　法：ifconfig [网络设备][down up -allmulti -arp -promisc][add&lt;地址&gt;][del&lt;地址&gt;][&lt;硬件地址&gt;][io_addr<em>][irq</em>][media&lt;网络媒介类型&gt;][mem_start&lt;内存地址&gt;][metric&lt;数目&gt;][mtu&lt;字节&gt;][netmask&lt;子网掩码&gt;][tunnel&lt;地址&gt;][-broadcast&lt;地址&gt;][-pointopoint&lt;地址&gt;][IP地址]<br />
补充说明：ifconfig可设置网络设备的状态，或是显示目前的设置。<br />
参　　数：<br />
add&lt;地址&gt; 设置网络设备IPv6的IP地址。<br />
del&lt;地址&gt; 删除网络设备IPv6的IP地址。<br />
down 关闭指定的网络设备。<br />
&lt;硬件地址&gt; 设置网络设备的类型与硬件地址。<br />
io_addr 设置网络设备的I/O地址。<br />
irq 设置网络设备的IRQ。<br />
media&lt;网络媒介类型&gt; 设置网络设备的媒介类型。<br />
mem_start&lt;内存地址&gt; 设置网络设备在主内存所占用的起始地址。<br />
metric&lt;数目&gt; 指定在计算数据包的转送次数时，所要加上的数目。<br />
mtu&lt;字节&gt; 设置网络设备的MTU。<br />
netmask&lt;子网掩码&gt; 设置网络设备的子网掩码。<br />
tunnel&lt;地址&gt; 建立IPv4与IPv6之间的隧道通信地址。<br />
up 启动指定的网络设备。<br />
-broadcast&lt;地址&gt; 将要送往指定地址的数据包当成广播数据包来处理。<br />
-pointopoint&lt;地址&gt; 与指定地址的网络设备建立直接连线，此模式具有保密功能。<br />
-promisc 关闭或启动指定网络设备的promiscuous模式。<br />
[IP地址] 指定网络设备的IP地址。<br />
[网络设备] 指定网络设备的名称。</p>
<p>2 netconfig<br />
功能说明：设置网络环境。<br />
语　　法：netconfig<br />
补充说明：这是Slackware发行版内附程序，它具有互动式的问答界面，让用户轻易完成网络环境的设置。</p>
<p>3 netstat<br />
功能说明：显示网络状态。<br />
语　　法：netstat [-acCeFghilMnNoprstuvVwx][-A&lt;网络类型&gt;][--ip]<br />
补充说明：利用netstat指令可让你得知整个Linux系统的网络情况。<br />
参　　数：<br />
-a或&#8211;all 显示所有连线中的Socket。<br />
-A&lt;网络类型&gt;或&#8211;&lt;网络类型&gt; 列出该网络类型连线中的相关地址。<br />
-c或&#8211;continuous 持续列出网络状态。<br />
-C或&#8211;cache 显示路由器配置的快取信息。<br />
-e或&#8211;extend 显示网络其他相关信息。<br />
-F或&#8211;fib 显示FIB。<br />
-g或&#8211;groups 显示多重广播功能群组组员名单。<br />
-h或&#8211;help 在线帮助。<br />
-i或&#8211;interfaces 显示网络界面信息表单。<br />
-l或&#8211;listening 显示监控中的服务器的Socket。<br />
-M或&#8211;masquerade 显示伪装的网络连线。<br />
-n或&#8211;numeric 直接使用IP地址，而不通过域名服务器。<br />
-N或&#8211;netlink或&#8211;symbolic 显示网络硬件外围设备的符号连接名称。<br />
-o或&#8211;timers 显示计时器。<br />
-p或&#8211;programs 显示正在使用Socket的程序识别码和程序名称。<br />
-r或&#8211;route 显示Routing Table。<br />
-s或&#8211;statistice 显示网络工作信息统计表。<br />
-t或&#8211;tcp 显示TCP传输协议的连线状况。<br />
-u或&#8211;udp 显示UDP传输协议的连线状况。<br />
-v或&#8211;verbose 显示指令执行过程。<br />
-V或&#8211;version 显示版本信息。<br />
-w或&#8211;raw 显示RAW传输协议的连线状况。<br />
-x或&#8211;unix 此参数的效果和指定&#8221;-A unix&#8221;参数相同。<br />
&#8211;ip或&#8211;inet 此参数的效果和指定&#8221;-A inet&#8221;参数相同。</p>
<p>4 ping<br />
功能说明：检测主机。<br />
语　　法：ping [-dfnqrRv][-c&lt;完成次数&gt;][-i&lt;间隔秒数&gt;][-I&lt;网络界面&gt;][-l&lt;前置载入&gt;][-p&lt;范本样式&gt;][-s&lt;数据包大小&gt;][-t&lt;存活数值&gt;][主机名称或IP地址]<br />
补充说明：执行ping指令会使用ICMP传输协议，发出要求回应的信息，若远端主机的网络功能没有问题，就会回应该信息，因而得知该主机运作正常。<br />
参　　数：<br />
-d 使用Socket的SO_DEBUG功能。<br />
-c&lt;完成次数&gt; 设置完成要求回应的次数。<br />
-f 极限检测。<br />
-i&lt;间隔秒数&gt; 指定收发信息的间隔时间。<br />
-I&lt;网络界面&gt; 使用指定的网络界面送出数据包。<br />
-l&lt;前置载入&gt; 设置在送出要求信息之前，先行发出的数据包。<br />
-n 只输出数值。<br />
-p&lt;范本样式&gt; 设置填满数据包的范本样式。<br />
-q 不显示指令执行过程，开头和结尾的相关信息除外。<br />
-r 忽略普通的Routing Table，直接将数据包送到远端主机上。<br />
-R 记录路由过程。<br />
-s&lt;数据包大小&gt; 设置数据包的大小。<br />
-t&lt;存活数值&gt; 设置存活数值TTL的大小。<br />
-v 详细显示指令的执行过程。</p>
<h2  class="related_post_title">精彩文章</h2><ul class="related_post"><li><a href="http://woodfeed.com/switching-technology/" title="交换技术">交换技术</a><br /><small>主要内容：1、线路交换
　2、分组交换
　3、帧中继交换
　4、信元交换...</small></li><li><a href="http://woodfeed.com/hall-sensor/" title="霍尔传感器">霍尔传感器</a><br /><small>霍尔传感器是一种磁传感器。用它可以检测磁场及其变化，可在各种与磁场有关的场合中使用。霍尔...</small></li><li><a href="http://woodfeed.com/vmware-virtual-machine-under-linux-network/" title="VMWare虚拟机下linux联网">VMWare虚拟机下linux联网</a><br /><small>VMWare虚拟机下安装的RedHat 9.0 linux有三种方式实现上网，桥接、na...</small></li><li><a href="http://woodfeed.com/mail-problem-in-windows-host-for-wp/" title="WordPress使用win主机出现的邮件问题">WordPress使用win主机出现的邮件问题</a><br /><small>邮件问题是很头痛的，我搞了N天，首先就是肯定用不了自带的mail()函数来发注册邮件和评...</small></li><li><a href="http://woodfeed.com/c8051f020-external-data-memory-reuse-approach/" title="C8051f020外部数据存储器复用方式">C8051f020外部数据存储器复用方式</a><br /><small>C8051F020/1/1/3 MCU 内部有位于外部数据存储器空间的4096 字节片上...</small></li><li><a href="http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-3/" title="Linux常用命令详解(3)">Linux常用命令详解(3)</a><br /><small>四 磁盘管理
1 cd 2 df 3 du 4 ls 5 mkdir 6 pwd 7 r...</small></li><li><a href="http://woodfeed.com/detailed-description-of-linux-network-configuration/" title="Linux网络配置详解">Linux网络配置详解</a><br /><small>从linux诞生的那一天起,就注定了它的网络功能空前地强大.所以在linux系统中如何配...</small></li><li><a href="http://woodfeed.com/a-different-day/" title="不一样的一天">不一样的一天</a><br /><small>为什么不一样呢？因为天明了，又黑了，然后又亮了！——日全食。

传说中五百年一次的日全食...</small></li><li><a href="http://woodfeed.com/robot-control-of-linear-maze/" title="浅谈机器人在线迷宫中的控制策略问题">浅谈机器人在线迷宫中的控制策略问题</a><br /><small>循迹存在一些直道、弯道、丁字路口、十字路口、死胡同等多种情况。在“左手法则”下，如何合理...</small></li><li><a href="http://woodfeed.com/application-of-open-source-tcp-ip-protocol-stack-uip/" title="源码公开的TCP/IP协议栈uIP的应用">源码公开的TCP/IP协议栈uIP的应用</a><br /><small>摘 要：介绍一个适用于8/16位单片机的嵌入式TCP/IP协议栈（uIP）在发电机远程监...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux常用命令详解(5)</title>
		<link>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-5/</link>
		<comments>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-5/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 09:38:37 +0000</pubDate>
		<dc:creator>vayu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[adduser]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[egrep]]></category>
		<category><![CDATA[fgrep]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[halt]]></category>
		<category><![CDATA[kill]]></category>
		<category><![CDATA[logname]]></category>
		<category><![CDATA[passwd]]></category>
		<category><![CDATA[reboot]]></category>
		<category><![CDATA[su]]></category>
		<category><![CDATA[uname]]></category>
		<category><![CDATA[useradd]]></category>
		<category><![CDATA[userdel]]></category>
		<category><![CDATA[who]]></category>

		<guid isPermaLink="false">http://woodfeed.com/?p=358</guid>
		<description><![CDATA[七 系统管理
1 adduser 2 passwd 3 date 4 exit 5 free 6 halt 7 kill 8 login 9 logout 10 logname 11 ps 12 reboot 13 su 14 uname 15 useradd 16 userdel 17 who 18 grep、fgrep和egrep]]></description>
			<content:encoded><![CDATA[<p>七 系统管理<br />
1 adduser<br />
功能说明：新增用户帐号。<br />
语　　法：adduser<br />
补充说明：在Slackware中，adduser指令是个script程序，利用交谈的方式取得输入的用户帐号资料，然后再交由真正建立帐号的useradd指令建立新用户，如此可方便管理员建立用户帐号。在Red Hat Linux中，adduser指令则是useradd指令的符号连接，两者实际上是同一个指令。</p>
<p>2 passwd<br />
功能说明：设置密码。<br />
语　　法：passwd [-dklS][-u &lt;-f&gt;][用户名称]<br />
补充说明：passwd指令让用户可以更改自己的密码，而系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称，一般用户只能变更自己的密码。<br />
参　　数：<br />
-d 　删除密码。本参数仅有系统管理者才能使用。<br />
-f 　强制执行。<br />
-k 　设置只有在密码过期失效后，方能更新。<br />
-l 　锁住密码。<br />
-s 　列出密码的相关信息。本参数仅有系统管理者才能使用。<br />
-u 　解开已上锁的帐号。</p>
<p>3 date<br />
功能说明：显示或设置系统时间与日期</p>
<p>4 exit<br />
功能说明：退出目前的shell</p>
<p>5 free<br />
功能说明：显示内存状态</p>
<p>6 halt<br />
功能说明：关闭系统</p>
<p>7 kill<br />
功能说明：删除执行中的程序或工作。<br />
语　　法：kill [-s &lt;信息名称或编号&gt;][程序]　或　kill [-l &lt;信息编号&gt;]<br />
补充说明：kill可将指定的信息送至程序。预设的信息为SIGTERM(15)，可将指定程序终止。若仍无法终止该程序，可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。<br />
参　　数：<br />
　-l &lt;信息编号&gt; 　若不加&lt;信息编号&gt;选项，则-l参数会列出全部的信息名称。<br />
　-s &lt;信息名称或编号&gt; 　指定要送出的信息。<br />
　[程序] 　[程序]可以是程序的PID或是PGID，也可以是工作编号。</p>
<p>8 login<br />
功能说明：登入系统。<br />
语　　法：login<br />
补充说明：login指令让用户登入系统，您亦可通过它的功能随时更换登入身份。在Slackware发行版中 ，您可在指令后面附加欲登入的用户名称，它会直接询问密码，等待用户输入。当/etc目录里含名称为nologin的文件时，系统只root帐号登入系统，其他用户一律不准登入</p>
<p>9 logout<br />
功能说明：退出系统。<br />
语　　法：logout<br />
补充说明：logout指令让用户退出系统，其功能和login指令相互对应</p>
<p>10 logname<br />
功能说明：显示用户名称。<br />
语　　法：logname [--help][--version]<br />
补充说明：执行logname指令，它会显示目前用户的名称</p>
<p>11 ps<br />
功能说明：报告程序状况<br />
参　　数：<br />
　-a 　显示所有终端机下执行的程序，除了阶段作业领导者之外。<br />
　a 　显示现行终端机下的所有程序，包括其他用户的程序。<br />
　-A 　显示所有程序。<br />
　-c 　显示CLS和PRI栏位。<br />
　c 　列出程序时，显示每个程序真正的指令名称，而不包含路径，参数或常驻服务的标示。<br />
　-C&lt;指令名称&gt; 　指定执行指令的名称，并列出该指令的程序的状况。<br />
　-d 　显示所有程序，但不包括阶段作业领导者的程序。<br />
　-e 　此参数的效果和指定&#8221;A&#8221;参数相同。<br />
　e 　列出程序时，显示每个程序所使用的环境变量。<br />
　-f 　显示UID,PPIP,C与STIME栏位。<br />
　f 　用ASCII字符显示树状结构，表达程序间的相互关系。<br />
　-g&lt;群组名称&gt; 　此参数的效果和指定&#8221;-G&#8221;参数相同，当亦能使用阶段作业领导者的名称来指定。<br />
　g 　显示现行终端机下的所有程序，包括群组领导者的程序。<br />
　-G&lt;群组识别码&gt; 　列出属于该群组的程序的状况，也可使用群组名称来指定。<br />
　h 　不显示标题列。<br />
　-H 　显示树状结构，表示程序间的相互关系。<br />
　-j或j 　采用工作控制的格式显示程序状况。<br />
　-l或l 　采用详细的格式来显示程序状况。<br />
　L 　列出栏位的相关信息。<br />
　-m或m 　显示所有的执行绪。<br />
　n 　以数字来表示USER和WCHAN栏位。<br />
　-N 　显示所有的程序，除了执行ps指令终端机下的程序之外。<br />
　-p&lt;程序识别码&gt; 　指定程序识别码，并列出该程序的状况。<br />
　p&lt;程序识别码&gt; 　此参数的效果和指定&#8221;-p&#8221;参数相同，只在列表格式方面稍有差异。<br />
　r 　只列出现行终端机正在执行中的程序。<br />
　-s&lt;阶段作业&gt; 　指定阶段作业的程序识别码，并列出隶属该阶段作业的程序的状况。<br />
　s 　采用程序信号的格式显示程序状况。<br />
　S 　列出程序时，包括已中断的子程序资料。<br />
　-t&lt;终端机编号&gt; 　指定终端机编号，并列出属于该终端机的程序的状况。<br />
　t&lt;终端机编号&gt; 　此参数的效果和指定&#8221;-t&#8221;参数相同，只在列表格式方面稍有差异。<br />
　-T 　显示现行终端机下的所有程序。<br />
　-u&lt;用户识别码&gt; 　此参数的效果和指定&#8221;-U&#8221;参数相同。<br />
　u 　以用户为主的格式来显示程序状况。<br />
　-U&lt;用户识别码&gt; 　列出属于该用户的程序的状况，也可使用用户名称来指定。<br />
　U&lt;用户名称&gt; 　列出属于该用户的程序的状况。<br />
　v 　采用虚拟内存的格式显示程序状况。<br />
　-V或V 　显示版本信息。<br />
　-w或w 　采用宽阔的格式来显示程序状况。　<br />
　x 　显示所有程序，不以终端机来区分。<br />
　X 　采用旧式的Linux i386登陆格式显示程序状况。<br />
　-y 　配合参数&#8221;-l&#8221;使用时，不显示F(flag)栏位，并以RSS栏位取代ADDR栏位　。<br />
　-&lt;程序识别码&gt; 　此参数的效果和指定&#8221;p&#8221;参数相同。<br />
　&#8211;cols&lt;每列字符数&gt; 　设置每列的最大字符数。<br />
　&#8211;columns&lt;每列字符数&gt; 　此参数的效果和指定&#8221;&#8211;cols&#8221;参数相同。<br />
　&#8211;cumulative 　此参数的效果和指定&#8221;S&#8221;参数相同。<br />
　&#8211;deselect 　此参数的效果和指定&#8221;-N&#8221;参数相同。<br />
　&#8211;forest 　此参数的效果和指定&#8221;f&#8221;参数相同。<br />
　&#8211;headers 　重复显示标题列。<br />
　&#8211;help 　在线帮助。<br />
　&#8211;info 　显示排错信息。<br />
　&#8211;lines&lt;显示列数&gt; 　设置显示画面的列数。<br />
　&#8211;no-headers 　此参数的效果和指定&#8221;h&#8221;参数相同，只在列表格式方面稍有差异。<br />
　&#8211;group&lt;群组名称&gt; 　此参数的效果和指定&#8221;-G&#8221;参数相同。<br />
　&#8211;Group&lt;群组识别码&gt; 　此参数的效果和指定&#8221;-G&#8221;参数相同。<br />
　&#8211;pid&lt;程序识别码&gt; 　此参数的效果和指定&#8221;-p&#8221;参数相同。<br />
　&#8211;rows&lt;显示列数&gt; 　此参数的效果和指定&#8221;&#8211;lines&#8221;参数相同。<br />
　&#8211;sid&lt;阶段作业&gt; 　此参数的效果和指定&#8221;-s&#8221;参数相同。<br />
　&#8211;tty&lt;终端机编号&gt; 　此参数的效果和指定&#8221;-t&#8221;参数相同。<br />
　&#8211;user&lt;用户名称&gt; 　此参数的效果和指定&#8221;-U&#8221;参数相同。<br />
　&#8211;User&lt;用户识别码&gt; 　此参数的效果和指定&#8221;-U&#8221;参数相同。<br />
　&#8211;version 　此参数的效果和指定&#8221;-V&#8221;参数相同。<br />
　&#8211;widty&lt;每列字符数&gt; 　此参数的效果和指定&#8221;-cols&#8221;参数相同。</p>
<p>12 reboot<br />
功能说明：重新启动系统</p>
<p>13 su<br />
功能说明：变更用户身份。<br />
语　　法：su [-flmp][--help][--version][-][-c &lt;指令&gt;][-s ][用户帐号]<br />
补充说明：su可让用户暂时变更登入的身份。变更时须输入所要变更的用户帐号与密码。</p>
<p>14 uname<br />
功能说明：显示系统信息。<br />
语　　法：uname [-amnrsv][--help][--version]<br />
补充说明：uname可显示电脑以及操作系统的相关信息。<br />
参　　数：<br />
　-a或&#8211;all 　显示全部的信息。<br />
　-m或&#8211;machine 　显示电脑类型。<br />
　-n或-nodename 　显示在网络上的主机名称。<br />
　-r或&#8211;release 　显示操作系统的发行编号。<br />
　-s或&#8211;sysname 　显示操作系统名称。<br />
　-v 　显示操作系统的版本。<br />
　&#8211;help 　显示帮助。<br />
　&#8211;version 　显示版本信息。</p>
<p>15 useradd<br />
功能说明：建立用户帐号。<br />
语　　法：useradd [-mMnr][-c &lt;备注&gt;][-d &lt;登入目录&gt;][-e &lt;有效期限&gt;][-f &lt;缓冲天数&gt;][-g &lt;群组&gt;][-G &lt;群组&gt;][-s ][-u ][用户帐号] 或 useradd -D [-b][-e &lt;有效期限&gt;][-f &lt;缓冲天数&gt;][-g &lt;群组&gt;][-G &lt;群组&gt;][-s ]<br />
补充说明：useradd可用来建立用户帐号。帐号建好之后，再用passwd设定帐号的密码．而可用userdel删除帐号。使用useradd指令所建立的帐号，实际上是保存在/etc/passwd文本文件中。<br />
参　　数：<br />
　-c&lt;备注&gt; 　加上备注文字。备注文字会保存在passwd的备注栏位中。　<br />
　-d&lt;登入目录&gt; 　指定用户登入时的启始目录。<br />
　-D 　变更预设值．<br />
　-e&lt;有效期限&gt; 　指定帐号的有效期限。<br />
　-f&lt;缓冲天数&gt; 　指定在密码过期后多少天即关闭该帐号。<br />
　-g&lt;群组&gt; 　指定用户所属的群组。<br />
　-G&lt;群组&gt; 　指定用户所属的附加群组。<br />
　-m 　自动建立用户的登入目录。<br />
　-M 　不要自动建立用户的登入目录。<br />
　-n 　取消建立以用户名称为名的群组．<br />
　-r 　建立系统帐号。<br />
　-s　 　指定用户登入后所使用的shell。<br />
　-u 　指定用户ID。<br />
16 userdel<br />
功能说明：删除用户帐号。<br />
语　　法：userdel [-r][用户帐号]<br />
补充说明：userdel可删除用户帐号与相关的文件。若不加参数，则仅删除用户帐号，而不删除相关文件。<br />
参　　数：<br />
-f 　删除用户登入目录以及目录中所有文件。</p>
<p>17 who<br />
功能说明：显示目前登入系统的用户信息</p>
<p>18 grep、fgrep和egrep<br />
这组命令以指定模式搜索文件，并通知用户在什么文件中搜索到与指定的模式匹配的字符串，并打印出所有包含该字符串的文本行，在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索一个指定的模式；egrep命令检索扩展的正则表达式（包括表达式组和可选项）；fgrep命令检索固定字符串，它不识别正则表达式，是快速搜索命令。<br />
　　这组命令在搜索与定位文件中特定的主题方面非常有用。要搜索的模式可以被认为是一些关键词，您可以用它们来搜索文件中包含的这些关键词。编写程序时，可以用它来寻找某一个函数，或是相关的词组。grep命令的搜索功能比fgrep强大，因为grep命令的搜索模式可以是正则表达式，而fgrep却不能。有关正则表达式请参见shell一章。<br />
　　该组命令中的每一个命令都有一组选项，利用这些选项可以改变其输出方式。例如，可以在搜索到的文本行上加入行号，或者只输出文本行的行号，或者输出所有与搜索模式不匹配的文本行，或只简单地输出已搜索到指定模式的文件名，并且可以指定在查找模式时忽略大小写。<br />
　　这组命令在指定的输入文件中查找与模式匹配的行。如果没有指定文件，则从标准输入中读取。正常情况下，每个匹配的行被显示到标准输出。如果要查找的文件是多个，则在每一行输出之前加上文件名。<br />
　　语法：<br />
　　grep ［选项］ ［查找模式］ ［文件名1，文件名2，……］<br />
　　egrep ［选项］ ［查找模式］ ［文件名1，文件名2，……］<br />
　　fgrep ［选项］ ［查找模式］ ［文件名1，文件名2，……］<br />
　　这组命令各选项的含义为：<br />
　　- E 每个模式作为一个扩展的正则表达式对待。<br />
　　- F 每个模式作为一组固定字符串对待（以新行分隔），而不作为正则表达式。<br />
　　- b在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。<br />
　　- c 只显示匹配行的数量。<br />
　　- i 比较时不区分大小写。<br />
　　- h 在查找多个文件时，指示grep不要将文件名加入到输出之前。<br />
　　- l 显示首次匹配串所在的文件名并用换行符将其隔开。当在某文件中多次出现匹配串时，不重复显示此文件名。<br />
　　- n 在输出前加上匹配串所在行的行号（文件首行行号为1）。<br />
　　- v 只显示不包含匹配串的行。<br />
　　- x 只显示整行严格匹配的行。<br />
　　- e expression 指定检索使用的模式。用于防止以“-”开头的模式被解释为命令选项。<br />
　　- f expfile 从expfile文件中获取要搜索的模式，一个模式占一行。<br />
　　对该组命令的使用还需注意以下方面：<br />
　　在命令后键入搜索的模式，再键入要搜索的文件。其中，文件名列表中也可以使用特殊字符，如“*”等，用来生成文件名列表。如果想在搜索的模式中包含有空格的字符串，可以用单引号把要搜索的模式括起来，用来表明搜索的模式是由包含空格的字符串组成。否则，Shell将把空格认为是命令行参数的定界符，而 grep命令将把搜索模式中的单词解释为文件名列表中的一部分。在下面的例子中，grep命令在文件example中搜索模式“text file”。<br />
　　$ grep ’text file’ example<br />
　　　用户可以在命令行上用Shell特殊字符来生成将要搜索的文件名列表。在下面的例子中，特殊字符“*”用来生成一个文件名列表，该列表包含当前目录下所有的文件。该命令将搜索出当前目录下所有文件中与模式匹配的行。<br />
　　$ grep data *<br />
　　　特殊字符在搜索一组指定的文件时非常有用。例如，如果想搜索所有的C程序源文件中特定的模式，您可以用“*.c”来指定文件名列表。假设用户的 C程序中包含一些不必要的转向语句（goto语句），想要找到这些语句，可以用如下的命令来搜索并显示所有包含goto语句的代码行：<br />
　　$ grep goto *.c<br />
　　用户可以在命令行上键入搜索模式，也可以使用-f选项从指定文件中读取要搜索的模式。在文件中，每个搜索模式占一行。如果经常要搜索一组常见字符串时，这个功能非常有用。在下面的例子中，用户要在文件exam中搜索字符串“editor”和“create”，就把要搜索的模式放置在文件mypats 中，然后，grep命令从文件mypats中读取要搜索的模式。<br />
　　$ cat mypats<br />
　　editor<br />
　　create<br />
　　$ grep -f mypats exam</p>
<h2  class="related_post_title">精彩文章</h2><ul class="related_post"><li><a href="http://woodfeed.com/my-domain-is-woodfeed/" title="域名选择了WoodFeed——木客网">域名选择了WoodFeed——木客网</a><br /><small>        哎，终于发现了网民的力量是多么的强大啊！想N多域名，都被注册了！至到Wo...</small></li><li><a href="http://woodfeed.com/network-security-and-information-security/" title="网络安全与信息安全">网络安全与信息安全</a><br /><small>主要内容：1、密码学、鉴别 
　2、访问控制、计算机病毒 
　3、网络安全技术 
...</small></li><li><a href="http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-6/" title="Linux常用命令详解(6)">Linux常用命令详解(6)</a><br /><small>八 网络通迅
1 ifconfig 2 netconfig 3 netstat 4 pi...</small></li><li><a href="http://woodfeed.com/vmware-virtual-machine-under-linux-network/" title="VMWare虚拟机下linux联网">VMWare虚拟机下linux联网</a><br /><small>VMWare虚拟机下安装的RedHat 9.0 linux有三种方式实现上网，桥接、na...</small></li><li><a href="http://woodfeed.com/application-of-the-uip-tcpip-protocol-stack-in-the-51-mcu/" title="uIP TCP/IP协议栈在51系列单片机上的应用">uIP TCP/IP协议栈在51系列单片机上的应用</a><br /><small>　uIP 协议栈是一种免费的可实现的极小的TCP/IP协议栈，可以使用于由8位或16位微...</small></li><li><a href="http://woodfeed.com/incremental-pid-algorithm/" title="增量式PID算法">增量式PID算法</a><br /><small>所谓增量式PID是指数字控制器的输出只是控制量的增量kuΔ。当执行机构需要的控制量是增量...</small></li><li><a href="http://woodfeed.com/hall-sensor/" title="霍尔传感器">霍尔传感器</a><br /><small>霍尔传感器是一种磁传感器。用它可以检测磁场及其变化，可在各种与磁场有关的场合中使用。霍尔...</small></li><li><a href="http://woodfeed.com/mail-problem-in-windows-host-for-wp/" title="WordPress使用win主机出现的邮件问题">WordPress使用win主机出现的邮件问题</a><br /><small>邮件问题是很头痛的，我搞了N天，首先就是肯定用不了自带的mail()函数来发注册邮件和评...</small></li><li><a href="http://woodfeed.com/internet/" title="Internet">Internet</a><br /><small>主要内容：1、internet体系结构 
　2、internet连接的方法 
　3、...</small></li><li><a href="http://woodfeed.com/next-page-bug-of-404-for-pseudo-static/" title="win主机404实现伪静态翻页错误">win主机404实现伪静态翻页错误</a><br /><small>bug：翻过一次页面时，第二次翻页链接地址提取出错。
例如：page/2，点击3，出来的...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux常用命令详解(4)</title>
		<link>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-4/</link>
		<comments>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-4/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 09:28:14 +0000</pubDate>
		<dc:creator>vayu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux  insmod]]></category>
		<category><![CDATA[linux  lsmod]]></category>
		<category><![CDATA[linux  modinfo]]></category>
		<category><![CDATA[linux  rmmod]]></category>
		<category><![CDATA[linux  rpm]]></category>
		<category><![CDATA[linux  setup]]></category>
		<category><![CDATA[linux export]]></category>
		<category><![CDATA[linux mkfs]]></category>

		<guid isPermaLink="false">http://woodfeed.com/?p=355</guid>
		<description><![CDATA[五 磁盘维护
1 mkfs(make file system)
六 系统设置
1 export 2 insmod 3 lsmod 4 rmmod 5 modinfo 6 rpm(redhat package manager) 7 setup]]></description>
			<content:encoded><![CDATA[<p>五 磁盘维护<br />
1 mkfs(make file system)<br />
功能说明：建立各种文件系统。<br />
语　　法：mkfs [-vV][fs][-f <文件系统类型>][设备名称][区块数]<br />
补充说明：mkfs本身并不执行建立文件系统的工作，而是去调用相关的程序来执行。<br />
参　　数：<br />
  fs   指定建立文件系统时的参数。<br />
  -t<文件系统类型>   指定要建立何种文件系统。<br />
  -v   显示版本信息与详细的使用方法。<br />
  -V   显示简要的使用方法。</p>
<p>六 系统设置<br />
1 export<br />
功能说明：设置或显示环境变量。<br />
语　　法：export [-fnp][变量名称]=[变量设置值]<br />
补充说明：在shell中执行程序时，shell会提供一组环境变量。export可新增，修改或删除环境变量，供后续执行的程序使用。export的效力仅及于该此登陆操作。<br />
参　　数：<br />
　-f 　代表[变量名称]中为函数名称。<br />
　-n 　删除指定的变量。变量实际上并未删除，只是不会输出到后续指令的执行环境中。<br />
　-p 　列出所有的shell赋予程序的环境变量。</p>
<p>2 insmod<br />
功能说明：载入模块。<br />
语　　法：insmod [-fkmpsvxX][-o <模块名称>][模块文件][符号名称 = 符号值]<br />
补充说明：Linux有许多功能是通过模块的方式，在需要时才载入kernel。如此可使kernel较为精简，进而提高效率，以及保有较大的弹性。这类可载入的模块，通常是设备驱动程序。<br />
参　　数：<br />
  -f 　不检查目前kernel版本与模块编译时的kernel版本是否一致，强制将模块载入。<br />
  -k 　将模块设置为自动卸除。<br />
  -m 　输出模块的载入信息。<br />
  -o<模块名称> 　指定模块的名称，可使用模块文件的文件名。<br />
  -p 　测试模块是否能正确地载入kernel。<br />
  -s 　将所有信息记录在系统记录文件中。<br />
  -v 　执行时显示详细的信息。<br />
  -x 　不要汇出模块的外部符号。<br />
  -X 　汇出模块所有的外部符号，此为预设置。</p>
<p>3 lsmod<br />
功能说明：显示已载入系统的模块。<br />
语　　法：lsmod<br />
补充说明：执行lsmod指令，会列出所有已载入系统的模块。Linux操作系统的核心具有模块化的特性，应此在编译核心时，务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块，待需要时再分别载入。</p>
<p>4 rmmod<br />
功能说明：删除模块。<br />
语　　法：rmmod [-as][模块名称...]<br />
补充说明：执行rmmod指令，可删除不需要的模块。Linux操作系统的核心具有模块化的特性，应此在编译核心时，务须把全部的功能都放如核心。你可以将这些功能编译成一个个单独的模块，待有需要时再分别载入它们。<br />
参　　数：<br />
  -a 　删除所有目前不需要的模块。<br />
  -s 　把信息输出至syslog常驻服务，而非终端机界面。</p>
<p>5 modinfo<br />
功能说明：显示kernel模块的信息。<br />
语　　法：modinfo [-adhpV][模块文件]<br />
补充说明：modinfo会显示kernel模块的对象文件，以显示该模块的相关信息。<br />
参　　数：<br />
  -a或&#8211;author 　显示模块开发人员。<br />
  -d或&#8211;description 　显示模块的说明。<br />
  -h或&#8211;help 　显示modinfo的参数使用方法。<br />
  -p或&#8211;parameters 　显示模块所支持的参数。<br />
  -V或&#8211;version 　显示版本信息。</p>
<p>6 rpm(redhat package manager)<br />
在Linux操作系统中，有一个系统软件包，它的功能类似于Windows里面的“添加/删除程序”，但是功能又比“添加/删除程序”强很多，它就是Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的，后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间，所以被广泛应用于在Linux下安装、删除软件。下面就给大家介绍一下它的具体使用方法。<br />
　　1.我们得到一个新软件，在安装之前，一般都要先查看一下这个软件包里有什么内容，假设这个文件是：Linux-1.4-6.i368.rpm，我们可以用这条命令查看：<br />
　　rpm -qpi Linux-1.4-6.i368.rpm<br />
　　系统将会列出这个软件包的详细资料，包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。<br />
　　2.上面列出的所有文件在安装时不一定全部安装，就像Windows下程序的安装方式分为典型、完全、自定义一样，Linux也会让你选择安装方式，此时我们可以用下面这条命令查看软件包将会在系统里安装哪些部分，以方便我们的选择：<br />
　　rpm -qpl Linux-1.4-6.i368.rpm<br />
　　3.选择安装方式后，开始安装。我们可以用rpm-ivh Linux-1.4-6.i368.rpm命令安装此软件。在安装过程中，若系统提示此软件已安装过或因其他原因无法继续安装，但若我们确实想执行安装命令，可以在 -ivh后加一参数“-replacepkgs”：<br />
　　rpm -ivh -replacepkgs Linux-1.4-6.i368.rpm<br />
　　4.有时我们卸载某个安装过的软件，只需执行rpm-e <文件名>命令即可。<br />
　　5.对低版本软件进行升级是提高其功能的好办法，这样可以省去我们卸载后再安装新软件的麻烦，要升级某个软件，只须执行如下命令：rpm -uvh <文件名>，注意：此时的文件名必须是要升级软件的升级补丁<br />
　　6.另外一个安装软件的方法可谓是Linux的独到之处，同时也是RMP强大功能的一个表现：通过FTP站点直接在线安装软件。当找到含有你所需软件的站点并与此网站连接后，执行下面的命令即可实现在线安装，譬如在线安装Linux-1.4-6.i368.rpm，可以用命令：<br />
　　rpm -i ftp://ftp.pht.com/pub/linux/redhat/&#8230;-1.4-6.i368.rpm<br />
　　7.在我们使用电脑过程中，难免会有误操作，若我们误删了几个文件而影响了系统的性能时，怎样查找到底少了哪些文件呢?RPM软件包提供了一个查找损坏文件的功能，执行此命令：rpm -Va即可，Linux将为你列出所有损坏的文件。你可以通过Linux的安装光盘进行修复。<br />
　　8.Linux系统中文件繁多，在使用过程中，难免会碰到我们不认识的文件，在Windows下我们可以用“开始/查找”菜单快速判断某个文件属于哪个文件夹，在Linux中，下面这条命令行可以帮助我们快速判定某个文件属于哪个软件包：<br />
　　rpm -qf <文件名><br />
　　9.当每个软件包安装在Linux系统后，安装文件都会到RPM数据库中“报到”，所以，我们要查询某个已安装软件的属性时，只需到此数据库中查找即可。注意：此时的查询命令不同于1和8介绍的查询，这种方法只适用于已安装过的软件包！命令格式：<br />
　　rpm -参数　<文件名><br />
一、RPM包管理的用途；<br />
1、可以安装、删除、升级和管理软件；当然也支持在线安装和升级软件；<br />
2、通过RPM包管理能知道软件包包含哪些文件，也能知道系统中的某个文件属于哪个软件包；<br />
3、可以在查询系统中的软件包是否安装以及其版本；<br />
4、作为开发者可以把自己的程序打包为RPM 包发布；<br />
5、软件包签名GPG和MD5的导入、验证和签名发布<br />
6、依赖性的检查，查看是否有软件包由于不兼容而扰乱了系统；<br />
二、RPM 的使用权限；<br />
RPM软件的安装、删除、更新只有root权限才能使用；对于查询功能任何用户都可以操作；如果普通用户拥有安装目录的权限，也可以进行安装；<br />
三、rpm 的一点简单用法；<br />
我们除了软件包管理器以外，还能通过rpm 命令来安装；是不是所有的软件包都能通过rpm 命令来安装呢？不是的，文件以.rpm 后缀结尾的才行；有时我们在一些网站上找到file.rpm ，都要用 rpm 来安装；<br />
一）初始化rpm 数据库；<br />
通过rpm 命令查询一个rpm 包是否安装了，也是要通过rpm 数据库来完成的；所以我们要经常用下面的两个命令来初始化rpm 数据库；<br />
[root@localhost beinan]# rpm &#8211;initdb<br />
[root@localhost beinan]# rpm &#8211;rebuilddb 注：这个要花好长时间；<br />
注：这两个参数是极为有用，有时rpm 系统出了问题，不能安装和查询，大多是这里出了问题；<br />
二）RPM软件包管理的查询功能：<br />
命令格式<br />
 rpm {-q|&#8211;query} [select-options] [query-options]<br />
RPM的查询功能是极为强大，是极为重要的功能之一；举几个常用的例子，更为详细的具体的，请参考#man rpm<br />
1、对系统中已安装软件的查询；<br />
1）查询系统已安装的软件；<br />
语法：rpm -q 软件名<br />
举例：<br />
[root@localhost beinan]# rpm -q gaim<br />
gaim-1.3.0-1.fc4<br />
-q就是 &#8211;query ，中文意思是“问”，此命令表示的是，是不是系统安装了gaim ；如果已安装会有信息输出；如果没有安装，会输出gaim 没有安装的信息；<br />
查看系统中所有已经安装的包，要加 -a 参数 ；<br />
[root@localhost RPMS]# rpm -qa<br />
如果分页查看，再加一个管道 |和more命令；<br />
[root@localhost RPMS]# rpm -qa |more<br />
在所有已经安装的软件包中查找某个软件，比如说 gaim ；可以用 grep 抽取出来；<br />
[root@localhost RPMS]# rpm -qa |grep gaim<br />
上面这条的功能和 rpm -q gaim 输出的结果是一样的；<br />
2）查询一个已经安装的文件属于哪个软件包；<br />
语法 rpm -qf 文件名<br />
注：文件名所在的绝对路径要指出<br />
举例：<br />
[root@localhost RPMS]# rpm -qf /usr/lib/libacl.la<br />
libacl-devel-2.2.23-8<br />
3）查询已安装软件包都安装到何处；<br />
语法：rpm -ql 软件名 或 rpm rpmquery -ql 软件名<br />
举例：<br />
[root@localhost RPMS]# rpm -ql lynx<br />
[root@localhost RPMS]# rpmquery -ql lynx<br />
4）查询一个已安装软件包的信息<br />
语法格式： rpm -qi 软件名<br />
举例：<br />
[root@localhost RPMS]# rpm -qi lynx<br />
5）查看一下已安装软件的配置文件；<br />
语法格式：rpm -qc 软件名<br />
举例：<br />
[root@localhost RPMS]# rpm -qc lynx<br />
6）查看一个已经安装软件的文档安装位置：<br />
语法格式： rpm -qd 软件名<br />
举例：<br />
[root@localhost RPMS]# rpm -qd lynx<br />
7）查看一下已安装软件所依赖的软件包及文件；<br />
语法格式： rpm -qR 软件名<br />
举例：<br />
[root@localhost beinan]# rpm -qR rpm-python<br />
查询已安装软件的总结：对于一个软件包已经安装，我们可以把一系列的参数组合起来用；比如 rpm -qil ；比如：<br />
[root@localhost RPMS]# rpm -qil lynx<br />
2、对于未安装的软件包的查看：<br />
查看的前提是您有一个.rpm 的文件，也就是说对既有软件file.rpm的查看等；<br />
1）查看一个软件包的用途、版本等信息；<br />
语法： rpm -qpi file.rpm<br />
举例：<br />
[root@localhost RPMS]# rpm -qpi lynx-2.8.5-23.i386.rpm<br />
2）查看一件软件包所包含的文件；<br />
语法： rpm -qpl file.rpm<br />
举例：<br />
[root@localhost RPMS]# rpm -qpl lynx-2.8.5-23.i386.rpm<br />
3）查看软件包的文档所在的位置；<br />
语法： rpm -qpd file.rpm<br />
举例：<br />
[root@localhost RPMS]# rpm -qpd lynx-2.8.5-23.i386.rpm<br />
5）查看一个软件包的配置文件；<br />
语法： rpm -qpc file.rpm<br />
举例：<br />
[root@localhost RPMS]# rpm -qpc lynx-2.8.5-23.i386.rpm<br />
4）查看一个软件包的依赖关系<br />
语法： rpm -qpR file.rpm<br />
举例：<br />
[root@localhost archives]# rpm -qpR yumex_0.42-3.0.fc4_noarch.rpm<br />
/bin/bash<br />
/usr/bin/python<br />
config(yumex) = 0.42-3.0.fc4<br />
pygtk2<br />
pygtk2-libglade<br />
rpmlib(CompressedFileNames) <= 3.0.4-1<br />
rpmlib(PayloadFilesHavePrefix) <= 4.0-1<br />
usermode<br />
yum >= 2.3.2<br />
三）软件包的安装、升级、删除等；<br />
1、安装和升级一个rpm 包；<br />
[root@localhost beinan]#rpm -vih file.rpm 注：这个是用来安装一个新的rpm 包；<br />
[root@localhost beinan]#rpm -Uvh file.rpm 注：这是用来升级一个rpm 包；<br />
如果有依赖关系的，请解决依赖关系，其实软件包管理器能很好的解决依赖关系，请看前面的软件包管理器的介绍；如果您在软件包管理器中也找不到依赖关系的包；那只能通过编译他所依赖的包来解决依赖关系，或者强制安装；<br />
语法结构：<br />
[root@localhost beinan]# rpm -ivh file.rpm &#8211;nodeps &#8211;force<br />
[root@localhost beinan]# rpm -Uvh file.rpm &#8211;nodeps &#8211;force<br />
更多的参数，请查看 man rpm<br />
举例应用：<br />
[root@localhost RPMS]# rpm -ivh lynx-2.8.5-23.i386.rpm<br />
Preparing&#8230; ########################################### [100%]<br />
   1:lynx ########################################### [100%]<br />
[root@localhost RPMS]# rpm -ivh &#8211;replacepkgs lynx-2.8.5-23.i386.rpm<br />
Preparing&#8230; ########################################### [100%]<br />
   1:lynx ########################################### [100%]<br />
注： &#8211;replacepkgs 参数是以已安装的软件再安装一次；有时没有太大的必要；<br />
测试安装参数 &#8211;test ，用来检查依赖关系；并不是真正的安装；<br />
[root@localhost RPMS]# rpm -ivh &#8211;test gaim-1.3.0-1.fc4.i386.rpm<br />
Preparing&#8230; ########################################### [100%]<br />
由新版本降级为旧版本，要加 &#8211;oldpackage 参数；<br />
[root@localhost RPMS]# rpm -qa gaim<br />
gaim-1.5.0-1.fc4<br />
[root@localhost RPMS]# rpm -Uvh &#8211;oldpackage gaim-1.3.0-1.fc4.i386.rpm<br />
Preparing&#8230; ########################################### [100%]<br />
   1:gaim ########################################### [100%]<br />
[root@localhost RPMS]# rpm -qa gaim<br />
gaim-1.3.0-1.fc4<br />
为软件包指定安装目录：要加 -relocate 参数；下面的举例是把gaim-1.3.0-1.fc4.i386.rpm指定安装在 /opt/gaim 目录中；<br />
[root@localhost RPMS]# rpm -ivh &#8211;relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm<br />
Preparing&#8230; ########################################### [100%]<br />
   1:gaim ########################################### [100%]<br />
[root@localhost RPMS]# ls /opt/<br />
gaim<br />
为软件包指定安装目录：要加 -relocate 参数；下面的举例是把lynx-2.8.5-23.i386.rpm 指定安装在 /opt/lynx 目录中；</p>
<p>[root@localhost RPMS]# rpm -ivh &#8211;relocate /=/opt/lynx &#8211;badreloc lynx-2.8.5-23.i386.rpm<br />
Preparing&#8230; ########################################### [100%]<br />
1:lynx ########################################### [100%]<br />
我们安装在指定目录中的程序如何调用呢？一般执行程序，都放在安装目录的bin或者sbin目录中；看下面的例子；如果有错误输出，就做相应的链接，用 ln -s ；<br />
[root@localhost RPMS]# /opt/lynx/usr/bin/lynx<br />
Configuration file /etc/lynx.cfg is not available.<br />
[root@localhost RPMS]# ln -s /opt/lynx/etc/lynx.cfg /etc/lynx.cfg<br />
[root@localhost RPMS]# /opt/lynx/usr/bin/lynx www.linuxsir.org</p>
<p>2、删除一个rpm 包；<br />
首先您要学会查询rpm 包 ；请看前面的说明；<br />
[root@localhost beinan]#rpm -e 软件包名<br />
举例：我想移除lynx 包，完整的操作应该是：<br />
[root@localhost RPMS]# rpm -e lynx<br />
如果有依赖关系，您也可以用&#8211;nodeps 忽略依赖的检查来删除。但尽可能不要这么做，最好用软件包管理器 systerm-config-packages 来删除或者添加软件；<br />
[root@localhost beinan]# rpm -e lynx &#8211;nodeps</p>
<p>四、导入签名：<br />
[root@localhost RPMS]# rpm &#8211;import 签名文件<br />
举例：<br />
[root@localhost fc40]# rpm &#8211;import RPM-GPG-KEY<br />
[root@localhost fc40]# rpm &#8211;import RPM-GPG-KEY-fedora<br />
关于RPM的签名功能，详情请参见 man rpm</p>
<p>五、RPM管理包管理器支持网络安装和查询；<br />
比如我们想通过 Fedora Core 4.0 的一个镜像查询、安装软件包；<br />
地址：</p>
<p>http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/</p>
<p>举例：<br />
命令格式：<br />
rpm 参数 rpm包文件的http或者ftp的地址<br />
# rpm -qpi http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm<br />
# rpm -ivh http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm<br />
举一反三吧；</p>
<p>六、对已安装软件包查询的一点补充；<br />
[root@localhost RPMS]# updatedb<br />
[root@localhost RPMS]# locate 软件名或文件名<br />
通过updatedb，我们可以用 locate 来查询一些软件安装到哪里了；系统初次安装时要执行updatedb ，每隔一段时间也要执行一次；以保持已安装软件库最新；updatedb 是slocate软件包所有；如果您没有这个命令，就得安装slocate ；<br />
举例：<br />
[root@localhost RPMS]# locate gaim</p>
<p>七、从rpm软件包抽取文件；<br />
命令格式： rpm2cpio file.rpm |cpio -div<br />
举例：<br />
[root@localhost RPMS]# rpm2cpio gaim-1.3.0-1.fc4.i386.rpm |cpio -div<br />
抽取出来的文件就在当用操作目录中的 usr 和etc中；<br />
其实这样抽到文件不如指定安装目录来安装软件来的方便；也一样可以抽出文件；<br />
为软件包指定安装目录：要加 -relocate 参数；下面的举例是把gaim-1.3.0-1.fc4.i386.rpm指定安装在 /opt/gaim 目录中；<br />
[root@localhost RPMS]# rpm -ivh &#8211;relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm<br />
Preparing&#8230; ########################################### [100%]<br />
   1:gaim ########################################### [100%]<br />
[root@localhost RPMS]# ls /opt/<br />
gaim<br />
这样也能一目了然；gaim的所有文件都是安装在 /opt/gaim 中，我们只是把gaim 目录备份一下，然后卸掉gaim；这样其实也算提取文件的一点用法；<br />
八、RPM的配置文件；<br />
RPM包管理，的配置文件是 rpmrc ，我们可以在自己的系统中找到；比如Fedora Core 4.0中的rpmrc 文件位于；<br />
[root@localhost RPMS]# locate rpmrc<br />
/usr/lib/rpm/rpmrc<br />
/usr/lib/rpm/redhat/rpmrc</p>
<p>7 setup<br />
功能说明：设置公用程序。<br />
语　　法：setup<br />
补充说明：setup是一个设置公用程序，提供图形界面的操作方式。在setup中可设置7类的选项：<br />
　１.登陆认证方式<br />
　２.键盘组态设置<br />
　３.鼠标组态设置<br />
　４.开机时所要启动的系统服务<br />
　５.声卡组态设置<br />
　６.时区设置<br />
　７.X Windows组态设置</p>
<h2  class="related_post_title">精彩文章</h2><ul class="related_post"><li><a href="http://woodfeed.com/network-architecture-and-protocol/" title="网络体系结构及协议">网络体系结构及协议</a><br /><small>    主要内容：1、网络体系结构及协议的定义 2、开放系统互连参考模型OSI 3、TC...</small></li><li><a href="http://woodfeed.com/implementing-16-bit-pwm-using-the-pca-with-c8051f020/" title="C8051f020产生16位PWM">C8051f020产生16位PWM</a><br /><small>脉冲宽度调制（PWM）波形常用于闭环反馈和控制应用，例如：控制加热单元的开关状态以调节D...</small></li><li><a href="http://woodfeed.com/detailed-description-of-linux-network-configuration/" title="Linux网络配置详解">Linux网络配置详解</a><br /><small>从linux诞生的那一天起,就注定了它的网络功能空前地强大.所以在linux系统中如何配...</small></li><li><a href="http://woodfeed.com/optical-encoder-features-and-applications/" title="光电编码器的特性及应用">光电编码器的特性及应用</a><br /><small>光电编码器，是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是...</small></li><li><a href="http://woodfeed.com/metal-detector-circuit/" title="金属探测电路">金属探测电路</a><br /><small>利用金属接近开关传感器E3-D4NK可以检测到铁皮向单片机发送出信号，使单片机可以记录铁...</small></li><li><a href="http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-5/" title="Linux常用命令详解(5)">Linux常用命令详解(5)</a><br /><small>七 系统管理
1 adduser 2 passwd 3 date 4 exit 5 f...</small></li><li><a href="http://woodfeed.com/standard-acquisition-resolution-of-video-capture-device/" title="视频采集设备的标准采集分辨率">视频采集设备的标准采集分辨率</a><br /><small>QCIF全称Quarter common intermediate format。QCI...</small></li><li><a href="http://woodfeed.com/photoshop-box/" title="PhotoShop作业&#8211;盒子">PhotoShop作业&#8211;盒子</a><br /><small>
 
去年做的一个作业，ps的处女作。...</small></li><li><a href="http://woodfeed.com/vmware-virtual-machine-under-linux-network/" title="VMWare虚拟机下linux联网">VMWare虚拟机下linux联网</a><br /><small>VMWare虚拟机下安装的RedHat 9.0 linux有三种方式实现上网，桥接、na...</small></li><li><a href="http://woodfeed.com/internet/" title="Internet">Internet</a><br /><small>主要内容：1、internet体系结构 
　2、internet连接的方法 
　3、...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux常用命令详解(3)</title>
		<link>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-3/</link>
		<comments>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-3/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 09:21:30 +0000</pubDate>
		<dc:creator>vayu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux cd]]></category>
		<category><![CDATA[linux df]]></category>
		<category><![CDATA[linux du]]></category>
		<category><![CDATA[linux ls]]></category>
		<category><![CDATA[linux mkdir]]></category>
		<category><![CDATA[linux mount挂接命令]]></category>
		<category><![CDATA[linux pwd]]></category>
		<category><![CDATA[linux rmdir]]></category>
		<category><![CDATA[linux umount]]></category>

		<guid isPermaLink="false">http://woodfeed.com/?p=352</guid>
		<description><![CDATA[四 磁盘管理
1 cd 2 df 3 du 4 ls 5 mkdir 6 pwd 7 rmdir 8 mount挂接命令 9 umount]]></description>
			<content:encoded><![CDATA[<p>四 磁盘管理<br />
1 cd<br />
功能说明：切换目录。<br />
语　　法：cd [目的目录]</p>
<p>2 df<br />
功能说明：显示磁盘的相关信息。<br />
语　　法：df<br />
参　　数：<br />
  -a或&#8211;all   包含全部的文件系统。<br />
  &#8211;block-size=<区块大小>   以指定的区块大小来显示区块数目。<br />
  -h或&#8211;human-readable   以可读性较高的方式来显示信息。<br />
  -H或&#8211;si   与-h参数相同，但在计算时是以1000 Bytes为换算单位而非1024 Bytes。<br />
  -i或&#8211;inodes   显示inode的信息。<br />
  -k或&#8211;kilobytes   指定区块大小为1024字节。<br />
  -l或&#8211;local   仅显示本地端的文件系统。<br />
  -m或&#8211;megabytes   指定区块大小为1048576字节。<br />
  &#8211;no-sync   在取得磁盘使用信息前，不要执行sync指令，此为预设值。<br />
  -P或&#8211;portability   使用POSIX的输出格式。<br />
  &#8211;sync   在取得磁盘使用信息前，先执行sync指令。<br />
  -t<文件系统类型>或&#8211;type=<文件系统类型>   仅显示指定文件系统类型的磁盘信息。<br />
  -T或&#8211;print-type   显示文件系统的类型。<br />
  -x<文件系统类型>或&#8211;exclude-type=<文件系统类型>   不要显示指定文件系统类型的磁盘信息。</p>
<p>3 du<br />
功能说明：显示目录或文件的大小<br />
参　　数：<br />
  -a或-all   显示目录中个别文件的大小。<br />
  -b或-bytes   显示目录或文件大小时，以byte为单位。<br />
  -c或&#8211;total   除了显示个别目录或文件的大小外，同时也显示所有目录或文件的总和。<br />
  -D或&#8211;dereference-args   显示指定符号连接的源文件大小。<br />
  -h或&#8211;human-readable   以K，M，G为单位，提高信息的可读性。<br />
  -H或&#8211;si   与-h参数相同，但是K，M，G是以1000为换算单位。<br />
  -k或&#8211;kilobytes   以1024 bytes为单位。<br />
  -l或&#8211;count-links   重复计算硬件连接的文件。<br />
  -L<符号连接>或&#8211;dereference<符号连接>   显示选项中所指定符号连接的源文件大小。<br />
  -m或&#8211;megabytes   以1MB为单位。<br />
  -s或&#8211;summarize   仅显示总计。<br />
  -S或&#8211;separate-dirs   显示个别目录的大小时，并不含其子目录的大小。<br />
  -x或&#8211;one-file-xystem   以一开始处理时的文件系统为准，若遇上其它不同的文件系统目录则略过。<br />
  -X<文件>或&#8211;exclude-from=<文件>   在<文件>指定目录或文件。<br />
  &#8211;exclude=<目录或文件>   略过指定的目录或文件。<br />
  &#8211;max-depth=<目录层数>   超过指定层数的目录后，予以忽略。<br />
&#8211;help   显示帮助。<br />
  &#8211;version   显示版本信息。<br />
例：  du –h [文件或目录]    显示文件大小，显示目录中每个文件的大小及目录总大小。</p>
<p>4 ls<br />
功能说明：列出目录内容。<br />
语　　法：ls [选项] [文件目录列表]<br />
ls命令中的常用选项如下：<br />
  -a：显示所有文件及目录 (ls规定将文件名或目录名中开头为                    	&#8220;.&#8221;的视为隐藏档，不会列出)<br />
 -c：按列输出，纵向排序<br />
 -x：按行输出，横向排序<br />
 -l：除文件名外，也将文件状态、权限、拥有者、文件大小	等信息详细列出<br />
 -t：根据文件建立时间的先后次序列出<br />
 -A：同-a，但不列出&#8221;.&#8221; (目前目录)及&#8221;..&#8221; (父目录)<br />
 -X：按扩展名排序显示<br />
 -R：递归显示下层子目录<br />
 &#8211;help：显示帮助信息<br />
 &#8211;version：显示版本信息</p>
<p>5 mkdir<br />
功能说明：建立目录<br />
语　　法：mkdir [-p][--help][--version][-m <目录属性>][目录名称]<br />
补充说明：mkdir可建立目录并同时设置目录的权限。<br />
参　　数：<br />
  -m<目录属性>或&#8211;mode<目录属性>   建立目录时同时设置目录的权限。<br />
  -p或&#8211;parents   若所要建立目录的上层目录目前尚未建立，则会一并建立上层目录。<br />
  &#8211;help   显示帮助。<br />
  &#8211;verbose   执行时显示详细的信息。<br />
  &#8211;version   显示版本信息。</p>
<p>6 pwd<br />
功能说明：显示工作目录。<br />
语　　法：pwd [--help][--version]<br />
补充说明：执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。<br />
参　　数：<br />
  &#8211;help   在线帮助。<br />
  &#8211;version   显示版本信息。</p>
<p>7 rmdir<br />
功能说明：删除目录。<br />
语　　法：rmdir [-p][--help][--ignore-fail-on-non-empty][--verbose][--version][目录...]<br />
补充说明：当有空目录要删除时，可使用rmdir指令。<br />
参　　数：<br />
  -p或&#8211;parents   删除指定目录后，若该目录的上层目录已变成空目录，则将其一并删除。<br />
  &#8211;help   在线帮助。<br />
  &#8211;ignore-fail-on-non-empty   忽略非空目录的错误信息。<br />
  &#8211;verbose   显示指令执行过程。<br />
  &#8211;version   显示版本信息</p>
<p>8 mount挂接命令<br />
linux是个优秀的开放源码的操作系统，能够运行在大到巨型小到掌上型各类电脑系统上，随着linux系统的日渐成熟和稳定连同他开放源代码特有的优越性，linux在全世界得到了越来越广泛的应用。现在许多企业的电脑系统都是由UNIX系统、Linux系统和Windows系统组成的混合系统，不同系统之间经常需要进行数据交换。下面我根据自己的实际工作经验介绍一下如何在linux系统下挂接(mount)光盘映像文档、移动硬盘、U盘连同Windows网络共享和UNIX NFS网络共享。<br />
　　挂接命令(mount)<br />
　　首先，介绍一下挂接(mount)命令的使用方法，mount命令参数很多，这里主要讲一下今天我们要用到的。<br />
　　命令格式：<br />
　　mount [-t vfstype] [-o options] device dir<br />
　　其中：<br />
　　1.-t vfstype 指定文档系统的类型，通常不必指定。mount 会自动选择正确的类型。常用类型有：<br />
　　光盘或光盘映像：iso9660<br />
　　DOS fat16文档系统：msdos<br />
　　Windows 9x fat32文档系统：vfat<br />
　　Windows NT ntfs文档系统：ntfs<br />
　　Mount Windows文档网络共享：smbfs<br />
　　UNIX(LINUX) 文档网络共享：nfs<br />
　　2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有：<br />
　　loop：用来把一个文档当成硬盘分区挂接上系统<br />
　　ro：采用只读方式挂接设备<br />
　　rw：采用读写方式挂接设备<br />
　　iocharset：指定访问文档系统所用字符集<br />
　　3.device 要挂接(mount)的设备。<br />
　　4.dir设备在系统上的挂接点(mount point)。<br />
　　挂接光盘映像文档<br />
　　由于近年来磁盘技术的巨大进步，新的电脑系统都配备了大容量的磁盘系统，在Windows下许多人都习惯把软件和资料做成光盘映像文档通过虚拟光驱来使用。这样做有许多好处：一、减轻了光驱的磨损;二、现在硬盘容量巨大存放几十个光盘映像文档不成问题，随用随调十分方便;三、硬盘的读取速度要远远高于光盘的读取速度，CPU占用率大大降低。其实linux系统下制作和使用光盘映像比Windows系统更方便，不必借用任何第三方软件包。<br />
　　1、从光盘制作光盘映像文档。将光盘放入光驱，执行下面的命令。<br />
　　　#cp /dev/cdrom /home/sunky/mydisk.iso 或<br />
　　　#dd if=/dev/cdrom of=/home/sunky/mydisk.iso<br />
　　　注：执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘映像文档/home/sunky/mydisk.iso<br />
　　2、将文档和目录制作成光盘映像文档，执行下面的命令。<br />
　　　#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir<br />
　　　注：这条命令将/home/sunky/mydir目录下任何的目录和文档制作成光盘映像文档/home/sunky/mydisk.iso，光盘卷标为：mydisk<br />
　　3、光盘映像文档的挂接(mount)<br />
　　　#mkdir /mnt/vcdrom<br />
　　　注：建立一个目录用来作挂接点(mount point)<br />
　　　#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom<br />
　　　注：使用/mnt/vcdrom就能够访问盘映像文档mydisk.iso里的任何文档了。<br />
　　　<br />
　　挂接移动硬盘<br />
　　对linux系统而言，USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前，应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。<br />
　　[root at pldyrouter /]# fdisk -l<br />
　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes<br />
　　255 heads, 63 sectors/track, 8924 cylinders<br />
　　Units = cylinders of 16065 * 512 = 8225280 bytes<br />
　　Device Boot Start End Blocks Id System<br />
　　/dev/sda1 1 4 32098+ de Dell Utility<br />
　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS<br />
　　/dev/sda3 2555 7904 42973875 83 Linux<br />
　　/dev/sda4 7905 8924 8193150 f Win95 Ext&#8217;d (LBA)<br />
　　/dev/sda5 7905 8924 8193118+ 82 Linux swap<br />
　　在这里能够清楚地看到系统有一块SCSI硬盘/dev/sda和他的四个磁盘分区/dev/sda1 &#8212; /dev/sda4,/dev/sda5是分区/dev/sda4的逻辑分区。接好移动硬盘后，再用fdisk –l 或 more/proc/partitions查看系统的硬盘和硬盘分区情况<br />
　　[root at pldyrouter /]# fdisk -l<br />
　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes<br />
　　255 heads, 63 sectors/track, 8924 cylinders<br />
　　Units = cylinders of 16065 * 512 = 8225280 bytes<br />
　　Device Boot Start End Blocks Id System<br />
　　/dev/sda1 1 4 32098+ de Dell Utility<br />
　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS<br />
　　/dev/sda3 2555 7904 42973875 83 Linux<br />
　　/dev/sda4 7905 8924 8193150 f Win95 Ext&#8217;d (LBA)<br />
　　/dev/sda5 7905 8924 8193118+ 82 Linux swap<br />
　　Disk /dev/sdc: 40.0 GB, 40007761920 bytes<br />
　　255 heads, 63 sectors/track, 4864 cylinders<br />
　　Units = cylinders of 16065 * 512 = 8225280 bytes<br />
　　Device Boot Start End Blocks Id System<br />
　　/dev/sdc1 1 510 4096543+ 7 HPFS/NTFS<br />
　　/dev/sdc2 511 4864 34973505 f Win95 Ext&#8217;d (LBA)<br />
　　/dev/sdc5 511 4864 34973473+ b Win95 FAT32<br />
　　大家应该能够发现多了一个SCSI硬盘/dev/sdc和他的两个磁盘分区/dev/sdc1?、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分区的逻辑分区。我们能够使用下面的命令挂接/dev/sdc1和/dev/sdc5。<br />
　　　#mkdir -p /mnt/usbhd1<br />
　　　#mkdir -p /mnt/usbhd2<br />
　　　注：建立目录用来作挂接点(mount point)<br />
　　　#mount -t ntfs /dev/sdc1 /mnt/usbhd1<br />
　　　#mount -t vfat /dev/sdc5 /mnt/usbhd2<br />
　　　注：对ntfs格式的磁盘分区应使用-t ntfs 参数，对fat32格式的磁盘分区应使用-t vfat参数。若汉字文档名显示为乱码或不显示，能够使用下面的命令格式。<br />
　　　#mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1<br />
　　　#mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2<br />
　　linux系统下使用fdisk分区命令和mkfs文档系统创建命令能够将移动硬盘的分区制作成linux系统所特有的ext2、ext3格式。这样，在linux下使用就更方便了。使用下面的命令直接挂接即可。<br />
　　　#mount /dev/sdc1 /mnt/usbhd1<br />
　　　<br />
　　挂接U盘<br />
　　和USB接口的移动硬盘相同对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全相同。插入U盘之前，应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。<br />
　　[root at pldyrouter root]# fdisk -l<br />
　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes<br />
　　255 heads, 63 sectors/track, 8924 cylinders<br />
　　Units = cylinders of 16065 * 512 = 8225280 bytes<br />
　　Device Boot Start End Blocks Id System<br />
　　/dev/sda1 1 4 32098+ de Dell Utility<br />
　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS<br />
　　/dev/sda3 2555 7904 42973875 83 Linux<br />
　　/dev/sda4 7905 8924 8193150 f Win95 Ext&#8217;d (LBA)<br />
　　/dev/sda5 7905 8924 8193118+ 82 Linux swap<br />
　　插入U盘后，再用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。<br />
　　[root at pldyrouter root]# fdisk -l<br />
　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes<br />
　　255 heads, 63 sectors/track, 8924 cylinders<br />
　　Units = cylinders of 16065 * 512 = 8225280 bytes<br />
　　Device Boot Start End Blocks Id System<br />
　　/dev/sda1 1 4 32098+ de Dell Utility<br />
　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS<br />
　　/dev/sda3 2555 7904 42973875 83 Linux<br />
　　/dev/sda4 7905 8924 8193150 f Win95 Ext&#8217;d (LBA)<br />
　　/dev/sda5 7905 8924 8193118+ 82 Linux swap<br />
　　Disk /dev/sdd: 131 MB, 131072000 bytes<br />
　　9 heads, 32 sectors/track, 888 cylinders<br />
　　Units = cylinders of 288 * 512 = 147456 bytes<br />
　　Device Boot Start End Blocks Id System<br />
　　/dev/sdd1 * 1 889 127983+ b Win95 FAT32<br />
　　Partition 1 has different physical/logical endings:<br />
　　phys=(1000, 8, 32) logical=(888, 7, 31)<br />
　　系统多了一个SCSI硬盘/dev/sdd和一个磁盘分区/dev/sdd1,/dev/sdd1就是我们要挂接的U盘。<br />
　　#mkdir -p /mnt/usb<br />
　　注：建立一个目录用来作挂接点(mount point)<br />
　　#mount -t vfat /dev/sdd1 /mnt/usb<br />
　　注：现在能够通过/mnt/usb来访问U盘了, 若汉字文档名显示为乱码或不显示，能够使用下面的命令。<br />
　　#mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb<br />
　　挂接Windows文档共享<br />
　　Windows网络共享的核心是SMB/CIFS，在linux下要挂接(mount)windows的磁盘共享，就必须安装和使用samba软件包。现在流行的linux发行版绝大多数已包含了samba软件包，假如安装linux系统时未安装samba请首先安装samba。当然也能够到www.samba.org网站下载&#8230;&#8230;新的版本是3.0.10版。<br />
　　当windows系统共享配置好以后，就能够在linux客户端挂接(mount)了，具体操作如下：<br />
　　# mkdir –p /mnt/samba<br />
　　注：建立一个目录用来作挂接点(mount point)<br />
　　# mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba<br />
　　注：administrator 和 pldy123 是ip地址为10.140.133.23 windows电脑的一个用户名和密码，c$是这台电脑的一个磁盘共享<br />
　　如此就能够在linux系统上通过/mnt/samba来访问windows系统磁盘上的文档了。以上操作在redhat as server3、redflag server 4.1、suse server 9连同windows NT 4.0、windows 2000、windowsxp、windows 2003环境下测试通过。<br />
　　挂接UNIX系统NFS文档共享<br />
　　类似于windows的网络共享，UNIX(Linux)系统也有自己的网络共享，那就是NFS(网络文档系统)，下面我们就以SUN Solaris2.8和REDHAT as server 3 为例简单介绍一下在linux下如何mount nfs网络共享。<br />
　　在linux客户端挂接(mount)NFS磁盘共享之前，必须先配置好NFS服务端。<br />
　　1、Solaris系统NFS服务端配置方法如下：<br />
　　　(1)修改 /etc/dfs/dfstab, 增加共享目录<br />
　　　　　　share -F nfs -o rw /export/home/sunky<br />
　　　(2)启动nfs服务<br />
　　　　　　# /etc/init.d/nfs.server start<br />
　　　(3)NFS服务启动以后，也能够使用下面的命令增加新的共享<br />
　　　　　　# share /export/home/sunky1<br />
　　　　　　# share /export/home/sunky2<br />
　　　注：/export/home/sunky和/export/home/sunky1是准备共享的目录<br />
　　2、linux系统NFS服务端配置方法如下：<br />
　　　(1)修改 /etc/exports,增加共享目录<br />
　　/export/home/sunky 10.140.133.23(rw)<br />
　　/export/home/sunky1 *(rw)<br />
　　/export/home/sunky2 linux-client(rw)<br />
　　　注：/export/home/目录下的sunky、sunky1、sunky2是准备共享的目录，10.140.133.23、*、linux-client是被允许挂接此共享linux客户机的IP地址或主机名。假如要使用主机名linux-client必须在服务端主机/etc/hosts文档里增加linux-client主机ip定义。格式如下：<br />
　　　10.140.133.23 linux-client<br />
　　　(2)启动和停止NFS服务<br />
　　　/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)<br />
　　　/etc/rc.d/init.d/nfs start 启动NFS服务<br />
　　　/etc/rc.d/init.d/nfs stop 停止NFS服务<br />
　　　注：若修改/etc/export文档增加新的共享，应先停止NFS服务，再启动NFS服务方能使新增加的共享起作用。使用命令exportfs -rv也能够达到同样的效果。<br />
　　3、linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享<br />
　　　# mkdir –p /mnt/nfs<br />
　　　注：建立一个目录用来作挂接点(mount point)<br />
　　　#mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs<br />
　　　注：这里我们假设10.140.133.9是NFS服务端的主机IP地址，当然这里也能够使用主机名，但必须在本机/etc/hosts文档里增加服务端ip定义。/export/home/sunky为服务端共享的目录。<br />
　　如此就能够在linux客户端通过/mnt/nfs来访问其他linux系统或UNIX系统以NFS方式共享出来的文档了。以上操作在redhat as server 3、redflag server4.1、suse server 9连同Solaris 7、Solaris8、Solaris 9 for x86&#038;sparc环境下测试通过。<br />
权限问题：<br />
假設 server 端的使用者 jack, user id 為 1818, gid 為 1818, client 端也有一個使用者jack，但是 uid 及 gid 是 1818。client 端的 jack    希望能完全讀寫 server 端的 /home/jack這個目錄。server 端的 /etc/exports 是<br />
   這樣寫的：<br />
      /home/jack *(rw,all_squash,anonuid=1818,anongid=1818)<br />
   這個的設定檔的意思是，任何 client 端的使用者存取 server 端 /home/jack 這<br />
   目錄時，都會 map 成 server 端的 jack (uid,gid=1818)。我 mount 的結果是<br />
   1. client 端的 root 能够完全存取該目錄, 包括讀、寫、殺……等<br />
   2. client 端的 jack (uid,gid=1818) 我能够做：<br />
    rm -rf server_jack/*<br />
    cp something server_jack/<br />
    mkdir server_jack/a</p>
<p>9 umount<br />
功能说明：卸除文件系统。<br />
语　　法：umount [-ahnrvV][-t <文件系统类型>][文件系统]<br />
补充说明：umount可卸除目前挂在Linux目录中的文件系统。<br />
参　　数：<br />
  -a   卸除/etc/mtab中记录的所有文件系统。<br />
  -h   显示帮助。<br />
  -n   卸除时不要将信息存入/etc/mtab文件中。<br />
  -r   若无法成功卸除，则尝试以只读的方式重新挂入文件系统。<br />
  -t<文件系统类型>   仅卸除选项中所指定的文件系统。<br />
  -v   执行时显示详细的信息。<br />
  -V   显示版本信息。<br />
  [文件系统]   除了直接指定文件系统外，也可以用设备名称或挂入点来表示文件系统。</p>
<h2  class="related_post_title">精彩文章</h2><ul class="related_post"><li><a href="http://woodfeed.com/detailed-description-of-linux-network-configuration/" title="Linux网络配置详解">Linux网络配置详解</a><br /><small>从linux诞生的那一天起,就注定了它的网络功能空前地强大.所以在linux系统中如何配...</small></li><li><a href="http://woodfeed.com/dc-motor-drive-module/" title="直流电机驱动">直流电机驱动</a><br /><small>两者直流电机驱动方式：
1）L298集成驱动芯片电路
2）采用晶体管作开关控制H桥的正反...</small></li><li><a href="http://woodfeed.com/internet-control-message-protocol-icmp/" title="网际控制报文协议ICMP">网际控制报文协议ICMP</a><br /><small>ICMP协议是一个非常重要的协议，它对于网络安全具有极其重要的意义。（RFC-792）I...</small></li><li><a href="http://woodfeed.com/implementing-16-bit-pwm-using-the-pca-with-c8051f020/" title="C8051f020产生16位PWM">C8051f020产生16位PWM</a><br /><small>脉冲宽度调制（PWM）波形常用于闭环反馈和控制应用，例如：控制加热单元的开关状态以调节D...</small></li><li><a href="http://woodfeed.com/apache-mod_rewrite-for-301-redirect/" title="Apache mod_rewrite 实现301重定向">Apache mod_rewrite 实现301重定向</a><br /><small>它提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥...</small></li><li><a href="http://woodfeed.com/network-management/" title="网络管理">网络管理</a><br /><small>主要内容：1、局域网管理技术 
　2、网络管理功能和协议 
　3、网络管理系统 
...</small></li><li><a href="http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-4/" title="Linux常用命令详解(4)">Linux常用命令详解(4)</a><br /><small>五 磁盘维护
1 mkfs(make file system)
六 系统设置
1 exp...</small></li><li><a href="http://woodfeed.com/support-the-chinese-tags-and-links-by-wordpress/" title="让WordPress支持中文tag和链接">让WordPress支持中文tag和链接</a><br /><small>有的人用文章名做固定链接（%postname%），但是汉字标题出来后，地址栏的链接就变为...</small></li><li><a href="http://woodfeed.com/computer-blue-screen-code/" title="电脑蓝屏代码">电脑蓝屏代码</a><br /><small>00000001 不正确的函数。
2 0×00000002 系统找不到指定的档案。
...</small></li><li><a href="http://woodfeed.com/address-resolution-protocol-arp-and-reverse-address-resolution-protocol-rarp/" title="地址解析协议ARP和反向地址解析协议RARP">地址解析协议ARP和反向地址解析协议RARP</a><br /><small>ARP，全称Address Resolution Protocol，中文名为地址解析协议...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux常用命令详解(2)</title>
		<link>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-2/</link>
		<comments>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-2/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 09:14:26 +0000</pubDate>
		<dc:creator>vayu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux   mv]]></category>
		<category><![CDATA[linux  cat]]></category>
		<category><![CDATA[linux  chmod]]></category>
		<category><![CDATA[linux  cp]]></category>
		<category><![CDATA[linux  find]]></category>
		<category><![CDATA[linux  ln]]></category>
		<category><![CDATA[linux  locate]]></category>
		<category><![CDATA[linux  rm]]></category>
		<category><![CDATA[linux  which]]></category>
		<category><![CDATA[linux Diff]]></category>

		<guid isPermaLink="false">http://woodfeed.com/?p=349</guid>
		<description><![CDATA[三 文件管理
1.Diff  2. find  3. ln  4.locate  5. mv  6. rm  7.which  8.cat  9.chmod  10.cp]]></description>
			<content:encoded><![CDATA[<p>三 文件管理<br />
1.Diff<br />
该命令的功能为逐行比较两个文本文件，列出其不同之处。它比comm命令完成更复杂的检查。它对给出的文件进行系统的检查，并显示出两个文件中所有不同的行，不要求事先对文件进行排序。<br />
　　语法：diff [选项] file1 file2<br />
　　说明：该命令告诉用户，为了使两个文件file1和file2一致，需要修改它们的哪些行。如果用“- ”表示file1或fiie2，则表示标准输入。如果file1或file2是目录，那么diff将使用该目录中的同名文件进行比较。<br />
　　例如： diff /usr/xu mine<br />
　　把目录/usr/xu 中名为mine的文件与当前目录中的mine文件进行</p>
<p>	差异重定向：<br />
	例：diff  a.c  b.c  > d.txt<br />
	将a.c和b.c的不同之处显示到d.txt文件当中去.</p>
<p>2. find<br />
查找一个文件：find命令：<br />
例：find / -name hello.c    //从根目录开始，以名字查找<br />
语法: find 路径 –name 文件名</p>
<p>3. ln<br />
功能说明：连接文件或目录<br />
该命令的使用语法如下：<br />
硬链接：<br />
		ln [参数] 目标 [链接名]<br />
		ln [参数] 目标 目录<br />
软连接：<br />
ln [参数] –s目标 [链接名]<br />
		ln [参数] –s 目标 目录<br />
参　　数：<br />
　-b或&#8211;backup 　删除，覆盖目标文件之前的备份。<br />
　-d或-F或&#8211;directory 　建立目录的硬连接。<br />
　-f或&#8211;force 　强行建立文件或目录的连接，不论文件或目录是否存在。<br />
　-i或&#8211;interactive 　覆盖既有文件之前先询问用户。<br />
　-n或&#8211;no-dereference 　把符号连接的目的目录视为一般文件。<br />
　-s或&#8211;symbolic 　对源文件建立符号连接，而非硬连接。<br />
　-S<字尾备份字符串>或&#8211;suffix=<字尾备份字符串> 　用&#8221;-b&#8221;参数备份目标文件后，备份文件的字尾会被加上一个备份字符串，预设的字尾备份字符串是符号&#8221;~&#8221;，您可通过&#8221;-S&#8221;参数来改变它。<br />
　-v或&#8211;verbose 　显示指令执行过程。<br />
　-V<备份方式>或&#8211;version-control=<备份方式> 　用&#8221;-b&#8221;参数备份目标文件后，备份文件的字尾会被加上一个备份字符串，这个字符串不仅可用&#8221;-S&#8221;参数变更，当使用&#8221;-V&#8221;参数<备份方式>指定不同备份方式时，也会产生不同字尾的备份字符串。<br />
　&#8211;help 　在线帮助。<br />
　&#8211;version 　显示版本信息。<br />
链接有两种，一种被称为硬链接（Hard Link），另一种被称为符号链接（Symbolic Link）。建立硬链接时，链接文件和被链接文件必须位于同一个文件系统中，并且不能建立指向目录的硬链接。而对符号链接，则不存在这个问题。默认情况下，ln产生硬链接。</p>
<p>ln 命令<br />
用途<br />
链接文件。<br />
语法<br />
将某个文件链接到一个文件上<br />
ln [ -f | -n] [ -s ] SourceFile [ TargetFile ]<br />
将一个或多个文件链接到一个目录上<br />
ln [ -f | -n] [ -s ] SourceFile &#8230; TargetDirectory<br />
描述<br />
ln 命令将在 SourceFile 参数中指定的文件链接到在 TargetFile 参数中指定的文件，或将其链接到在 TargetDirectory 参数中指定的另一个目录中的文件。在缺省情况下，ln 命令会创建硬链接。如果需要使用 ln 命令来创建符号链接，请指明 -s 标志。<br />
符号链接是指向文件的一个间接指针；它的目录项中包含了它所链接的文件名。符号链接可能会跨越文件系统，可能指向目录。<br />
如果正在将某个文件链接到新的名字，那么只能列出一个文件。如果链接到一个目录，那么可以列出多个文件。<br />
TargetFile 参数是可选的。如果不指定目标文件，ln 命令会在当前的目录中创建一个新的文件。新的文件继承了指定在 SourceFile 参数中的文件名。请参阅示例 5。</p>
<p>注意：<br />
如果不使用 -s 标志，就不能在文件系统之间链接文件。<br />
如果 TargetDirectory 已经是链接到目录上的一个符号链接，那么 ln 命令将现有的目标视为文件。这意味着，类似于 ln -fs somepath/lname symdir 的命令不会遵循现有的 symdir 符号链接，作为代替，它会创建一个从 somepath/lname 到 symdir 的新的符号链接。<br />
标志<br />
-f 促使 ln 命令替换掉任何已经存在的目的路径。如果目的路径已经存在，而没有指定 -f 标志，ln 命令不会创建新的链接，而是向标准错误写一条诊断消息并继续链接剩下的 SourceFiles。<br />
-n 指定，如果链接是一个现有的文件，那么不要覆盖文件的内容。 -f 标志重设了这个标志。这是缺省的行为。<br />
-s 促使 ln 命令创建符号链接。符号链接中包含了它所链接的文件的名字。当对链接执行打开操作的时候，会使用到引用文件。对符号链接的 stat 调用会返回链接的目标文件；必须完成lstat 调用来获取链接的信息。可以使用 readlink 调用来读取符号链接的内容。符号链接可能跨越文件系统，指向目录。<br />
注意：当为 -s 标志指定 SourceFile 参数的时候，必须使用绝对路径。如果没有指明绝对路径，那么当 SourceFile 和 TargetFile 参数位于不同的目录中的时候，可能会发生意外的结果。在创建符号链接之前，不需要存在源文件。</p>
<p>退出状态<br />
此命令返回以下的退出值：<br />
0 所有指定的文件都成功链接上了。<br />
>0 出现一次错误。</p>
<p>示例<br />
零、为了创建到一个文件的另一个链接（别名），请输入：<br />
ln     -f chap1     intro<br />
这会将 chap1 链接到新的名称， intro。如果 intro 不存在，那么会创建该文件名。如果 intro 已经存在了，那么这个文件会被替换为指向 chap1的一个链接。然后 chap1 和 intro 文件名会指向同一个文件。对其中任何一个的更改都会出现在另一个中。如果一个文件名被 rm 命令删除，那么该文件并没有完全被删除，因为它仍然以其它的名字存在。<br />
一、为了将文件链接为另一个目录中的相同名字，请输入：<br />
ln     index     manual<br />
这会将 index 链接到新的名称，manual/index。</p>
<p>注意：在示例 1 中的 intro 是一个文件的名称；在示例 2 中的 manual 是一个已经存在的目录。<br />
二、为了将几个文件链接为另一个目录中的名称，请输入：<br />
ln     chap2     jim/chap3     /home/manual<br />
这会将 chap2 链接到新的名称 /home/manual/chap2；将 jim/chap3 链接到新的名称 /home/manual/chap3。<br />
三、如果想要在 ln 命令中使用模式匹配字符，请输入：<br />
n     manual/* .<br />
这会将 manual 目录中的所有文件链接到当前目录中， . （点），给他们在 manual 目录中同样的名称。</p>
<p>注意： 必须在星号和句点之间输入一个空格。<br />
四、为了创建一个符号链接，输入：<br />
ln -s /tmp/toc toc<br />
这会在当前的目录中创建符号链接 toc。 toc 文件指向 /tmp/toc 文件。如果 /tmp/toc 文件已经存在了，那么 cat toc 命令可以列出其内容。<br />
五、如果想要在不指明 TargetFile 参数的情况下得到相同的结果，请输入：<br />
、ln -s /tmp/toc</p>
<p>4 locate<br />
功能说明：查找文件<br />
用法:     locate filename</p>
<p>5. mv<br />
功能说明：移动或更名现有的文件或目录<br />
在Linux系统中，移动文件可使用mv命令。mv命令还可改文件改名，即把源文件以一个新文件名移动到另一个新的目录中去。该命令所使用语法形式有：<br />
	mv [-f] [-i] 文件1 文件2<br />
	mv [-f] [-i] 目录1 目录2<br />
	mv [-f] [-i] 文件列表 目录</p>
<p>6. rm<br />
功能说明：删除文件或目录<br />
rm命令可从文件系统中删除文件及整个目录。rm命令所使用的命令格式如下：<br />
		rm [选项] 文件列表<br />
-r		删除文件列表中指定的目录，若不用此标志则不删除目录<br />
-i		指定交互模式。在执行删除前提示确认。任何以Y开始的响应都表示肯定；其他则表示否定。<br />
-f		指定强行删除模式。通常，在删除文件权限可满足时rm提示。本标志强迫删除，不用提示。<br />
语法格式：rm –rf 目录<br />
          Rm –f 文件</p>
<p>7 which<br />
功能说明：查找文件。<br />
语　　法：which [文件...]<br />
补充说明：which指令会在环境变量$PATH设置的目录里查找符合条件的文件。</p>
<p>8 cat<br />
功能说明：显示文件内容。<br />
语　　法：cat  [文件]</p>
<p>9 chmod<br />
功能说明：变更文件或目录的权限<br />
chmod　[选项]　文件和目录列表<br />
语法：<br />
chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...]<br />
或chmod [-cfRv][--help][--version][数字代号][文件或目录...]<br />
或chmod [-cfRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]<br />
使用方式:<br />
chmod [-cfvR] [--help] [--version] mode file&#8230;<br />
在Linux/Unix系统家族里，文件或目录权限的控制分别以读取，写入，执行3种一般权限来区分，另有3种特殊权限可供运用，再搭配拥有者与所属群组管理权限范围。<br />
Linux/Unix的档案存取权限分为三级:档案拥有者、群组、其他。利用chmod可以藉以控制档案如何被他人所存取。<br />
您可以使用chmod指令去变更文件与目录的权限，设置方式采用文字或数字代号皆可。符号连接的权限无法变更，如果您对符号连接修改权限，其改变会作用在被连接的原始文件。<br />
权限范围的表示法如下：<br />
u：User，即文件或目录的拥有者。<br />
g：Group，即文件或目录的所属群组。<br />
o：Other，除了文件或目录拥有者或所属群组之外，其他用户皆属于这个范围。<br />
a：All，即全部的用户，包含拥有者，所属群组以及其他用户。<br />
有关权限代号的部分，列表于下：<br />
r：读取权限，数字代号为&#8221;4&#8243;。<br />
w：写入权限，数字代号为&#8221;2&#8243;。<br />
x：执行或切换权限，数字代号为&#8221;1&#8243;。<br />
-：不具任何权限，数字代号为&#8221;0&#8243;。<br />
s：特殊?b>功能说明：变更文件或目录的权限。</p>
<p>-rw&#8212;&#8212;- (600) &#8211;只有属主有读写权限。<br />
-rw-r&#8211;r&#8211; (644) &#8211;只有属主有读写权限；而属组用户和其他用户只有读权限。<br />
-rwx&#8212;&#8212; (700) &#8211;只有属主有读、写、执行权限。<br />
-rwxr-xr-x (755) &#8211;属主有读、写、执行权限；而属组用户和其他用户只有读、执行权限。<br />
-rwx&#8211;x&#8211;x (711) &#8211;属主有读、写、执行权限；而属组用户和其他用户只有执行权限。<br />
-rw-rw-rw- (666) &#8211;所有用户都有文件读、写权限。这种做法不可取。<br />
-rwxrwxrwx (777) &#8211;所有用户都有读、写、执行权限。更不可取的做法。</p>
<p>以下是对目录的两个普通设定:<br />
drwx&#8212;&#8212; (700) -只有属主可在目录中读、写。<br />
drwxr-xr-x (755) -所有用户可读该目录，但只有属主才能改变目录中的内容<br />
suid的代表数字是4，比如4755的结果是-rwsr-xr-x<br />
sgid的代表数字是2，比如6755的结果是-rwsr-sr-x<br />
sticky位代表数字是1，比如7755的结果是-rwsr-sr-t<br />
参数：<br />
-c或&#8211;changes　效果类似&#8221;-v&#8221;参数，但仅回报更改的部分。<br />
-f或&#8211;quiet或&#8211;silent　不显示错误信息。<br />
-R或&#8211;recursive　递归处理，将指定目录下的所有文件及子目录一并处理。<br />
-v或&#8211;verbose　显示指令执行过程。<br />
&#8211;help　在线帮助。<br />
&#8211;reference=<参考文件或目录>　把指定文件或目录的权限全部设成和参考文件或目录的权限相同<br />
&#8211;version　显示版本信息。<br />
<权限范围>+<权限设置>　开启权限范围的文件或目录的该项权限设置。<br />
<权限范围>-<权限设置>　关闭权限范围的文件或目录的该项权限设置。<br />
<权限范围>=<权限设置>　指定权限范围的文件或目录的该项权限设置。</p>
<p>+表示增加权限、-表示取消权限、=表示唯一设定权限。<br />
r表示可读取，w表示可写入，x表示可执行，X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。<br />
-c :若该档案权限确实已经更改，才显示其更改动作<br />
-f :若该档案权限无法被更改也不要显示错误讯息<br />
-v :显示权限变更的详细资料<br />
-R :对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)<br />
&#8211;help :显示辅助说明<br />
&#8211;version :显示版本<br />
范例1:<br />
将档案file1.txt设为所有人皆可读取:<br />
chmod ugo+r file1.txt<br />
将档案file1.txt设为所有人皆可读取:<br />
chmod a+r file1.txt<br />
将档案file1.txt与file2.txt设为该档案拥有者，与其所属同一个群体者可写入，但其他以外的人则不可写入:<br />
chmod ug+w,o-w file1.txt file2.txt<br />
将ex1.py设定为只有该档案拥有者可以执行:<br />
chmod u+x ex1.py<br />
将目前目录下的所有档案与子目录皆设为任何人可读取:<br />
chmod -R a+r *<br />
此外chmod也可以用数字来表示权限如chmod 777 file<br />
语法为：chmod abc file<br />
其中a,b,c各为一个数字，分别表示User、Group、及Other的权限。<br />
r=4，w=2，x=1<br />
若要rwx属性则4+2+1=7；<br />
若要rw-属性则4+2=6；<br />
若要r-x属性则4+1=5。<br />
范例2：<br />
chmod a=rwx file和chmod 777 file效果相同<br />
chmod ug=rwx,o=x file和chmod 771 file效果相同</p>
<p>若用chmod 4755 filename可使此程式具有root的权限</p>
<p>10 cp<br />
功能说明：复制文件或目录<br />
Linux下的cp命令用于复制文件或目录，该命令是最重要的文件操作命令，其命令格式如下：<br />
	cp　[选项]　 源文件　目标文件<br />
 	cp　[选项]　 源文件组 　目标目录<br />
-a			在备份中保持尽可能多的源文件结构和属。<br />
-b			作将要覆盖或删除文件的备份。<br />
-f			删除已存在的目标文件。<br />
-i			提示是否覆盖已存在的目标文件。<br />
-p			保持原先文件的所有者，组权限和时间标志<br />
-r			递归拷贝目录，把所有非目录文件当普通文件拷贝。<br />
-R			递归拷贝目录。</p>
<h2  class="related_post_title">精彩文章</h2><ul class="related_post"><li><a href="http://woodfeed.com/detailed-description-of-linux-network-configuration/" title="Linux网络配置详解">Linux网络配置详解</a><br /><small>从linux诞生的那一天起,就注定了它的网络功能空前地强大.所以在linux系统中如何配...</small></li><li><a href="http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-1/" title="Linux常用命令详解(1)">Linux常用命令详解(1)</a><br /><small>一 文件传输
1. bye 2．ftp 3. ftpcount
二 备份压缩
1.tar...</small></li><li><a href="http://woodfeed.com/apache-mod_rewrite-for-301-redirect/" title="Apache mod_rewrite 实现301重定向">Apache mod_rewrite 实现301重定向</a><br /><small>它提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥...</small></li><li><a href="http://woodfeed.com/create-multiple-wp-blog-by-one-wp-code/" title="一个WordPress建立多个独立WP博客">一个WordPress建立多个独立WP博客</a><br /><small>共用一个WordPress
可以共用同一个数据库...</small></li><li><a href="http://woodfeed.com/support-the-chinese-tags-and-links-by-wordpress/" title="让WordPress支持中文tag和链接">让WordPress支持中文tag和链接</a><br /><small>有的人用文章名做固定链接（%postname%），但是汉字标题出来后，地址栏的链接就变为...</small></li><li><a href="http://woodfeed.com/incremental-pid-algorithm/" title="增量式PID算法">增量式PID算法</a><br /><small>所谓增量式PID是指数字控制器的输出只是控制量的增量kuΔ。当执行机构需要的控制量是增量...</small></li><li><a href="http://woodfeed.com/a-different-day/" title="不一样的一天">不一样的一天</a><br /><small>为什么不一样呢？因为天明了，又黑了，然后又亮了！——日全食。

传说中五百年一次的日全食...</small></li><li><a href="http://woodfeed.com/obstacle-avoidance-module/" title="避障模块">避障模块</a><br /><small>采用红外避障传感器实现简单避障。...</small></li><li><a href="http://woodfeed.com/metal-detector-circuit/" title="金属探测电路">金属探测电路</a><br /><small>利用金属接近开关传感器E3-D4NK可以检测到铁皮向单片机发送出信号，使单片机可以记录铁...</small></li><li><a href="http://woodfeed.com/simple-smar-electric-ehicles/" title="简单智能电动车">简单智能电动车</a><br /><small>本简易智能电动车跷跷板分为电动车智能行驶和跷跷板两个主要部分，都以单片机为控制核心，根据...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux常用命令详解(1)</title>
		<link>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-1/</link>
		<comments>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-1/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 09:07:17 +0000</pubDate>
		<dc:creator>vayu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[linux bye]]></category>
		<category><![CDATA[linux ftp]]></category>
		<category><![CDATA[linux ftpcount]]></category>
		<category><![CDATA[linux tar]]></category>
		<category><![CDATA[unzip]]></category>

		<guid isPermaLink="false">http://woodfeed.com/?p=345</guid>
		<description><![CDATA[一 文件传输
1. bye 2．ftp 3. ftpcount
二 备份压缩
1.tar命令 2 gzip命令 3 unzip命令]]></description>
			<content:encoded><![CDATA[<p>一 文件传输<br />
1. bye<br />
功能说明：中断FTP连线并结束程序。<br />
语　　法：bye<br />
补充说明：在ftp模式下，输入bye即可中断目前的连线作业，并结束ftp的执行。</p>
<p>2．ftp<br />
功能说明：设置文件系统相关功能。<br />
语　　法：ftp [-dignv][主机名称或IP地址]<br />
补充说明：FTP是ARPANet的标准文件传输协议，该网络就是现今Internet的前身。<br />
参　　数：<br />
-d 详细显示指令执行过程，便于排错或分析程序执行的情形。<br />
-i 关闭互动模式，不询问任何问题。<br />
-g 关闭本地主机文件名称支持特殊字符的扩充特性。<br />
-n 不使用自动登陆。<br />
-v 显示指令执行过程。</p>
<p>3. ftpcount<br />
功能说明：显示目前以FTP登入的用户人数。<br />
语　　法：ftpcount<br />
补充说明：执行这项指令可得知目前用FTP登入系统的人数以及FTP登入人数的上</p>
<p>二 备份压缩<br />
1.tar命令<br />
tar可以为文件和目录创建档案。利用tar，用户可以为某一特定文件创建档案（备份文件），也可以在档案中改变文件，或者向档案中加入新的文件。tar最初被用来在磁带上创建档案，现在，用户可以在任何设备上创建档案，如软盘。利用tar命令，可以把一大堆的文件和目录全部打包成一个文件，这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。<br />
语法：tar [主选项+辅选项] 文件或者目录<br />
使用该命令时，主选项是必须要有的，它告诉tar要做什么事情，辅选项是辅助使用的，可以选用。<br />
主选项：<br />
c 创建新的档案文件。如果用户想备份一个目录或是一些文件，就要选择这个选项。<br />
r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件，又发现还有一个目录或是一些文件忘记备份了，这时可以使用该选项，将忘记的目录或文件追加到备份文件中。<br />
t 列出档案文件的内容，查看已经备份了哪些文件。<br />
u 更新文件。就是说，用新增的文件取代原备份文件，如果在备份文件中找不到要更新的文件，则把它追加到备份文件的最后。<br />
x 从档案文件中释放文件。<br />
辅助选项：<br />
b 该选项是为磁带机设定的。其后跟一数字，用来说明区块的大小，系统预设值为20（20*512 bytes）。<br />
f 使用档案文件或设备，这个选项通常是必选的。<br />
k 保存已经存在的文件。例如我们把某个文件还原，在还原的过程中，遇到相同的文件，不会进行覆盖。<br />
m 在还原文件时，把所有文件的修改时间设定为现在。<br />
M 创建多卷的档案文件，以便在几个磁盘中存放。<br />
v 详细报告tar处理的文件信息。如无此选项，tar不报告文件信息。<br />
w 每一步都要求确认。<br />
z 用gzip来压缩/解压缩文件，加上该选项后可以将档案文件进行压缩，但还原时也一定要使用该选项进行解压缩。<br />
举例：<br />
.tar<br />
　　解包： tar xvf FileName.tar<br />
　　打包：tar cvf FileName.tar DirName<br />
　　（注：tar是打包，不是压缩！）<br />
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
　　.gz<br />
　　解压1：gunzip FileName.gz<br />
　　解压2：gzip -d FileName.gz<br />
　　压缩：gzip FileName<br />
　　.tar.gz 和 .tgz<br />
　　解压：tar zxvf FileName.tar.gz<br />
　　压缩：tar zcvf FileName.tar.gz DirName<br />
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
　　.bz2<br />
　　解压1：bzip2 -d FileName.bz2<br />
　　解压2：bunzip2 FileName.bz2<br />
　　压缩： bzip2 -z FileName<br />
　　.tar.bz2<br />
　　解压：tar jxvf FileName.tar.bz2<br />
　　压缩：tar jcvf FileName.tar.bz2 DirName<br />
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
　　.bz<br />
　　解压1：bzip2 -d FileName.bz<br />
　　解压2：bunzip2 FileName.bz<br />
　　压缩：未知<br />
　　.tar.bz<br />
　　解压：tar jxvf FileName.tar.bz<br />
　　压缩：未知<br />
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
　　.Z<br />
　　解压：uncompress FileName.Z<br />
　　压缩：compress FileName<br />
　　.tar.Z<br />
　　解压：tar Zxvf FileName.tar.Z<br />
　　压缩：tar Zcvf FileName.tar.Z DirName<br />
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
　　.zip<br />
　　解压：unzip FileName.zip<br />
　　压缩：zip FileName.zip DirName<br />
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
　　.rar<br />
　　解压：rar a FileName.rar<br />
　　压缩：rar e FileName.rar<br />
　　<br />
　　rar请到：http://www.rarsoft.com/download.htm 下载！<br />
　　解压后请将rar_static拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：<br />
　　[root@www2 tmp]# cp rar_static /usr/bin/rar<br />
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
　　.lha<br />
　　解压：lha -e FileName.lha<br />
　　压缩：lha -a FileName.lha FileName<br />
　　<br />
　　lha请到：http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下载！<br />
　　&gt;解压后请将lha拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：<br />
　　[root@www2 tmp]# cp lha /usr/bin/<br />
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
　　.rpm<br />
　　解包：rpm2cpio FileName.rpm | cpio -div<br />
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
　　.deb<br />
　　解包：ar p FileName.deb data.tar.gz | tar zxf –</p>
<p>2 gzip命令<br />
减少文件大小有两个明显的好处，一是可以减少存储空间，二是通过网络传输文件时，可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令，既方便又好用。<br />
语法：gzip [选项] 压缩（解压缩）的文件名<br />
各选项的含义：<br />
-c 将输出写到标准输出上，并保留原有文件。<br />
-d 将压缩文件解压。<br />
-l 对每个压缩文件，显示下列字段：<br />
压缩文件的大小<br />
未压缩文件的大小<br />
压缩比<br />
未压缩文件的名字<br />
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。<br />
-t 测试，检查压缩文件是否完整。<br />
-v 对每一个压缩和解压的文件，显示文件名和压缩比。<br />
-num 用指定的数字num调整压缩的速度，-1或&#8211;fast表示最快压缩方法（低压缩比），-9或&#8211;best表示最慢压缩方法（高压缩比）。系统缺省值为6。</p>
<p>3 unzip命令<br />
用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢？可以用unzip命令，该命令用于解扩展名为.zip的压缩文件。<br />
语法：unzip [选项] 压缩文件名.zip<br />
各选项的含义分别为：<br />
-x 文件列表 解压缩文件，但不包括指定的file文件。<br />
-v 查看压缩文件目录，但不解压。<br />
-t 测试文件有无损坏，但不解压。<br />
-d 目录 把压缩文件解到指定目录下。<br />
-z 只显示压缩文件的注解。<br />
-n 不覆盖已经存在的文件。<br />
-o 覆盖已存在的文件且不要求用户确认。<br />
-j 不重建文档的目录结构，把所有文件解压到同一目录下。</p>
<h2  class="related_post_title">精彩文章</h2><ul class="related_post"><li><a href="http://woodfeed.com/uip-transplantation/" title="uIP移植">uIP移植</a><br /><small>uIP的设备驱动程序接口。uIP内核中有两个函数直接需要底层设备驱动程序的支持。一是ui...</small></li><li><a href="http://woodfeed.com/metal-detector-circuit/" title="金属探测电路">金属探测电路</a><br /><small>利用金属接近开关传感器E3-D4NK可以检测到铁皮向单片机发送出信号，使单片机可以记录铁...</small></li><li><a href="http://woodfeed.com/apache-mod_rewrite-for-301-redirect/" title="Apache mod_rewrite 实现301重定向">Apache mod_rewrite 实现301重定向</a><br /><small>它提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥...</small></li><li><a href="http://woodfeed.com/digital-compression-coding-techniques/" title="数字压缩编码技术">数字压缩编码技术</a><br /><small> 数字信号有很多优点，但当模拟信号数字化后其频带大大加宽，一路6MHz的普通电视信号数字...</small></li><li><a href="http://woodfeed.com/computer-blue-screen-code/" title="电脑蓝屏代码">电脑蓝屏代码</a><br /><small>00000001 不正确的函数。
2 0×00000002 系统找不到指定的档案。
...</small></li><li><a href="http://woodfeed.com/uip-uipopt-h-configuration-2/" title="uIP &#8211; uipopt.h配置">uIP &#8211; uipopt.h配置</a><br /><small>使用每个项目一个的配置文件uipopt.h来配置uIP。这个文件包含了uIP的所有的编译...</small></li><li><a href="http://woodfeed.com/my-alexa-ranking-updated-today/" title="3天后的今天alexa又更新了">3天后的今天alexa又更新了</a><br /><small>今天排名又更新了。



...</small></li><li><a href="http://woodfeed.com/application-of-the-uip-tcpip-protocol-stack-in-the-51-mcu/" title="uIP TCP/IP协议栈在51系列单片机上的应用">uIP TCP/IP协议栈在51系列单片机上的应用</a><br /><small>　uIP 协议栈是一种免费的可实现的极小的TCP/IP协议栈，可以使用于由8位或16位微...</small></li><li><a href="http://woodfeed.com/internet/" title="Internet">Internet</a><br /><small>主要内容：1、internet体系结构 
　2、internet连接的方法 
　3、...</small></li><li><a href="http://woodfeed.com/application-of-open-source-tcp-ip-protocol-stack-uip/" title="源码公开的TCP/IP协议栈uIP的应用">源码公开的TCP/IP协议栈uIP的应用</a><br /><small>摘 要：介绍一个适用于8/16位单片机的嵌入式TCP/IP协议栈（uIP）在发电机远程监...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下NFS详解</title>
		<link>http://woodfeed.com/detail-to-explain-the-nfs-under-linux/</link>
		<comments>http://woodfeed.com/detail-to-explain-the-nfs-under-linux/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 07:39:26 +0000</pubDate>
		<dc:creator>vayu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux NFS]]></category>
		<category><![CDATA[嵌入式Linux开发]]></category>

		<guid isPermaLink="false">http://woodfeed.com/?p=317</guid>
		<description><![CDATA[NFS(Network File System)是一种分布式文件系统，允许网络中的安装不同操作系统的计算机间共享文件和外设，所以它的通讯协定设计与主机及作业系统无关. 它是由SUN公司于1984年推出，使得可以本地机一样的使用另一台联网计算机的文件和外设。NFS在文件传送或信息传送过程中依赖于RPC协议。NFS 的当前版本是V4（RFC3010）

     在嵌入式Linux 的开发过程中，开发者需要在Linux 服务器上进行所有的软件开发，交叉编译后，通用FTP 方式将可执行文件下载到嵌入式系统运行，但这种方式不但效率低下，且无法实现在线的调试。因此，可以通过建立NFS，把Linux 服务器上的特定分区共享到待调试的嵌入式目标系统上，就可以直接在嵌入式目标系统上操作Linux 服务器，同时可以在线对程序进行调试和修改，大大的方便了软件的开发。因此，NFS 的是嵌入式Linux 开发的一个重要的组成部分，本部分内容将详细说明如何配置嵌入式Linux 的NFS 开发环境。]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>        网络文件系统（NFS，Network File System）是一种将远程主机上的分区（目录）经网络挂载到本地系统的一种机制，通过对网络文件系统的支持，用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区（目录）进行操作。</p>
<p>        因为NFS支援的功能相当的多，而不同的功能都会使用不同的程式来启动，每启动一个功能就会启用一些port来传输资料，因此， NFS的功能所对应的port才没有固定住，而是采用随机取用一些未被使用的小于1024的埠口来作为传输之用。 此时我们就得需要远端程序呼叫(RPC)的服务啦。 RPC最主要的功能就是在指定每个NFS功能所对应的port number ，并且回报给用户端，让用户端可以连结到正确的埠口上去。那RPC又是如何知道每个NFS的埠口呢？这是因为当伺服器在启动NFS时会随机取用数个埠口，并主动的向RPC注册，因此RPC可以知道每个埠口对应的NFS功能，然后RPC又是固定使用port 111来监听用户端的需求并回报用户端正确的埠口，所以当然可以让NFS的启动更为轻松愉快了！</p>
<p>步骤：<br />
用户端会向伺服器端的RPC (port 111)发出NFS档案存取功能的询问要求；<br />
伺服器端找到对应的已注册的NFS daemon埠口后，会回报给用户端；<br />
用户端了解正确的埠口后，就可以直接与NFS daemon来连线。<br />
        由于NFS的各项功能都必须要向RPC来注册，如此一来RPC才能了解NFS这个服务的各项功能之port number, PID, NFS在主机所监听的IP等等，而用户端才能够透过RPC的询问找到正确对应的埠口。也就是说，NFS必须要有RPC存在时才能成功的提供服务，因此我们称NFS为RPC server的一种。</p>
<p>         在嵌入式Linux 的开发过程中，开发者需要在Linux 服务器上进行所有的软件开发，交叉编译后，通用FTP 方式将可执行文件下载到嵌入式系统运行，但这种方式不但效率低下，且无法实现在线的调试。因此，可以通过建立NFS，把Linux 服务器上的特定分区共享到待调试的嵌入式目标系统上，就可以直接在嵌入式目标系统上操作Linux 服务器，同时可以在线对程序进行调试和修改，大大的方便了软件的开发。因此，NFS 的是嵌入式Linux 开发的一个重要的组成部分，本部分内容将详细说明如何配置嵌入式Linux 的NFS 开发环境。</p>
<p>         嵌入式Linux 的NFS 开发环境的实现包括两个方面：一是Linux 服务器端的NFS 服务器支持；二是嵌入式目标系统的NFS 客户端的支持。因此，NFS 开发环境的建立需要配置linux 服务器端和嵌入式目标系统端。</p>
<p>一、Linux 服务器端NFS 服务器的配置<br />
    以root 身份登陆Linux 服务器，编辑/etc 目录下的共享目录配置文件exports，指定共享目录及权限等。</p>
<p>    执行如下命令编辑文件/etc/exports：</p>
<p>   # vi /etc/exports</p>
<p>   在该文件里添加如下内容：</p>
<p>   /home/work 192.168.0.*（rw,sync,no_root_squash）</p>
<p>   然后保存退出。</p>
<p>   添加的内容表示：允许ip 地址范围在192.168.0.*的计算机以读写的权限来访问/home/work 目录。</p>
<p>   /home/work 也称为服务器输出共享目录。</p>
<p>   括号内的参数意义描述如下：</p>
<p>   rw：读/写权限，只读权限的参数为ro；</p>
<p>   sync：数据同步写入内存和硬盘，也可以使用async，此时数据会先暂存于内存中，而不立即写入硬盘。</p>
<p>   no_root_squash：NFS 服务器共享目录用户的属性，如果用户是 root，那么对于这个共享目录来说就具有 root 的权限。</p>
<p>   接着执行如下命令，启动端口映射：</p>
<p>   # /etc/rc.d/init.d/portmap start</p>
<p>   最后执行如下命令启动NFS 服务，此时NFS 会激活守护进程，然后就开始监听 Client 端的请求：</p>
<p>   # /etc/rc.d/init.d/nfs start</p>
<p>   用户也可以重新启动Linux 服务器，自动启动NFS 服务。</p>
<p>         在NFS 服务器启动后，还需要检查Linux 服务器的防火墙等设置（一般需要关闭防火墙服务），确保没有屏蔽掉NFS 使用的端口和允许通信的主机，主要是检查Linux 服务器iptables，ipchains 等选项的设置，以及/etc/hosts.deny，/etc/hosts.allow 文件。</p>
<p>   我们首先在Linux 服务器上进行NFS 服务器的回环测试，验证共享目录是否能够被访问。在Linux 服务器上运行如下命令：</p>
<p>   # mount –t nfs 192.168.0.20:/home/work /mnt</p>
<p>   # ls /mnt</p>
<p>   命令将Linux 服务器的NFS 输出共享目录挂载到/mnt 目录下，因此，如果NFS 正常工作，应该能够在/mnt 目录看到/home/work 共享目录中的内容。</p>
<p>二、嵌入式目标系统NFS 客户端的配置<br />
       在Linux 服务器设置好后，还需要对客户端进行相关配置。在配置内核时选择Load an Alternate Configuration File输入配置文件的路径和文件名添加内核对NFS的支持：</p>
<p>   选中networking options－》IP:kernel level auloconfiguralion项</p>
<p>   选中file systems－》network file systems－》下的root file system on nfs 和nfs file system support重新编译内核下载bootloader和kernel到开发板上</p>
<p>    在嵌入式目标系统的Linux Shell 下，执行如下命令来进行NFS 共享目录挂载：</p>
<p>    # mkdir /mnt/nfs //建立Linux 服务器输出共享目录的挂载点；</p>
<p>    # mount –t nfs 192.168.0.20:/home/work /mnt/nfs –o nolock</p>
<p>    # cd /mnt/nfs</p>
<p>    # ls</p>
<p>    此时，嵌入式目标系统端所显示的内容即为Linux 服务器的输出目录的内容，即Linux 服务器的输出目。</p>
<p>    录/home/work 通过NFS 映射到了嵌入式目标系统的/mnt/nfs 目录。用户可以用增/删/修改文件的方式来验证实际效果。mount 命令中的192.168.0.20 为Linux 服务器的IP 地址，/home/work 为Linux 服务器端所配置的共享输出目录，/mnt/nfs 为嵌入式设备上的本地目录。</p>
<p>    在开发过程中，来回输入命令非常烦人，我写了两个简单的脚本来完成nfs的启动，挂载。</p>
<p>    host启动nfs：<br />
    snfs<br />
    #!/bin/bash<br />
    ifconfig eth0 192.168.0.20<br />
    /etc/rc.d/init.d/portmap start<br />
    /etc/rc.d/init.d/nfs start<br />
    嵌入式目标机挂载nfs：<br />
    mnfs：</p>
<p>    #!/bin/sh<br />
    mount -t nfs 192.168.0.20:/home/work/nfs /mnt/nfs -o nolock<br />
    echo “nfs ok！”</p>
<p> </p>
<p> 1.1 NFS概述</p>
<p>NFS(Network File System)是一种分布式文件系统，允许网络中的安装不同操作系统的计算机间共享文件和外设，所以它的通讯协定设计与主机及作业系统无关. 它是由SUN公司于1984年推出，使得可以本地机一样的使用另一台联网计算机的文件和外设。NFS在文件传送或信息传送过程中依赖于RPC协议。NFS 的当前版本是V4（RFC3010）</p>
<p>RPC, 远程过程调用 (remote procedure call) 是能使客户端执行其他系统中程序的一种机制。由于使用 RPC 的程序不必了解支持通信的网络协议的情况，因此 RPC 提高了程序的互操作性。常用于分布式客户端/服务器模型，发出请求的程序是客户程序，而提供服务的程序是服务器。RFC1831</p>
<p>1.2 NFS的安装</p>
<p>NFS的安装是非常简单的，只需要两个软件包即可，而且在通常情况下，是作为系统的默认包安装的，在配置使用NFS之前需要先查询所需的软件包是否已安装.</p>
<p># rpm -q nfs-utils portmap </p>
<p>nfs-utils-1.0.6-70.EL4</p>
<p>portmap-4.0-63 </p>
<p>//如果出现包的信息，则表示已安装了nfs-utils portmap两个软件包</p>
<p>1.3 NFS安装包文件 </p>
<p>如当前系统中没有安装NFS所需的使用的软件包，需要手工进行安装。nfs-utils和portmap两个包的安装文件在系统光盘中都会有。</p>
<p>nfs-utils-1.0.6-70.EL4.i386.rpm</p>
<p>portmap-4.0-63.i386.rpm</p>
<p>1.4 Portmap软件包</p>
<p>portmap软件包中的portmap服务，为NFS和NIS等提供PRC服务的支持，因此在安装NFS时就先安装portmap软件包.</p>
<p>rpm -ql portmap</p>
<p>/etc/rc.d/init.d/portmap</p>
<p>/sbin/portmap</p>
<p>1.5 nfs-utils软件包</p>
<p>nfs-utils软件包提供了NFS服务器程序和相应的管理工具。</p>
<p>rpm -ql nfs-utils</p>
<p>1.6 NFS服务器的配置</p>
<p>NFS服务器的配置相对比较简单，只需要在相应的配置文件中进行设置，然后启动NFS服务器即可.</p>
<p>1.7 NFS服务器的配置文件&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-exports</p>
<p>exports文件在目录“/etc”下，用于配置NFS服务器所提供的目录共享。exports的黑夜设置为空，没有输出任何的目录共享，这也是出于安全考虑，这样即使启动了NFS 服务也不会提供任何的共享。</p>
<p>1.8 exports文件的格式</p>
<p>exports文件中每行提供一个共享的目录，设置行的格式如下所示：</p>
<p>要输出的共享目录 客户端主机的地址（设置先项）</p>
<p>/www/chinafu *(sync,ro)</p>
<p>在共享设置文件中，共享目录和主机地址间用空格分隔，主机地址之后紧随设置选项，设置选项放有括号中，多个设置选项间用逗号分隔.</p>
<p>1.8.1共享目录</p>
<p>共享目录设置系统中需要作为共享的目录路径。 </p>
<p>1.8.2 客户端主机地址</p>
<p>在exports文件 客户端,客户端主机的指定非常灵活，如下所示</p>
<p> </p>
<p> 客户端主机地址                                                    说明</p>
<p>192.168.0.28                                               指定ip地址的主机</p>
<p>www.chinafu.net                                           指定域名的主机</p>
<p>192.168.0.10／31                                       指定网段中的所有主机</p>
<p>*.chinafu.com                                              指定域中的所有主机</p>
<p>*                                                                  指定所有主机</p>
<p> </p>
<p>1.8.3 设置选项 </p>
<p>exports文件中的设置选择较多，但经常用的并不多</p>
<p>设置选项                                                                      说明</p>
<p>sync                         设置NFS服务器同步写磁盘，这样不会轻易丢失数据，NFS服务器建议使用该选项 </p>
<p>ro                            设置输出的共享目录只读，与 rw捡能同时使用</p>
<p>rw                            设置输出的共享目录可读写 ，与ro不能共同使用</p>
<p>1.8.4 exports文件配置实例</p>
<p>在exports文件中，同一输出共享目录对于不同的主机可以有不同的设置选项，各主机设置间用空格分隔</p>
<p>#more /etc/exports</p>
<p>/www/chinafu *(sync,ro) 192.168.0.19(sync,rw)</p>
<p>/home/ftp 192.168.0.31(sync,ro)</p>
<p>1.9 NFS服务器的启动与停止</p>
<p>在对exports文件进行了正确的配置后，就可以启动NFS服务器了。</p>
<p>19.1 启动NFS服务器</p>
<p>为了使NFS服务器能正常工作，需要启动portmap和nfs两人服务，并且portmap一定要先于nfs启动</p>
<p>[root@localhost ~]# service portmap start</p>
<p>Starting portmap:                                          [ OK ]</p>
<p>//portmap要先于nfs启动</p>
<p>[root@localhost ~]# service nfs start</p>
<p>Starting NFS services:                                     [ OK ]</p>
<p>Starting NFS quotas:                                       [ OK ]</p>
<p>Starting NFS daemon:                                     [ OK ]</p>
<p>Starting NFS mountd:                                      [ OK ]</p>
<p>19.2 查询NFS服务器状态</p>
<p>#service portmap status</p>
<p>#service nfs status</p>
<p>19.3 停止NFS服务器</p>
<p>要停止NFS运行时，需要先停止nfs服务再停止portmap服务，对于系统中有其他服务(如NIS)需要使用时，不需要停止portmap服务</p>
<p>#service nfs stop</p>
<p>#service portmap stop</p>
<p>19.4设置NFS服务器的自动启动状态</p>
<p>对于实际的应用系统，每次启动LINUX系统后都手工启动nfs服务器是不现实的，需要设置系统在指定的运行级别自动启动portmap和nfs服务。</p>
<p>[root@localhost ~]# chkconfig &#8211;list portmap</p>
<p>portmap         0:off   1:off   2:off   3:off    4:off 5:off    6:off</p>
<p>[root@localhost ~]# chkconfig &#8211;list nfs</p>
<p>nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off</p>
<p>//设置portmap和nfs服务在系统运行级别3和5自动启动.</p>
<p>[root@localhost ~]# chkconfig &#8211;level 35 portmap on</p>
<p>[root@localhost ~]# chkconfig &#8211;level 35 nfs on</p>
<p>[root@localhost ~]# chkconfig &#8211;list portmap</p>
<p>nfs             0:off   1:off   2:off   3:on    4:off 5:on    6:off</p>
<p>[root@localhost ~]# chkconfig &#8211;list nfs</p>
<p>nfs             0:off   1:off   2:off   3:on    4:off 5:on    6:off</p>
<p>20.1 showmount命令</p>
<p>在正确设置了NFS共享目录后并正确启动NFS服务器后，可以使用showmount命令查询NFS的共享状态.</p>
<p>20.1.1 显示showmount命令帮助</p>
<p>showmount -h</p>
<p>20.1.2 显示主机的NFS服务器信息</p>
<p>showmount NFS服务器主机地址     //不指定为当前主机的NFS服务器的信息</p>
<p>20.1.3 显示NFS服务器的输出列表</p>
<p>showmount -e NFS服务器主机地址</p>
<p>20.1.4 显示NFS服务器中被挂载的目录</p>
<p>showmount -d NFS服务器主机地址</p>
<p>20.1.5 显示NFS服务器的客户要与被挂载的目录</p>
<p>showmount -a</p>
<p>21.1exportfs命令</p>
<p> </p>
<p>21.1.1 重新输出共享目录</p>
<p>exportfs -rv</p>
<p>exportfs -rv命令使NFS服务器重新读取exports文件中的设置，使用该命令可以在改变exports文件设置后，使设置在当前服务器中生效，而不需要重新启动NFS服务器</p>
<p>21.1.2 停止输出所有目录</p>
<p>exportfs -auv</p>
<p>用于停止当前主机中NFS服务器的所有目录输出</p>
<p>21.1.3 输出所有的目录</p>
<p>exportfs -av</p>
<p>用于输出当前主机中NFS服务器的所有共享目录</p>
<p>22.1 NFS的客户端配置</p>
<p>22.1.1显示NFS服务器的输出共享目录</p>
<p>在使用mount挂载NFS服务器的共享目录之前，最好先查询NFS服务器中是否允许本机连接相应的目录共享</p>
<p>showmount -e 服务器地址</p>
<p>23.1 挂载NFS服务器中的共享目录</p>
<p>命令格式</p>
<p>mount NFS服务器地址:共享目录 本地挂载点目录</p>
<p>例子:</p>
<p>mount 192.168.0.130:/www/chinafu /mnt/chinafu</p>
<p>细节提示：挂载点目录是已建立的空目录，也可是使用其他的空目录.</p>
<p>24.1显示当前主机挂载的NFS目录</p>
<p>#mount |grep nfs</p>
<p>25.1卸载已挂载的NFS共享目录</p>
<p>＃unmount /mnt/chinafu</p>
<p>//目录/mnt/chinafu为NFS共享目录挂载点</p>
<p>部分转自： http://hi.baidu.com/licett/blog/item/571c13fcb4d657f8fc037f49.html</p>
<h2  class="related_post_title">精彩文章</h2><ul class="related_post"><li><a href="http://woodfeed.com/create-multiple-wp-blog-by-one-wp-code/" title="一个WordPress建立多个独立WP博客">一个WordPress建立多个独立WP博客</a><br /><small>共用一个WordPress
可以共用同一个数据库...</small></li><li><a href="http://woodfeed.com/mcu-c8051f020-and-mcu-80c51/" title="C8051F020与80C51单片机的异同点">C8051F020与80C51单片机的异同点</a><br /><small>80C51系列单片机及其衍生产品在我国乃至全世界范围获得了非常广泛的应用。单片机领域的大...</small></li><li><a href="http://woodfeed.com/simple-smar-electric-ehicles/" title="简单智能电动车">简单智能电动车</a><br /><small>本简易智能电动车跷跷板分为电动车智能行驶和跷跷板两个主要部分，都以单片机为控制核心，根据...</small></li><li><a href="http://woodfeed.com/apache-mod_rewrite-for-301-redirect/" title="Apache mod_rewrite 实现301重定向">Apache mod_rewrite 实现301重定向</a><br /><small>它提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥...</small></li><li><a href="http://woodfeed.com/wp-replacement-of-domain-names/" title="WP更换域名">WP更换域名</a><br /><small>首先进入MySQL后台phpMyAdmin：
点结构体旁边的SQL按钮，在下面命令框内分...</small></li><li><a href="http://woodfeed.com/internet/" title="Internet">Internet</a><br /><small>主要内容：1、internet体系结构 
　2、internet连接的方法 
　3、...</small></li><li><a href="http://woodfeed.com/hall-sensor/" title="霍尔传感器">霍尔传感器</a><br /><small>霍尔传感器是一种磁传感器。用它可以检测磁场及其变化，可在各种与磁场有关的场合中使用。霍尔...</small></li><li><a href="http://woodfeed.com/remote-control-system-based-on-avr-microcontroller/" title="基于AVR单片机的远程控制系统的研究">基于AVR单片机的远程控制系统的研究</a><br /><small>介绍了一种利用AVR单片机和RTL8019AS以太网控制器实现的RS232接口设备远程控...</small></li><li><a href="http://woodfeed.com/photoshop-box/" title="PhotoShop作业&#8211;盒子">PhotoShop作业&#8211;盒子</a><br /><small>
 
去年做的一个作业，ps的处女作。...</small></li><li><a href="http://woodfeed.com/a-new-domain-name-laeon-com/" title="注册了一个域名laeon.com">注册了一个域名laeon.com</a><br /><small>前几天又去注册了一个域名，在雅虎注册的，2刀。准备过2个月转出去~
这个比较短，五个字...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://woodfeed.com/detail-to-explain-the-nfs-under-linux/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>利用autotools生成Makefile</title>
		<link>http://woodfeed.com/autotools-generated-makefile/</link>
		<comments>http://woodfeed.com/autotools-generated-makefile/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 10:37:34 +0000</pubDate>
		<dc:creator>vayu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[autotools]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[makefile]]></category>

		<guid isPermaLink="false">http://woodfeed.com/?p=310</guid>
		<description><![CDATA[对于一个较大的项目而言，完全手动建立Makefile是一件费力而又容易出错的工作。autotools系列工具只需用户输入简单的目标文档、依赖文档、文档目录等就能够比较轻松地生成Makefile了。现在Linux上的软件研发一般都是用autotools来制作Makefile。
autotools工具主要有：aclocal、autoscan、autoconf、autoheader、automake。使用autotools主要就是利用各个工具的脚本文档来生成最后的Makefile。
这几个工具备没有安装能够用which命令来查看
＃which aclocal]]></description>
			<content:encoded><![CDATA[<p>对于一个较大的项目而言，完全手动建立Makefile是一件费力而又容易出错的工作。autotools系列工具只需用户输入简单的目标文档、依赖文档、文档目录等就能够比较轻松地生成Makefile了。现在Linux上的软件研发一般都是用autotools来制作Makefile。<br />
autotools工具主要有：aclocal、autoscan、autoconf、autoheader、automake。使用autotools主要就是利用各个工具的脚本文档来生成最后的Makefile。<br />
这几个工具备没有安装能够用which命令来查看<br />
＃which aclocal<br />
我们能够先看看总体流程，如下图所示：</p>
<p style="text-align: left;"><a href="http://woodfeed.com/wp-content/uploads/2009/09/p1.jpg" rel="lightbox[310]"><img class="aligncenter size-large wp-image-311" title="p1" src="http://woodfeed.com/wp-content/uploads/2009/09/p1-1024x768.jpg" alt="p1" width="614" height="461" /></a><br />
具体流程如下：<br />
第一步 autoscan<br />
使用autoscan在给定目录及其子目录树中检查源文档，假如没有给出目录，就在当前目录及其子目录树中进行检查。最终生成两个文档：configure.scan、autoscan.log<br />
其中，configure.scan是configure.in的原型模版文档。而configure.in是autoconf的脚本配置文档。所以下一步的工作就是要对<br />
configure.scan进行修改，将其转化为configure.in。<br />
第二步 autoconf<br />
configure.scan文档内容如下：<br />
说明：<br />
1、以“＃”号开始的是行为注释。<br />
2、AC_PREREQ宏声明本文档需要的autoconf版本。<br />
3、AC_INIT宏用来定义软件的名称和版本等信息，这里的BUG-REPORT-ADDRESS能够省略。<br />
4、AC_CONFIG_SRCDIR宏用来侦测所指定的源码文档是否存在，来确定源码目录的有效性。这个参数一般无需修改。<br />
5、AC_CONFIG_HEADER宏用于生成config.h文档，以便autoheader使用。<br />
修改时需要增加一个宏AM_INIT_AUTOMAKE(PACKAGE，VERSION)，还要把AC_CONFIG_HEADER更改为<br />
AM_CONFIG_HEADER。<br />
具体如下所示：<br />
# -*- Autoconf -*-<br />
# Process this file with autoconf to produce a configure script.<br />
AC_PREREQ(2.57)<br />
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)<br />
AC_CONFIG_SRCDIR([main.c])<br />
AC_CONFIG_HEADER([config.h])<br />
# Checks for programs.<br />
AC_PROG_CC<br />
# Checks for libraries.<br />
# Checks for header files.<br />
# Checks for typedefs, structures, and compiler characteristics.<br />
# Checks for library functions.<br />
AC_OUTPUT<br />
修改后如下：<br />
# -*- Autoconf -*-<br />
# Process this file with autoconf to produce a configure script.<br />
AC_PREREQ(2.57)<br />
#AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)<br />
AC_INIT(main,1.0)<br />
AM_INIT_AUTOMAKE(main,1.0)<br />
AC_CONFIG_SRCDIR([main.c])<br />
AM_CONFIG_HEADER([config.h])<br />
# Checks for programs.<br />
AC_PROG_CC<br />
# Checks for libraries.<br />
# Checks for header files.<br />
# Checks for typedefs, structures, and compiler characteristics.<br />
# Checks for library functions.<br />
AC_OUTPUT(Makefile)</p>
<p>第三步 autoheader<br />
首先把configure.scan更改名称为configure.in。然后执行aclocal，autoconf，autoheader。<br />
＃mv configure.scan configure.in<br />
＃aclocal /*这边生成alocal.m4 */<br />
＃autoconf /* 生成configure.in连同configure的可执行文档 */<br />
＃autoheader</p>
<p>第四步 automake<br />
这是很重要的一步。automake需要的脚本配置文档是Makefile.am，这个文档需要自己建立。<br />
AUTOMAKE_OPTIONS为配置automake的选项。automake提供了3种软件等级：foreign、gnu、gnits，让用户选择使用，默认等级是gnu。现在使用的foreign只是检测必要的文档。<br />
bin_PROGRAMS定义了要产生的执行文档名。假如产生多个可执行文档，每个文档名用空格隔开。<br />
file_SOURCES定义file这个执行程式的依赖文档。同样的，对于多个执行文档，那就要定义相应的file_SOURCES。<br />
接下来就是使用automake对其生成configure.in文档。这里能够使用选项&#8211;adding-missing让automake自动添加一些必要的脚本文档。</p>
<p>第五步 运行configure<br />
这样就完成了Makefile的制作。</p>
<p style="text-align: left;"><a href="http://woodfeed.com/wp-content/uploads/2009/09/p2.jpg" rel="lightbox[310]"><img class="aligncenter size-full wp-image-312" title="p2" src="http://woodfeed.com/wp-content/uploads/2009/09/p2.jpg" alt="p2" width="638" height="385" /></a><br />
（注释：在运行configure的时候，我们能够对configure的相关宏参数进行配置，已达到我们的目的。<br />
我们现在编写的程式希望能够在ARM平台上使用，所以这就涉及到交叉编译的问题，在configure的时候我们就能够来指定交叉编译器，如下<br />
＃./configure CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc &#8211;host=arm &#8211;target=arm<br />
用户能够通过给configure传递命令行参数而指定系统类型。在交叉编译时必须这样作。在大多数交叉编译的复杂情况下，要涉及到三种系统类型。用于指定他们的选项是： &#8211;build=build-type 对包进行配置和编译的系统类型（很少用到）； &#8211;host=host-type 包将运行的系统类型； &#8211;target=target-type 包中任何编译器将生成的代码的系统类型。</p>
<p style="text-align: left;"><a href="http://woodfeed.com/wp-content/uploads/2009/09/p3.jpg" rel="lightbox[310]"><img class="aligncenter size-full wp-image-313" title="p3" src="http://woodfeed.com/wp-content/uploads/2009/09/p3.jpg" alt="p3" width="639" height="417" /></a><br />
这是具备的功能：make、make install、make uninstall、make clean、make<br />
distclean、make dist。<br />
1、键入make默认执行make all。其目标体为all。<br />
2、make install（uninstall）<br />
3、make clean （distclean）<br />
make clean仅仅是清除之前编译的可执行文档及配置文档。而make distclean要清除任何生成的文档。<br />
4、make dist<br />
将任何的程式和相关的文档打包为一个压缩文档以供发布</p>
<p>本文转自：http://idcnews.net/html/edu/20070101/291964.html</p>
<h2  class="related_post_title">精彩文章</h2><ul class="related_post"><li><a href="http://woodfeed.com/photoshop-box/" title="PhotoShop作业&#8211;盒子">PhotoShop作业&#8211;盒子</a><br /><small>
 
去年做的一个作业，ps的处女作。...</small></li><li><a href="http://woodfeed.com/uip-transplantation/" title="uIP移植">uIP移植</a><br /><small>uIP的设备驱动程序接口。uIP内核中有两个函数直接需要底层设备驱动程序的支持。一是ui...</small></li><li><a href="http://woodfeed.com/uip-uipopt-h-configuration-2/" title="uIP &#8211; uipopt.h配置">uIP &#8211; uipopt.h配置</a><br /><small>使用每个项目一个的配置文件uipopt.h来配置uIP。这个文件包含了uIP的所有的编译...</small></li><li><a href="http://woodfeed.com/remote-control-system-based-on-avr-microcontroller/" title="基于AVR单片机的远程控制系统的研究">基于AVR单片机的远程控制系统的研究</a><br /><small>介绍了一种利用AVR单片机和RTL8019AS以太网控制器实现的RS232接口设备远程控...</small></li><li><a href="http://woodfeed.com/application-of-the-uip-tcpip-protocol-stack-in-the-51-mcu/" title="uIP TCP/IP协议栈在51系列单片机上的应用">uIP TCP/IP协议栈在51系列单片机上的应用</a><br /><small>　uIP 协议栈是一种免费的可实现的极小的TCP/IP协议栈，可以使用于由8位或16位微...</small></li><li><a href="http://woodfeed.com/yigeshidaidejieshu/" title="迈克尔-杰克逊逝世 一个时代的结束">迈克尔-杰克逊逝世 一个时代的结束</a><br /><small>“据2006年底统计，其正版专辑全球销量已超过7.5亿，被载入“吉尼斯世界记录大全”。他...</small></li><li><a href="http://woodfeed.com/switching-technology/" title="交换技术">交换技术</a><br /><small>主要内容：1、线路交换
　2、分组交换
　3、帧中继交换
　4、信元交换...</small></li><li><a href="http://woodfeed.com/robot-control-of-linear-maze/" title="浅谈机器人在线迷宫中的控制策略问题">浅谈机器人在线迷宫中的控制策略问题</a><br /><small>循迹存在一些直道、弯道、丁字路口、十字路口、死胡同等多种情况。在“左手法则”下，如何合理...</small></li><li><a href="http://woodfeed.com/implementing-16-bit-pwm-using-the-pca-with-c8051f020/" title="C8051f020产生16位PWM">C8051f020产生16位PWM</a><br /><small>脉冲宽度调制（PWM）波形常用于闭环反馈和控制应用，例如：控制加热单元的开关状态以调节D...</small></li><li><a href="http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-6/" title="Linux常用命令详解(6)">Linux常用命令详解(6)</a><br /><small>八 网络通迅
1 ifconfig 2 netconfig 3 netstat 4 pi...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://woodfeed.com/autotools-generated-makefile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux下Vi编辑器命令大全</title>
		<link>http://woodfeed.com/all-commands-about-the-vi-editor-under-linux/</link>
		<comments>http://woodfeed.com/all-commands-about-the-vi-editor-under-linux/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 08:41:58 +0000</pubDate>
		<dc:creator>vayu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux vi]]></category>

		<guid isPermaLink="false">http://woodfeed.com/?p=308</guid>
		<description><![CDATA[文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等，其中，使用最为广泛的是vi，而vi命令繁多，论坛里好像这方面的总结不多，以下稍做总结，以资共享！渴望更正和补充！

进入vi的命令
vi filename :打开或新建文件，并将光标置于第一行首
vi +n filename ：打开文件，并将光标置于第n行首
vi + filename ：打开文件，并将光标置于最后一行首
vi +/pattern filename：打开文件，并将光标置于第一个与pattern匹配的串处
vi -r filename ：在上次正用vi编辑时发生系统崩溃，恢复filename
vi filename....filename ：打开多个文件，依次进行编辑]]></description>
			<content:encoded><![CDATA[<p>附送练习的地方：http://www.masswerk.at/jsuix/index.html</p>
<p>文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等，其中，使用最为广泛的是vi，而vi命令繁多，论坛里好像这方面的总结不多，以下稍做总结，以资共享！渴望更正和补充！</p>
<p>进入vi的命令<br />
vi filename :打开或新建文件，并将光标置于第一行首<br />
vi +n filename ：打开文件，并将光标置于第n行首<br />
vi + filename ：打开文件，并将光标置于最后一行首<br />
vi +/pattern filename：打开文件，并将光标置于第一个与pattern匹配的串处<br />
vi -r filename ：在上次正用vi编辑时发生系统崩溃，恢复filename<br />
vi filename&#8230;.filename ：打开多个文件，依次进行编辑</p>
<p>移动光标类命令<br />
h ：光标左移一个字符<br />
l ：光标右移一个字符<br />
space：光标右移一个字符<br />
Backspace：光标左移一个字符<br />
k或Ctrl+p：光标上移一行<br />
j或Ctrl+n ：光标下移一行<br />
Enter ：光标下移一行<br />
w或W ：光标右移一个字至字首<br />
b或B ：光标左移一个字至字首<br />
e或E ：光标右移一个字至字尾<br />
) ：光标移至句尾<br />
( ：光标移至句首<br />
}：光标移至段落开头<br />
{：光标移至段落结尾<br />
nG：光标移至第n行首<br />
n+：光标下移n行<br />
n-：光标上移n行<br />
n$：光标移至第n行尾<br />
H ：光标移至屏幕顶行<br />
M ：光标移至屏幕中间行<br />
L ：光标移至屏幕最后行<br />
0：（注意是数字零）光标移至当前行首<br />
$：光标移至当前行尾</p>
<p>屏幕翻滚类命令<br />
Ctrl+u：向文件首翻半屏<br />
Ctrl+d：向文件尾翻半屏<br />
Ctrl+f：向文件尾翻一屏<br />
Ctrl＋b；向文件首翻一屏<br />
nz：将第n行滚至屏幕顶部，不指定n时将当前行滚至屏幕顶部。</p>
<p>插入文本类命令<br />
i ：在光标前<br />
I ：在当前行首<br />
a：光标后<br />
A：在当前行尾<br />
o：在当前行之下新开一行<br />
O：在当前行之上新开一行<br />
r：替换当前字符<br />
R：替换当前字符及其后的字符，直至按ESC键<br />
s：从当前光标位置处开始，以输入的文本替代指定数目的字符<br />
S：删除指定数目的行，并以所输入文本代替之<br />
ncw或nCW：修改指定数目的字<br />
nCC：修改指定数目的行</p>
<p>删除命令<br />
ndw或ndW：删除光标处开始及其后的n-1个字<br />
do：删至行首<br />
d$：删至行尾<br />
ndd：删除当前行及其后n-1行<br />
x或X：删除一个字符，x删除光标后的，而X删除光标前的<br />
Ctrl+u：删除输入方式下所输入的文本</p>
<p>搜索及替换命令<br />
/pattern：从光标开始处向文件尾搜索pattern<br />
?pattern：从光标开始处向文件首搜索pattern<br />
n：在同一方向重复上一次搜索命令<br />
N：在反方向上重复上一次搜索命令<br />
：s/p1/p2/g：将当前行中所有p1均用p2替代<br />
：n1,n2s/p1/p2/g：将第n1至n2行中所有p1均用p2替代<br />
：g/p1/s//p2/g：将文件中所有p1均用p2替换</p>
<p>选项设置<br />
all：列出所有选项设置情况<br />
term：设置终端类型<br />
ignorance：在搜索中忽略大小写<br />
list：显示制表位(Ctrl+I)和行尾标志（$)<br />
number：显示行号<br />
report：显示由面向行的命令修改过的数目<br />
terse：显示简短的警告信息<br />
warn：在转到别的文件时若没保存当前文件则显示NO write信息<br />
nomagic：允许在搜索模式中，使用前面不带“\”的特殊字符<br />
nowrapscan：禁止vi在搜索到达文件两端时，又从另一端开始<br />
mesg：允许vi显示其他用户用write写到自己终端上的信息</p>
<p>最后行方式命令<br />
：n1,n2 co n3：将n1行到n2行之间的内容拷贝到第n3行下<br />
：n1,n2 m n3：将n1行到n2行之间的内容移至到第n3行下<br />
：n1,n2 d ：将n1行到n2行之间的内容删除<br />
：w ：保存当前文件<br />
：e filename：打开文件filename进行编辑<br />
：x：保存当前文件并退出<br />
：q：退出vi<br />
：q!：不保存文件并退出vi<br />
：!command：执行shell命令command<br />
：n1,n2 w!command：将文件中n1行至n2行的内容作为command的输入并执行之，若不指定n1，n2，则表示将整个文件内容作为command的输入<br />
：r!command：将命令command的输出结果放到当前行</p>
<p>寄存器操作<br />
&#8220;?nyy：将当前行及其下n行的内容保存到寄存器？中，其中?为一个字母，n为一个数字<br />
&#8220;?nyw：将当前行及其下n个字保存到寄存器？中，其中?为一个字母，n为一个数字<br />
&#8220;?nyl：将当前行及其下n个字符保存到寄存器？中，其中?为一个字母，n为一个数字<br />
&#8220;?p：取出寄存器？中的内容并将其放到光标位置处。这里？可以是一个字母，也可以是一个数字<br />
ndd：将当前行及其下共n行文本删除，并将所删内容放到1号删除寄存器中。</p>
<p>VI的使用<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
一、插入文本<br />
┌──┬────────────┐<br />
│命令│描述<br />
├──┼────────────┤<br />
│i │在当前字符前插入文本<br />
├──┼────────────┤<br />
│I │在行首插入文本  <br />
├──┼────────────┤<br />
│a │在当前字符后添加文本<br />
├──┼────────────┤<br />
│A │在行末添加文本<br />
├──┼────────────┤<br />
│o │在当前行后面插入一空行<br />
├──┼────────────┤<br />
│O │在当前行前面插入一空行<br />
├──┼────────────┤<br />
│R │以改写方式输入文本<br />
└──┴────────────┘<br />
二、移动光标<br />
┌─────┬───────────┐<br />
│命令│描述<br />
├─────┼───────────┤<br />
│j或下箭头    │向下移动一行<br />
├─────┼───────────┤<br />
│k或上箭头    │向上移动一行<br />
├─────┼───────────┤<br />
│h或左箭头    │左移一个字符<br />
├─────┼───────────┤<br />
│l或右箭头    │右移一个字符<br />
├─────┼───────────┤<br />
│w │右移一个词<br />
├─────┼───────────┤<br />
│W │右移一个以空格分隔的词<br />
├─────┼───────────┤<br />
│b │左移一个词<br />
├─────┼───────────┤<br />
│B │左移一个以空格分隔的词<br />
├─────┼───────────┤<br />
│0 │移到行首<br />
<br />
│Ctrl-F │向前翻页<br />
├─────┼───────────┤<br />
│Ctrl-B │向后翻页<br />
├─────┼───────────┤<br />
│nG│到第n行 <br />
├─────┼───────────┤<br />
│G │到最后一行<br />
└─────┴───────────┘</p>
<p>三、替换文本<br />
┌─────┬──────┐<br />
│命令│描述<br />
├─────┼──────┤<br />
│$ │到行尾<br />
├─────┼──────┤<br />
│( │到句子的开头<br />
├─────┼──────┤<br />
│) │到句子的末尾<br />
├─────┼──────┤<br />
│{ │到段落的开头<br />
├─────┼──────┤<br />
│} │到段落的末尾<br />
└─────┴──────┘</p>
<p>四、删除文本<br />
┌───┬───────────┐<br />
│命令│描述  <br />
├───┼───────────┤<br />
│r │替换一个字符 <br />
├───┼───────────┤<br />
│c │修改文本直到按下Esc健<br />
├───┼───────────┤<br />
│cw│修改下一个词  <br />
├───┼───────────┤<br />
│cnw │修改接下来的n个词 <br />
五、文本编辑<br />
┌──┬──────────────────────┐<br />
│命寺│描述<br />
├──┼──────────────────────┤<br />
│yy │将一行文本移到缺省缓冲区中  <br />
├──┼──────────────────────┤<br />
│yn │将下一个词移到缺省缓冲区中  <br />
├──┼──────────────────────┤<br />
│ynw   │将后面的n个词移到缺省缓冲区中 <br />
├──┼──────────────────────┤<br />
│p  │如果缺省缓冲区中包含一行文本，则在当前<br />
││行后面插入一个空行井将缺省缓冲区中的声<br />
││容粘贴到这一行中；如果缺省缓冲区中包含<br />
││多个词，把这些词粘贴到光标的右边．<br />
├──┼──────────────────────┤<br />
│P  │如果缺省缓冲区中包含一行文本，则正当前  <br />
│   │行前面插入一个空行井将缺省缓冲区中的内  <br />
│ │容粘贴到这一行中；如果缺省缓冲区中包含 <br />
│   │多个词，把这些词粘贴到光标的左边  <br />
└──┴──────────────────────┘<br />
六、保存退出<br />
┌───────────┬───────────────┐<br />
│命令│描述<br />
├───────────┼───────────────┤<br />
│zz│保存并退出<br />
├───────────┼───────────────┤<br />
│:w filename │写入文件 <br />
├───────────┼───────────────┤<br />
│:W│写入文件<br />
├───────────┼───────────────┤<br />
│:x│保存(如果当前文件修改过)并退出<br />
├───────────┼───────────────┤<br />
│:q!  │不保存文件，直接退出 <br />
├───────────┼───────────────┤<br />
│:q │退出vi<br />
└───────────┴───────────────┘<br />
</p>
<p> <br />
VI常用技巧</p>
<p>VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了，但是因为它的命令集众多，很多人都不习惯使用它，其实您只需要掌握基本命令，然后加以灵活运用，就会发现它的优势，并会逐渐喜欢使用这种方法。本文旨在介绍VI的一些最常用命令和高级应用技巧。</p>
<p>一、基本命令介绍</p>
<p>&#8212;- 1．光标命令<br />
k、j、h、l——上、下、左、右光标移动命令。虽然您可以在Linux中使用键盘右边的4个光标键，但是记住这4个命令还是非常有用的。这4个键正是右手在键盘上放置的基本位置。<br />
nG——跳转命令。n为行数，该命令立即使光标跳到指定行。<br />
Ctrl+G——光标所在位置的行数和列数报告。<br />
w、b——使光标向前或向后跳过一个单词。</p>
<p>&#8212;- 2．编辑命令<br />
i、a、r——在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。<br />
cw、dw——改变(置换)/删除光标所在处的单词的命令 (c=change、d=delete)。<br />
x、d$、dd——删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。</p>
<p>&#8212;- 3．查找命令<br />
&#8212;- /string、?string——从光标所在处向后或向前查找相应的字符串的命令。</p>
<p>&#8212;- 4．拷贝复制命令<br />
&#8212;- yy、p——拷贝一行到剪贴板或取出剪贴板中内容的命令。</p>
<p>二、常见问题及应用技巧</p>
<p>&#8212;- 1．在一个新文件中读/etc/passwd中的内容，取出用户名部分。<br />
&#8212;- vi file<br />
&#8212;- :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd<br />
&#8212;- :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分。<br />
&#8212;- 您也可以在指定的行号后读入文件内容，例如使用命令“:3r /etc/passwd”从新文件的第3行开始读入 /etc/passwd的所有内容。<br />
&#8212;- 我们还可以使用以下方法删掉文件中所有的空行及以#开始的注释行。<br />
&#8212;- #cat squid.conf.default | grep -v ^$ | grep -v ^#</p>
<p>&#8212;- 2．在打开一个文件编辑后才知道登录的用户对该文件没有写的权限，不能存盘，需要将所做修改存入临时文件。<br />
&#8212;- vi file<br />
&#8212;- :w /tmp/1 保存所做的所有修改，也可以将其中的某一部分修改保存到临时文件，例如仅仅把第20～59行之间的内容存盘成文件/tmp/1，我们可以键入如下命令。<br />
&#8212;- vi file<br />
&#8212;- :20,59w /tmp/1</p>
<p>&#8212;- 3．用VI编辑一个文件，但需要删除大段的内容。<br />
&#8212;- 首先利用编辑命令“vi file”打开文件，然后将光标移到需要删除的行处按Ctrl+G显示行号，再到结尾处再按Ctrl+G，显示文件结尾的行号。<br />
&#8212;- :23,1045d 假定2次得到的行号为23和1045，则把这期间的内容全删除，也可以在要删除的开始行和结束行中用ma、mb命令标记，然后利用“:a,bd”命令删除。</p>
<p>&#8212;- 4．在整个文件的各行或某几行的行首或行尾加一些字符串。<br />
&#8212;- vi file<br />
&#8212;- :3,$s/^/some string / 在文件的第一行至最后一行的行首插入“some string”。<br />
&#8212;- :%s/$/some string/g 在整个文件每一行的行尾添加“some string”。<br />
&#8212;- :%s/string1/string2/g 在整个文件中替换“string1”成“string2”。<br />
&#8212;- :3,7s/string1/string2/ 仅替换文件中的第3行到第7行中的“string1”成“string2”。<br />
&#8212;- 注意: 其中s为substitute，%表示所有行，g表示global。</p>
<p>&#8212;- 5．同时编辑2个文件，拷贝一个文件中的文本并粘贴到另一个文件中。<br />
&#8212;- vi file1 file2<br />
&#8212;- yy 在文件1的光标处拷贝所在行<br />
&#8212;- :n 切换到文件2 (n=next)<br />
&#8212;- p 在文件2的光标所在处粘贴所拷贝的行<br />
&#8212;- :n 切换回文件1</p>
<p>&#8212;- 6．替换文件中的路径。<br />
&#8212;- 使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin换成/bin。也可以使用命令“:%s//usr/bin//bin/g”实现，其中“”是转义字符，表明其后的“/”字符是具有实际意义的字符，不是分隔符。<br />
本文来自<a href="http://blog.csdn.net/sqlove/archive/2009/08/14/4446880.aspx" target="_self">CSDN博客</a></p>
<h2  class="related_post_title">精彩文章</h2><ul class="related_post"><li><a href="http://woodfeed.com/implementing-16-bit-pwm-using-the-pca-with-c8051f020/" title="C8051f020产生16位PWM">C8051f020产生16位PWM</a><br /><small>脉冲宽度调制（PWM）波形常用于闭环反馈和控制应用，例如：控制加热单元的开关状态以调节D...</small></li><li><a href="http://woodfeed.com/yigeshidaidejieshu/" title="迈克尔-杰克逊逝世 一个时代的结束">迈克尔-杰克逊逝世 一个时代的结束</a><br /><small>“据2006年底统计，其正版专辑全球销量已超过7.5亿，被载入“吉尼斯世界记录大全”。他...</small></li><li><a href="http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-2/" title="Linux常用命令详解(2)">Linux常用命令详解(2)</a><br /><small>三 文件管理
1.Diff  2. find  3. ln  4.locate  5. ...</small></li><li><a href="http://woodfeed.com/tencent-micoblog-invite/" title="发放腾讯微博邀请码（每天更新）">发放腾讯微博邀请码（每天更新）</a><br /><small>发放腾讯微博邀请码（每天更新）...</small></li><li><a href="http://woodfeed.com/detailed-description-of-commonly-used-linux-commands-5/" title="Linux常用命令详解(5)">Linux常用命令详解(5)</a><br /><small>七 系统管理
1 adduser 2 passwd 3 date 4 exit 5 f...</small></li><li><a href="http://woodfeed.com/my-alexa-ranking-updated-today/" title="3天后的今天alexa又更新了">3天后的今天alexa又更新了</a><br /><small>今天排名又更新了。



...</small></li><li><a href="http://woodfeed.com/wp-replacement-of-domain-names/" title="WP更换域名">WP更换域名</a><br /><small>首先进入MySQL后台phpMyAdmin：
点结构体旁边的SQL按钮，在下面命令框内分...</small></li><li><a href="http://woodfeed.com/internet/" title="Internet">Internet</a><br /><small>主要内容：1、internet体系结构 
　2、internet连接的方法 
　3、...</small></li><li><a href="http://woodfeed.com/network-architecture-and-protocol/" title="网络体系结构及协议">网络体系结构及协议</a><br /><small>    主要内容：1、网络体系结构及协议的定义 2、开放系统互连参考模型OSI 3、TC...</small></li><li><a href="http://woodfeed.com/mcu-c8051f020-and-mcu-80c51/" title="C8051F020与80C51单片机的异同点">C8051F020与80C51单片机的异同点</a><br /><small>80C51系列单片机及其衍生产品在我国乃至全世界范围获得了非常广泛的应用。单片机领域的大...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://woodfeed.com/all-commands-about-the-vi-editor-under-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
