<?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://sigmav.net/category/c_linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://sigmav.net</link>
	<description>指向 任何方向都是未来</description>
	<lastBuildDate>Sun, 12 Feb 2012 11:24:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<cloud domain='sigmav.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Fedora14下pgsnmpd的安装</title>
		<link>http://sigmav.net/2011/05/02/fedora14_pgsnmpd/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fedora14_pgsnmpd</link>
		<comments>http://sigmav.net/2011/05/02/fedora14_pgsnmpd/#comments</comments>
		<pubDate>Mon, 02 May 2011 06:56:52 +0000</pubDate>
		<dc:creator>西玛哒</dc:creator>
				<category><![CDATA[IT悟语]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Snmp]]></category>

		<guid isPermaLink="false">http://sigmav.net/?p=41320</guid>
		<description><![CDATA[景介绍： net-snmp 是一套简单网络管理协议snmp(Simple Network Management Protocol)的支持工具，它基于BSD许可发布了支持SNMP v1, SNMP v2c 与 SNMP v3，并可以使用 IPV4 及 IPV6 的工具包，用以从SNMP设备上获取信息，达到监视设备运行及相关衍生目的。 postgresql是同样以BSD协议发布的对象关系型数据库，它和Mysql，Oracle等数据库一样具有丰富的数据库功能，可以用于建站等诸多目的。 数据库的运行需要保证其良好的稳定性，特别是一些对数据操作比较敏感的关键项目，需要对数据库的运行进行监视，这里就需要为net-snmp实现接口，开源项目pgsnmpd便实现了这个功能。 项目主页： http://pgfoundry.org/projects/pgsnmpd 安装过程： 按照项目主页上所描述的方法，可以不下载源码树通过相关包来解决问题。(可能)需要安装的包如下： postgresql-devel net-snmp-devel make gcc zlib-devel openssl-devel libxslt-devel pam-devel readline-devel 但是由于postgre-devel包中已经不包含libpgport.a ，而编译时需要-lpgport ,因此不能依赖其进行编译。 这里使用在postgre源码树下编译的方法。 首先下载postgre源码包： http://www.postgresql.org/ftp/source/ 由于要配合企业版9.0 这里使用的是9.0.4 下的postgresql-9.0.4.tar.bz2 解压到编译工作目录 这里是～/ cd ~/ tar jxvf postgresql-9.0.4.tar.bz2 进入目录可以看到源码树 下载并pgsnmd包 http://pgfoundry.org/frs/download.php/1423/pgsnmpd-1.0.tgz cp pgsnmpd-1.0.tgz ~/postgresql-9.0.4/contrib/ cd ~/postgre-9.0.4/contrib/ [...]]]></description>
			<content:encoded><![CDATA[<p><span class="dropcap">背</span>景介绍：</p>
<p>net-snmp 是一套简单网络管理协议snmp(Simple Network Management Protocol)的支持工具，它基于BSD许可发布了支持SNMP v1, SNMP v2c 与 SNMP v3，并可以使用 IPV4 及 IPV6 的工具包，用以从SNMP设备上获取信息，达到监视设备运行及相关衍生目的。<br />
postgresql是同样以BSD协议发布的对象关系型数据库，它和Mysql，Oracle等数据库一样具有丰富的数据库功能，可以用于建站等诸多目的。<br />
数据库的运行需要保证其良好的稳定性，特别是一些对数据操作比较敏感的关键项目，需要对数据库的运行进行监视，这里就需要为net-snmp实现接口，开源项目pgsnmpd便实现了这个功能。<br />
项目主页：<br />
<a href="http://pgfoundry.org/projects/pgsnmpd">http://pgfoundry.org/projects/pgsnmpd</a><br />
<span id="more-41320"></span><br />
安装过程：<br />
按照项目主页上所描述的方法，可以不下载源码树通过相关包来解决问题。(可能)需要安装的包如下：</p>
<pre>   postgresql-devel
   net-snmp-devel
   make
   gcc
   zlib-devel
   openssl-devel
   libxslt-devel
   pam-devel
   readline-devel</pre>
<p>但是由于postgre-devel包中已经不包含libpgport.a ，而编译时需要-lpgport ,因此不能依赖其进行编译。<br />
这里使用在postgre源码树下编译的方法。<br />
首先下载postgre源码包：<br />
<a style="color: #3465a4;" href="http://www.postgresql.org/ftp/source/">http://www.postgresql.org/ftp/source/</a><br />
由于要配合企业版9.0 这里使用的是9.0.4 下的postgresql-9.0.4.tar.bz2<br />
解压到编译工作目录 这里是～/</p>
<pre>  cd ~/
  tar jxvf postgresql-9.0.4.tar.bz2</pre>
<p>进入目录可以看到源码树<br />
下载并pgsnmd包<br />
<a style="color: #3465a4;" href="http://pgfoundry.org/frs/download.php/1423/pgsnmpd-1.0.tgz">http://pgfoundry.org/frs/download.php/1423/pgsnmpd-1.0.tgz</a></p>
<pre>cp pgsnmpd-1.0.tgz <a style="color: #3465a4;" href="~/postgresql-9.0.4/contrib/">~/postgresql-9.0.4/contrib/</a>
cd <a style="color: #3465a4;" href="~/postgre-9.0.4/contrib/">~/postgre-9.0.4/contrib/</a>
tar zxvf pgsnmpd-1.0.tgz</pre>
<p>之后回到postgre 的源码树 先进行配置</p>
<pre>cd <a style="color: #3465a4;" href="~/postgresql-9.0.4">~/postgresql-9.0.4</a>
./configure</pre>
<p>这里可以对编译选项进行配置，如用&#8211;prefix=&#8221;" 指定安装目录<br />
这里用默认的/usr/local/pgsql<br />
配置无误会在当前目录下产生makefile<br />
make<br />
这样会生成目标文件<br />
make install<br />
将生成的文件放置到指定位置。<br />
这时开源版本postgresql的文件会存在于/usr/local/pgsql/下，其中/usr/local/pgsql/bin中存放着相关工具，之后编译中需要用到，因此需要添加到PATH中。<br />
在~/.bashrc 或其他rc脚本中将它加入PATH中</p>
<pre>export PATH=$PATH:/usr/local/pgsql/bin</pre>
<p>如需立即生效:</p>
<pre>source <a style="color: #3465a4;" href="~/.bashrc">~/.bashrc</a></pre>
<p>之后进入 <a style="color: #3465a4;" href="~/postgresql-9.0.4/contrib/pgsnmpd-1.0/">~/postgresql-9.0.4/contrib/pgsnmpd-1.0/</a><br />
cd <a style="color: #3465a4;" href="~/postgresql-9.0.4/contrib/pgsnmpd-1.0/">~/postgresql-9.0.4/contrib/pgsnmpd-1.0/</a><br />
注意这里需要net-snmp支持，用yum install 即可安装相关包<br />
yum install net-snmp<br />
之后在目录下make &amp;&amp; make install<br />
这里生成的pgsnmpd 也在/usr/local/pgsql/bin下<br />
随后安装企业版,参照使用手册，就可以正常使用了。</p>
<p>参考文献：</p>
<p>PostgreSQL :  <a href="http://zh.wikipedia.org/wiki/PostgreSQL">http://zh.wikipedia.org/wiki/PostgreSQL</a></p>
<p>Net-SNMP  ：<a href="http://zh.wikipedia.org/wiki/NET-SNMP">http://zh.wikipedia.org/wiki/NET-SNMP</a></p>
<p><span style="background: yellow;">TIME</span>:<span style="font-style: italic; font-size: small; color: #888a85;">Monday, May 2, 12:29 PM</span><br />
=========================<br />
<a style="color: #3465a4;" href="sigmax6@live.com">sigmax6@live.com</a><br />
COPY LEFT 2010</p>
]]></content:encoded>
			<wfw:commentRss>http://sigmav.net/2011/05/02/fedora14_pgsnmpd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gentoo下也有彩蛋～</title>
		<link>http://sigmav.net/2011/04/18/gentoo%e4%b8%8b%e4%b9%9f%e6%9c%89%e5%bd%a9%e8%9b%8b%ef%bd%9e/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gentoo%25e4%25b8%258b%25e4%25b9%259f%25e6%259c%2589%25e5%25bd%25a9%25e8%259b%258b%25ef%25bd%259e</link>
		<comments>http://sigmav.net/2011/04/18/gentoo%e4%b8%8b%e4%b9%9f%e6%9c%89%e5%bd%a9%e8%9b%8b%ef%bd%9e/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 05:36:28 +0000</pubDate>
		<dc:creator>西玛哒</dc:creator>
				<category><![CDATA[IT悟语]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gentoo]]></category>

		<guid isPermaLink="false">http://sigmav.net/?p=41313</guid>
		<description><![CDATA[在早先的文章中，曾经提过在Ubuntu中apt-get的母牛彩蛋。今天发现Gentoo中也有一样的～ #emerge moo have fun~]]></description>
			<content:encoded><![CDATA[<p>在早先的文章中，曾经提过在Ubuntu中apt-get的母牛彩蛋。今天发现Gentoo中也有一样的～<br />
#emerge moo<br />
have fun~<br />
<img src="http://98.136.170.121/5264/5633924984_a193c5e90d.jpg" alt="5633924984 a193c5e90d Gentoo下也有彩蛋～"  title="Gentoo下也有彩蛋～" /></p>
]]></content:encoded>
			<wfw:commentRss>http://sigmav.net/2011/04/18/gentoo%e4%b8%8b%e4%b9%9f%e6%9c%89%e5%bd%a9%e8%9b%8b%ef%bd%9e/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gentoo USE标记全记录（转编自论坛）</title>
		<link>http://sigmav.net/2011/04/12/gentoo-use%e6%a0%87%e8%ae%b0%e5%85%a8%e8%ae%b0%e5%bd%95%ef%bc%88%e8%bd%ac%e7%bc%96%e8%87%aa%e8%ae%ba%e5%9d%9b%ef%bc%89/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gentoo-use%25e6%25a0%2587%25e8%25ae%25b0%25e5%2585%25a8%25e8%25ae%25b0%25e5%25bd%2595%25ef%25bc%2588%25e8%25bd%25ac%25e7%25bc%2596%25e8%2587%25aa%25e8%25ae%25ba%25e5%259d%259b%25ef%25bc%2589</link>
		<comments>http://sigmav.net/2011/04/12/gentoo-use%e6%a0%87%e8%ae%b0%e5%85%a8%e8%ae%b0%e5%bd%95%ef%bc%88%e8%bd%ac%e7%bc%96%e8%87%aa%e8%ae%ba%e5%9d%9b%ef%bc%89/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 08:49:02 +0000</pubDate>
		<dc:creator>西玛哒</dc:creator>
				<category><![CDATA[IT悟语]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[USE]]></category>

		<guid isPermaLink="false">http://sigmav.net/2011/04/gentoo-use%e6%a0%87%e8%ae%b0%e5%85%a8%e8%ae%b0%e5%bd%95%ef%bc%88%e8%bd%ac%e7%bc%96%e8%87%aa%e8%ae%ba%e5%9d%9b%ef%bc%89/</guid>
		<description><![CDATA[USE 标记系统是Gentoo 系统的精髓之一，一个好的USE标记设定能让系统的好钢用在刀刃上，虽然轻量却依旧功能齐全。之前没有好好研究USE标记，基本上都是拿别人的直接用了。 今天在论坛上看到一篇总结USE标记的帖子，就无耻的转过来了，权当是做个笔记吧。 /////////////////////////////////////////// // Gentoo USE 标记 （字母排序） ////////// /////////////////////////////////////////// 3dfx 添加Xorg下的3dfx显卡支持 (参见: voodoo3) 3dnow 添加AMD处理器的3dnow!多媒体指令集支持 X 添加X11支持 Xaw3d 添加Xaw3d(X athena widgets in 3d)支持。Xaw3d是MIT Athena Widget set for X Windows的增强版本，可以在几乎不修改源代码的情况下为应用程序添加3D视觉效果。 a52 添加用于DVD的ATSC A/52解码支持 aac 添加MPEG-4 AAC音频支持 aalib 添加media-libs/aalib支持 (ASCII-Graphics库) (用于将图形转换成ASCII字符的&#8221;ascii艺术&#8221;) accessibility 添加辅助功能支持(方便残疾人使用计算机的技术，比如&#8217;at-spi&#8217;库) acl 添加文件访问控制列表支持［参考文档：文件访问控制列表］ acpi 添加ACPI(高级配置与电源接口)支持［参考文档：高级电源管理常见问题解答］ adabas 添加Adabas数据库引擎支持 adns 添加adns DNS客户端库(一个用于C/C++的异步DNS解析库)支持［主页：http://www.gnu.org/software/adns/］ afs 添加OpenAFS支持 [...]]]></description>
			<content:encoded><![CDATA[<p>USE 标记系统是Gentoo 系统的精髓之一，一个好的USE标记设定能让系统的好钢用在刀刃上，虽然轻量却依旧功能齐全。之前没有好好研究USE标记，基本上都是拿别人的直接用了。<br />
  今天在论坛上看到一篇总结USE标记的帖子，就无耻的转过来了，权当是做个笔记吧。</p>
<p><span id="more-41308"></span></p>
<p>///////////////////////////////////////////<br />
//  Gentoo USE 标记 （字母排序） //////////<br />
///////////////////////////////////////////</p>
<p>3dfx<br />
添加Xorg下的3dfx显卡支持 (参见: voodoo3)</p>
<p>3dnow<br />
添加AMD处理器的3dnow!多媒体指令集支持</p>
<p>X<br />
添加X11支持</p>
<p>Xaw3d<br />
添加Xaw3d(X athena widgets in 3d)支持。Xaw3d是MIT Athena Widget set for X Windows的增强版本，可以在几乎不修改源代码的情况下为应用程序添加3D视觉效果。</p>
<p>a52<br />
添加用于DVD的ATSC A/52解码支持</p>
<p>aac<br />
添加MPEG-4 AAC音频支持</p>
<p>aalib<br />
添加media-libs/aalib支持 (ASCII-Graphics库) (用于将图形转换成ASCII字符的&#8221;ascii艺术&#8221;)</p>
<p>accessibility<br />
添加辅助功能支持(方便残疾人使用计算机的技术，比如&#8217;at-spi&#8217;库)</p>
<p>acl<br />
添加文件访问控制列表支持［参考文档：文件访问控制列表］</p>
<p>acpi<br />
添加ACPI(高级配置与电源接口)支持［参考文档：高级电源管理常见问题解答］</p>
<p>adabas<br />
添加Adabas数据库引擎支持</p>
<p>adns<br />
添加adns DNS客户端库(一个用于C/C++的异步DNS解析库)支持［主页：http://www.gnu.org/software/adns/］</p>
<p>afs<br />
添加OpenAFS支持 (一个分布式文件系统)［参考文档：OpenAFS帮助聚集分布式数据］</p>
<p>aim<br />
添加AIM即时通信协议支持 (AOL.com的即时消息工具)</p>
<p>alsa<br />
添加media-libs/alsa-lib支持 (高级Linux音效架构)［参考文档：ALSA研究笔记］</p>
<p>altivec<br />
添加G4/G5/ppc970处理器优化支持</p>
<p>ao<br />
在音频回放(sound playback)时使用libao音频库(一个跨平台音频库，对于在多个平台上输出音频很有用)</p>
<p>apache2<br />
当一个程序包同时支持Apache1和Apache2时，选择支持Apache2</p>
<p>apm<br />
添加APM电源管理支持［参考文档：高级电源管理常见问题解答］</p>
<p>arts<br />
添加aRts支持 (给KDE提供音频支持，主要是给KDE库提供必要的库文件)</p>
<p>atm<br />
添加ATM(异步传输模式)协议支持</p>
<p>audiofile<br />
添加libaudiofile(音频文件库)支持</p>
<p>avahi<br />
添加avahi/Zeroconf支持。avahi是利用mDNS协议的，实现本地网内服务发现的软件，如寻找局域网内的在线用户、打印机等。</p>
<p>aqua<br />
添加Aqua/Carbon GUI支持。Aqua是苹果Mac OS X的图形界面，Carbon是其编程接口。</p>
<p>bash-completion<br />
添加bash-completiton支持 (改进了bash的命令补全功能)</p>
<p>bcmath<br />
添加libbcmath支持 (bcmath是一个任意精度数学函数库)</p>
<p>berkdb<br />
添加sys-libs/db支持 (MySQL的Berkeley DB表类型支持)</p>
<p>bidi<br />
添加双向语言支持 (支持由右而左的语言，如：阿拉伯语和希伯来语)</p>
<p>bindist<br />
启用或禁止可选的预编译包(GRP)支持 (比如由于发行许可导致的)</p>
<p>birdstep<br />
添加Birdstep数据库服务器支持</p>
<p>blas<br />
添加virtual/blas库支持 (BLAS是著名的基本线性代数子程序包，被许多实际应用问题和几乎所有有关矩阵计算的软件所采用，可应用于科学和工程设计的矩阵计算问题，也可应用于生产基本线性代数计算的高水平程序库，是数学应用软件的基本核心库。)</p>
<p>bluetooth<br />
添加蓝牙支持</p>
<p>bootstrap<br />
!!仅供内部使用，请不要设置此参数!!在原始系统的引导过程中使用[make stage2]</p>
<p>boundschecking<br />
添加Haj Ten Brugge边界检查补丁，这将禁用固有的PIE+SSP补丁 (边界检查用于防止缓冲区溢出漏洞攻击)</p>
<p>branding<br />
启用Gentoo特定的标识，比如添加此标记后可以获得一个漂亮的&#8221;Gentoo牌&#8221;Gnome启动画面，取代默认的Gnome启动画面。</p>
<p>bsf<br />
添加Apache BSF(Bean Scripting Framework) (dev-java/bsf)支持。BSF支持在Java应用程序内调用脚步语言(Script)，并且支持脚步语言直接访问Java对象和方法。它提供了完整的API实现通过Java访问脚本语言的引擎。</p>
<p>build<br />
!!仅供内部使用，请不要设置此参数!! 用于建立引导过程前半部分的镜像构建[make stage1]</p>
<p>bzip2<br />
使用bzlib压缩库</p>
<p>cairo<br />
添加cairo图形库支持。Cairo是一个支持多种输出设备的跨平台2D图形库。［参考文档：用cairo实现跨平台图形］</p>
<p>calendar<br />
添加日历支持(不是用mcal!)</p>
<p>canna<br />
添加Canna支持 (Canna是一个将日文假名转换到日文汉字的转换引擎)</p>
<p>caps<br />
使用Linux capabilities库(POSIX.1e capabilities)来控制权限［参考文档：Linux安全模块简介；利用capability特征加强Linux系统安全］</p>
<p>cdb<br />
添加qmail作者编写的CDB数据库引擎支持</p>
<p>cdda<br />
添加Compact Disk Digital Audio(数字式激光唱盘,简称CD-DA)支持。CD-DA又称&#8221;Audio CD&#8221;，直径为12cm，容量为74分钟，以恒线速度(CLV)播放，也就是用于激光唱机和diskman的音乐CD。</p>
<p>cddb<br />
添加CDDB支持。CDDB即Internet Compact Disc Database，是一组分布于互联网的各个镜像上的大型CD特征数据库，不过它现在已被商业团体安加了一些版权限制，因此存在后来的freedb.org和MusiaBrainz一类开放替代方案。</p>
<p>cdinstall<br />
直接从CD复制文件而不要求用户来操作，主要用于游戏。</p>
<p>cdparanoia<br />
添加cdparanoia支持。CDParanoia可以直接从CD光盘上抓取音轨，并转换成其它格式的声音文件。另外它还可以能够读取已经被破坏的光盘内容。libparanoia 是KDE和GNOME默认的抓音轨库。</p>
<p>cdr<br />
添加CD刻录硬件支持</p>
<p>cgi<br />
添加CGI脚本支持</p>
<p>chasen<br />
添加chasen支持 (一个日语分词标注系统)</p>
<p>cjk<br />
添加多字节字符语言支持 (中日韩)</p>
<p>clamav<br />
添加Clam防病毒软件支持(通常是额外添加一个插件)</p>
<p>coreaudio<br />
在Mac OS X系统上编译CoreAudio驱动程序</p>
<p>cracklib<br />
使用cracklib来进行密码强度检查</p>
<p>crypt<br />
添加加密支持 (使用基于私钥的mcrypt或基于公钥的gpg)</p>
<p>cscope<br />
添加cscope接口支持 (比如用于vim和emacs)(cscope具有开发支持功能，极大地方便了对源代码库的浏览和查询，vim中内置的ctags支持提供了类似的功能，但cscope的功能更为强大)</p>
<p>css<br />
允许抓取加密DVD上的数据</p>
<p>ctype<br />
启用ctype函数支持 (ANSI C标准库中的字符类型头文件)</p>
<p>cups<br />
添加CUPS(通用UNIX打印系统)支持</p>
<p>curl<br />
添加客户端URL传输库支持 (curl是一个可以使用URL语法传输文件的库，支持HTTP/HTTPS/FTP/FTPS/DICT/TELNET/LDAP/FILE和GOPHER等协议)</p>
<p>curlwrappers<br />
在传输流中使用curl包装</p>
<p>custom-cflags<br />
使用自定义的CFLAGS编译(unsupported)</p>
<p>custom-cxxflags<br />
使用自定义的CXXFLAGS编译(unsupported)</p>
<p>cvs<br />
启用CVS(Concurrent Versions System)集成</p>
<p>cxx<br />
编译C++支持(绑定,额外的库,代码生成, &#8230;)</p>
<p>db2<br />
添加IBM DB2数据库支持</p>
<p>dbase<br />
添加dbase文件格式(Dbase数据库文件.DBF的文件格式)支持</p>
<p>dbm<br />
添加DBM数据库支持 (DBM是柏克莱大学发展的文件/文本型数据库)</p>
<p>dbmaker<br />
添加dbmaker数据库支持</p>
<p>dbus<br />
为需要dbus的程序添加支持 (gpsd,gnomemeeting &#8230;)(dbus是一个消息总线系统，用于在应用程序中发送消息，多用于桌面环境)［主页：http://www.freedesktop.org/Software/dbus］</p>
<p>dbx<br />
添加数据库抽象层支持 (目的是提供给用户一种访问数据库的通用方式)</p>
<p>debug<br />
让configure和makefiles使用调试模式编译</p>
<p>dedicated<br />
添加专属游戏服务器支持(一些程序包并不同时支持服务端和客户端)</p>
<p>dga<br />
添加Xorg下的DGA(直接图形存取)支持</p>
<p>directfb<br />
添加DirectFB支持。［参考文档：DirectFB的学习］</p>
<p>djvu<br />
添加DjVu支持。一个类似于PDF的文档格式，特别适合于扫描文档。</p>
<p>doc<br />
添加额外的文档资料(API/java文档等)</p>
<p>dri<br />
支持DRI硬件3D加速。直接渲染架构(DRI)是一个允许在安全和高效的方式下直接访问显卡硬件的架构。它包括对X服务器的改动，以及对几个客户端库和内核的改动。DRI的第一个重要应用是创建快速的OpenGL实现。 </p>
<p>dts<br />
启用DTS声音解码器支持。</p>
<p>dv<br />
添加一种被许多便携式摄象机使用的编解码器支持</p>
<p>dvb<br />
添加DVB支持 (DVB: 数字视频广播)</p>
<p>dvd<br />
添加DVD支持</p>
<p>dvdr<br />
添加DVD刻录硬件支持 (比如：xcdroast)</p>
<p>eds<br />
添加Evolution-Data-Server支持。我们可以简单地把Evolution看作是Linux下的OutLook，一个易用的电子邮件客户端。但它的定位是Linux/Unix下的个人/工作组信息管理整套解决方案，包括电子邮件、日历、会议计划、联系人管理与任务列表等。</p>
<p>emacs<br />
添加GNU Emacs支持</p>
<p>emboss<br />
添加EMBOSS支持 (EMBOSS:欧洲分子生物学开放软件包，能很好的处理分子生物学研究中的各种问题)</p>
<p>empress<br />
添加Empress数据库支持</p>
<p>empress-bcs<br />
添加Empress数据库本地存取支持</p>
<p>encode<br />
添加视频和音频文件的多媒体编码器支持</p>
<p>enscript<br />
添加enscript支持。Enscript可将ASCII文件转换为PostScript,HTML,RTF,ANSI格式。</p>
<p>esd<br />
添加media-sound/esound支持 (一种KDE的音效合成器)</p>
<p>esoob<br />
添加Easysoft OOD数据库支持</p>
<p>evo<br />
添加mail-client/evolution支持 (Evolution类似微软的Outlook，将电子邮件、日历、联系人管理和任务集成到一个易用的应用程序中)</p>
<p>examples<br />
安装示例源代码</p>
<p>exif<br />
添加读取JPEG和TIFF图片EXIF头信息的支持 (EXIF: 可交换图像文件，实际是一种JPEG文件，是专门为数码相机的照片设定的，可以记录数字照片的属性信息和拍摄数据)</p>
<p>expat<br />
允许使用dev-libs/expat (EXPAT是一个XML解析器，可用于PHP,Perl,Python等)</p>
<p>fam<br />
添加FAM支持 (FAM: 文件变更监视模块，能实时地观察文件系统的变化情况，并做出及时的适当的反应)［参考文档：Linux下的实时数据镜像］</p>
<p>fastcgi<br />
添加FastCGI接口支持 (CGI: 公共网关接口)</p>
<p>fbcon<br />
在内核中为控制台添加framebuffer支持 (FrameBuffer: 帧缓冲，是把显存抽象后的一种设备，可以通过这个设备的读写直接对显存进行操作)</p>
<p>ffmpeg<br />
添加ffmpeg多媒体解码器支持</p>
<p>fftw<br />
使用FFTW库进行傅立叶变换计算 (FFTW: 快速傅立叶变换，用于一维和多维实数或复数的离散傅里叶变换，有些多媒体音效需要fftw)</p>
<p>firebird<br />
添加Firebird数据库支持</p>
<p>firefox<br />
基于Firefox编译，而不是基于Seamonkey/Mozilla编译</p>
<p>flac<br />
添加FLAC音频编码支持 (FLAC是一个类似APE的无损编码方案，但容错性能要优于APE)</p>
<p>flatfile<br />
为平面文件(flat file)添加dbm支持［参考文档：平面文件］</p>
<p>fltk<br />
为FLTK库提供支持。FLTK(Fast Light Toolkit)是一个基于OpenGL的跨平台C++图形化用户界面工具集。</p>
<p>fontconfig<br />
允许通过media-libs/fontconfig工具配置和定制字体</p>
<p>foomaticdb<br />
支持foomatic打印机驱动程序数据库</p>
<p>fortran<br />
添加fortran(f77)支持</p>
<p>freetds<br />
允许使用TDS协议连接MSSQL/Sybase数据库</p>
<p>freewnn<br />
添加FreeWnn支持 (FreeWnn是一个将日文假名转换到日文汉字的转换引擎)</p>
<p>frontbase<br />
添加frontbase数据库支持</p>
<p>ftp<br />
添加FTP(文件传输协议)支持</p>
<p>gcj<br />
添加GCJ支持 (GCC中的JAVA编译器)</p>
<p>gd<br />
添加media-libs/gd支持 (gd库用于动态生成图片)</p>
<p>gd-external<br />
使用外部的gd版本取代内置的版本(可能有些危险)</p>
<p>gdbm<br />
添加sys-libs/gdbm支持 (GNU数据库函数库)</p>
<p>geoip<br />
添加GeoIP支持 (GeoIP一个识别你Web网站访问者的所在国家的工具)</p>
<p>ggi<br />
添加media-libs/libggi支持 (非X窗口的视频api/drivers)</p>
<p>gif<br />
添加GIF图片格式支持</p>
<p>gimp<br />
为GIMP额外编译一个插件</p>
<p>ginac<br />
添加sci-mathematics/ginac(符号数学)支持(GiNaC是一个C++数学计算函数库，主要用于编写科学和工程上使用的计算器)</p>
<p>glut<br />
使用GLUT库编译一个OpenGL插件</p>
<p>gmp<br />
添加dev-libs/gmp支持 (GUN MP库允许你使用任意长度的整数)</p>
<p>gnome<br />
添加GNOME支持</p>
<p>gnome-keyring<br />
支持通过gnome-keyring保存密码</p>
<p>gnuplot<br />
添加gnuplot支持。Gnuplot是一个数学绘图工具，它可以将数据和函数转换为专业的可视化图表。</p>
<p>gnustep<br />
添加GNUstep开发环境支持 (GNUstep是一个免费/面向对象/图形化/跨平台的开发环境)</p>
<p>gnutls<br />
添加net-libs/gnutls支持(GnuTLS是一款提供TLS 1.0 和 SSL 3.0 加密支持的库)</p>
<p>gphoto2<br />
添加数码相机支持</p>
<p>gpm<br />
添加sys-libs/gpm支持 (GPM是通用鼠标协议，为控制台下提供鼠标支持，提供了通用的剪切和粘贴支持)</p>
<p>gps<br />
添加全球定位系统(GPS)支持</p>
<p>graphviz<br />
添加Graphviz库支持。Graphviz是一个绘图工具集，通过绘制直观的图表，往往能够清晰地表现各种结构之间的关系，从而使复杂的问题简单化。</p>
<p>gzip<br />
添加gzip压缩支持</p>
<p>gsl<br />
使用GSL科学计算函数库进行计算。GNU科学计算函数库GSL(GNU Scientific Library)是一个强大的C/C++数值计算函数库。</p>
<p>gsm<br />
支持GSM有损语音压缩编码/解码器。GSM俗称&#8221;全球通&#8221;，是一种起源于欧洲的第二代移动通信技术标准。</p>
<p>gstreamer<br />
添加media-libs/gstreamer支持 (GStreamer是GNOME下构建流媒体应用的编程框架，目标是简化音/视频应用程序的开发)</p>
<p>gtk<br />
添加x11-libs/gtk+支持 (GTK: GIMP工具包，GIMP: 通用图像处理程序)(GTK+是应用程序图形界面编程工具)</p>
<p>gtkhtml<br />
添加gnome-extra/gtkhtml支持 (GtkHTML是一个HTML分析/编辑库)</p>
<p>guile<br />
添加dev-util/guile支持 (Scheme语言解释程序)(Guile是GNU工程的扩展语言库，是一个Scheme语言的实现版本，把这个库链接到你的应用中就为你的应用增加了一种扩展语言)</p>
<p>hal<br />
添加硬件抽象层(HAL)支持 (硬件抽象层完全把系统软件和硬件部分隔离开来，这样就使得系统的设备驱动程序与硬件设备无关，从而大大提高了系统的可移植性)</p>
<p>handbook<br />
允许为KDE4生成参考手册</p>
<p>hardened<br />
默认为工具链(gcc/glibc/binutils)启用安全增强特性</p>
<p>hddtemp<br />
启用硬盘驱动器温度监控(app-admin/hddtemp)</p>
<p>hdf5<br />
启用HDF5(Hierarchical Data Format v5)支持。HDF5是一个层次型的数据存储格式，包含了数据定义和支持接口，支持并行I/O。HDF5比较适合用于那些无法用一般的格式存放的复杂科学数据。目前很多遥感存储采用HDF5格式来实现。</p>
<p>ibm<br />
添加IBM ppc64体系结构支持</p>
<p>iconv<br />
添加iconv字符集转换函数库支持</p>
<p>icq<br />
添加ICQ通信协议支持</p>
<p>icu<br />
添加ICU(Internationalization Components for Unicode)支持(使用dev-libs/icu)。是一个C/C++的Unicode库，可以根据各地的习俗约定格式化数字、日期、时间和货币，以及对这些格式中的文本进行语法分析。</p>
<p>idn<br />
添加IDN(Internationalized Domain Names,国际化域名)支持</p>
<p>ieee1394<br />
添加IEEE1394火线支持(数码相机,数码摄像机等)</p>
<p>imagemagick<br />
添加Imagemagick支持(ImageMagick类似于GD但效果比GD好)</p>
<p>imap<br />
添加IMAP支持 (IMAP: 网际网络信息存取协议，是一种比POP3更好的协议，可取代POP3协议)</p>
<p>imlib<br />
添加media-libs/imlib支持 (imlib: 一个图片加载和显示库，用于Gnome图形用户环境)</p>
<p>inifile<br />
为.ini文件添加dbm数据库支持</p>
<p>innodb<br />
为mySQL添加innodb表类型支持 (innoDB表类型可以支持事务处理，且性能优秀)</p>
<p>interbase<br />
添加Interbase数据库支持</p>
<p>iodbc<br />
添加iODBC驱动程序库支持 (ODBC: 开放数据库连接)</p>
<p>ipod<br />
允许访问iPod设备</p>
<p>ipv6<br />
添加IPv6支持</p>
<p>jabber<br />
添加jabber即时通信协议支持 (jabber是一款即时消息软件)</p>
<p>jack<br />
添加JACK音频连接工具包 (低延迟、高性能的中间过程音频连接，以及音频设备共享，适合于专业音频应用程序)</p>
<p>java<br />
添加Java支持</p>
<p>java5<br />
使用Java 1.5编译JAVA支持</p>
<p>java6<br />
使用Java 1.6编译JAVA支持</p>
<p>javascript<br />
添加javascript支持</p>
<p>jbig<br />
为tiff,Hylafax,ImageMagick等添加jbig-kit支持。jbig-kit是一种高压缩率且不失真的影像压缩函数库，适用於传真或扫描影像。</p>
<p>jingle<br />
允许jabber使用语音进行通信。Jabber是一种开放式架构的即时通讯系统，可以和AOL、ICQ以及YAHOO通兼容。</p>
<p>joystick<br />
在所有软件包里添加joysticks(游戏操纵杆)支持</p>
<p>jpeg<br />
添加JPEG图片格式支持</p>
<p>jpeg2k<br />
添加JPEG 2000图片格式支持</p>
<p>kontact<br />
添加KDE个人信息管理支持(kde-base/kdepim*)</p>
<p>kde<br />
添加kde-base/kde支持 (KDE桌面环境)</p>
<p>kdeenablefinal<br />
[试验]使用enable-final标志建立kde的ebuilds，可以加速编译，但是要占用大量内存。官方反对使用此标记。</p>
<p>kdehiddenvisibility<br />
编译KDE时默认隐藏符号(使用GCC -fvisibility=hidden 命令行选项)，必须使用GCC4.1以上版本。</p>
<p>kdeprefix<br />
在KDE的安装目录中添加SLOT前缀(/usr/kde/$SLOT)，否则将直接安装到FHS兼容的位置(/usr)</p>
<p>kerberos<br />
添加kerberos支持(Kerberos是一个基于对称密码的认证协议，该协议能够提供强安全的认证服务)［参考文档：Kerberos认证协议］</p>
<p>kolab<br />
添加Kolab Groupware Server支持。Kolab是提供EMAIL、日历、任务计划、通知联系等功能的集成服务程序。</p>
<p>krb4<br />
添加可选的kerberos4兼容支持 (Kerberos 4协议实现中存在多个加密漏洞，目前为版本5)</p>
<p>ladspa<br />
添加LADSPA(Linux Audio Developer&#8217;s Simple Plugin API)支持</p>
<p>lame<br />
使用LAME库作为MP3编码器。LAME据说是目前最好的MP3编码器，是编码高品质MP3的最佳选择。</p>
<p>lapack<br />
添加virtual/lapack数值计算库支持(lapack是一个用于线性代数计算的子程序包)</p>
<p>lash<br />
添加LASH支持。LASH是一个用于Linux音频应用程序的会话管理系统，它允许你保存和恢复由多个相互关联的应用程序组成的音频会话状态。</p>
<p>latex<br />
添加LaTeX支持。LaTeX是一种基于TeX的排版系统，即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能。</p>
<p>lcms<br />
添加lcms支持。lcms库可以提供色彩管理功能。</p>
<p>ldap<br />
添加LDAP(轻量级目录访问协议)支持。</p>
<p>libcaca<br />
添加彩色ASCII艺术图形支持</p>
<p>libedit<br />
使用libedit库代替Readline库。libedit是一个非GPL的与GNU Readline库兼容的替代品。</p>
<p>libgda<br />
添加GDA(GNOME Data Access)支持。GDA提供了一种访问多种不同类型的数据源的统一架构，既包括传统的关系型数据库也包括任何可以想象的邮件服务器数据以及LDAP数据等。</p>
<p>libnotify<br />
添加桌面通知机制(desktop notification)支持。</p>
<p>libsamplerate<br />
添加libsamplerate支持。libsamplerate(Secret Rabbit Code)是一个音频重采样库，比如将44.1kHz的CD音频转换为48kHz的DVD音频。</p>
<p>libwww<br />
添加libwww库(通用WEB应用程序编程接口)支持</p>
<p>lirc<br />
添加lirc支持 (lirc: Linux红外端口控制工具)</p>
<p>livecd<br />
!!仅供内部使用，请不要设置此参数!! 在livecd构建中使用</p>
<p>lm_sensors<br />
添加lm_sensors支持 (硬件监测软件，提供电压，温度，风扇转速等的实时监测)</p>
<p>lua<br />
添加Lua脚本支持。Lua是一种小型的脚本语言，设计目的是为了嵌入其他应用程序中，从而为应用程序提供灵活的扩展和定制功能。</p>
<p>lzo<br />
添加lzo压缩支持。lzo的压缩率并不高，但它是最快速的压缩和解压的算法，主要用于实时性较高的场合。</p>
<p>m17n-lib<br />
添加m17n-lib支持 (&#8220;m17n&#8221;是&#8221;多语言化&#8221;的缩写。m17n-lib是一个C语言的多语言文本处理库，可让应用程序实现多语言支持)</p>
<p>mad<br />
添加mad(一个高质量的mp3解码库/命令行前端)支持</p>
<p>maildir<br />
添加maildir风格(~/.maildir)的邮件缓冲池支持</p>
<p>mailwrapper<br />
添加mailwrapper支持，允许使用其他的MTA(如postfix)取代sendmail</p>
<p>matroska<br />
添加matroska多媒体容器格式(.mkv .mka .mks)支持。Matroska是一种新的多媒体封装格式，它可将多种不同编码的视频及16条以上不同格式的音频和不同语言的字幕流封装到同一个文件当中。</p>
<p>matrox<br />
添加Matrox MGA系列显卡支持</p>
<p>mbox<br />
添加mbox风格(/var/spool/mail)的邮件缓冲池支持</p>
<p>mcve<br />
添加MCVE信用卡支付系统支持</p>
<p>memlimit<br />
对于支持内存限制的程序启用内存限制支持</p>
<p>mhash<br />
添加mhash库支持。mhash是一种线程安全的哈希算法库。</p>
<p>migemo<br />
为日语添加migemo支持</p>
<p>mikmod<br />
添加libmikmod支持来播放音轨格式的音频文件</p>
<p>milter<br />
为sendmail添加milter邮件过滤器支持</p>
<p>mime<br />
添加MIME支持。MIME是描述消息内容类型的因特网标准，MIME消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。</p>
<p>minimal<br />
安装一个最小化的build(比如禁止插件/字体/大多数驱动程序/非关键的特性)</p>
<p>mmap<br />
添加mmap(自内存映射)支持［参考文档：内存映射mmap］</p>
<p>mmx<br />
为Pentium MMX和Athlon等级的处理器添加最佳化优化支持</p>
<p>mng<br />
添加libmng库以支持MNG格式的图片</p>
<p>modplug<br />
添加libmodplug支持。Libmodplug是一款用于mod类音乐格式(.mod .s3m .it .xm 等后缀)播放和转换的函数库。</p>
<p>mono<br />
添加Mono支持。Mono是一个Linux上的.NET平台。</p>
<p>motif<br />
添加motif工具集支持。［参考文档：GNOME与KDE的战争］</p>
<p>mozilla<br />
添加Mozilla web浏览器支持</p>
<p>mp3<br />
添加读取mp3文件支持</p>
<p>mp4<br />
添加读取mp4文件支持。mp4并不是一种编码格式，它实际上只是一种容器</p>
<p>mpeg<br />
添加libmpeg3库支持(libmpeg3是一个处理mpeg编码的库)</p>
<p>mpi<br />
添加MPI(Message Passing Interface)支持 (MPI: 消息传递接口，是一套可用于Linux高性能计算集群系统上的数据传送模型，目标是创建一套和程序语言、计算机种类无关的标准，用以撰写收送讯息的程序码)</p>
<p>mplayer<br />
添加mplayer播放/编码支持</p>
<p>msn<br />
添加MSN Messenger通信协议支持</p>
<p>msql<br />
添加MSQL数据库支持</p>
<p>mssql<br />
添加Microsoft SQL Server数据库支持</p>
<p>mtp<br />
添加MTP(Media Transfer Protocol,媒体传输协议)支持。［参考文档：媒体传输协议］</p>
<p>mule<br />
为XEmacs添加</p>
]]></content:encoded>
			<wfw:commentRss>http://sigmav.net/2011/04/12/gentoo-use%e6%a0%87%e8%ae%b0%e5%85%a8%e8%ae%b0%e5%bd%95%ef%bc%88%e8%bd%ac%e7%bc%96%e8%87%aa%e8%ae%ba%e5%9d%9b%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>蛋疼的startdict使用方法</title>
		<link>http://sigmav.net/2011/03/30/stardict_usage/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=stardict_usage</link>
		<comments>http://sigmav.net/2011/03/30/stardict_usage/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 01:34:41 +0000</pubDate>
		<dc:creator>西玛哒</dc:creator>
				<category><![CDATA[IT悟语]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[Startdict]]></category>
		<category><![CDATA[Xfce]]></category>

		<guid isPermaLink="false">http://sigmav.net/?p=41300</guid>
		<description><![CDATA[自从配好了Gentoo之后就一直在写****的论文翻译，由于英文对我来说目前就是个灾难，因此除了Goole Translate之外，一个本地的电子辞典是十分必要的。 Linux下的辞典当然是雷打不动的startdict喽，我使用的是xfce4，所以需要安装startdict +gtk emerge -av startdict emerge -s startdict- China Overlay 的Portage中放了不少实用的辞典，省了不少麻烦，按需安装即可。 当然，我还是搞到了500M+的超级辞典库，为了把他们放到我的辞典目录还真费了我一番心思,由于辞典库解压后，每一个辞典都在一个独立的文件夹内，而/usr/share/stardict/dic只有一个文件夹，里面放置了所有辞典，因此需要遍历这些文件夹，将所有文件拷贝过去。这里借用了一个遍历脚本： #!/bin/bash #RCP.sh list_alldir(){ for file in $1/* do if [ -d $file ]; then # echo $file #Do the stuff here find $file -maxdepth 1 -type f -exec cp {} $2/ ; # find $file ! -name "." -type d -prune [...]]]></description>
			<content:encoded><![CDATA[<p>自从配好了Gentoo之后就一直在写****的论文翻译，由于英文对我来说目前就是个灾难，因此除了Goole Translate之外，一个本地的电子辞典是十分必要的。<br />
 Linux下的辞典当然是雷打不动的startdict喽，我使用的是xfce4，所以需要安装startdict +gtk</p>
<pre class="brush: shell">
  emerge -av startdict
  emerge -s startdict-
</pre>
<p> China Overlay 的Portage中放了不少实用的辞典，省了不少麻烦，按需安装即可。<br />
 当然，我还是搞到了500M+的超级辞典库，为了把他们放到我的辞典目录还真费了我一番心思,由于辞典库解压后，每一个辞典都在一个独立的文件夹内，而/usr/share/stardict/dic只有一个文件夹，里面放置了所有辞典，因此需要遍历这些文件夹，将所有文件拷贝过去。这里借用了一个遍历脚本：<br />
<span id="more-41300"></span></p>
<pre class="brush: shell">
#!/bin/bash
#RCP.sh
list_alldir(){
    for file in $1/*
    do
        if [ -d $file ]; then
           # echo $file          #Do the stuff here
            find $file  -maxdepth 1 -type f -exec cp {} $2/ ;
           # find $file ! -name "." -type d -prune -o -type f
            list_alldir $file   #Recursion
        fi
    done
}
if [ $# -eq 2 ]
then
    list_alldir "$1" "$2"
elif [ $# -eq 1 ]
then
    list_alldir "." "$1"
else
    echo "Usage : $0 <src dir> [dist dir]"
fi
</src></pre>
<p>  这里只要在存放辞典的目录下执行脚本，参数选择/usr/share/stardict/dic 即可，一顿折腾之后，辞典就全都放进去了。<br />
  然而&#8230;&#8230;&#8230;&#8230;<br />
  那个坑爹的词库里有1000+个辞典，这会导致stardict打开文件数过多。都知道*nix程序打开文件是有数量限制的，stardict打开辞典的动作在先，之后才加载字体、图标等，因此就会出现奇奇怪怪的状况：<br />
  1、图标变成了gtk默认图标，甚至无显示。<br />
  2、字体显示变成方框，甚至是英文也会方框。<br />
  一般来说，字体变方框是因为缺少字体，stardict中好用的字体是Tahoma,可以无耻的从windows中拷贝过来用。</p>
<pre escaped="True">
  cp /where/is/font/Tahoma.ttf  /usr/share/fonts/ttf-tahoma/
  chmod -R 755 /usr/share/fonts/ttf-tahoma
  fc-cache -fv
</pre>
<p>  看过刷屏之后，字体就应该会加载了，但是这没有解决问题，我只能悲剧的承认贪心是不好的。<br />
  然后我把一些字典（900多个）放到了dic/xxx 的一个文件夹中，发现居然还是被加载，难道之前的工作白做了？&#8230;..<br />
  猜想没有验证，我就直接把xxx文件夹找了个别的地方放起来，问题算是解决了。<br />
  将stardict 放在Autostart中(用xfce的session and startup 管理器实现),算是能用了。</p>
<p>  把讨厌的取词体验放一边不提，单说窗口的呼出问题，stardict 的gtk版本可以运行多个实例，也就是说一个实例运行起来之后就如同撒了手的氢气球，除了移动鼠标到托盘区寻觅之外别无他法（至少我没找到好方法），这样的问题就导致无法使用快捷键呼出窗口查单词，之前被灵格斯之类惯出了ALT+L查词的毛病，实在是改不掉，一番寻觅之后，找到了一个蛋疼的使用方法：传说中的sdcv</p>
<pre escaped="True">
  emerge -av sdcv
</pre>
<p>  sdcv是一个stardict的命令行界面，做的很简单，但功能强大，包括模糊匹配功能一应俱全。有很多神写过sdcv配合vim,emacs之类神器的使用方法，我没有那么高的要求，就从简使用了，很简单，打开一个小Terminal，直接查词，不用了就ALT+F4关掉～，脚本如下：</p>
<pre escaped="True">
    terminal --geometry=40x25 -T Dictionary -e sdcv
</pre>
<p>  我使用的是xfce-terminal，其他的参数可能会有区别，但是大体类似。<br />
  我没有使用脚本，因为看起来xfce的快捷键总会慢半拍，我就直接把命令写进去，并绑定了<alt><l>按键～<br />
  结果来看，还算是比较满意的。</p>
<p>  不太清楚stardict项目目前是什么状态，据说gnome的版本是有快捷键绑定的，希望gtk版本能解决这个问题。</l></alt></p>
]]></content:encoded>
			<wfw:commentRss>http://sigmav.net/2011/03/30/stardict_usage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>试用VimRepress写博客</title>
		<link>http://sigmav.net/2011/03/23/%e8%af%95%e7%94%a8vimrepress%e5%86%99%e5%8d%9a%e5%ae%a2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e8%25af%2595%25e7%2594%25a8vimrepress%25e5%2586%2599%25e5%258d%259a%25e5%25ae%25a2</link>
		<comments>http://sigmav.net/2011/03/23/%e8%af%95%e7%94%a8vimrepress%e5%86%99%e5%8d%9a%e5%ae%a2/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 12:58:27 +0000</pubDate>
		<dc:creator>西玛哒</dc:creator>
				<category><![CDATA[IT悟语]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://sigmav.net/2011/03/%e8%af%95%e7%94%a8vimrepress%e5%86%99%e5%8d%9a%e5%ae%a2/</guid>
		<description><![CDATA[最近在配置我的vim ,目前一切安好，由于之前多次失败，现在已经有丰富的乱码问题解决经验， 乱码已经不是问题了。 #include int testing; 本文使用 www.isspy.com 那里获得的vimrepress插件书写，仅作测试～]]></description>
			<content:encoded><![CDATA[<p>最近在配置我的vim ,目前一切安好，由于之前多次失败，现在已经有丰富的乱码问题解决经验，<br />
 乱码已经不是问题了。</p>
<pre escaped="True">
   #include <test .h>
   int testing;
</test></pre>
<p>本文使用 www.isspy.com  那里获得的vimrepress插件书写，仅作测试～</p>
]]></content:encoded>
			<wfw:commentRss>http://sigmav.net/2011/03/23/%e8%af%95%e7%94%a8vimrepress%e5%86%99%e5%8d%9a%e5%ae%a2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>mini2440 Helloworld驱动</title>
		<link>http://sigmav.net/2011/03/01/mini2440-helloworld%e9%a9%b1%e5%8a%a8/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mini2440-helloworld%25e9%25a9%25b1%25e5%258a%25a8</link>
		<comments>http://sigmav.net/2011/03/01/mini2440-helloworld%e9%a9%b1%e5%8a%a8/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 15:42:35 +0000</pubDate>
		<dc:creator>西玛哒</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[IT悟语]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[硬件与嵌入式]]></category>
		<category><![CDATA[Driver]]></category>
		<category><![CDATA[mini2440]]></category>

		<guid isPermaLink="false">http://sigmav.net/2011/03/mini2440-helloworld%e9%a9%b1%e5%8a%a8/</guid>
		<description><![CDATA[&#160; &#160; Mini2440 是基于S3C2440（2410工业版） 的Arm9平台，实验平台已经移植了Linux，目前正打算添加RF24L01接口驱动程序。 &#160; 首先建立Helloworld驱动程序，作为驱动开发的模版，记录如下： &#160;&#160; 一、建立编译环境： &#160;&#160; mini2440开发环境 &#160;&#160;&#160; 编译器 ： arm-linux-gcc&#160;&#160;&#160; 3.4.1 &#160;&#160;&#160; linux内核版本 ： 2.6.32.2 &#160;&#160;&#160; 解压并记录内核源码树 位置例：/opt/FriendlyARM/mini2440/linux-2.6.32.2 &#160;&#160; 二、编写驱动程序文件： #include &#60;linux/init.h&#62; #include &#60;linux/module.h&#62; MODULE_LICENSE(&#34;Dual BSD/GPL&#34;); static int hello_init(void) { printk(KERN_ALERT &#34;Hello modulen&#34;); return 0; } static int hello_exit(void) { printk(KERN_ALERT &#34;Goodby modulen&#34;); return 0; } module_init(hello_init); module_exit(hello_exit); &#160;&#160;&#160;&#160;&#160; 上述实现了在加载时打印相关语句功能，KERN_ALERT [...]]]></description>
			<content:encoded><![CDATA[<p>&#160;</p>
<p>&#160; Mini2440 是基于S3C2440（2410工业版） 的Arm9平台，实验平台已经移植了Linux，目前正打算添加RF24L01接口驱动程序。</p>
<p>&#160; 首先建立Helloworld驱动程序，作为驱动开发的模版，记录如下：</p>
<h4>&#160;&#160; 一、建立编译环境：</h4>
<p>&#160;&#160; mini2440开发环境</p>
<p>&#160;&#160;&#160; 编译器 ： arm-linux-gcc&#160;&#160;&#160; 3.4.1</p>
<p>&#160;&#160;&#160; linux内核版本 ： 2.6.32.2 </p>
<p>&#160;&#160;&#160; 解压并记录内核源码树 位置例：/opt/FriendlyARM/mini2440/linux-2.6.32.2</p>
<h4>&#160;&#160; 二、编写驱动程序文件：</h4>
<pre class="brush: cpp">#include &lt;linux/init.h&gt;
#include &lt;linux/module.h&gt;
MODULE_LICENSE(&quot;<span style="color: #8b0000">Dual BSD/GPL</span>&quot;);

<span style="color: #0000ff">static</span> <span style="color: #0000ff">int</span> hello_init(<span style="color: #0000ff">void</span>)
{
    printk(KERN_ALERT &quot;<span style="color: #8b0000">Hello modulen</span>&quot;);
    <span style="color: #0000ff">return</span> 0;
}
<span id="more-41288"></span>
<span style="color: #0000ff">static</span> <span style="color: #0000ff">int</span> hello_exit(<span style="color: #0000ff">void</span>)
{
    printk(KERN_ALERT &quot;<span style="color: #8b0000">Goodby modulen</span>&quot;);
    <span style="color: #0000ff">return</span> 0;
}

module_init(hello_init);
module_exit(hello_exit);</pre>
<p>&#160;&#160;&#160;&#160;&#160; 上述实现了在加载时打印相关语句功能，KERN_ALERT 表示了优先级为KERN_ALERT级别，较低级别的printk可能出现在终端无显示的情况。</p>
<h4>&#160;&#160;&#160; 三、编写Makefile</h4>
<p>&#160;&#160;&#160;&#160;&#160; 这里所配置的makefile模板文件如下： </p>
<pre>#Mini2440 General Makefile for SSDUT_MCU_LAB
#Auth: sigmax6
#2011 03 01

CC = arm-linux-gcc                                 #name of platform compiler
KDIR ?= /opt/FriendlyARM/mini2440/linux-2.6.32.2    #platform linux source dir
PWD := $(shell pwd)

obj-m := hello.o                                   #obj-m means hello.ko , and it depends on hello.o

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules            #make 

.PHONY: clean
clean:
	$(MAKE) -C $(KDIR) M=$(PWD) clean              #clean
	rm -rf *.o *.ko .*.cmd *.mod.*</pre>
<p>&#160;&#160; 实际上，对于一个驱动模块来说，在有了hello.c之后，只要一句规则就可以生成目标模块</p>
<p>&#160;&#160;&#160;&#160; obj-m := hello.o</p>
<blockquote>
<p>&#160; <br />&#160;&#160;&#160; 熟悉的 make , 但是对 2.6 内核建立系统不熟悉的读者, 可能奇怪这个 makefile 如何工作. 毕竟上面的这一行不是一个传统的 makefile 的样子. 答案, 当然, 是内核建立系统处理了余下的工作. 上面的安排 </p>
<p>( 它利用了由 GNU make 提供的扩展语法 )表明有一个模块要从目标文件 hello.o 建立. 在从目标文件建立后结果模块命名为 hello.ko.</p>
<p>反之, 如果你有一个模块名为 module.ko, 是来自 2 个源文件( 姑且称之为, file1.c 和 file2.c ), 正确的书<br />
    <br />写应当是: </p>
<p>obj-m := module.o </p>
<p>module-objs := file1.o file2.o </p>
<p>对于一个象上面展示的要工作的 makefile, 它必须在更大的内核建立系统的上下文被调用. 如果你 </p>
<p>的内核源码数位于, 假设, 你的 ~/kernel-2.6 目录, 用来建立你的模块的 make 命令( 在包含模块源码 </p>
<p>和 makefile 的目录下键入 )会是: </p>
<p>make -C ~/kernel-2.6 M=`pwd` modules </p>
<p>这个命令开始是改变它的目录到用 -C 选项提供的目录下( 就是说, 你的内核源码目录 ). 它在那里 </p>
<p>会发现内核的顶层 makefile. 这个 M= 选项使 makefile 在试图建立模块目标前, 回到你的模块源码目 </p>
<p>录. 这个目标, 依次地, 是指在 obj-m 变量中发现的模块列表, 在我们的例子里设成了 module.o. </p>
<p>键入前面的 make 命令一会儿之后就会感觉烦, 所以内核开发者就开发了一种 makefile 方式, 使得生 </p>
<p>活容易些对于那些在内核树之外建立模块的人. 这个窍门是如下书写你的 makefile: </p>
<p></p>
<pre>

# If KERNELRELEASE is defined, we've been invoked from the
  # kernel build system and can use its language.

ifneq ($(KERNELRELEASE),)

obj-m := hello.o

# Otherwise we were called directly from the command

# line; invoke the kernel build system.

else

KERNELDIR ?= /lib/modules/$(shell uname -r)/build

PWD := $(shell pwd)

default:

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

endif

</pre>
<p>&#160;&#160;&#160; 再一次, 我们看到了扩展的 GNU make 语法在起作用. 这个 makefile 在一次典型的建立中要被读 2次. 当从命令行中调用这个 makefile , 它注意到 KERNELRELEASE 变量没有设置. 它利用这样一个事实来定位内核源码目录, 即已安装模块目录中的符号连接指回内核建立树. 如果你实际上没有运行你在为其而建立的内核, 你可以在命令行提供一个 KERNELDIR= 选项, 设置 KERNELDIR 环境变量, 或者重写 makefile 中设置 KERNELDIR 的那一行. 一旦发现内核源码树, makefile 调用 default: 目标, 来运行第 2 个 make 命令( 在 makefile 里参数化成 $(MAKE))象前面描述过的一样来调用内核建立系统. 在第 2 次读, makefile 设置 obj-m, 并且内核的 makefile 文件完成实际的建立模块工作.这种建立模块的机制你可能感觉笨拙模糊. 一旦你习惯了它, 但是, 你很可能会欣赏这种已经编排进内核建立系统的能力. 注意, 上面的不是一个完整的 makefile; 一个真正的 makefile 包含通常的目标类型来清除不要的文件, 安装模块等等.</p>
<p>” —— 《Linux设备驱动程序 中文第三版》</p></blockquote>
<h4>四、编译生成模块 </h4>
<p>在当前目录下 使用make命令生成.ko模块文件</p>
<p>&#160; 按照上文的讲解,其中还会生成很多中间文件,格式为*.cmd *.mod.* 等 这些文件是系统将你的代码转化而来的。最终产品是.ko文件，也就是驱动模块。</p>
<p>&#160;&#160; Helloworld模块没有实际的操作，所以并不需要测试程序。一般情况下驱动程序需要通过测试程序验证其功能。</p>
<p>&#160;&#160; 将.ko文件下载到目标系统中，使用：</p>
<p> #insmod hello.ko</p>
<p>就可以看到 “Hello module” 出现在终端上。</p>
<p> 同理 </p>
<p> #rmmod hello&#160;&#160; （这里没有后缀名，因为调用的是模块名称）</p>
<p>&quot;会显示 “Goodbye module”</p>
<p>==========================================================</p>
]]></content:encoded>
			<wfw:commentRss>http://sigmav.net/2011/03/01/mini2440-helloworld%e9%a9%b1%e5%8a%a8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>apt-get 的彩蛋</title>
		<link>http://sigmav.net/2010/12/09/apt-get-%e7%9a%84%e5%bd%a9%e8%9b%8b/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apt-get-%25e7%259a%2584%25e5%25bd%25a9%25e8%259b%258b</link>
		<comments>http://sigmav.net/2010/12/09/apt-get-%e7%9a%84%e5%bd%a9%e8%9b%8b/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 12:38:01 +0000</pubDate>
		<dc:creator>西玛哒</dc:creator>
				<category><![CDATA[IT悟语]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://sigmav.net/2010/12/apt-get-%e7%9a%84%e5%bd%a9%e8%9b%8b/</guid>
		<description><![CDATA[之前用过一段时间的Ubuntu/Debian 系列，倒是对apt-get稍微熟悉，不过，彩蛋什么的是绝对没有想到过，程序员总是会适当的幽默自己，并把这种幽默传递出去。^_^        #apt-get moo     有时候还真是不明白为什么都爱拿母牛开玩笑…]]></description>
			<content:encoded><![CDATA[<p>之前用过一段时间的Ubuntu/Debian 系列，倒是对apt-get稍微熟悉，不过，彩蛋什么的是绝对没有想到过，程序员总是会适当的幽默自己，并把这种幽默传递出去。^_^</p>
<blockquote><p>       #apt-get moo</p></blockquote>
<p><span style="background-color: #f4f5f7; color: #555555;">   </span><br />
<a href="http://www.flickr.com/photos/sigmax6/5245894075/" title="Flickr 上 sigmax6 的 apt_get_moo"><img src="http://farm6.staticflickr.com/5048/5245894075_318332baa8.jpg" width="367" height="160" alt="5245894075 318332baa8 apt get 的彩蛋"  title="apt get 的彩蛋" /></a><br />
有时候还真是不明白为什么都爱拿母牛开玩笑…</p>
]]></content:encoded>
			<wfw:commentRss>http://sigmav.net/2010/12/09/apt-get-%e7%9a%84%e5%bd%a9%e8%9b%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UNIX的救赎</title>
		<link>http://sigmav.net/2010/11/08/unix%e7%9a%84%e6%95%91%e8%b5%8e/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unix%25e7%259a%2584%25e6%2595%2591%25e8%25b5%258e</link>
		<comments>http://sigmav.net/2010/11/08/unix%e7%9a%84%e6%95%91%e8%b5%8e/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 14:00:38 +0000</pubDate>
		<dc:creator>西玛哒</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[SigTwit]]></category>
		<category><![CDATA[笑看人生]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://sigmav.net/2010/11/unix%e7%9a%84%e6%95%91%e8%b5%8e/</guid>
		<description><![CDATA[Those who do not understand Unix are condemned to reinvent it, poorly. ----Henry Spencer 不懂Unix 的人注定最终还要重复发明一个蹩脚的Unix。 ——亨利·斯宾赛 1987 年11 月 是的，没错，UNIX 不是电影演员，也不是不是什么哲学家，不是某子、某克斯人名的缩写，而是一种计算机操作系统。你我可能都不熟悉它，我甚至也说不出它现在具体都用在哪儿，也许说BSD，Linux，Mac的各种猛兽操作系统上仍然是Unix的灵魂附体。然而Unix已经不仅仅是一个操作系统了，并且它的概念也并不能说明什么问题。即便是学过了电脑的我们最多也只是知道除了windows的疆域之外，还有广阔的领土，他们打从C语言诞生前就在那儿，优雅的跨越四分之一个世纪，踏过PC、windows和互联网井喷式扩张的版图，正如所说的那样： Unix is not so much an operating system as an oral history. 与其说Unix 是个操作系统，不如说是一部口述的历史。 &#60;author&#62;Neal Stephenson&#60;/author&#62; 他比我们大部分的人都要年长很多。然而即便如此，我也从来没有想过UNIX可以出现我生活中在除了打开一个console去玩儿vim和gcc之外的任何角落。也从来没有想过UNIX拥有什么哲学。想来，自己没有想什么“哲学”之类的东西已经很久了。 但，正如触发我所思所想的书中提到的那样： 哲学：很有所谓 在从CSDN上看到了对《UNIX编程艺术》&#124;“The.Art.of.UNIX.programming”一书的推荐之后，想起之前看到这本书时，并不觉得它对我Coding有什么帮助，于是就打入冷宫了，惭愧之极。如今找出来仔细的阅读了一遍，发现其中的很多东西实在是太给力了。最直接的感受便是： 凡事都有哲学，写操作系统、编程序和日常生活中，没有什么区别。 哲学很有所谓，现在反而在我们的生活中很少再有哲学的思考。大家过着快餐一样的生活，不去思考原则和信仰。然而UNIX却维系着这样一个庞大的疆域，这里的人们有着他们的行为准则，没有什么法律要求他们这么做，然而他们如此自觉的遵守着他们点滴积累下来的一切“哲学”，如此富有哲理，我实在想不出作为程序员如何能独占这样美妙的东西。我觉得这足以让沉淀了几千年的景德镇文化大叫情何以堪了，所以在粗粗略读了这些原则之后，我实在是想分享一些东西： 生活与程序都需要系统，代码生活于UNIX，我们生活与China 、US什么的whatever~ 但是系统与“系统”没有本质的区别，如果我们失去的哲学的方向，也许，UNIX的哲学是一场救赎。 这一切与编程和无关。 UNIX 十七戒 在《UNIX编程艺术》中，作者给了UNIX哲学一些通俗的描述： Unix 哲学（同其它工程领域的民间传统一样）是自下而上的，而不是自上而下的。 Unix 哲学注重实效，立足于丰富的经验。你不会在正规方法学和标准中找到它，它更接 [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<pre>Those who do not understand Unix are condemned to reinvent it, poorly.</pre>
<pre>                                              ----Henry Spencer</pre>
<pre>不懂Unix 的人注定最终还要重复发明一个蹩脚的Unix。</pre>
<pre>                                      ——亨利·斯宾赛   1987 年11 月</pre>
</blockquote>
<p>是的，没错，UNIX 不是电影演员，也不是不是什么哲学家，不是某子、某克斯人名的缩写，而是一种计算机操作系统。你我可能都不熟悉它，我甚至也说不出它现在具体都用在哪儿，也许说BSD，Linux，Mac的各种猛兽操作系统上仍然是Unix的灵魂附体。然而Unix已经不仅仅是一个操作系统了，并且它的概念也并不能说明什么问题。即便是学过了电脑的我们最多也只是知道除了windows的疆域之外，还有广阔的领土，他们打从C语言诞生前就在那儿，优雅的跨越四分之一个世纪，踏过PC、windows和互联网井喷式扩张的版图，正如所说的那样：</p>
<blockquote><p>Unix is not so much an operating system as an oral history.</p>
<p>与其说<em>Unix</em> 是个操作系统，不如说是一部口述的历史。</p>
<p>&lt;author&gt;Neal Stephenson&lt;/author&gt;</p></blockquote>
<p>他比我们大部分的人都要年长很多。然而即便如此，我也从来没有想过UNIX可以出现我生活中在除了打开一个console去玩儿vim和gcc之外的任何角落。也从来没有想过UNIX拥有什么<strong>哲学</strong>。想来，自己没有想什么“哲学”之类的东西已经很久了。</p>
<p>但，正如触发我所思所想的书中提到的那样：</p>
<h3>哲学：很有所谓</h3>
<p>在从CSDN上看到了对《UNIX编程艺术》|“The.Art.of.UNIX.programming”一书的推荐之后，想起之前看到这本书时，并不觉得它对我Coding有什么帮助，于是就打入冷宫了，惭愧之极。如今找出来仔细的阅读了一遍，发现其中的很多东西实在是<strong>太给力了</strong>。最直接的感受便是：</p>
<p>凡事都有哲学，写操作系统、编程序和日常生活中，没有什么区别。</p>
<p><strong>哲学很有所谓</strong>，现在反而在我们的生活中很少再有哲学的思考。大家过着快餐一样的生活，不去思考<strong>原则</strong>和<strong>信仰</strong>。然而UNIX却维系着这样一个庞大的疆域，这里的人们有着他们的行为准则，没有什么法律要求他们这么做，然而他们如此自觉的遵守着他们点滴积累下来的一切“<strong>哲学”</strong>，如此富有哲理，我实在想不出作为程序员如何能独占这样美妙的东西。我觉得这足以让沉淀了几千年的景德镇文化大叫情何以堪了，所以在粗粗略读了这些原则之后，我实在是想分享一些东西：</p>
<p>生活与程序都需要系统，代码生活于UNIX，我们生活与China 、US什么的whatever~ 但是系统与“系统”没有本质的区别，如果我们失去的哲学的方向，也许，<strong>UNIX的哲学是一场救赎</strong>。</p>
<p>这一切与编程和无关。</p>
<h3>UNIX 十七戒</h3>
<p>在《UNIX编程艺术》中，作者给了UNIX哲学一些通俗的描述：</p>
<blockquote><p>Unix 哲学（同其它工程领域的民间传统一样）是自下而上的，而不是自上而下的。</p>
<p>Unix 哲学<strong>注重实效</strong>，立足于<strong>丰富的经验</strong>。你不会在正规方法学和标准中找到它，它更接</p>
<p>近于隐性的半本能的知识，即Unix 文化所传播的专业经验。它鼓励那种<strong>分清轻重缓急的</strong></p>
<p><strong> </strong><strong>感觉</strong>，以及<strong>怀疑一切的态度</strong>，并鼓励你以<strong>幽默达观的态度</strong>对待这些。</p></blockquote>
<p>UNIX有很多复杂的哲学、也有很多领域内如同马克思黑格尔之类的灵魂人物，每个人有不同的说法，然而他们的思想一致的看起来都有些假。仿佛他们开了个代表大会商量过一样。这些<strong>哲学</strong>莫不如说是他们手中诞生代码的<strong>行为准则</strong>，作者将这些原则总结成了UNIX的十七条戒律，这是他们在程序世界中的定义：</p>
<blockquote><p>1. 模块原则：使用简洁的接口拼合简单的部件。</p>
<p>2. 清晰原则：清晰胜于机巧。</p>
<p>3. 组合原则：设计时考虑拼接组合。</p>
<p>4. 分离原则：策略同机制分离，接口同引擎分离。</p>
<p>5. 简洁原则：设计要简洁，复杂度能低则低。</p>
<p>6. 吝啬原则：除非确无它法，不要编写庞大的程序。</p>
<p>7. 透明性原则：设计要可见，以便审查和调试。</p>
<p>8. 健壮原则：健壮源于透明与简洁。</p>
<p>9. 表示原则：把知识叠入数据以求逻辑质朴而健壮。</p>
<p>10. 通俗原则：接口设计避免标新立异。</p>
<p>11. 缄默原则：如果一个程序没什么好说的，就沉默。</p>
<p>12. 补救原则：出现异常时，马上退出并给出足够错误信息。</p>
<p>13. 经济原则：宁花机器一分，不花程序员一秒。</p>
<p>14. 生成原则：避免手工hack，尽量编写程序去生成程序。</p>
<p>15. 优化原则：雕琢前先要有原型，跑之前先学会走。</p>
<p>16. 多样原则：决不相信所谓“不二法门”的断言。</p>
<p>17. 扩展原则：设计着眼未来，未来总比预想来得快。</p></blockquote>
<p>这些看起来有些太专业了，然而他们着实可以运用于我们的日常生活：</p>
<h5>1、模块原则： 没有万能药</h5>
<p>不要指望生命中你能创造一个万能的自我角色，你就如同程序中的一个模块，你要做的是<strong>简洁而准确</strong>的做好自己的事情，你做的事情将与这个世界上所有的其他人一起，构成这个世界完整的功能。</p>
<h5>2、清晰原则： 清晰胜于机巧</h5>
<p>用清晰的方法做事，不要饶太多的弯子，否则总有一天自己会被自己的弯子绕晕。</p>
<h5>3、组合原则： 沟通十分重要</h5>
<p>正如程序中模块之间要通信一样，人要学会与别人沟通，从别人那里正确的了解信息，并且向别人清晰的输出你能提供的信息。不在于沟通的多么优雅，而在于让对方感到<strong>舒适，</strong>并<strong>清晰</strong>的得到你要表达的东西（正如数据的传输一样）。</p>
<h5>4、分离原则：分清不同的角色</h5>
<p>正如程序的设计需要分层一样，人的生活也要分层。你有家庭环境，有与朋友、同事一起工作的环境。认清自己的角色，而把所有的事情都混为一谈的做法是危险的，无论对自己、他人还是整个“系统”而言。</p>
<h5>5、简洁原则：简洁即美</h5>
<blockquote><p>“错综复杂的美妙事物”听来自相矛盾。Unix 程序员相互比的是谁能够做到“简</p>
<p>洁而漂亮”并以此为荣，这一点虽然只是隐含在这些规则之中，但还是很值得公开</p>
<p>提出来强调一下。</p>
<p>—Doug McIlroy</p></blockquote>
<p>大道至简，不要仅仅因为虚荣心理就去鼓捣那些最错综复杂的东西。了解你该做什么，用简洁的方式做好它。</p>
<h5>6 、吝啬原则: 如果你明知道没有用，那就不要做</h5>
<p>不要浪费时间在犯过的错误或者已经证实无用的工作上，鼓起勇气走新路是好事儿，鼓起勇气跳进陷阱只能叫做愚勇。</p>
<h5>7、透明性原则： 让事情有条理</h5>
<p>生活有时候会有很多bug，就像软件崩溃了一样，一个有条理的设计能让你一眼看出问题出在哪儿，生活也是如此，在你能掌控的范围内保证事情条理清晰绝对没有坏处。</p>
<h5>8、健壮原则:   磨练自己，或是给自己留条后路</h5>
<p>生活无处不在的压力面前，不一定你的生活系统就是十全十美的，当然，你要保证考虑到了<strong>所有可能发生的最坏情况</strong>，和<strong>如何去处理你考虑不到的应急情况。</strong>这确实需要磨练和经验，然而重要的是意识，最起码的一点，在可能的时候要给自己留后路。</p>
<h5>9、表示原则:   自己有什么和想要什么</h5>
<p>生活和程序无论如何都会有输出，如果你的生活和程序都正常并符合“哲理”，那么没有什么“输出”是没用的，正如Rob Pike, 最伟大的C 语言大师之一, 在《Notes on C Programming》中所说的那样：编程的核心是数据结构，而不是算法。同理，我们生活的核心不是我们怎么做了什么事儿，而是<strong>我们所有的东西和所寻求的东西</strong>，正如那些数据一样重要。你可以用很笨的方法搞到你要的，然而如果你不知道它们是啥或是不知道它们被你放在了哪儿，那就麻烦了。</p>
<h5>10、通俗原则： 创新不等于毫无来由的标新立异和自作聪明</h5>
<p>不要把事情都寄托在别人能谁够理解你的基础上，特别是你自认为与众不同的时候。尽量和大家一样做事，所谓低调做人。如果你有真正的创新，它不久就会变成这个庞大系统的新的“通俗原则”，所以不必担心自己碌碌无为。</p>
<h5>11、缄默原则：如果没什么好说的，就保持沉默</h5>
<p>不经过大脑的胡说八道是没有任何好处的，发表意见要经过认真的思考，确定是否有必要之后在一个正确的时机、在一个正确的地点，说给正确的人。正如一个程序一样，你觉得某些软件的弹窗在你不需要的时候会让你有好感吗？</p>
<h5>12、补救原则: 老老实实的承认错误并在第一时间补救</h5>
<p>在出了错误的时候，不要狡辩或是为了“面子”做无谓的行为，要赶快集中精力将你的错误造成的损失降到最低。这无论是从自身发展角度还是对于别人和你的工作都是最好的选择。</p>
<p>这 里还有一个原则：“宽容地收，谨慎地发”，要尽量包容别人，而在自己做事情的时候要谨慎，即使出错也要保证明确的知道自己错在哪儿，以便自己更正或是在别人的帮助下更正自己的行为。</p>
<h5>13、经济原则:   把能省的时间都省掉</h5>
<p>时间和精力的价值绝对大于金钱，所以，在这个庞大的社会系统中，我们把精力集中与我们擅长的事情上，而其他的事情交给其他的人去做。所谓术业有专攻，正如“宁花机器一分，不花程序员一秒”，生活中我们学会要把事情交给社会这台“机器”去做。</p>
<h5>14、生成原则:  把事情按照顺序串起来，而不是一个个手工的去做</h5>
<p>工作、知识和机遇有时候是有继承关系的，就像一些程序可以去配置和生成另一些程序，我们不必也不应该浪费时间去一点点找和做，如果我们掌握了使用这个顺序的方法，就可以更轻松的生活。</p>
<h5>15、 优化原则: 雕琢前先得有原型，跑之前先学会走</h5>
<p>不要想着你做的事情一下子就是最好的，事情都要有循序渐进的过程，而且大部分时候你会做的很烂，别灰心，优化和进步都要一点点进行。</p>
<h5>16、 多样原则 : 你完全不可能完全独立于其他人，也不可能永远不改变自己</h5>
<p>一个僵化、封闭、不愿与外界沟通的软件，简直就是一种病态的傲慢。人也是如此，你和这个世界永远脱不了干系，而且你总要不断的完善自己使自己适应社会，不可能有人一出生就什么都应付得来。</p>
<h5>17、扩展原则:   着眼未来，未来总比预想快。</h5>
<p>这条本身就是它的原则。</p>
<p>综上十七条，广阔而全面的概括了UNIX的哲学准则，然而，我还是喜欢一些总括的哲学总结：</p>
<h3>UNIX的原则</h3>
<p>更好的，或者说我更喜欢的表述是Unix 管道的发明人、Unix 传统的奠基人之一的Doug McIlroy 在[McIlroy78]中所说的：</p>
<blockquote><p>Write programs that do one thing and do it well.</p>
<p>只做一件事，并把它做好</p>
<p>Write programs to work together.</p>
<p>以团队的方式合作</p>
<p>Write programs to handle text streams, becauset hat is a universal interface.</p>
<p>时刻面对挑战，牢记你面对的是整个世界</p></blockquote>
<p>我的翻译出于我对这些原则的理解，当然，还有一个更好的原则，那就是各种编程大师们奉为圭臬的“KISS”原则：</p>
<p><a href="http://www.flickr.com/photos/sigmax6/5158202760/"><span style="color: #222222;"> </span><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; padding-top: 0px; border: 0px;" title="Unix01" src="http://sigmav.net/wp-content/uploads/2010/11/Unix01.png" border="0" alt="Unix01 UNIX的救赎" width="526" height="258" /></a></p>
<p>我不知道如何翻译这个原则，我也不想翻译它，因为它的韵味本身就是它原则的组成部分。正如之前乔布斯大神演讲中提到过的“Stay  hungry,Stay  foolish”一样，还是原汁原味一点比较好吧。每个人有不同的理解，但是它的内容是明显的。<strong>生活并没有那么复杂，而把它变复杂的正是我们自己。</strong></p>
<h3><strong>救赎</strong></h3>
<p>这个词用的有些大了，然而我指的是救赎我自己，恐怕也不过分，但愿这些原则能让我活的更加简单，而不会因为某数字和某企鹅的娱乐新闻而动摇自己，也不会为了高墙之内的各种不给力事件而碌碌无为，总有一些事情需要我去做，而我只需要做好自己。我知道我改变不了什么，但愿UNIX能，当然，我也有自己的原则，虽然同样是借来的：</p>
<blockquote><p><span style="color: #222222; background-color: #ffffff;">世界由两部分组成，你和除了你之外的一切，改变了自己，就改变了世界的一半。</span></p></blockquote>
<p>当我们都能够用自己的原则与UNIX作比较的时候，我们会发现我们的“系统”中，所看到的种种丑态，都是些浮云罢了。</p>
<p>一个Shell，一次救赎，一个clear，还原我世界原本的样子。</p>
]]></content:encoded>
			<wfw:commentRss>http://sigmav.net/2010/11/08/unix%e7%9a%84%e6%95%91%e8%b5%8e/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress for android试用</title>
		<link>http://sigmav.net/2010/09/04/wordpress-for-android%e8%af%95%e7%94%a8/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-for-android%25e8%25af%2595%25e7%2594%25a8</link>
		<comments>http://sigmav.net/2010/09/04/wordpress-for-android%e8%af%95%e7%94%a8/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 16:13:48 +0000</pubDate>
		<dc:creator>西玛哒</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[IT悟语]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://sigmav.net/2010/09/wordpress-for-android%e8%af%95%e7%94%a8/</guid>
		<description><![CDATA[  和我的“欲望”邂逅已经转眼间成为过去时了。不知不觉已经忘掉了s60下那极卡无比的用户体验。android确实很华丽，操作也十分流畅。   正因为此，这个必争之地也让之前用户千求万求的官方级应用成了标准配置。比如wordpress。我一向认为官方的东西做的不会太精致，看来这也分场合。   功能基本上全了，起码发文章传图片不是大问题，要改的着实也有，不过，一个好的开始是很让人欣慰的^-^。   本文通过wordpress for android发送。]]></description>
			<content:encoded><![CDATA[<p>  和我的“欲望”邂逅已经转眼间成为过去时了。不知不觉已经忘掉了s60下那极卡无比的用户体验。android确实很华丽，操作也十分流畅。<br />
  正因为此，这个必争之地也让之前用户千求万求的官方级应用成了标准配置。比如wordpress。我一向认为官方的东西做的不会太精致，看来这也分场合。<br />
  功能基本上全了，起码发文章传图片不是大问题，要改的着实也有，不过，一个好的开始是很让人欣慰的^-^。<br />
  本文通过wordpress for android发送。</p>
]]></content:encoded>
			<wfw:commentRss>http://sigmav.net/2010/09/04/wordpress-for-android%e8%af%95%e7%94%a8/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Linux系统管理之植物大战僵尸（二）</title>
		<link>http://sigmav.net/2010/04/27/linux%e7%b3%bb%e7%bb%9f%e7%ae%a1%e7%90%86%e4%b9%8b%e6%a4%8d%e7%89%a9%e5%a4%a7%e6%88%98%e5%83%b5%e5%b0%b8%ef%bc%88%e4%ba%8c%ef%bc%89/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=linux%25e7%25b3%25bb%25e7%25bb%259f%25e7%25ae%25a1%25e7%2590%2586%25e4%25b9%258b%25e6%25a4%258d%25e7%2589%25a9%25e5%25a4%25a7%25e6%2588%2598%25e5%2583%25b5%25e5%25b0%25b8%25ef%25bc%2588%25e4%25ba%258c%25ef%25bc%2589</link>
		<comments>http://sigmav.net/2010/04/27/linux%e7%b3%bb%e7%bb%9f%e7%ae%a1%e7%90%86%e4%b9%8b%e6%a4%8d%e7%89%a9%e5%a4%a7%e6%88%98%e5%83%b5%e5%b0%b8%ef%bc%88%e4%ba%8c%ef%bc%89/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 14:43:53 +0000</pubDate>
		<dc:creator>西玛哒</dc:creator>
				<category><![CDATA[IT悟语]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://sigmav.net/?p=38883</guid>
		<description><![CDATA[//本来想明天发的，然而，由于一些原因，还是赶出来吧 //版权问题，恩 我什么都不知道 日子过了一天又一天的过去了，僵尸和植物们在你的计算机系统里面相处的很和睦，你也陆陆续续为很多植物和僵尸建立了他们的用户，直到有一天你对他们说你打算读博士的事情，导致大家的心情很不好：植物们担心你会读僵尸专业的博士，而僵尸们却又担心你读植物学博士，就在你的犹豫中，僵尸们聘请来了Dr.Zomboss，作为他们的特别好友顾问…… 本次的考验是以上次题目为基础制作的，因此，如果没有或者删除了上次的东西，还要做些准备工作。 首先，建立两个组，分别为Plants和Zombies，分别存放僵尸与植物。 命令： groupadd -g (gid) groupname 代码： #groupadd -g 1003 Plants #groupadd -g 1004 Zombies 在两个组中增加一些用户 命令： #useradd -m -g (groupname) (username) Dr.Zomboss刚刚入住到大脑技术开发区8号路，就给你列出来一些你必须帮他解决的问题： a) 列出你的计算机系统上现在僵尸组有哪些用户，植物组有哪些用户？(植物用户们所在组叫做Plants，gid=1003；僵尸用户们所在组叫做Zombies，gid=1004。可以先用grep抓取用户文件中的:gid:取得对应组用户的每行内容，然后使用awk截取其中使用:分割出来的第一列，要求将awk的内容保存在文件中，起名叫做abc.awk(外部脚本)，请写出你所执行的这条命令，以及你的abc.awk文件中的内容)。 我们知道，用户信息存放在/etc/passde文件中，因此，我们需要首先从/etc/passwd中获取两个组pid对应的用户信息 命令： #grep gid):: /etc/passwd                    //gid要换成组号 如1003 grep 命令可以通过例如:1003:： 匹配所有包含这个信息的行（grep的用法请man） 获取的信息通过管道传送给awk 截取第一列输出 grep gid):: /etc/passwd&#124;awk -F&#8221;:&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>//本来想明天发的，然而，由于一些原因，还是赶出来吧</p>
<p>//版权问题，恩 我什么都不知道</p>
<div><strong>日子过了一天又一天的过去了，僵尸和植物们在你的计算机系统里面相处的很和睦，你也陆陆续续为很多植物和僵尸建立了他们的用户，直到有一天你对他们说你打算读博士的事情，导致大家的心情很不好：植物们担心你会读僵尸专业的博士，而僵尸们却又担心你读植物学博士，就在你的犹豫中，僵尸们聘请来了Dr.Zomboss，作为他们的特别好友顾问……</strong></div>
<div>本次的考验是以上次题目为基础制作的，因此，如果没有或者删除了上次的东西，还要做些准备工作。</div>
<div>首先，建立两个组，分别为Plants和Zombies，分别存放僵尸与植物。</div>
<div>命令：</div>
<blockquote>
<div>groupadd -g (gid) groupname</div>
</blockquote>
<div>代码：</div>
<blockquote>
<div>#groupadd -g 1003 Plants</div>
<div>#groupadd -g 1004 Zombies</div>
</blockquote>
<div>在两个组中增加一些用户</div>
<div>命令：</div>
<blockquote>
<div>#useradd -m -g (groupname) (username)</div>
</blockquote>
<div><strong><span style="text-decoration: underline;">Dr.Zomboss刚刚入住到大脑技术开发区8号路，就给你列出来一些你必须帮他解决的问题：</span></strong></div>
<div><strong><span style="text-decoration: underline;"> a) 列出你的计算机系统上现在僵尸组有哪些用户，植物组有哪些用户？(植物用户们所在组叫做Plants，gid=1003；僵尸用户们所在组叫做Zombies，gid=1004。可以先用grep抓取用户文件中的:gid:取得对应组用户的每行内容，然后使用awk截取其中使用:分割出来的第一列，要求将awk的内容保存在文件中，起名叫做abc.awk(外部脚本)，请写出你所执行的这条命令，以及你的abc.awk文件中的内容)。</span></strong></div>
<div>我们知道，用户信息存放在/etc/passde文件中，因此，我们需要首先从/etc/passwd中获取两个组pid对应的用户信息</div>
<div>命令：</div>
<blockquote>
<div>#grep <img src='http://sigmav.net/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Linux系统管理之植物大战僵尸（二）" class='wp-smiley' title="Linux系统管理之植物大战僵尸（二）" /> gid):: /etc/passwd                    //gid要换成组号 如1003</div>
</blockquote>
<div>grep 命令可以通过例如:1003:： 匹配所有包含这个信息的行（grep的用法请man）</div>
<div>获取的信息通过管道传送给awk 截取第一列输出</div>
<blockquote>
<div>grep <img src='http://sigmav.net/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Linux系统管理之植物大战僵尸（二）" class='wp-smiley' title="Linux系统管理之植物大战僵尸（二）" /> gid):: /etc/passwd|awk -F&#8221;:&#8221; &#8216;{print $1}&#8217;</div>
</blockquote>
<div><img class="size-full wp-image-38885 aligncenter" title="Selection_005" src="http://www.sigmav.net/wp-content/uploads/2010/04/Selection_005.png" alt="Selection 005 Linux系统管理之植物大战僵尸（二）" width="728" height="144" /></div>
<div>awk主要作用是分割信息流，-F“：”表示用：符号分割信息，并将第一列（$1）输出</div>
<div>若采取awk脚本，原理相同：</div>
<blockquote>
<div>#vim getusr.awk</div>
<div>BEGIN{</div>
<div>FS=&#8221;:&#8221;                      //设置分割符为 ：</div>
<div>}</div>
<div>{print $1}               //输出</div>
</blockquote>
<div>使用awk脚本进行输出，并将结果保存到文件中备用</div>
<blockquote>
<div><span style="white-space: pre;"> </span>#Grep <img src='http://sigmav.net/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Linux系统管理之植物大战僵尸（二）" class='wp-smiley' title="Linux系统管理之植物大战僵尸（二）" /> gid):: /etc/passwd|awk -f getusr.awk</div>
<div><span style="white-space: pre;"> </span>#Grep <img src='http://sigmav.net/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Linux系统管理之植物大战僵尸（二）" class='wp-smiley' title="Linux系统管理之植物大战僵尸（二）" /> gid):: /etc/passwd|awk -f getusr.awk &gt; ~/tmp/Zombies_Users</div>
</blockquote>
<div><img class="aligncenter size-full wp-image-38886" title="Selection_006" src="http://www.sigmav.net/wp-content/uploads/2010/04/Selection_006.png" alt="Selection 006 Linux系统管理之植物大战僵尸（二）" width="723" height="113" /></div>
<div><strong><span style="text-decoration: underline;">b) 若上面找出的Zombies组的用户名已经保存~/temp/Zombies_Users的文件中，请你至少提供使用两条不同的命令过滤并打印出包含有“Zombies(不区分Z字母大小写)字符串的用户名，写出这两条不同的命令(可以使用grep、perl或sed等)。</span></strong></div>
<div>建立两个测试用户： zombietester nozombiys</div>
<div>使用grep：</div>
<blockquote>
<div>#grep  -E [Zz]ombies ~/tmp/Zombies_Users             //正则表达式匹配[Zz]就是不区分大小写</div>
</blockquote>
<div>使用Sed：</div>
<blockquote>
<div>sed  -n -e [Zz]ombies ~/tmp/Zombies_Users                    //同上</div>
</blockquote>
<div><img class="aligncenter size-full wp-image-38887" title="Selection_008" src="http://www.sigmav.net/wp-content/uploads/2010/04/Selection_008.png" alt="Selection 008 Linux系统管理之植物大战僵尸（二）" width="602" height="99" /></div>
<div><strong><span style="text-decoration: underline;">c) Dr.Zomboss带来了自己的笔记本电脑，他想让你给他共享一下你的互联网，以便他也能够上网。(共享上网实际上就是在你的计算机上构建一套NAT系统，其工作包括打开proc文件系统中的IPv4转发功能，用iptables命令设置内部网络(192.168.0.0/24)能够通过你的以太网口eth0伪装上网，请列出你所执行的命令)。</span></strong></div>
<div>首先进行本地网络的构建本机用Virtualbox组网，Host（Debian）能够通过eth0访问网络，ip地址为10.0.2.15</div>
<div>同时有网卡eth1，ip地址192.168.0.1，Guest机（Windows）eth1 ip地址为192.168.0.88，与Host机eth1网卡直连。</div>
<div><em>（TODO：会尽快写出virtualbox中本地虚拟局域网的配置方法）</em></div>
<div>在Host机上进行相关网络配置：</div>
<div><img class="aligncenter size-full wp-image-38888" title="Selection_010" src="http://www.sigmav.net/wp-content/uploads/2010/04/Selection_010.png" alt="Selection 010 Linux系统管理之植物大战僵尸（二）" width="718" height="311" /></div>
<div>开启IPv4转发：</div>
<blockquote>
<div>#echo 1 &gt; /proc/sys/net/ipv4/ip_forward</div>
</blockquote>
<div>进行NAT系统构建，通过Host的eth0口转发：</div>
<blockquote>
<div>#iptables -t nat -F     //免除之前的干扰，清空原有nat配置</div>
<div>#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT &#8211;to-source 10.0.2.15      //设置SNAT</div>
</blockquote>
<p style="text-align: auto;"><img class="aligncenter size-full wp-image-38889" title="Selection_014" src="http://www.sigmav.net/wp-content/uploads/2010/04/Selection_014.png" alt="Selection 014 Linux系统管理之植物大战僵尸（二）" width="728" height="195" /></p>
<div>经过配置，已经可以通过NAT实现Guest机通过eth0口访问网络。</div>
<div><strong><span style="text-decoration: underline;">在Dr.Zomboss的带领下，僵尸们纷纷购买了笔记本电脑，他们认为你的四核计算机甚至没有TP-LINK的宽带路由器好用，因为你的计算机没有一个能够为他们自己分配IP地址、网关和DNS的服务，他们要求安装这个服务并完成IP地址、网关和DNS的自动分配(提示，安装DHCP服务，建议使用dhcp3-server软件，并设置向下分配的DNS为210.30.96.2，分配的IP地址段为192.168.1.100至192.168.1.200，分配的默认网关是192.168.1.1。</span></strong></div>
<div><strong><span style="font-weight: normal; ">首先需要在Host机Debian上安装dhcp3-server软件：</span></strong></div>
<blockquote>
<div>#apt-get install dhcp3-server</div>
</blockquote>
<div>配置dhcp3-server的配置文件:</div>
<div>设置子网自动获取IP地址与DNS 范围在192.168.0.100 到192.168.0.200之间</div>
<blockquote>
<div>#vim /etc/dhcp3/dhcpd.comf</div>
</blockquote>
<div>######################dhcpd.comf############################</div>
<blockquote>
<div>ddns-update-style none;</div>
<div>option domain-name &#8220;sigmav.debian&#8221;;                    //名称</div>
<div>option domain-name-servers xxx.xx.xx.xx;    //DNS地址</div>
<div>default-lease-time 3600;</div>
<div>max-lease-time 7200;</div>
<div>subnet 192.168.0.0 netmask 255.255.255.0 {   //网段 地址设置</div>
<div>range 192.168.0.100 192.168.0.200;</div>
<div>option routers 192.168.0.1;                                     //设置网关</div>
<div>}</div>
</blockquote>
<div>###########################################################</div>
<div>重启dhcp3-server服务</div>
<blockquote>
<div>#/etc/init.d/dhcp3-server restart</div>
</blockquote>
<div>查看启动信息</div>
<blockquote>
<div>#tail /var/log/message            //验证安装</div>
</blockquote>
<div>通过以上配置Guest机通过设置DHCP自动获取功能，可以实现上网。</div>
<div><strong><span style="text-decoration: underline;">3. 写一个脚本：每隔五分钟运行一次，将当前的时间和当前的CPU空闲率(平均值)保存在一个名为“年-月-日的文件(文件位于/var/log文件夹下)，例如/var/log/2010-04-13文件中保存这一天如下格式的内容：</span></strong></div>
<div><strong><span style="text-decoration: underline;">2-05-99.01    其中2-05表示记录的时间是2点5分，99.01表示当前的CPU空闲率是99.01%。</span></strong></div>
<div>建立脚本文件~/Shells/cpulog.sh 内容如下：</div>
<div>关于脚本的写法，建议参看《Linux Shell Scripting with Bash》</div>
<div>注意脚本中，变量获取要用&#8220;括起来。</div>
<div>#########################CPULOG.SH##################################</div>
<blockquote>
<div>#!/bin/bash</div>
<div># A sh to log the cpu idle rate to $log file</div>
<div># Sigmax6@Sigmav.net</div>
<div># Prepare the files</div>
<div>logdate=`date +%F`;               #  获取变量logdate ，date +%F 是获取YYYY-MM-DD  格式的日期</div>
<div># log=`/var/log/$logdate`;         最终要获取/var/log/$logdate文件进行输出</div>
<div>#//&#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;&#8212;&#8212;&#8212;&#8212;&#8212;</div>
<div># Calc the cpu idle rate               计算CPU使用率</div>
<div>#当然 如果安装了sysstat 可以直接 sar -u 1 获取cpu使用率</div>
<div>#idlerate=`sar -u 1 | tail -1 | awk &#8216;{print $8}&#8217;`;       用sar获取cpu使用率 最后一行第八列是平均空闲率</div>
<div>#//&#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;&#8212;&#8212;&#8212;&#8212;&#8212;</div>
<div># Cpu idle rate=100*idle/(CPUTIME=user+nice+system+idle+iowait+irq+softirq)</div>
<div># Set two time point to take the idle1 idle2 &amp;&amp; CPUTIME1 CPUTIME2</div>
<div># The avg is 100*(idle2-idle1)/(CPUTIME2-CPUTIME1)</div>
<div>idle1=`head -1 /proc/stat | awk &#8216;{print $5}&#8217;`;</div>
<div>CPUTIME1=`head -1 /proc/stat | awk &#8216;{print $2+$3+$4+$5+$6+$7+$8}&#8217;`;</div>
<div># Sleep 10 s to reach timepoint 2</div>
<div>sleep 10;                 #等待10s 建立两个时间点用来计算平均值</div>
<div># End of Sleep</div>
<div>idle2=`head -1 /proc/stat | awk &#8216;{print $5}&#8217;`;</div>
<div>CPUTIME2=`head -1 /proc/stat | awk &#8216;{print $2+$3+$4+$5+$6+$7+$8}&#8217;`;</div>
<div>idle=$[$idle2-$idle1];            #时间段内空闲时间差</div>
<div>CPUTIME=$[$CPUTIME2-$CPUTIME1]; #时间段内CPU总时间差</div>
<div># Use bd to calc the float numbers</div>
<div>idlerate=$(echo &#8220;scale=2;100*$idle/$CPUTIME&#8221;|bc);    #这里使用bc命令，将除法交由bc运算，设置</div>
<p>#scale=2保证两位小数。</p>
<div># Set the log time info as ?H-mm-idlerate</div>
<div>timeinfo=`date +%k-%M-`;                                                      #设置log项的头部信息 xH-mm格式</div>
<div># Out put log file</div>
<div>if test -f /var/log/$logdate; then</div>
<div>echo &#8220;$timeinfo$idlerate&#8221; &gt;&gt; /var/log/$logdate;              #如果文件存在，则追加</div>
<div>else</div>
<div>echo &#8220;$timeinfo$idlerate&#8221; &gt; /var/log/$logdate;                 #如果不存在，则创建写入</div>
<div>fi</div>
</blockquote>
<div>############################################################</div>
<div>2、修改/etc/crontab 文件 增加计划任务：</div>
<blockquote>
<div>*/5 *  * * *  root  /root/Shells/cpulog.sh</div>
</blockquote>
<div>重新启动cron服务 使计划任务生效。</div>
<blockquote>
<div>#/etc/init.d/cron restart</div>
</blockquote>
<div><img class="aligncenter size-full wp-image-38890" title="Selection_019" src="http://www.sigmav.net/wp-content/uploads/2010/04/Selection_019.png" alt="Selection 019 Linux系统管理之植物大战僵尸（二）" width="315" height="86" /></div>
<p>#################################################################</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">日子过了一天又一天的过去了，僵尸和植物们在你的计算机系统里面相处的很和睦，你也陆陆续续为很多植物和僵尸建立了他们的用户，直到有一天你对他们说你打算读博士的事情，导致大家的心情很不好：植物们担心你会读僵尸专业的博士，而僵尸们却又担心你读植物学博士，就在你的犹豫中，僵尸们聘请来了Dr.Zomboss，作为他们的特别好友顾问……</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">进行题目前，为了方便测试，先进行一些准备工作。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">首先，建立两个组，分别为Plants和Zombies，分别存放僵尸与植物。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">命令：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Groupadd -g (gid) groupname</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">代码：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Groupadd -g 1003 Plants</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Groupadd -g 1004 Zombies</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">在两个组中增加一些用户</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">命令：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Useradd -m -g (groupname) (username)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Dr.Zomboss刚刚入住到大脑技术开发区8号路，就给你列出来一些你必须帮他解决的问题： a) 列出你的计算机系统上现在僵尸组有哪些用户，植物组有哪些用户？(植物用户们所在组叫做Plants，gid=1003；僵尸用户们所在组叫做Zombies，gid=1004。可以先用grep抓取用户文件中的:gid:取得对应组用户的每行内容，然后使用awk截取其中使用:分割出来的第一列，要求将awk的内容保存在文件中，起名叫做abc.awk(外部脚本)，请写出你所执行的这条命令，以及你的abc.awk文件中的内容)。10’</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">首先从/etc/passwd中获取两个组pid对应的用户信息</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">命令：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Grep <img src='http://sigmav.net/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Linux系统管理之植物大战僵尸（二）" class='wp-smiley' title="Linux系统管理之植物大战僵尸（二）" /> gid):: /etc/passwd</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">获取的信息通过管道传送给awk 截取第一列输出</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Grep <img src='http://sigmav.net/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Linux系统管理之植物大战僵尸（二）" class='wp-smiley' title="Linux系统管理之植物大战僵尸（二）" /> gid):: /etc/passwd|awk -F&#8221;:&#8221; &#8216;{print $1}&#8217;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">若采取awk脚本，原理相同：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#vim getusr.awk</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">BEGIN{</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">FS=&#8221;:&#8221;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">{print $1}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>#Grep <img src='http://sigmav.net/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Linux系统管理之植物大战僵尸（二）" class='wp-smiley' title="Linux系统管理之植物大战僵尸（二）" /> gid):: /etc/passwd|awk -f getusr.awk</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>#Grep <img src='http://sigmav.net/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Linux系统管理之植物大战僵尸（二）" class='wp-smiley' title="Linux系统管理之植物大战僵尸（二）" /> gid):: /etc/passwd|awk -f getusr.awk &gt; ~/tmp/Zombies_Users</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">b) 若上面找出的Zombies组的用户名已经保存~/temp/Zombies_Users的文件中，请你至少提供使用两条不同的命令过滤并打印出包含有“Zombies(不区分Z字母大小写)字符串的用户名，写出这两条不同的命令(可以使用grep、perl或sed等)。6’</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">建立两个测试用户： zombietester nozombiys</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">使用grep：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">grep  -E [Zz]ombies ~/tmp/Zombies_Users</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">使用Sed：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">sed  -n -e [Zz]ombies ~/tmp/Zombies_Users</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">c) Dr.Zomboss带来了自己的笔记本电脑，他想让你给他共享一下你的互联网，以便他也能够上网。(共享上网实际上就是在你的计算机上构建一套NAT系统，其工作包括打开proc文件系统中的IPv4转发功能，用iptables命令设置内部网络(192.168.0.0/24)能够通过你的以太网口eth0伪装上网，请列出你所执行的命令)。12’</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">首先进行本地网络的构建，Host（Debian）能够通过eth0访问网络，ip地址为10.0.2.15</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">同时有网卡eth1，ip地址192.168.0.1，Guest机（Windows）eth1 ip地址为192.168.0.88，与Host机eth1网卡直连。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">在Host机上进行相关网络配置：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">开启IPv4转发：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#echo 1 &gt; /proc/sys/net/ipv4/ip_forward</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">进行NAT系统构建，通过Host的eth0口转发：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#iptables -t nat -F     //免除之前的干扰，清空原有nat配置</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT &#8211;to-source 10.0.2.15</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">经过配置，已经可以通过NAT实现Guest机通过eth0口访问网络。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">在Dr.Zomboss的带领下，僵尸们纷纷购买了笔记本电脑，他们认为你的四核计算机甚至没有TP-LINK的宽带路由器好用，因为你的计算机没有一个能够为他们自己分配IP地址、网关和DNS的服务，他们要求安装这个服务并完成IP地址、网关和DNS的自动分配(提示，安装DHCP服务，建议使用dhcp3-server软件，并设置向下分配的DNS为210.30.96.2，分配的IP地址段为192.168.1.100至192.168.1.200，分配的默认网关是192.168.1.1，请在本题目中写出使用apt-get安装该软件的命令，以及你在该软件的配置文件(这个自己上网找找?)中的设置)。10’</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">安装dhcp3-server软件：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#apt-get install dhcp3-server</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">配置dhcp3-server的配置文件:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">设置子网自动获取IP地址与DNS 范围在192.168.0.100 到192.168.0.200之间</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#vim /etc/dhcp3/dhcpd.comf</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">######################dhcpd.comf############################</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">ddns-update-style none;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">option domain-name &#8220;sigmav.debian&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">option domain-name-servers 210.30.96.2,202.118.66.6,202.118.66.8;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">default-lease-time 3600;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">max-lease-time 7200;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">subnet 192.168.0.0 netmask 255.255.255.0 {</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">range 192.168.0.100 192.168.0.200;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">option routers 192.168.0.1;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">重启dhcp3-server服务</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#/etc/init.d/dhcp3-server restart</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">查看启动信息</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#tail /var/log/message</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">通过以上配置Guest机通过设置DHCP自动获取功能，可以实现上网。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">3. 写一个脚本：每隔五分钟运行一次，将当前的时间和当前的CPU空闲率(平均值)保存在一个名为“年-月-日的文件(文件位于/var/log文件夹下)，例如/var/log/2010-04-13文件中保存这一天如下格式的内容：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">2-05-99.01    其中2-05表示记录的时间是2点5分，99.01表示当前的CPU空闲率是99.01%。(提示，获取当前CPU空闲率使用sar命令“sar –u 1即可，需要抓取平均值，并用awk截取CPU空闲率一列，脚本的定时运行需要使用计划任务，时间日期的特定写法需要使用date命令，脚本中的打印输出可以使用echo命令，本题目要求列出你对计划任务列表文件的修改，以及修改后生效的方法；列出你的脚本文件的内容；当然鼓励用其他使用脚本完成的方法)。14’    1、建立脚本文件~/Shells/cpulog.sh 内容如下：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#########################CPULOG.SH##################################</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#!/bin/bash</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># A sh to log the cpu idle rate to $log file</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Sigmax6@Sigmav.net</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Prepare the files</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">logdate=`date +%F`;               #The name of the log YYYY-MM-DD</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># log=`/var/log/$logdate`;         #Path of the log file</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Calc the cpu idle rate</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Cpu idle rate=100*idle/(CPUTIME=user+nice+system+idle+iowait+irq+softirq)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Set two time point to take the idle1 idle2 &amp;&amp; CPUTIME1 CPUTIME2</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># The avg is 100*(idle2-idle1)/(CPUTIME2-CPUTIME1)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">idle1=`head -1 /proc/stat | awk &#8216;{print $5}&#8217;`;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">CPUTIME1=`head -1 /proc/stat | awk &#8216;{print $2+$3+$4+$5+$6+$7+$8}&#8217;`;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Sleep 10 s to reach timepoint 2</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">sleep 10;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># End of Sleep</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">idle2=`head -1 /proc/stat | awk &#8216;{print $5}&#8217;`;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">CPUTIME2=`head -1 /proc/stat | awk &#8216;{print $2+$3+$4+$5+$6+$7+$8}&#8217;`;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">idle=$[$idle2-$idle1];</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">CPUTIME=$[$CPUTIME2-$CPUTIME1];</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Use bd to calc the float numbers</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">idlerate=$(echo &#8220;scale=2;100*$idle/$CPUTIME&#8221;|bc);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Set the log time info as ?H-mm-idlerate</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">timeinfo=`date +%k-%M-`;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Out put log file</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">if test -f /var/log/$logdate; then</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;$timeinfo$idlerate&#8221; &gt;&gt; /var/log/$logdate;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">else</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;$timeinfo$idlerate&#8221; &gt; /var/log/$logdate;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">fi</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">############################################################</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">2、修改/etc/crontab 文件 增加计划任务：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">*/5 *  * * *  root  /root/Shells/cpulog.sh</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">重新启动cron服务 使计划任务生效。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#/etc/init.d/cron restart</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">4、查看log文件 验证计划任务已经正常工作。    4. 你的主机被ISP选为了NGN(下一代互联网)的测试用户，他们给你自动分配了一段IPv6的地址，并提出了一些要求： a) 为你的主机添加一条IPv6的DNS服务器2001:da8:8000:1:202:120:2:100</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">b) 测试一下你到主机www.dlut.edu.cn的IPv6链路是否畅通</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">c) 看看你的IPv6链路到主机www.dlut.edu.cn的路由是什么样的</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">A:echo &#8220;nameserver 2001:da8:8000:1:202:120:2:100 &#8220;&gt;&gt; /etc/resolv.conf</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">B:ping6 www.dlut.edu.cn</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">C:traceroute6 www.dlut.edu.cn</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">写出完成上述三条任务所要执行的命令以及其完整参数。8’</div>
]]></content:encoded>
			<wfw:commentRss>http://sigmav.net/2010/04/27/linux%e7%b3%bb%e7%bb%9f%e7%ae%a1%e7%90%86%e4%b9%8b%e6%a4%8d%e7%89%a9%e5%a4%a7%e6%88%98%e5%83%b5%e5%b0%b8%ef%bc%88%e4%ba%8c%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

