<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6616068516723546448</id><updated>2011-11-26T19:52:22.610+08:00</updated><category term='ibus'/><category term='archboot'/><category term='cli'/><category term='synaptics'/><category term='rsync'/><category term='gentoo'/><category term='checkinstall'/><category term='zathura'/><category term='socks'/><category term='ps1'/><category term='tsocks'/><category term='blogspot'/><category term='lenny'/><category term='aria2'/><category term='fontconfig'/><category term='gmlive'/><category term='ntpdate'/><category term='pppoe'/><category term='firefox'/><category term='mutt'/><category term='mouse'/><category term='newsbeuter'/><category term='git'/><category term='nginx'/><category term='grep'/><category term='dpkg'/><category term='xss'/><category term='freebsd'/><category term='vim'/><category term='fstab'/><category term='opera'/><category term='urxvt'/><category term='laptop'/><category term='virtualbox'/><category term='centos'/><category term='openbsd'/><category term='gdm'/><category term='mysql'/><category term='arch'/><category term='paste'/><category term='scrot'/><category term='imgur'/><category term='正则表达式'/><category term='xmame'/><category term='apt'/><category term='screensaver'/><category term='美化'/><category term='game'/><category term='bash'/><category term='flashplayer'/><category term='ntp'/><category term='programe'/><category term='usbdisk'/><category term='wordpress'/><category term='pdf'/><category term='dotfile'/><category term='c'/><category term='生活'/><category term='windowsxp'/><category term='dns'/><category term='黑莓'/><category term='pdnsd'/><category term='proxychains'/><category term='mouse ubuntu'/><category term='ubuntu'/><category term='udev'/><category term='touchpad'/><category term='grub'/><category term='multiple boot'/><category term='smart'/><category term='abs'/><category term='硬件修理'/><category term='ntfs-3g'/><category term='dnsmasq'/><category term='github'/><category term='scim'/><category term='wine'/><category term='tor'/><category term='openoffice'/><category term='gnome'/><category term='source.list'/><category term='daemon'/><category term='ssh tunnel'/><category term='fglrx'/><category term='adsl'/><category term='python'/><category term='shell'/><category term='script'/><category term='sans serif'/><category term='debian'/><category term='mpd'/><category term='自动禁用触摸板'/><category term='flashbeta'/><category term='linux mutiple xfree user'/><category term='irc'/><category term='chmod'/><category term='grub2'/><category term='mkfs'/><category term='netbsd'/><category term='flash64'/><category term='metacity'/><category term='linux'/><category term='screen'/><category term='hack'/><category term='router'/><category term='emacs'/><category term='php'/><category term='gnome shell'/><category term='awesome'/><category term='sawfish'/><category term='irssi'/><category term='ssh'/><category term='混合特效'/><category term='sshd'/><category term='x'/><category term='regex'/><category term='pacman'/><category term='cjb'/><category term='blogger'/><category term='terminal'/><category term='sid'/><category term='qemu'/><category term='serif'/><category term='gmail'/><category term='ipv6'/><title type='text'>Jerry'code</title><subtitle type='html'>jarodlau.blogspot.com

https://github.com/jarodlau

jarodlau.sytes.net</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default?start-index=101&amp;max-results=100'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>224</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-3732149491171050022</id><published>2011-11-13T12:32:00.001+08:00</published><updated>2011-11-13T12:33:57.993+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>让你提升命令行效率的 Bash 快捷键 [完整版]</title><content type='html'>&lt;a href="http://linuxtoy.org/archives/bash-shortcuts.html"&gt;让你提升命令行效率的 Bash 快捷键 [完整版]&lt;/a&gt;: &lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4wCzrwhkeQwlrmBlpZgIxylUS40/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4wCzrwhkeQwlrmBlpZgIxylUS40/0/di" border="0" ismap&gt;&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4wCzrwhkeQwlrmBlpZgIxylUS40/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4wCzrwhkeQwlrmBlpZgIxylUS40/1/di" border="0" ismap&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;生活在 Bash shell&lt;br /&gt;中，熟记以下快捷键，将极大的提高你的命令行操作效率。&lt;span&gt;&lt;/span&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;编辑命令&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Ctrl + a ：移到命令行首&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + e ：移到命令行尾&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + f ：按字符前移（右向）&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + b ：按字符后移（左向）&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Alt  + f ：按单词前移（右向）&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Alt  + b ：按单词后移（左向）&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + xx：在命令行首和光标之间移动&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + u ：从光标处删除至命令行首&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + k ：从光标处删除至命令行尾&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + w ：从光标处删除至字首&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Alt  + d ：从光标处删除至字尾&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + d ：删除光标处的字符&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + h ：删除光标前的字符&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + y ：粘贴至光标后&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Alt  + c ：从光标处更改为首字母大写的单词&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Alt  + u ：从光标处更改为全部大写的单词&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Alt  + l ：从光标处更改为全部小写的单词&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + t ：交换光标处和之前的字符&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Alt  + t ：交换光标处和之前的单词&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Alt  + Backspace：与 Ctrl + w 相同&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;重新执行命令&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Ctrl + r：逆向搜索命令历史&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + g：从历史搜索模式退出&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + p：历史中的上一条命令&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + n：历史中的下一条命令&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Alt  + .：使用上一条命令的最后一个参数&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;控制命令&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Ctrl + l：清屏&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + o：执行当前命令，并选择上一条命令&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + s：阻止屏幕输出&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + q：允许屏幕输出&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + c：终止命令&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ctrl + z：挂起命令&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Bang (!) 命令&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;!!：执行上一条命令&lt;/li&gt;&lt;br /&gt;&lt;li&gt;!blah：执行最近的以 blah 开头的命令，如 !ls&lt;/li&gt;&lt;br /&gt;&lt;li&gt;!blah:p：仅打印输出，而不执行&lt;/li&gt;&lt;br /&gt;&lt;li&gt;!$：上一条命令的最后一个参数，与 Alt + . 相同&lt;/li&gt;&lt;br /&gt;&lt;li&gt;!$:p：打印输出 !$ 的内容&lt;/li&gt;&lt;br /&gt;&lt;li&gt;!*：上一条命令的所有参数&lt;/li&gt;&lt;br /&gt;&lt;li&gt;!*:p：打印输出 !* 的内容&lt;/li&gt;&lt;br /&gt;&lt;li&gt;^blah：删除上一条命令中的 blah&lt;/li&gt;&lt;br /&gt;&lt;li&gt;^blah^foo：将上一条命令中的 blah 替换为 foo&lt;/li&gt;&lt;br /&gt;&lt;li&gt;^blah^foo^：将上一条命令中所有的 blah 都替换为 foo&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;友情提示&lt;/em&gt;：&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;以上介绍的大多数 Bash 快捷键仅当在 emacs 编辑模式时有效，若你将 Bash&lt;br /&gt;配置为 vi 编辑模式，那将遵循 vi 的按键绑定。Bash 默认为 emacs&lt;br /&gt;编辑模式。如果你的 Bash 不在 emacs 编辑模式，可通过 &lt;code&gt;set -o emacs&lt;/code&gt; 设置。&lt;/li&gt;&lt;br /&gt;&lt;li&gt;^S、^Q、^C、^Z 是由终端设备处理的，可用 &lt;code&gt;stty&lt;/code&gt; 命令设置。&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-3732149491171050022?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://linuxtoy.org/archives/bash-shortcuts.html' title='让你提升命令行效率的 Bash 快捷键 [完整版]'/><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/3732149491171050022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=3732149491171050022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3732149491171050022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3732149491171050022'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/11/bash.html' title='让你提升命令行效率的 Bash 快捷键 [完整版]'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-1337325397951742019</id><published>2011-11-07T18:25:00.001+08:00</published><updated>2011-11-07T19:52:23.752+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>linux中查看系统资源占用情况的命令</title><content type='html'>&lt;div class="cnt" id="blog_text"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: 18px;"&gt;top:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;主要参数&lt;br /&gt;d：指定更新的间隔，以秒计算。&lt;br /&gt;q：没有任何延迟的更新。如果使用者有超级用户，则top命令将会以最高的优先序执行。&lt;br /&gt;c：显示进程完整的路径与名称。&lt;br /&gt;S：累积模式，会将己完成或消失的子行程的CPU时间累积起来。&lt;br /&gt;s：安全模式。&lt;br /&gt;i：不显示任何闲置(Idle)或无用(Zombie)的行程。&lt;br /&gt;n：显示更新的次数，完成后将会退出to&lt;br /&gt;显示参数:&lt;br /&gt;PID（Process ID）：进程标示号。&lt;br /&gt;USER：进程所有者的用户名。&lt;br /&gt;PR：进程的优先级别。&lt;br /&gt;NI：进程的优先级别数值。&lt;br /&gt;VIRT：进程占用的虚拟内存值。&lt;br /&gt;RES：进程占用的物理内存值。&lt;br /&gt;SHR：进程使用的共享内存值。&lt;br /&gt;S：进程的状态，其中S表示休眠，R表示正在运行，Z表示僵死状态，N表示该进程优先值是负数。&lt;br /&gt;%CPU：该进程占用的CPU使用率。&lt;br /&gt;%MEM：该进程占用的物理内存和总内存的百分比。&lt;br /&gt;TIME＋：该进程启动后占用的总的CPU时间。&lt;br /&gt;Command：进程启动的启动命令名称，如果这一行显示不下，进程会有一个完整的命令行。&lt;br /&gt;top命令使用过程中，还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。&lt;br /&gt;&amp;lt;空格&amp;gt;：立刻刷新。&lt;br /&gt;P：根据CPU使用大小进行排序。&lt;br /&gt;T：根据时间、累计时间排序。&lt;br /&gt;q：退出top命令。&lt;br /&gt;m：切换显示内存信息。&lt;br /&gt;t：切换显示进程和CPU状态信息。&lt;br /&gt;c：切换显示命令名称和完整命令行。&lt;br /&gt;M：根据使用内存大小进行排序。&lt;br /&gt;W：将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: 18px;"&gt;free&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;1.作用&lt;br /&gt;free命令用来显示内存的使用情况，使用权限是所有用户。&lt;br /&gt;&lt;br /&gt;2.格式&lt;br /&gt;free [-b-k-m] [-o] [-s delay] [-t] [-V]&lt;br /&gt;&lt;br /&gt;3.主要参数&lt;br /&gt;-b -k -m：分别以字节（KB、MB）为单位显示内存使用情况。&lt;br /&gt;-s delay：显示每隔多少秒数来显示一次内存使用情况。&lt;br /&gt;-t：显示内存总和列。&lt;br /&gt;-o：不显示缓冲区调节列。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: 18px;"&gt;uptime&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;18:59:15 up 25 min,&amp;nbsp; 2 users,&amp;nbsp; load average: 1.23, 1.32, 1.21&lt;br /&gt;现在的时间&lt;br /&gt;系统开机运转到现在经过的时间&lt;br /&gt;连线的使用者数量&lt;br /&gt;最近一分钟，五分钟和十五分钟的系统负载&lt;br /&gt;参数： -V 显示版本资讯。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: 18px;"&gt;vmstat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----&lt;br /&gt;r&amp;nbsp; b&amp;nbsp;&amp;nbsp; swpd free&amp;nbsp;&amp;nbsp; buff&amp;nbsp;&amp;nbsp; cache&amp;nbsp;&amp;nbsp;&amp;nbsp; si&amp;nbsp;&amp;nbsp; so&amp;nbsp;&amp;nbsp;&amp;nbsp; bi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bo&amp;nbsp;&amp;nbsp;&amp;nbsp; in&amp;nbsp;&amp;nbsp;&amp;nbsp; cs&amp;nbsp;&amp;nbsp; us&amp;nbsp; sy&amp;nbsp; id wa&lt;br /&gt;0&amp;nbsp; 1&amp;nbsp; 24980 10792 8296&amp;nbsp; 47316&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 19&amp;nbsp;&amp;nbsp; 205&amp;nbsp;&amp;nbsp;&amp;nbsp; 52&amp;nbsp; 1161&amp;nbsp;&amp;nbsp; 698&amp;nbsp; 26&amp;nbsp; 3&amp;nbsp; 1&amp;nbsp; 70&lt;br /&gt;1 观察磁盘活动情况&lt;br /&gt;磁盘活动情况主要从以下几个指标了解：&lt;br /&gt;bi：表示从磁盘每秒读取的块数(blocks/s)。数字越大，表示读磁盘的活动越多。&lt;br /&gt;bo：表示每秒写到磁盘的块数（blocks/s）。数字越大，表示写磁盘的活动越多。&lt;br /&gt;wa：cpu等待磁盘I／O（未决的磁盘IO）的时间比例。数字越大，表示文件系统活动阻碍cpu的情况越严重，因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10，可能文件系统就需要进行性能调整了。&lt;br /&gt;2 观察cpu活动情况&lt;br /&gt;vmstat比top更能反映出cpu的使用情况：&lt;br /&gt;us：用户程序使用cpu的时间比例。这个数字越大，表示用户进程越繁忙。&lt;br /&gt;sy：系统调用使用cpu的时间比例。注意，NFS由于是在内核里面运行的，所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话，就需要注意是否某个内核进程，比如NFS任务比较繁重。如果us和sy同时都比较大的话，就需要考虑将某些用户程序分离到另外的服务器上面，以免互相影响。&lt;br /&gt;id：cpu空闲的时间比例。&lt;br /&gt;wa：cpu等待未决的磁盘IO的时间比例。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: 18px;"&gt;iostat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量&lt;br /&gt;参数:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 只显示CPU行&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 显示磁盘行&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -k&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以千字节为单位显示磁盘输出&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在输出中包括时间戳&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在输出中包括扩展的磁盘指标&lt;br /&gt;&lt;br /&gt;avg-cpu:&amp;nbsp; %user&amp;nbsp;&amp;nbsp; %nice&amp;nbsp;&amp;nbsp;&amp;nbsp; %sys %iowait&amp;nbsp;&amp;nbsp; %idle&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20.25&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.18&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.61&amp;nbsp;&amp;nbsp; 76.39&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.57&lt;br /&gt;%iowait 等待本地I/O时CPU空闲时间的百分比&lt;br /&gt;%idle 未等待本地I/O时CPU空闲时间的百分比&lt;br /&gt;&lt;br /&gt;Device:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tps&amp;nbsp;&amp;nbsp; Blk_read/s&amp;nbsp;&amp;nbsp; Blk_wrtn/s&amp;nbsp;&amp;nbsp; Blk_read&amp;nbsp;&amp;nbsp; Blk_wrtn&lt;br /&gt;hda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.86&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 284.34&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 84.48&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 685407&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2036&lt;br /&gt;每秒传输数（tps）、每秒512字节块读取数（Blk_read/s）、每秒512字节块写入数（Blk_wrtn/s）和512字节块读取（Blk_read）和写入（Blk_wrtn）的总数量。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;一、如何查看服务器的CPU&lt;/b&gt;&lt;br /&gt;今天安装了9台Linux服务器，型号完全不一样（有DELL、HP和IBM服务器），又懒得去对清单，如何在Linux下cpu的个数和核数呢？另外，nginx的cpu工作模式也需要确切的知道linux服务器到底有多少个逻辑cpu，不过现在服务器那是相当的彪悍，直接上worker_processes 8吧。&lt;br /&gt;判断依据：&lt;br /&gt;1.具有相同core id的cpu是同一个core的超线程。（Physical id and core id are not necessarily consecutive but they are unique. Any cpu with the same core id are hyperthreads in the same core.）&lt;br /&gt;2.具有相同physical id的cpu是同一颗cpu封装的线程或者cores。（Any cpu with the same physical id are threads or cores in the same physical socket.）&lt;br /&gt;以自己的惠普DL380G6为例说明：&lt;br /&gt;①物理cpu个数:&lt;br /&gt;[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l&lt;br /&gt;②每个物理cpu中core的个数(即核数)&lt;br /&gt;[root@localhost ~]# cat /proc/cpuinfo | grep "cpu cores" | uniq&lt;br /&gt;cpu cores : 4&lt;br /&gt;这样可以推算出自己服务器的逻辑CPU为物理个数*核数，如果你的服务器是server2003，你可以在你的资源管理器里以图形化方式看到你的逻辑CPU个数。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;二、查看服务器的内存情况&lt;/b&gt;&lt;br /&gt;有时候，你运行了许多大的进程，比如你开启了300个fast-cgi。这时候你感觉系统很慢，便需要查看服务器的内存情况：&lt;br /&gt;[root@server ~]# free -m&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total used free shared buffers cached&lt;br /&gt;Mem:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 249&amp;nbsp;&amp;nbsp; 163&amp;nbsp;&amp;nbsp;&amp;nbsp; 86&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 94&lt;br /&gt;-/+ buffers/cache:&amp;nbsp;&amp;nbsp; 58&amp;nbsp; 191&lt;br /&gt;Swap:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 511&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 511&lt;br /&gt;参数解释：&lt;br /&gt;total 内存总数&lt;br /&gt;used 已经使用的内存数&lt;br /&gt;free 空闲的内存数&lt;br /&gt;shared 多个进程共享的内存总额&lt;br /&gt;buffers Buffer Cache和cached Page Cache 磁盘缓存的大小&lt;br /&gt;-buffers/cache (已用)的内存数:used - buffers - cached&lt;br /&gt;+buffers/cache(可用)的内存数:free + buffers + cached&lt;br /&gt;可用的memory=free memory+buffers+cached&lt;br /&gt;上面的数值是一台我公司内网供PHP开发人员使用的DELL PE2850，内存为2G的服务器，其可使用内存为=217+515+826。记住，Linux的内存使用管理机制是有多少就用多少(特别是在频繁存取文件后)，即Linux内存不是拿来看的，是拿来用的。&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ODyZX_U7-nk/TrfDnKS0LPI/AAAAAAAAAV4/d1LIRBW9FL4/s1600/f3826e0ee05b12b037d122a9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-ODyZX_U7-nk/TrfDnKS0LPI/AAAAAAAAAV4/d1LIRBW9FL4/s1600/f3826e0ee05b12b037d122a9.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;编辑推荐：&lt;u style="color: orange;"&gt;&lt;a href="http://os.51cto.com/art/201004/193160.htm" style="text-decoration: none;"&gt;&lt;span style="color: orange;"&gt;Linux系统内存监控全面讲解：free命令&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;三、服务器磁盘使用情况&lt;/b&gt;&lt;br /&gt;有时感觉硬盘反映很慢，或需要查看日志所在分区时，下列命令可以查看磁盘的使用情况，很有用：&lt;br /&gt;①查看硬盘分区情况&lt;br /&gt;fdisk -l&lt;br /&gt;②查看当前硬盘使用情况&lt;br /&gt;df -h&lt;br /&gt;③查看硬盘性能&lt;br /&gt;# iostat -x 1 10&lt;br /&gt;Linux 2.6.18-92.el5xen&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 03/01/2010&lt;br /&gt;&lt;br /&gt;avg-cpu: %user %nice %system %iowait %steal %idle&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.10 0.00 4.82 39.54 0.07 54.46&lt;br /&gt;&lt;br /&gt;Device:&amp;nbsp;&amp;nbsp; rrqm/s wrqm/s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r/s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w/s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util&lt;br /&gt;&lt;br /&gt;sda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.50&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.60&amp;nbsp;&amp;nbsp; 48.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 18.48&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp; 0.97&amp;nbsp;&amp;nbsp; 0.97&amp;nbsp;&amp;nbsp; 0.28&lt;br /&gt;sdb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp; 0.00&lt;br /&gt;sdc &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp; 0.00&lt;br /&gt;sdd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 &amp;nbsp; &amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp; 0.00&lt;br /&gt;sde&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.10&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.60&amp;nbsp;&amp;nbsp; 1.60&amp;nbsp; 0.08&lt;br /&gt;sdf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.50 102.00&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.20 12095.20&amp;nbsp;&amp;nbsp; 5.60&amp;nbsp;&amp;nbsp; 118.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.70&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.81&amp;nbsp; 2.09 21.36&lt;br /&gt;sdg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 232.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.90 379.70&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.50 76451.20 19.20&amp;nbsp;&amp;nbsp; 201.13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.94 13.78&amp;nbsp;&amp;nbsp; 2.45 93.16&lt;br /&gt;像我们公司，开发人员占多数。有时为了节约成本，会同时采购一些性价比比较高的二手服务器；这时一般将服务器的硬件的工作模式设置为RAID1，同时对几种型号的服务器作相同文件的写操作，然后各自执行iostat –d，作对比性测试。这样服务器的硬盘性能孰优孰劣，一下子就能对比出来。&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-XQlOrCqurZE/TrfEuzl_I4I/AAAAAAAAAWA/yRln9iDBS2k/s1600/2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-XQlOrCqurZE/TrfEuzl_I4I/AAAAAAAAAWA/yRln9iDBS2k/s1600/2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;图解：&lt;br /&gt;Tps 该设备每秒I/O传输的次数(每秒的I/O请求)&lt;br /&gt;Blk_read/s 表求从该设备每秒读的数据块数量&lt;br /&gt;Blk_wrth/s 表示从该设备每秒写的数据块数量&lt;br /&gt;编辑推荐：&lt;u&gt;&lt;a href="http://os.51cto.com/art/201006/207694.htm" style="color: orange; text-decoration: none;"&gt;Linux系统监控之磁盘I/O篇&lt;/a&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;四、查看系统内核&lt;/b&gt;&lt;br /&gt;查看系统内核主要为了掌握其版本号，为安装LVS等软件做准备。&lt;br /&gt;uname –a&lt;br /&gt;有关查看内核信息的更多指令，可参考&lt;u style="color: orange;"&gt;&lt;a href="http://os.51cto.com/art/201005/202448.htm" style="text-decoration: none;"&gt;&lt;span style="color: orange;"&gt;Linux查看版本信息及CPU内核、型号等&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;一文。有关Linux的内核优化，则可参考&lt;u&gt;&lt;a href="http://os.51cto.com/art/201003/190616.htm" style="color: orange; text-decoration: none;"&gt;Linux 2.6.31内核优化指南&lt;/a&gt;&lt;/u&gt;一文。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;五、查看服务器使用的Linux发行版的名称、版本号及描述信息等&lt;/b&gt;&lt;br /&gt;lsb_release -a&lt;br /&gt;这是我的某台用于SVN实验的vmware机器情况：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-xIRkm_Fyghc/TrfE1XiWDYI/AAAAAAAAAWI/ov8vZQgFrLo/s1600/3.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-xIRkm_Fyghc/TrfE1XiWDYI/AAAAAAAAAWI/ov8vZQgFrLo/s1600/3.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;六、查看服务器的平均负载&lt;/b&gt;&lt;br /&gt;感觉到系统压力较大时用可top或uptime查看下服务器的平均负载。uptime的另一个用法是查看你的Linux服务器已经稳定运行多少天没有重启了，我这边的机器最高记录是360多天。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;七、查看系统整体性能情况&lt;/b&gt;&lt;br /&gt;如果感觉系统比较繁忙，可以用vmstat查看系统整体性能情况。vmstat不仅仅适应于linux系统，它一样适用于FreeBSD等unix系统。&lt;br /&gt;vmstat 1 2&lt;br /&gt;如果 r经常大于 4 ，且id经常少于40，表示cpu的负荷很重。&lt;br /&gt;如果pi，po 长期不等于0，表示内存不足。&lt;br /&gt;如果disk 经常不等于0， 且在 b中的队列 大于3， 表示 io性能不好。&lt;br /&gt;编辑推荐：&lt;u&gt;&lt;a href="http://os.51cto.com/art/201005/200672.htm" style="color: orange; text-decoration: none;"&gt;Linux系统监控工具之vmstat详解&lt;/a&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;八、查看系统已载入的相关模块&lt;/b&gt;&lt;br /&gt;Linux操作系统的核心具有模块化的特性，应此在编译核心时，务须把全部的功能都放入核心。你可以将这些功能编译成一个个单独的模块，待需要时再分别载入。比如说在安装LVS+Keepalived，下列用法被经常用到：&lt;br /&gt;#检查内核模块，看一下ip_vs是否被加载 lsmod |grep ip_vsip_vs 77313 0&lt;br /&gt;如果要查看当前系统的已加载模块，直接lsmod。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;九、Linux下查找PCI设置&lt;/b&gt;&lt;br /&gt;有时需要在Linux下查找PCI设置，可用lspci命令，它可以列出机器中的PCI 设备，比如声卡、显卡、Modem、网卡等，主板集成设备也能列出来。lspci 读取的是hwdata 数据库。有的小伙可能和我一样，最关心的还是网卡型号：&lt;br /&gt;[root@mail ~]# lspci | grep Ethernet&lt;br /&gt;03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)&lt;br /&gt;07:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)&lt;br /&gt;&lt;br /&gt;推荐阅读：&lt;u style="color: orange;"&gt;&lt;a href="http://os.51cto.com/art/201004/196757.htm" style="text-decoration: none;"&gt;&lt;span style="color: orange;"&gt;七大实用命令行工具&lt;/span&gt; &lt;span style="color: orange;"&gt;玩转Linux网络配置&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;。至于网络流量的监控，建议用centos自带的工具iptraf，其用法可参考&lt;u&gt;&lt;a href="http://os.51cto.com/art/201006/206250.htm" style="color: orange; text-decoration: none;"&gt;这篇文章&lt;/a&gt;&lt;/u&gt;。&lt;br /&gt;&lt;br /&gt;掌握上面这九条，你对你的Linux服务器的硬件信息基本就可以随时掌控了。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-1337325397951742019?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/1337325397951742019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=1337325397951742019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1337325397951742019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1337325397951742019'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/11/linux.html' title='linux中查看系统资源占用情况的命令'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ODyZX_U7-nk/TrfDnKS0LPI/AAAAAAAAAV4/d1LIRBW9FL4/s72-c/f3826e0ee05b12b037d122a9.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-7767922562230352555</id><published>2011-11-07T17:54:00.000+08:00</published><updated>2011-11-07T18:08:10.696+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>freebsd 查看带宽占用情况,CPU,硬盘IO 虚拟内存等命令</title><content type='html'>systat 能实时查看各种信息&lt;br /&gt;systat -pigs 默认值&lt;u&gt;&lt;b&gt;CPU&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;systat -iostat 硬盘IO&lt;br /&gt;systat -swap 交换分区&lt;br /&gt;systat -mbufs 网络缓冲区&lt;br /&gt;systat -vmstat 虚拟&lt;u&gt;&lt;b&gt;内存&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;systat -netstat 网络&lt;br /&gt;systat -icmp ICMP协议&lt;br /&gt;systat -ip IP协议&lt;br /&gt;systat -tcp TCP协议&lt;br /&gt;systat -ifstat 网卡&lt;br /&gt;&lt;br /&gt;&lt;span id="more-11776"&gt;&lt;/span&gt;&lt;br /&gt;显示PCI总线设备信息&lt;br /&gt;pciconf -lv&lt;br /&gt;显示&lt;u&gt;&lt;b&gt;内核&lt;/b&gt;&lt;/u&gt;加载的模块&lt;br /&gt;kldstat -v&lt;br /&gt;显示指定模块&lt;br /&gt;kldstat -m ipfilter&lt;br /&gt;即插即用设备&lt;br /&gt;pnpinfo&lt;br /&gt;&lt;br /&gt;显示设备占用的IRQ和内存地址&lt;br /&gt;devinfo -u&lt;br /&gt;cpu&lt;br /&gt;&lt;u&gt;&lt;b&gt;sysctl&lt;/b&gt;&lt;/u&gt; -a|grep cpu&lt;br /&gt;sysctl&amp;nbsp; -a|grep sched 查看使用的调度器，我编译的是ULE&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;虚拟内存&lt;br /&gt;vmstat&lt;br /&gt;硬盘&lt;br /&gt;gstat&lt;br /&gt;systat -iostat&lt;br /&gt;iostat&lt;br /&gt;网卡&lt;br /&gt;ifconfig&lt;br /&gt;systat -ifstat&lt;br /&gt;网络&lt;br /&gt;netstat&lt;br /&gt;sockstat&lt;br /&gt;tcpdump&lt;br /&gt;trafshow&lt;br /&gt;systat -mbufs&lt;br /&gt;systat -icmp&lt;br /&gt;systat -ip&lt;br /&gt;systat -tcp&lt;br /&gt;只是看流量的话，用systat&amp;nbsp; -netstat&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-7767922562230352555?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/7767922562230352555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=7767922562230352555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7767922562230352555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7767922562230352555'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/11/freebsd-cpuio.html' title='freebsd 查看带宽占用情况,CPU,硬盘IO 虚拟内存等命令'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-1849123930525697286</id><published>2011-11-07T12:46:00.003+08:00</published><updated>2011-11-07T13:18:17.144+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='router'/><title type='text'>freebsd 路由问题</title><content type='html'>使用virtualbox安装的freebsd配置的nginx+php-fpm+mysql安装的wordpress无法使用no-ip的动态域名访问, 可是同样配置的arch上的wordpress却可以从外网无障碍访问?&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-62v3F651JpI/TrdjO3neNAI/AAAAAAAAAVo/RRCTPoSL0ZA/s1600/screenshot-2011-11-07-12-47-17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-62v3F651JpI/TrdjO3neNAI/AAAAAAAAAVo/RRCTPoSL0ZA/s400/screenshot-2011-11-07-12-47-17.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;使用路由的端口映射,把外网的80端口转给内网的虚拟机上,就是使用的&lt;a href="http://en.wikipedia.org/wiki/Network_address_translation"&gt;NAT(network address translation)(网络地址转换) &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;仔细研究了研究,2机的不同点只有ip,freebsd的ip为192.168.1.110,arch的ip为192.168.111&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-VZUlKTnxv_E/Trdfz8v-G9I/AAAAAAAAAVQ/KzLd5Nk6pNg/s1600/screenshot-2011-11-07-12-33-48.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-VZUlKTnxv_E/Trdfz8v-G9I/AAAAAAAAAVQ/KzLd5Nk6pNg/s400/screenshot-2011-11-07-12-33-48.png" width="368" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;然后就想到是不是路由设置的问题?&lt;br /&gt;&lt;br /&gt;2台guest机为了和主机通信,都是使用的2个网卡,一个使用的NAT自动获取地址;1个使用的bridged 桥接网络来实现和 host机的链接.&lt;br /&gt;&lt;br /&gt;使用netstat -s 来察看&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-OBEJvB68zwA/Trdgw8XgltI/AAAAAAAAAVY/WLqi0-b2JG8/s1600/screenshot-2011-11-07-12-22-54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="341" src="http://1.bp.blogspot.com/-OBEJvB68zwA/Trdgw8XgltI/AAAAAAAAAVY/WLqi0-b2JG8/s400/screenshot-2011-11-07-12-22-54.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;发现freebsd的设定为192.168.1.110的2号网卡em0没有设置网关....难道就是这个问题?&lt;br /&gt;&lt;br /&gt;最后，每个路由的不同属性可以在 &lt;tt class="LITERAL"&gt;Flags&lt;/tt&gt;列中看到。下边是个关于这些标志和它们的含义的一个简表：&lt;a href="http://www.blogger.com/blogger.g?blogID=6616068516723546448" id="AEN39520" name="AEN39520"&gt;&lt;/a&gt;&lt;br /&gt;&lt;table border="0" class="CALSTABLE" frame="void"&gt;&lt;colgroup&gt;&lt;col width="20%"&gt;&lt;/col&gt;&lt;col width="80%"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;U&lt;/td&gt;&lt;td&gt;Up: 路由处于活动状态。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;H&lt;/td&gt;&lt;td&gt;Host: 路由目标是单个主机。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;Gateway: 所有发到目的地的网络传到这一远程系统上， 并由它决定最后发到哪里。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;S&lt;/td&gt;&lt;td&gt;Static: 这个路由是手工配置的，不是由系统自动生成的。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;Clone: 生成一个新的路由， 通过这个路由我们可以连接上这些机子。这种类型的路由通常用于本地网络。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;W&lt;/td&gt;&lt;td&gt;WasCloned: 指明一个路由——它是基于本地区域网络 (克隆) 路由自动配置的。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;L&lt;/td&gt;&lt;td&gt;Link: 路由涉及到了以太网硬件。&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;通过修改/etc/rc.conf 文件,给em0网卡添加路由&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;在/etc/rc.conf中,添加&lt;br /&gt;defaultrouter="192.168.1.1"&lt;br /&gt;&lt;br /&gt;然后重启网络服务&lt;br /&gt;# /etc/rc.d/netif restart &lt;br /&gt;注意: 如果在 /etc/rc.conf 中配置了默认网关， 还需要运行下面的命令：&lt;br /&gt;# /etc/rc.d/routing restart&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;然后,使用noip注册的域名来访问,OK啦!&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-0ppvuNYwI74/Trdp77djkjI/AAAAAAAAAVw/7lBRuc-tlqY/s1600/screenshot-2011-11-07-13-16-21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="398" src="http://4.bp.blogspot.com/-0ppvuNYwI74/Trdp77djkjI/AAAAAAAAAVw/7lBRuc-tlqY/s400/screenshot-2011-11-07-13-16-21.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;参考&amp;nbsp; :&amp;nbsp; &lt;a href="http://www.freebsd.org/doc/zh_CN/books/handbook/config-network-setup.html"&gt;设置网卡&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.freebsd.org/doc/zh_CN/books/handbook/network-routing.html"&gt;网关和路由&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="NOTE"&gt;&lt;blockquote class="NOTE"&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-1849123930525697286?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/1849123930525697286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=1849123930525697286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1849123930525697286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1849123930525697286'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/11/freebsd.html' title='freebsd 路由问题'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-62v3F651JpI/TrdjO3neNAI/AAAAAAAAAVo/RRCTPoSL0ZA/s72-c/screenshot-2011-11-07-12-47-17.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-7347242954704780151</id><published>2011-11-07T07:11:00.001+08:00</published><updated>2011-11-07T07:11:17.299+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>用pkg_cutleaves来管理软件包</title><content type='html'>作者：于江生（北京大学计算机系）&lt;br /&gt;声明：允许未经作者的同意进行非商业目的的转载，但必须保持原文的完整性。&lt;br /&gt;&lt;hr /&gt;FreeBSD对包的管理极为严格，&lt;pre class="example"&gt;# make deinstall clean&lt;br /&gt;&lt;/pre&gt;可以轻而易举地将一个软件包卸载干净。如果由于某些特殊原因系统不能干净地删除某个目录，它会明白地提示用户哪个目录或哪个文件未清除，待用户进一步查明。与GNU/Linux相比，FreeBSD对port tree的维护和管理要更学院派一些。我喜欢用&lt;pre class="example"&gt;# make install clean&lt;br /&gt;&lt;/pre&gt;来编译源码安装，有时也随意地pkg_add。按照运行依存（run dependency），工具软件之间的关系复杂，呈现网状结构，动一处则牵动甚多。FreeBSD下安装软件简单至极，系统能自动按照依存关系递归地安装所需要的ports。卸载软件也不难，但如果用户有“洁癖”，不想多保留任何“无用的东西”，则就需要pkg_cutleaves来帮忙管理这些软件包了。&lt;hr /&gt;&lt;strong&gt;内容摘要&lt;/strong&gt;&lt;div class="contents"&gt;&lt;dl&gt;&lt;dt&gt;&lt;a href="http://www.icl.pku.edu.cn/member/yujs/BSDFiles/html/pkg_cutleaves.html#sec1"&gt;问题的由来&lt;/a&gt;&lt;/dt&gt;&lt;dt&gt;&lt;a href="http://www.icl.pku.edu.cn/member/yujs/BSDFiles/html/pkg_cutleaves.html#sec2"&gt;显示所有叶子结点信息&lt;/a&gt;&lt;/dt&gt;&lt;dt&gt;&lt;a href="http://www.icl.pku.edu.cn/member/yujs/BSDFiles/html/pkg_cutleaves.html#sec3"&gt;卸载我们不需要的叶子结点&lt;/a&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/div&gt;&lt;h2&gt;&lt;a href="" id="sec1" name="sec1"&gt;&lt;/a&gt;问题的由来&lt;/h2&gt;&lt;div class="first"&gt;我们在使用FreeBSD的时候，经常安装软件包。在安装的过程中，有一些build时依存的包会先被安装，而往往它们不是我们所需要的。例如在安装xvidcap时先安装gawk，安装后也不卸载gawk。如果我们不需要gawk，就不得已在安装成功xvidcap后把gawk手动卸载。&lt;/div&gt;问题是，包之间的复杂的依存关系让我们手动卸载时经常出错。这时，我们需要工具来梳理已经安装的软件包之间的关系，按照它们之间的依存关系整理出一个有向非循环图（DAG），我们不妨称之为依存图，以此约束我们每一次的卸载都是从叶子结点开始。幸运的是，我们有pkg_cutleaves这样好用的管理工具，可以帮助我们递归地卸载某些我们不需要的叶子结点。下面给出一个简短的介绍，假设命令都是root下达的。&lt;br /&gt;&lt;h2&gt;&lt;a href="" id="sec2" name="sec2"&gt;&lt;/a&gt;显示所有叶子结点信息&lt;/h2&gt;&lt;div class="first"&gt;首先，我们通过&lt;/div&gt;&lt;pre class="example"&gt;# pkg_cutleaves -lc &amp;gt; ~/installed&lt;br /&gt;&lt;/pre&gt;来生成所有的叶子结点，大致样子如下：&lt;pre class="example"&gt;ImageMagick-6.4.3.6 - Image processing tools&lt;br /&gt;R-2.7.1 - A language for statistical computing and graphics&lt;br /&gt;WordNet-3.0 - Dictionaries and thesauri with devel. libraries (C, TCL) and browsers&lt;br /&gt;ardour-2.4.1 - Ardour - a digital audio workstation&lt;br /&gt;auctex-emacs22-11.85 - Integrated environment for writing LaTeX using GNU Emacs&lt;br /&gt;bibtool-2.48_1 - Command line manipulation of BibTeX files&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;&lt;a href="" id="sec3" name="sec3"&gt;&lt;/a&gt;卸载我们不需要的叶子结点&lt;/h2&gt;&lt;div class="first"&gt;我们通过&lt;/div&gt;&lt;pre class="example"&gt;# pkg_cutleaves -lxg&lt;br /&gt;&lt;/pre&gt;来生成一个文件：/usr/local/etc/pkg_leaves.exclude，这个文件记录了所有叶子结点的文件名，不包含版本信息。我们可以编辑修改这个文件，去掉我们不需要的叶子结点。接着，我们可以放心地清除我们不需要的build依存包，一个简单的命令就搞定：&lt;pre class="example"&gt;# pkg_cutleaves -Rxg&lt;br /&gt;&lt;/pre&gt;系统会交互地询问我们是否删除某某某，保证文件/usr/local/etc/pkg_leaves.exclude所记录的就是软件依存图的所有叶子结点。概括而言，pkg_cutleaves清除软件包安装过程中产生的冗余的包，为我们的系统瘦身。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-7347242954704780151?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/7347242954704780151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=7347242954704780151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7347242954704780151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7347242954704780151'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/11/pkgcutleaves.html' title='用pkg_cutleaves来管理软件包'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-7893161273317405707</id><published>2011-11-06T15:10:00.000+08:00</published><updated>2011-11-07T11:44:13.720+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='nginx'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>FNMP freebsd8.2 安装配置 nginx+mysql 51+php-fpm 53</title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;FNMP&lt;/b&gt;&lt;b&gt; (F&lt;/b&gt;cgi, &lt;b&gt;N&lt;/b&gt;ginx, &lt;b&gt;M&lt;/b&gt;ysql and &lt;b&gt;P&lt;/b&gt;hp)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;freebsd8.2 下ports 安装配置 nginx+mysql+php-fpm&lt;br /&gt;&lt;br /&gt;&amp;nbsp;因为php需要mysql支持,所以,我一般按照mysql+php+nginx的步奏来安装.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;1 安装 mysql 5.1版本&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;(mysql55版本老编译不过去,还是采用稳妥的51来安装) &lt;br /&gt;&lt;br /&gt;cd /usr/ports/databases/mysql51-server&lt;br /&gt;make WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_COLLATION=utf8_general_ci install clean&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;启动&amp;nbsp;&lt;/u&gt;&lt;br /&gt;添加以下内容到/etc/rc.conf中&lt;br /&gt;&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;mysql_enable="YES"&lt;br /&gt;&lt;pre class="bash" style="font-family: monospace;"&gt;&lt;span style="color: red;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;u&gt;配置&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;/usr/local/etc/rc.d/mysql-server start&lt;br /&gt;给root帐号添加密码 &lt;br /&gt;mysqladmin -u root password 'MyPassword'&lt;br /&gt;&lt;br /&gt;service mysql-server restart　　　&lt;span style="color: red;"&gt;*mysql重新启动&lt;/span&gt;&lt;br /&gt;mysql -u root -p&lt;br /&gt;&amp;nbsp;show variables like 'char%';　　　 &lt;span style="color: red;"&gt;*设定编码察看&lt;/span&gt;&lt;br /&gt;&lt;u&gt;配置文件&lt;/u&gt;&lt;br /&gt;挑选下面的配置拷贝到/etc目录&lt;br /&gt;比如# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf&lt;br /&gt;&lt;pre class="bash" style="font-family: monospace;"&gt;&lt;span style="color: black; font-weight: bold;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;/usr/local/share/mysql/my-huge.cnf&lt;br /&gt;/usr/local/share/mysql/my-innodb-heavy-4g.cnf&lt;br /&gt;/usr/local/share/mysql/my-large.cnf&lt;br /&gt;/usr/local/share/mysql/my-medium.cnf&lt;br /&gt;/usr/local/share/mysql/my-small.cnf&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;2 安装php53+php-fpm&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;/pre&gt;&lt;u&gt;安装 &lt;/u&gt;&lt;br /&gt;&amp;nbsp;cd /usr/ports/lang/php5&lt;br /&gt;&amp;nbsp;make install clean&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-nW6CWrkiuBM/TrY4iKCnxUI/AAAAAAAAAUY/mpZJ8QcCy7Y/s1600/screenshot-2011-11-06-15-31-12.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-nW6CWrkiuBM/TrY4iKCnxUI/AAAAAAAAAUY/mpZJ8QcCy7Y/s1600/screenshot-2011-11-06-15-31-12.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-oHkxQdaL-f8/TrY71WFe3BI/AAAAAAAAAUg/DsWQUIARryk/s1600/screenshot-2011-11-06-15-47-23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-oHkxQdaL-f8/TrY71WFe3BI/AAAAAAAAAUg/DsWQUIARryk/s1600/screenshot-2011-11-06-15-47-23.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&amp;nbsp;cd /usr/ports/lang/php5-extension&lt;br /&gt;&amp;nbsp;make install clean&lt;br /&gt;&lt;br /&gt;我这里主要选择了以下几个&lt;br /&gt;[X] BCMATH      bc style precision math functions&lt;br /&gt;[X] BZ2         bzip2 library support&lt;br /&gt;[X] CURL        CURL support[X] FTP         FTP support&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;[X] GD          GD library support&lt;br /&gt;[X] ICONV       iconv support[X] MCRYPT      Encryption support&lt;br /&gt;[X] MHASH       Crypto-hashing support&lt;br /&gt;[X] MYSQL       MySQL database support&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;*重要mysql支持&lt;/span&gt;&lt;br /&gt;[X] MYSQLI      MySQLi database support&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt; *重要mysql支持&lt;/span&gt;&lt;br /&gt;[X] OPENSSL     OpenSSL support[X] PCRE        Perl Compatible Regular Expression support&lt;br /&gt;[X] XML         XML support[X] XMLREADER   XMLReader support&lt;br /&gt;[X] XMLWRITER   XMLWriter support&lt;br /&gt;[X] ZLIB        ZLIB support&lt;br /&gt;&lt;br /&gt;&lt;u&gt;配置&lt;/u&gt;&lt;br /&gt;1 php&lt;br /&gt;在freebsd默认安装的是没有配置文件的,需要你自己拷贝一个&lt;br /&gt;&lt;br /&gt;cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini&lt;br /&gt;&lt;br /&gt;php.ini-development 开发测试版本&amp;nbsp; php.ini-production 生产适用版本&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2&amp;nbsp; php_fpm&lt;br /&gt;&amp;nbsp;配置文件 /usr/local/etc/php-fpm.conf&lt;br /&gt;&lt;br /&gt;&lt;u&gt;启动 &lt;/u&gt;&lt;br /&gt;在 /etc/rc.conf 中添加&lt;br /&gt;php_fpm_enable="YES"&lt;br /&gt;启动php-fpm&lt;br /&gt;# /usr/local/etc/rc.d/php-fpm start&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;3 安装nginx&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;cd /usr/ports/www/nginx&lt;br /&gt;make install clean&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-WQP71AGPUpk/TrZM-OPSLKI/AAAAAAAAAUw/s3zFHM7pB1k/s1600/screenshot-2011-11-06-17-00-54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-WQP71AGPUpk/TrZM-OPSLKI/AAAAAAAAAUw/s3zFHM7pB1k/s1600/screenshot-2011-11-06-17-00-54.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;这里除了默认主要添加了ssl支持这个选项,其他就选择默认就可以了 &lt;br /&gt;[X] HTTP_SSL_MODULE           Enable http_ssl module&lt;br /&gt;[X] HTTP_STATUS_MODULE        Enable http_stub_status module&lt;br /&gt;[X] WWW                       Enable html sample files&lt;br /&gt;&lt;br /&gt;编译完成后，启动 nginx&lt;br /&gt;&lt;div class="hl-surround"&gt;&lt;ol class="hl-main ln-show" title="Double click to hide line number."&gt;&lt;li class="hl-firstline"&gt;# echo nginx_enable="YES" &amp;gt;&amp;gt; /etc/rc.conf&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;这里先不急着 start nginx，因为现在还没有对 PHP 的支持。&lt;br /&gt;&lt;div class="hl-surround"&gt;&lt;ol class="hl-main ln-show" title="Double click to hide line number."&gt;&lt;li class="hl-firstline"&gt;# vi /usr/local/etc/nginx/nginx.conf&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;将如下段落前的 “#” 删除，并且将 html 更改为 /usr/local/www/nginx&lt;br /&gt;&lt;blockquote&gt;location ~ \.php$ {&lt;br /&gt;root           /usr/local/www/nginx;&lt;br /&gt;fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;fastcgi_index  index.php;&lt;br /&gt;fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;&lt;br /&gt;include        fastcgi_params;&lt;br /&gt;}&lt;/blockquote&gt;结束后，编辑 /usr/local/etc/nginx/fastcgi_params，加入&lt;br /&gt;&lt;div class="hl-surround"&gt;&lt;ol class="hl-main ln-show" title="Double click to hide line number."&gt;&lt;li class="hl-firstline"&gt;fastcgi_param&amp;nbsp; SCRIPT_FILENAME&amp;nbsp; &amp;nbsp; $document_root$fastcgi_script_name;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;启动 nginx，看看是否已经对 PHP 了&lt;br /&gt;&lt;div class="hl-surround"&gt;&lt;ol class="hl-main ln-show" title="Double click to hide line number."&gt;&lt;li class="hl-firstline"&gt;# /usr/local/etc/rc.d/nginx start&lt;/li&gt;&lt;li&gt;# echo "" &amp;gt; /usr/local/www/nginx/info.php&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="quote"&gt;&lt;div class="quote-title"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote class="tr_bq"&gt;&lt;div class="quote-content"&gt;vi /usr/local/www/nginx/info.php&lt;br /&gt;在文件中输入以下内容&lt;br /&gt;phpinfo();&lt;br /&gt;?&amp;gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hOB2J1qK-Ew/TrZX9U6Nb2I/AAAAAAAAAVA/AenbyTtaEzo/s1600/screenshot-2011-11-06-17-47-59.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-hOB2J1qK-Ew/TrZX9U6Nb2I/AAAAAAAAAVA/AenbyTtaEzo/s1600/screenshot-2011-11-06-17-47-59.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;访问 http://yourdomain/info.php，看到 phpinfo 的页面则证明无误。&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-9vFvPohBixo/TrZXXK9iHRI/AAAAAAAAAU4/bAQ68P0GSZQ/s1600/screenshot-2011-11-06-17-45-12.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="584" src="http://4.bp.blogspot.com/-9vFvPohBixo/TrZXXK9iHRI/AAAAAAAAAU4/bAQ68P0GSZQ/s640/screenshot-2011-11-06-17-45-12.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;参考&amp;nbsp; : &lt;a href="http://www.codernotes.com/2011/261/nginx-php-fpm-mysql-on-freebsd-8-2/"&gt;Nginx + PHP-FPM + MySQL On FreeBSD 8.2&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://anylinux.net/post/2394.html"&gt;nginx + PHP-FPM + MySQL + eAccelerator FreeBSD 8.0 安装笔记&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://blog.jiqila.com/post/223/"&gt;FreeBSD上搭建nginx 0.8.x + PHP 5.3.x(FastCGI) + MySQL 5.1.x&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-7893161273317405707?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/7893161273317405707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=7893161273317405707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7893161273317405707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7893161273317405707'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/11/fnmp-freebsd82-nginxmysql51php53php-fpm.html' title='FNMP freebsd8.2 安装配置 nginx+mysql 51+php-fpm 53'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-nW6CWrkiuBM/TrY4iKCnxUI/AAAAAAAAAUY/mpZJ8QcCy7Y/s72-c/screenshot-2011-11-06-15-31-12.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-8899153748092109876</id><published>2011-11-05T22:31:00.002+08:00</published><updated>2011-11-06T04:51:55.489+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>freebsd8.2 安装mysql55后修改默认编码utf8</title><content type='html'>根据160630的patch状态回帖.可以编辑my.conf来更改默认的新建数据库编码&lt;br /&gt;&lt;br /&gt;&lt;table cellspacing="1" class="auditblock"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th class="info" colspan="2"&gt;State Changed&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="key"&gt;From-To:&lt;/td&gt; &lt;td&gt;open-&amp;gt;closed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="key"&gt;By:&lt;/td&gt; &lt;td&gt;ale&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="key"&gt;When:&lt;/td&gt; &lt;td&gt;Tue Sep 13 14:56:05 UTC 2011&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="key"&gt;Why:&lt;/td&gt; &lt;td&gt;You should use my.cnf for this config params.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;具体参考 : &lt;a href="http://jarodlau.blogspot.com/2011/11/freebsd-mysql51-mysql55.html"&gt;freebsd mysql5.1 与mysql5.5的参数变更&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;使用如下patch给/usr/ports/datebase/mysql55-server/Makeconfig就可以了&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="attachwin"&gt;diff -urN mysql55-server-old/Makefile mysql55-server/Makefile&lt;br /&gt;&lt;span class="patch_minusline"&gt;--- mysql55-server-old/Makefile    2011-09-10 14:38:44.000000000 +0000&lt;/span&gt;&lt;br /&gt;&lt;span class="patch_plusline"&gt;+++ mysql55-server/Makefile 2011-09-10 15:16:00.000000000 +0000&lt;/span&gt;&lt;br /&gt;&lt;span class="patch_hunkinfo"&gt;@@ -53,6 +53,12 @@&lt;/span&gt;&lt;br /&gt;&amp;nbsp;.if defined(WITH_FASTMTX)&lt;br /&gt;&amp;nbsp;CMAKE_ARGS+= -DWITH_FAST_MUTEXES=1&lt;br /&gt;&amp;nbsp;.endif&lt;br /&gt;&lt;span class="patch_plusline"&gt;+.if defined(WITH_CHARSET) &amp;amp;&amp;amp; ${WITH_CHARSET} != ""&lt;/span&gt;&lt;br /&gt;&lt;span class="patch_plusline"&gt;+CMAKE_ARGS+=       -DDEFAULT_CHARSET=${WITH_CHARSET}&lt;/span&gt;&lt;br /&gt;&lt;span class="patch_plusline"&gt;+.endif&lt;/span&gt;&lt;br /&gt;&lt;span class="patch_plusline"&gt;+.if defined(WITH_COLLATION) &amp;amp;&amp;amp; ${WITH_COLLATION} != ""&lt;/span&gt;&lt;br /&gt;&lt;span class="patch_plusline"&gt;+CMAKE_ARGS+=       -DDEFAULT_COLLATION=${WITH_COLLATION}&lt;/span&gt;&lt;br /&gt;&lt;span class="patch_plusline"&gt;+.endif&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;# MySQL-Server part&lt;br /&gt;&amp;nbsp;.if !defined(CLIENT_ONLY)&lt;/pre&gt;&lt;br /&gt;&lt;strike&gt;然后编译的时候,使用&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;make WITH_CHARSET="utf8" WITH_COLLATION="utf8_unicode_ci" install clean&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;参考 :&amp;nbsp; &lt;a href="http://www.freebsd.org/cgi/query-pr.cgi?pr=160630"&gt;ports/160630: [PATCH] databases/mysql55-server Add WITH_COLLATION and WITH_CHARSET&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;以往在freebsd中安装databases/mysql55-{server,client}时,需要如下的参数 :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="text" style="font-family: monospace;"&gt;make WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci WITH_XCHARSET=complex install&lt;/pre&gt;&lt;strike&gt;&lt;br /&gt;&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;不过因为在 MySQL 5.5.8 以后的 build system 改成了 CMake，导致 ports maintainer 必须重新设计 Makefile。&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;而目前的 Makefile 尚未设计完善，所以想把这些 options 传递給 CMake 的话，只能直接改 Makefile 解決：&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="diff" style="font-family: monospace;"&gt;&lt;span style="color: #888822;"&gt;--- mysql55-server/Makefile.orig       2011-03-19 21:13:47.000000000 +0800&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #888822;"&gt;+++ mysql55-server/Makefile    2011-04-08 14:31:05.815962791 +0800&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #440088;"&gt;@@ -39,7 +39,10 @@&lt;/span&gt;&lt;br /&gt;                -DINSTALL_SQLBENCHDIR="share/mysql" \&lt;br /&gt;                -DINSTALL_SUPPORTFILESDIR="share/mysql" \&lt;br /&gt;                -DWITH_LIBEDIT=0 \&lt;br /&gt;&lt;span style="color: #991111;"&gt;-               -DWITH_LIBWRAP=1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #00b000;"&gt;+               -DWITH_LIBWRAP=1 \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #00b000;"&gt;+               -DDEFAULT_CHARSET="utf8" \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #00b000;"&gt;+               -DDEFAULT_COLLATION="utf8_general_ci" \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #00b000;"&gt;+               -DWITH_EXTRA_CHARSETS="complex"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt; .ifdef USE_MYSQL&lt;br /&gt; .error You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again.&lt;/pre&gt;&lt;br /&gt;&lt;strike&gt;如果在做这修改前不小心把沒设好的 MySQL 整套装起來的话，请记得把 mysql55-client 也砍掉一起重裝。&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;特別是对那些真正需要用到 WITH_EXTRA_CHARSET="complex" 的人，有一边沒弄好的話，网页上就准备出现一大堆「???????」了。&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;至於是否能像以前那样直接用 make 送參數，就只能慢慢等 maintainer，看他何時會重新把所有 options 對應上去了。&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="cnt" id="blog_text"&gt;通过使用port来安装&lt;br /&gt;1.该ports 做得不是太好，不支持 make config 修改选项，只能在命令行用 &lt;br /&gt;make WITH_CHARSET=gbk WITH_XCHARSET=all 追加参数，或者直接修改 Makefile文件。 &lt;br /&gt;&lt;br /&gt;2.WITH_CHARSET=gbk 是将mysql的服务及数据库的默认字符集由latin1改为gbk;WITH_XCHARSET=all 是将mysql软件包所带的字符集（包括gbk 和 gb2132）都释放出来。 &lt;br /&gt;mysql 不是真的不支持中文，只是采用了utf8字符集而已。 所以不建议你改变默认字符集，应由程序（如PHP）在连接数据库时选定合适的字符集。如，在config.inc.php之类连接参数文件中设定mysql_query("set names gbk");改变默认字符集可能导致有些外国编的软件如VBulletin3.60运行错误。建议你在mysql5编译时只增加WITH_XCHARSET=all 即可。 &lt;br /&gt;&lt;br /&gt;3.应用 make clean 清除配置(假设你以前编译过） &lt;br /&gt;然后 make WITH_XCHARSET=all &lt;br /&gt;最后 make install 安装编译好的软件包（如你以前以前安装过,最好用make reinstall） &lt;br /&gt;&lt;br /&gt;4.如你用phpmyadmin导入以前的数据（gb2132 或gbk格式），在创建数据库时务必将默认参数“整理”改为gbk_chinese_ci&lt;br /&gt;5.可以尝试修改my.cnf文件来改变服务器以及客服端的字符编码&lt;br /&gt;[client]&lt;br /&gt;...&lt;br /&gt;character-set-server=utf8&lt;br /&gt;&lt;br /&gt;collation-server=utf8_general_ci&lt;br /&gt;&lt;br /&gt;default-character-set=utf8&lt;br /&gt;[mysqld]&lt;br /&gt;...&lt;br /&gt;character-set-server=utf8&lt;br /&gt;&lt;br /&gt;collation-server=utf8_general_ci&lt;br /&gt;&lt;br /&gt;default-character-set=utf8&lt;br /&gt;[mysql]&lt;br /&gt;.......&lt;br /&gt;default-character-set=utf8&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-8899153748092109876?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/8899153748092109876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=8899153748092109876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8899153748092109876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8899153748092109876'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/11/freebsd82-mysql55utf8patch.html' title='freebsd8.2 安装mysql55后修改默认编码utf8'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-8720512164494372365</id><published>2011-11-05T20:34:00.001+08:00</published><updated>2011-11-05T20:34:27.695+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>freebsd mysql5.1 与mysql5.5的参数变更</title><content type='html'>&lt;h4&gt;&lt;a class="keyword" href="http://d.hatena.ne.jp/keyword/MySQL"&gt;MySQL&lt;/a&gt; 5.1 &lt;/h4&gt;&lt;pre class="syntax-highlight"&gt;[mysql]&lt;br /&gt;default-character-set=utf8&lt;br /&gt;[mysqld]&lt;br /&gt;default-character-set=utf8&lt;br /&gt;&lt;/pre&gt;&lt;h4&gt;&lt;a class="keyword" href="http://d.hatena.ne.jp/keyword/MySQL"&gt;MySQL&lt;/a&gt; 5.5 &lt;/h4&gt;&lt;pre class="syntax-highlight"&gt;[mysql]&lt;br /&gt;default-character-set=utf8&lt;br /&gt;[mysqld]&lt;br /&gt;character-set-server=utf8&lt;/pre&gt;&lt;br /&gt;察看支持的编码 使用&amp;nbsp; &lt;br /&gt;&lt;pre class="syntax-highlight"&gt;mysql&lt;span class="synStatement"&gt;&amp;gt;&lt;/span&gt; SHOW VARIABLES LIKE  &lt;span class="synConstant"&gt;'char%'&lt;/span&gt;&lt;span class="synStatement"&gt;;&lt;/span&gt;&lt;br /&gt;+--------------------------+----------------------------------+&lt;br /&gt;&lt;span class="synStatement"&gt;|&lt;/span&gt; Variable_name            &lt;span class="synStatement"&gt;|&lt;/span&gt; Value                            &lt;span class="synStatement"&gt;|&lt;/span&gt;&lt;br /&gt;+--------------------------+----------------------------------+&lt;br /&gt;&lt;span class="synStatement"&gt;|&lt;/span&gt; character_set_client     &lt;span class="synStatement"&gt;|&lt;/span&gt; utf8                             &lt;span class="synStatement"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class="synStatement"&gt;|&lt;/span&gt; character_set_connection &lt;span class="synStatement"&gt;|&lt;/span&gt; utf8                             &lt;span class="synStatement"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class="synStatement"&gt;|&lt;/span&gt; character_set_database   &lt;span class="synStatement"&gt;|&lt;/span&gt; latin1                           &lt;span class="synStatement"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class="synStatement"&gt;|&lt;/span&gt; character_set_filesystem &lt;span class="synStatement"&gt;|&lt;/span&gt; binary                           &lt;span class="synStatement"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class="synStatement"&gt;|&lt;/span&gt; character_set_results    &lt;span class="synStatement"&gt;|&lt;/span&gt; utf8                             &lt;span class="synStatement"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class="synStatement"&gt;|&lt;/span&gt; character_set_server     &lt;span class="synStatement"&gt;|&lt;/span&gt; latin1                           &lt;span class="synStatement"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class="synStatement"&gt;|&lt;/span&gt; character_set_system     &lt;span class="synStatement"&gt;|&lt;/span&gt; utf8                             &lt;span class="synStatement"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class="synStatement"&gt;|&lt;/span&gt; character_sets_dir       &lt;span class="synStatement"&gt;|&lt;/span&gt; /usr/&lt;span class="synStatement"&gt;local&lt;/span&gt;/share/mysql/charsets/ &lt;span class="synStatement"&gt;|&lt;/span&gt;&lt;br /&gt;+--------------------------+----------------------------------+&lt;br /&gt;&lt;span class="synConstant"&gt;8&lt;/span&gt; rows &lt;span class="synStatement"&gt;in&lt;/span&gt; &lt;span class="synStatement"&gt;set&lt;/span&gt; &lt;span class="synStatement"&gt;(&lt;/span&gt;&lt;span class="synConstant"&gt;0&lt;/span&gt;.&lt;span class="synConstant"&gt;00&lt;/span&gt; sec&lt;span class="synStatement"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;参考 &lt;a href="http://d.hatena.ne.jp/littlebuddha/20110524/1306208820"&gt;mysql5.1与mysql5.5的参数变更&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-8720512164494372365?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/8720512164494372365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=8720512164494372365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8720512164494372365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8720512164494372365'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/11/freebsd-mysql51-mysql55.html' title='freebsd mysql5.1 与mysql5.5的参数变更'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-318571780165470595</id><published>2011-11-02T20:19:00.002+08:00</published><updated>2011-11-02T20:19:20.217+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>firefox的dns缓存功能</title><content type='html'>本地使用virtualbox安装了一个arch server假设了一个wordpress博客,发现当ip换掉以后,ff老无法更新新ip,原来firefox有dns缓存功能.&lt;br /&gt;&lt;br /&gt;可以手动修改同时按下Ctrl + Shift + Delete，点details，只选中cache，然后点clear，删了。&lt;br /&gt;&lt;br /&gt;about:config&lt;br /&gt;&lt;br /&gt;&lt;b&gt;network.dnsCacheExpiration&lt;/b&gt;&amp;nbsp; 把原来的60改成 10000(表示缓存10000秒)&lt;br /&gt;&lt;b&gt;network.dnsCacheEntries&amp;nbsp;&lt;/b&gt; 把默认的20改成1000(表示缓存1000条).如果没 有上面两个项目,新建即可。 &lt;br /&gt;&lt;br /&gt;但是dns缓存太久了也会出问题，比如有的网站ip换了，就无法访问了。针对这样的问题，可以安装一 个&amp;nbsp;firefox&amp;nbsp;插件来开启或者关闭dns&amp;nbsp;cache功能，https://addons.mozilla.org/zh-CN/firefox /addon/5914&lt;br /&gt;&lt;br /&gt;参考 : &lt;a href="http://tech.gaeatimes.com/index.php/archive/simple-firefox-hacks-to-boost-performance/"&gt;Simple Firefox DNS Hacks To Boost Performance&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-318571780165470595?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/318571780165470595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=318571780165470595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/318571780165470595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/318571780165470595'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/11/firefoxdns.html' title='firefox的dns缓存功能'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-4554692615725685461</id><published>2011-11-02T19:06:00.000+08:00</published><updated>2011-11-02T19:07:39.057+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='fstab'/><category scheme='http://www.blogger.com/atom/ns#' term='ntfs-3g'/><title type='text'>修改fstab让ntfs分区挂载文件读写权限,文件夹读写执行权限</title><content type='html'>一直使用的ntfs-3g来读写win下的分区,没有怎么注意权限的问题,可是看到挂载的分区文件都是可执行权限,对安全性以及读写都有问题,因为使用awesome所以一般很少开文件管理器,最多使用mc来批量复制拷贝文件,看到一片绿色可执行,头大.&lt;br /&gt;&lt;br /&gt;察看fstab的参数原来可以制定挂载的时候,对文件以及文件夹采用不同的权限.&lt;br /&gt;&lt;br /&gt;比如下面这段挂载的参数:&lt;br /&gt;&lt;br /&gt;/dev/&lt;ntfs-part&gt;  /mnt/windows  ntfs-3g   gid=users,fmask=113,dmask=002    0       0&amp;nbsp;&lt;/ntfs-part&gt;&lt;br /&gt;&lt;br /&gt;&lt;ntfs-part&gt;以群组users,文件权限664,文件夹权限774来挂载.&lt;/ntfs-part&gt;&lt;br /&gt;&lt;ntfs-part&gt; &lt;/ntfs-part&gt;&lt;br /&gt;&lt;ntfs-part&gt;fmask,dmask,以及umask的意思就是扣除相应的权限,777-$(*mask)= 来定义挂载的权限.&lt;/ntfs-part&gt;&lt;br /&gt;&lt;br /&gt;&lt;ntfs-part&gt;umask代表user的mask,fmask代表文件file的mask,当然dmask就代表文件夹的mask了.&lt;/ntfs-part&gt;&lt;br /&gt;&lt;ntfs-part&gt;&lt;br /&gt;&lt;/ntfs-part&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;一.022表示默认创建新文件权限为755 也就是 rxwr-xr-x(所有者全部权限，属组读写，其它人读写)&amp;nbsp; &lt;br /&gt;二.027表示默认创建新文件权限为750 也就是rxwr-x---(所有者全部权限，属组读写，其它人无)&lt;br /&gt;&lt;br /&gt;下表列出了一些umask值及它们所对应的目录和文件权限&lt;br /&gt;常用的umask值及对应的文件和目录权限&lt;br /&gt;umask值&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 目录&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 文件&lt;br /&gt;022&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;755&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 644&lt;br /&gt;027&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;750&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 640&lt;br /&gt;002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;775&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 664&lt;br /&gt;006&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;771&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 660&lt;br /&gt;007&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;770&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 660&lt;/blockquote&gt;我现在的fstab配置文件如下&lt;br /&gt;&lt;title&gt;/etc/fstab.html&lt;/title&gt;&lt;style type="text/css"&gt;&lt;!--pre { white-space: pre-wrap; font-family: monospace; color: #ffffff; background-color: #000000; }body { font-family: monospace; color: #ffffff; background-color: #000000; }.Constant { color: #af5f00; }.Statement { color: #804000; }.Type { color: #008000; }.Identifier { color: #008080; font-weight: bold; }.Comment { color: #008080; }--&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="Comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# /etc/fstab: static file system information&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# &amp;lt;file system&amp;gt; &amp;lt;dir&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;   &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;tmpfs&lt;/span&gt;       /tmp    &lt;span class="Type"&gt;tmpfs&lt;/span&gt;   &lt;span class="Type"&gt;nodev&lt;/span&gt;&lt;span class="Statement"&gt;,&lt;/span&gt;&lt;span class="Type"&gt;nosuid&lt;/span&gt;    &lt;span class="Constant"&gt;0   0&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;UUID&lt;/span&gt;&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="Constant"&gt;b2b3abc1-d666-4948-9c17-a5e12c637d63&lt;/span&gt; /boot &lt;span class="Type"&gt;reiserfs&lt;/span&gt; &lt;span class="Type"&gt;defaults&lt;/span&gt; &lt;span class="Constant"&gt;0 1&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;UUID&lt;/span&gt;&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="Constant"&gt;afd39ba2-f3f3-4bac-bbc8-dc5307ba4e89&lt;/span&gt; / &lt;span class="Type"&gt;ext4&lt;/span&gt; &lt;span class="Type"&gt;defaults&lt;/span&gt; &lt;span class="Constant"&gt;0 1&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;UUID&lt;/span&gt;&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="Constant"&gt;26f23578-3dc8-4394-bcba-7320a4aaff7d&lt;/span&gt; &lt;span class="Statement"&gt;swap&lt;/span&gt; &lt;span class="Type"&gt;swap&lt;/span&gt; &lt;span class="Type"&gt;defaults&lt;/span&gt; &lt;span class="Constant"&gt;0 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;UUID&lt;/span&gt;&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="Constant"&gt;90ab4280-c642-47c0-91e4-d3be7d254d1a&lt;/span&gt; /home &lt;span class="Type"&gt;ext4&lt;/span&gt; &lt;span class="Type"&gt;defaults&lt;/span&gt;&lt;span class="Statement"&gt;,&lt;/span&gt;&lt;span class="Statement"&gt;user_xattr&lt;/span&gt; &lt;span class="Constant"&gt;0 1&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;UUID&lt;/span&gt;&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="Constant"&gt;"4D9E019F07B2E598"&lt;/span&gt;  /media/wine &lt;span class="Type"&gt;ntfs&lt;/span&gt;-3g &lt;span class="Statement"&gt;gid=&lt;/span&gt;&lt;span class="Type"&gt;users&lt;/span&gt;&lt;span class="Statement"&gt;,&lt;/span&gt;&lt;span class="Statement"&gt;fmask=&lt;/span&gt;&lt;span class="Constant"&gt;113&lt;/span&gt;&lt;span class="Statement"&gt;,&lt;/span&gt;&lt;span class="Statement"&gt;dmask=&lt;/span&gt;&lt;span class="Constant"&gt;002&lt;/span&gt;&lt;span class="Statement"&gt;,&lt;/span&gt;nls&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="Statement"&gt;utf8&lt;/span&gt; &lt;span class="Constant"&gt;0 2&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-4554692615725685461?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/4554692615725685461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=4554692615725685461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/4554692615725685461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/4554692615725685461'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/11/fstabntfs.html' title='修改fstab让ntfs分区挂载文件读写权限,文件夹读写执行权限'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-8262301514060333934</id><published>2011-11-01T12:09:00.000+08:00</published><updated>2011-11-01T12:29:00.900+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='mpd'/><title type='text'>mpd 启动错误 Address family not supported by protocol</title><content type='html'>这2天arch启动的时候tty1老提示 Error : Socked :&amp;nbsp; Address family not supported by protocol &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;放google搜索,找到&lt;a href="https://github.com/mopidy/mopidy/issues/75"&gt;Address family not supported by protocol - IPv6 issue on machines with disabled v6&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This happens on a machine that has &lt;code&gt;socket.has_ipv6&lt;/code&gt; set to true as the linux system supports IPv6, but jason has disabled IPv6 by following &lt;a href="https://wiki.archlinux.org/index.php/IPv6_-_Disabling_the_Module"&gt;https://wiki.archlinux.org/index.php/IPv6_-_Disabling_the_Module&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;手动启动的时候提示如下错误:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-mHOfR0-Pyv4/Tq9xfLgG_iI/AAAAAAAAAUI/dQ0r4BNIgro/s1600/screenshot-2011-11-01-12-10-36.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-mHOfR0-Pyv4/Tq9xfLgG_iI/AAAAAAAAAUI/dQ0r4BNIgro/s1600/screenshot-2011-11-01-12-10-36.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;listen: bind to '[::1]:6600' failed: Failed to create socket: Address family not supported by protocol (continuing anyway, because binding to '127.0.0.1:6600' succeeded)&lt;br /&gt;playlist directory is not a directory: "/home/jarodlau/.mpd/playlists"&lt;br /&gt;&lt;br /&gt;原来是禁用ipv6的结果,另外我没有把播放列表的目录拼写正确,少了个s,应该是playlists,我的写成了playlist&lt;br /&gt;&lt;br /&gt;解决办法很简单 :&lt;br /&gt;&lt;br /&gt;编辑 /etc/hosts文件 ,把一些ipv6的地址注释掉就ok了,如下&lt;br /&gt;&lt;br /&gt;&lt;title&gt;/etc/hosts.html&lt;/title&gt;&lt;style type="text/css"&gt;&lt;!--pre { white-space: pre-wrap; font-family: monospace; color: #ffffff; background-color: #000000; }body { font-family: monospace; color: #ffffff; background-color: #000000; }.Comment { color: #00ffff; }--&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="Comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# /etc/hosts: static lookup table for host names&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Comment"&gt;#&amp;lt;ip-address&amp;gt;   &amp;lt;hostname.domain.org&amp;gt;   &amp;lt;hostname&amp;gt;&lt;/span&gt;&lt;br /&gt;127.0.0.1   localhost.localdomain   localhost arch-laptop&lt;br /&gt;&lt;span class="Comment"&gt;#::1        localhost.localdomain   localhost&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# End of file&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-8262301514060333934?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/8262301514060333934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=8262301514060333934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8262301514060333934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8262301514060333934'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/11/mpd-address-family-not-supported-by.html' title='mpd 启动错误 Address family not supported by protocol'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-mHOfR0-Pyv4/Tq9xfLgG_iI/AAAAAAAAAUI/dQ0r4BNIgro/s72-c/screenshot-2011-11-01-12-10-36.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-6180137790692744870</id><published>2011-10-31T22:36:00.000+08:00</published><updated>2011-11-02T03:16:33.998+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='dns'/><category scheme='http://www.blogger.com/atom/ns#' term='pdnsd'/><title type='text'>2个不错的dns</title><content type='html'>因为电信的114问题,dns劫持严重,于是使用了&lt;a href="https://wiki.archlinux.org/index.php/Pdnsd"&gt;pdnsd&lt;/a&gt;来本地缓存dns信息,可是google和opendns的延迟很严重,所以一直在找其他不错的dns &lt;br /&gt;&lt;br /&gt;google的8.8.8.8和8.8.4.4以及opendns的208.67.222.222和208.67.220.220,用的人太多了,gfw重点照顾,所以不太好用了&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-aVkkepuNZ8A/Tq6wUa9LM7I/AAAAAAAAAUA/JjX6Hjq6MMI/s1600/screenshot-2011-10-31-22-26-36.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-aVkkepuNZ8A/Tq6wUa9LM7I/AAAAAAAAAUA/JjX6Hjq6MMI/s1600/screenshot-2011-10-31-22-26-36.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;推荐个台湾中华电信&lt;a href="http://www.cht.com.tw/index.php" title="dns"&gt;dns&lt;/a&gt;：168.95.192.1 和 168.95.192.2&lt;br /&gt;&lt;br /&gt;编辑pdnsd的配置文件&amp;nbsp; sudo vim /etc/pdnsd.conf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;title&gt;~/pdnsd.conf.html&lt;/title&gt;&lt;style type="text/css"&gt;&lt;!--pre { white-space: pre-wrap; font-family: monospace; color: #ffffff; background-color: #000000; }body { font-family: monospace; color: #ffffff; background-color: #000000; }--&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;# The following section is most appropriate if you have a fixed connection to&lt;br /&gt;# the Internet and an ISP which provides good DNS servers.&lt;br /&gt;server {&lt;br /&gt;    label= "mydns";&lt;br /&gt;    ip = 168.95.192.1,168.95.192.2;  # Put your ISP's DNS-server address(es) here.&lt;br /&gt;#   proxy_only=on;     # Do not query any name servers beside your ISP's.&lt;br /&gt;                       # This may be necessary if you are behind some&lt;br /&gt;                       # kind of firewall and cannot receive replies&lt;br /&gt;                       # from outside name servers.&lt;br /&gt;    timeout=4;         # Server timeout; this may be much shorter&lt;br /&gt;               # that the global timeout option.&lt;br /&gt;    #uptest=if;         # Test if the network interface is active.&lt;br /&gt;    #interface=eth0;    # The name of the interface to check.&lt;br /&gt;    #uptest=ping;&lt;br /&gt;    #    ping_timeout=100;&lt;br /&gt;    interval=10m;      # Check every 10 minutes.&lt;br /&gt;    purge_cache=off;   # Keep stale cache entries in case the ISP's&lt;br /&gt;               # DNS servers go offline.&lt;br /&gt;}&amp;nbsp;&lt;/pre&gt;然后重启就ok了 sudo rc.d restart pdnsd&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-6180137790692744870?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/6180137790692744870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=6180137790692744870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6180137790692744870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6180137790692744870'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/2dns.html' title='2个不错的dns'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-aVkkepuNZ8A/Tq6wUa9LM7I/AAAAAAAAAUA/JjX6Hjq6MMI/s72-c/screenshot-2011-10-31-22-26-36.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-7891547052928795205</id><published>2011-10-29T11:14:00.001+08:00</published><updated>2011-10-31T23:04:31.518+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='paste'/><title type='text'>“代码贴吧”网址收集</title><content type='html'>若想在网上与人分享短小的源代码，推荐用以下网站：&lt;br /&gt;&lt;a href="http://pastie.caboo.se/paste/" target="_blank" title="http://pastie.caboo.se/paste/"&gt;http://pastie.caboo.se/paste/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pastie.textmate.org/paste/" target="_blank" title="http://pastie.textmate.org/paste/"&gt;http://pastie.textmate.org/paste/&lt;/a&gt; (同上)&lt;br /&gt;&lt;a href="http://pastebin.com/" target="_blank" title="http://pastebin.com/"&gt;http://pastebin.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://rafb.net/paste/" target="_blank" title="http://rafb.net/paste/"&gt;http://rafb.net/paste/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-7891547052928795205?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/7891547052928795205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=7891547052928795205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7891547052928795205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7891547052928795205'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/blog-post_29.html' title='“代码贴吧”网址收集'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-3516768902112031671</id><published>2011-10-29T11:07:00.003+08:00</published><updated>2011-10-31T23:04:31.529+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='netbsd'/><category scheme='http://www.blogger.com/atom/ns#' term='openbsd'/><title type='text'>三个免费BSD系统的比较</title><content type='html'>在网上看到这样的评论：&lt;br /&gt;&lt;br /&gt;&lt;span style="color: darkred;"&gt;FreeBSD = Popular all-rounder.&lt;br /&gt;NetBSD = Portable (runs on a lot of platforms, including a toaster)&lt;br /&gt;OpenBSD = Security above anything else.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;翻译过来就是：&lt;br /&gt;&lt;br /&gt;&lt;span style="color: darkred;"&gt;FreeBSD = 流行的多面手&lt;br /&gt;NetBSD = 可移植 (可在很多平台上运行, 包括一个烤面包机)&lt;br /&gt;OpenBSD = 比其他任何东西都安全&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;应该说，这样的评价，非常精到。用过这三个系统的人我想都会点头同意。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-3516768902112031671?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/3516768902112031671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=3516768902112031671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3516768902112031671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3516768902112031671'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/bsd.html' title='三个免费BSD系统的比较'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-2938968558349236057</id><published>2011-10-29T10:54:00.000+08:00</published><updated>2011-10-29T10:54:11.021+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>FREEBSD的一些小技巧</title><content type='html'>&lt;b&gt;1、在 unix-like 中档案结构是满重要的，那么要如何去看相关档案目录结构的说明呢？  &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;难道是 cd 到每个目录下吗？其实有更好的方法.. &lt;br /&gt;&lt;br /&gt;那就是用好男人 man 来看： &lt;br /&gt;&lt;br /&gt;# man hier &lt;br /&gt;&lt;br /&gt;&lt;b&gt;2、在 console 下操作时，由于屏幕显示有限，有时需看前面显示的资料，这时你可：  &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;. 按一下 Pause or Scroll Lock键后，则可利用 PageUp PageDown Up Down Home End 等键来看前后显示的资料 &lt;br /&gt;&lt;br /&gt;. 再按一下 Pause or Scroll Lock则可回复等待输入画面. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;3、 使用 pw 来管理你的帐号  &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;在 FreeBSD 下使用 adduser 来新增帐号，有些时会满烦的，可用以下方式： &lt;br /&gt;&lt;br /&gt;pw useradd -n &lt;username&gt; -g &lt;group&gt; -m -s /bin/csh &lt;br /&gt;&lt;br /&gt;=&amp;gt; -m 代表建立使用者目录 &lt;br /&gt;&lt;br /&gt;●同时设密码 &lt;br /&gt;&lt;br /&gt;echo &lt;password&gt; | pw useradd -n &lt;username&gt; -g &lt;group&gt; -m -s /bin/csh -h 0 &lt;br /&gt;&lt;br /&gt;● 删除帐号 &lt;br /&gt;&lt;br /&gt;pw userdel -n &lt;username&gt; -r &lt;br /&gt;&lt;br /&gt;=&amp;gt; -r 代表同时删除其 home 目录等相关资料 &lt;br /&gt;&lt;br /&gt;● 修改帐号 &lt;br /&gt;&lt;br /&gt;pw usermod -g &lt;group&gt; -s /bin/csh &lt;br /&gt;&lt;br /&gt;PS：无法修改帐号名称 &lt;br /&gt;&lt;br /&gt;● lock 及 unlock 使用者帐号 &lt;br /&gt;&lt;br /&gt;pw lock &lt;username&gt; &lt;br /&gt;pw unlock &lt;username&gt; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;4、 激活你的 screensaver  &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;由于 FreeBSD 大多当为主机使用，都是常期不关机的，因此可将屏幕关掉，或使用 ScreenSaver 功能.. &lt;br /&gt;&lt;br /&gt;使用 ScreenSaver 请在 /etc/rc.conf 这个档加入以下两行： &lt;br /&gt;&lt;br /&gt;blanktime="900" &lt;br /&gt;&lt;br /&gt;=&amp;gt; 以秒数为单位，如以上为 15 分钟 &lt;br /&gt;&lt;br /&gt;saver="logo" &lt;br /&gt;&lt;br /&gt;=&amp;gt; logo 是 FreeBSD 的吉祥物(图型接口)，另也可使用 "daemon"，这是文字型式 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;5、 检查你的某一个 ports 版本及更新  &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;如果要更新所有的 port 只需在 /etc/ports/ 下执行以下指令： &lt;br /&gt;&lt;br /&gt;# make update &lt;br /&gt;&lt;br /&gt;有时我们可能要检查某一个 ports 的版本，在每个 ports 中的 Makefile 都有这一行 &lt;br /&gt;&lt;br /&gt;PORTVERSION= x.x.x &lt;br /&gt;&lt;br /&gt;如此就可看到这个 ports 的版本了，另外也可使用以下方式(用 grep)，比如我们想看 mod_php4 的版本 &lt;br /&gt;&lt;br /&gt;# grep PORTVERSION= /usr/ports/www/mod_php4/Makefile &lt;br /&gt;PORTVERSION= 　　1.4.1 -&amp;gt; 版本讯息 &lt;br /&gt;&lt;br /&gt;如果版本太旧了，则可利用以下方法来更新单一 ports &lt;br /&gt;&lt;br /&gt;a. 使用 portupgrade 或 portinstall，请用 man 查看用法 &lt;br /&gt;&lt;br /&gt;b. 到 FreeBSD 网站查询最新的 ports 信息，并抓 ports 回来更新 &lt;br /&gt;&lt;br /&gt;网址：&lt;a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/" target="_blank" title="http://www.freebsd.org/cgi/cvsweb.cgi/ports/"&gt;http://www.freebsd.org/cgi/cvsweb.cgi/ports/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;抓回来后在相关目录更新，例如我们抓回的是 mod_php4.tar.gz，存在 /usr/tmp/ 目录下，则解压缩的方式如下： &lt;br /&gt;&lt;br /&gt;# cd /usr/ports/www/mod_php4 &lt;br /&gt;# tar xzvf /usr/tmp/mod_php4.tar.gz &lt;br /&gt;&lt;br /&gt;如此就 ok 了.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;6、 加速你的按键速度..  &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;相信使用 FreeBSD 的人很多都是在 console 下操作吧，有些时，要重复某一按键速度实在很慢.. &lt;br /&gt;&lt;br /&gt;另一个问题就是 cusror 的位置有些时不太明显.. &lt;br /&gt;&lt;br /&gt;可用以下方法来改善： &lt;br /&gt;&lt;br /&gt;在 /etc/rc.conf 中加入以下资料.. &lt;br /&gt;&lt;br /&gt;keyrate="fast" &lt;br /&gt;cursor="blink" 或 "destructive" &lt;br /&gt;&lt;br /&gt;&lt;b&gt;7、 设定开机画面  &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;使用 windows 的人，都知道所谓的开机画面，在 FreeBSD 下是否也有此功能呢？答案是肯定的，而且设定更为简便，请照以下 steps： &lt;br /&gt;&lt;br /&gt;一. 首先制作一个图型文件，档案格式为 logo.pcx 或 logo.bmp，需注意的是 .bmp 的档案存盘时不用压缩，分辨率需为 640 X 480 以内(含)，色阶为 256 色.. &lt;br /&gt;&lt;br /&gt;二. 将此档案 copy 到 /boot/ 这个目录下 &lt;br /&gt;&lt;br /&gt;三. 设定 /boot/loader.conf，加入以下资料 &lt;br /&gt;&lt;br /&gt;splash_bmp_load="YES" -&amp;gt; 如果使用 .bmp 格式，此项需设为 YES &lt;br /&gt;splash_pcx_load="YES" -&amp;gt; 使用 .pcx，请将此项设为 YES &lt;br /&gt;vera_load="YES" &lt;br /&gt;bitmap_load="YES" &lt;br /&gt;bitmap_name="/boot/logo.pcx" -&amp;gt; 请依你的档案格式更改 &lt;br /&gt;bitmap_type="splash_image_data" &lt;br /&gt;&lt;br /&gt;四. 重新激活 &lt;br /&gt;ps: 请检查你的 kernel 中是否有设定以下资料，一般在 4.x 中都是内定值..，至于 3.x 版，没用过..^.^ &lt;br /&gt;&lt;br /&gt;preudo-device splash &lt;br /&gt;&lt;br /&gt;如果没有，则需将此行加入并重新编绎核心. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8、 一些 console 下使用的快速键..  &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;相信大多使用 unix-like 的使用者，还是在 console 下执行你的日常维护工作吧，那有那些按键组合可帮我们提高效率呢.. &lt;br /&gt;&lt;br /&gt;以下按键皆适用于 tcsh 及 bash.. &lt;br /&gt;&lt;br /&gt;1. 快速移动光标 &lt;br /&gt;&lt;br /&gt;ctrl+a -&amp;gt; 到最前面 &lt;br /&gt;ctrl+e -&amp;gt; 到最后面 &lt;br /&gt;&lt;br /&gt;2. 编辑方面 &lt;br /&gt;&lt;br /&gt;ctrl+d -&amp;gt; 删除光标所在字符 &lt;br /&gt;ctrl+w -&amp;gt; 删除光标所在字前面的字符 &lt;br /&gt;ctrl+u -&amp;gt; bash:将光标前所有的字及字符删掉，tcsh:删除所有字 &lt;br /&gt;ctrl+k -&amp;gt; 将光标后所有字符删掉 &lt;br /&gt;ctrl+b -&amp;gt; 下个字符 &lt;br /&gt;ctrl+f -&amp;gt; 前一个字符 &lt;br /&gt;ctrl+m -&amp;gt; 和按下 enter 的结果一样 &lt;br /&gt;ctrl+h -&amp;gt; 和按下 del 或 backspace 键一样 &lt;br /&gt;del 或 backspace -&amp;gt; 删除前一个字符 &lt;br /&gt;&lt;br /&gt;如果对按键有研究兴趣者，不彷参考 /usr/share/syscons/keymaps/ 这个目录，其中 us.iso.kbd 是一般我们使用的按键.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;9、 快速切换目录  &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;在 FreeBSD 中常常需要切换目录，有时目录名称较长、或是有大小写、或是只记得前面几个字，怎么办.. &lt;br /&gt;&lt;br /&gt;其实只要输入部份字再加上 * 这个符号就可以了.. &lt;br /&gt;&lt;br /&gt;如我们要切换到 /usr/local/ 这个目录，只需输入 cd /usr/lo* 就可以了.. &lt;br /&gt;&lt;br /&gt;如果输入 cd /usr/l* 会如何呢？则会进到 /usr/lib/ 这个目录，这是因为 shell 找到第一个符合的条件便停止了.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;10、 有关时间及时区的调校 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;使用 FreeBSD 大多是拿来当做主机使用，那时间及时区的正确与否就非常重要了，以下介绍如何调整时间及时区 &lt;br /&gt;&lt;br /&gt;● 时间调整&lt;br /&gt;1. 使用 date 指令 &lt;br /&gt;&lt;br /&gt;格式 date [yymmdd]HHMM &lt;br /&gt;说明: &lt;br /&gt;yy 年数，如 02 代表 2002 年 &lt;br /&gt;mm 月份 01-12 &lt;br /&gt;dd 日数 01-31 &lt;br /&gt;HH 时数 01-59 &lt;br /&gt;MM 分钟 01-59 &lt;br /&gt;&lt;br /&gt;yy mm dd 皆可省略 &lt;br /&gt;&lt;br /&gt;例: &lt;br /&gt;&lt;br /&gt;?#123;整日期为 2002-03-25 &lt;br /&gt;# date 022325 &lt;br /&gt;&lt;br /&gt;?#123;整时间为 14:20 &lt;br /&gt;# date 1420 &lt;br /&gt;&lt;br /&gt;2. 使用对时主机 &lt;br /&gt;&lt;br /&gt;# ntpdate clock.stdtime.gov.tw &lt;br /&gt;&lt;br /&gt;这项需能连上网络，其中 clock.stdtime.gov.tw 是一标准时间的主机 &lt;br /&gt;&lt;br /&gt;● 时区的设定 &lt;br /&gt;&lt;br /&gt;1. 使用 tzsetup &lt;br /&gt;&lt;br /&gt;2. 在 /etc/ 下有个档案 localtime，这个就是本机的时区设定档案，因此我们可用个取巧方式(不经由 tzsetup)，如以下: &lt;br /&gt;&lt;br /&gt;# cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime &lt;br /&gt;&lt;br /&gt;这样是不是比较快呢.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;11、 如何清空档案内容.. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;有时我们需将一个档案内容清空，但需保留这个档案.. &lt;br /&gt;&lt;br /&gt;一般常见的用法是用文字编辑器，如 vi 将这个档案叫出来，再将其内容全部删掉，再存盘.. &lt;br /&gt;&lt;br /&gt;这样是不是有些烦呢？ &lt;br /&gt;&lt;br /&gt;有一个更好的方法，使用 true 指令.. &lt;br /&gt;&lt;br /&gt;如我们要将 /var/log/httpd-access.log 清空，则下以下指令.. &lt;br /&gt;&lt;br /&gt;# cd /var/log/ &lt;br /&gt;# true &amp;gt; httpd-access.log &lt;br /&gt;&lt;br /&gt;&lt;b&gt;12、 显示目录及档案 =&amp;gt; tree &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;有时需显示某个目录下所有的目录及档案，虽使用 ls 可达到部份功能，但并不是很方便.. &lt;br /&gt;&lt;br /&gt;在 dos 中，有个 tree 指令，是不是满好用的.. &lt;br /&gt;&lt;br /&gt;其实在 FreeBSD 中也有类似的指令 =&amp;gt; tree.. &lt;br /&gt;&lt;br /&gt;以下我们就透过 ports 来安装 tree &lt;br /&gt;&lt;br /&gt;# cd /usr/ports/sysutils ; make install &lt;br /&gt;&lt;br /&gt;如此会将 tree 这个指令安装在 /usr/local/bin/ 这个目录下.. &lt;br /&gt;&lt;br /&gt;使用例子: &lt;br /&gt;&lt;br /&gt;1. 显示 /usr/ 下的目录及档案 &lt;br /&gt;&lt;br /&gt;# tree /usr &lt;br /&gt;&lt;br /&gt;2. 只显示 /usr 下的目录 &lt;br /&gt;&lt;br /&gt;# tree -d /usr &lt;br /&gt;&lt;br /&gt;详细用法请参考 man tree &lt;br /&gt;&lt;br /&gt;PS:可透过管道 | 及 more 来显示 &lt;br /&gt;&lt;br /&gt;如 tree /usr | more.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;13、 如何检视档案类型 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;由于 FreeBSD 并没有像 dos 或 windows 般有扩展名的观念，因此要如何检查一个档案的类型呢？ &lt;br /&gt;&lt;br /&gt;用 file 吧.. &lt;br /&gt;&lt;br /&gt;语法: file &lt;file_name&gt; &lt;br /&gt;&lt;br /&gt;详细用法请参考 man file &lt;br /&gt;&lt;br /&gt;&lt;b&gt;14、 重复使用先前使用过的指令 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;你可以使用以下的方法来重复使用先前使用过的指令: &lt;br /&gt;&lt;br /&gt;例如，我们先用 history 显示先前输入的指令: &lt;br /&gt;&lt;br /&gt;# history &lt;br /&gt;. &lt;br /&gt;.. &lt;br /&gt;... &lt;br /&gt;10 clear &lt;br /&gt;11 cd /usr/local &lt;br /&gt;12 ls &lt;br /&gt;13 ls etc &lt;br /&gt;14 cd ~ &lt;br /&gt;15 clear &lt;br /&gt;&lt;br /&gt;1. 用 up down 可用上下一个指令，或是 ctrl+p ctrl+n 亦然 &lt;br /&gt;&lt;br /&gt;2. 配合 ! 的用法，例如以下(ps: 在&amp;lt;...&amp;gt;内代表要输入的东东) &lt;br /&gt;&lt;br /&gt;!! &lt;br /&gt;# !! =&amp;gt; 重复执行上个一个指令 &lt;br /&gt;&lt;br /&gt;!&amp;lt;编号&amp;gt; &lt;br /&gt;# !11 =&amp;gt; 执行 cd /usr/local &lt;br /&gt;&lt;br /&gt;!&amp;lt;指令&amp;gt; 可输入部份字，但前面部份需符合 &lt;br /&gt;# !cl &lt;br /&gt;执行 15 clear 指令 &lt;br /&gt;&lt;br /&gt;!&lt;!--?指令?--&gt; 输入部份字符，部份吻合 &lt;br /&gt;# !?etc? &lt;br /&gt;执行 13 ls etc &lt;br /&gt;&lt;br /&gt;以上指令在 tcsh 及 bash 下皆可使用，如此是不是可帮你省下许多时间.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;15、 如何将 man 的档案印出来.. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;man 是大家学习 FreeBSD 的最佳资料参考来源，但在显示器上看到底不是很方便，有没有方法转成一般的文件档案呢？ &lt;br /&gt;&lt;br /&gt;使用 col 这个指令吧.. &lt;br /&gt;&lt;br /&gt;例我们要将 ssh2 转成 ssh2.txt，则使用以下语法: &lt;br /&gt;&lt;br /&gt;# man ssh2 | col -b &amp;gt; ssh2.txt &lt;br /&gt;&lt;br /&gt;&lt;b&gt;16、 为何查不到正确的 ports 资料.. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;在 /usr/ports/ 下有着几千个 ports 的安装资料，有时我们可使用以下方式来查相关的 ports.. &lt;br /&gt;&lt;br /&gt;以下都是在 /usr/ports/ 这个目录下执行.. &lt;br /&gt;&lt;br /&gt;1. 先将 ports 资料转换成一个文字文件，如 index.txt &lt;br /&gt;&lt;br /&gt;# make print-index &amp;gt; index.txt &lt;br /&gt;&lt;br /&gt;2. 使用 make search key="...." 来查 &lt;br /&gt;&lt;br /&gt;3. 将 ports 内容转换成 README.html &lt;br /&gt;&lt;br /&gt;# make readmes &lt;br /&gt;&lt;br /&gt;用以上方法，可很容易的查到相关的 ports 资料，但很奇怪的是，为何我更新一个 ports 的资料后(或 ports tree)，为何会查不到，查到的仍然是旧的资料.. &lt;br /&gt;&lt;br /&gt;原来，在 /usr/ports/ 中有一个 INDEX 檔，以上的查询方式都是在这个 INDEX 档中查询，当你更新 ports 资料时，这个 INDEX 档并不会随之更新.. &lt;br /&gt;&lt;br /&gt;所以为了查询方便，我们需以手动的方式来做.. &lt;br /&gt;&lt;br /&gt;# make index &lt;br /&gt;&lt;br /&gt;做完后，再更新 index.txt 及 README.html.. &lt;br /&gt;&lt;br /&gt;不过更新 INDEX 档需要一些时间，大约 12-30 分钟..(视计算机等级而定). &lt;br /&gt;&lt;br /&gt;&lt;b&gt;17、 用 dig 及 host 来取代 nslookup &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;一般我们用来检查网络是否有问题，大多是用以下三个指令.. &lt;br /&gt;&lt;br /&gt;nslookup &lt;br /&gt;ping &lt;br /&gt;traceroute &lt;br /&gt;&lt;br /&gt;其中 nsllokup 是用来检查 dns 的相关设定， ping 用来检查自己和对方网络是否通顺，而 traceroute 则是用来检查从自己的计算机到对方的计算机所经过的线路状况.. &lt;br /&gt;&lt;br /&gt;不过以 nslookup 而言，个人觉得不是很实用，有时我们只是想单纯的查一下某台主机或是 MX 记录，那使用 nslookup 就有点噜嗦了.. &lt;br /&gt;&lt;br /&gt;在此介绍二个好用的指令 host 及 dig，这二个指令很类似，不过效率较 nslookup 高 &lt;br /&gt;&lt;br /&gt;# host -a &amp;lt;主机名称&amp;gt; 或 &lt;ip&gt; &lt;br /&gt;&lt;br /&gt;=&amp;gt; 输入主机名称显示 dns 正向解析的部份，输入 ip 则是显示反向(ptr) &lt;br /&gt;&lt;br /&gt;# dig &amp;lt;主机名称或ip&amp;gt; &lt;any a="" mx="" soa="" txt..="" 任选一项=""&gt; &lt;br /&gt;&lt;br /&gt;如要显示 MX 记录 &lt;br /&gt;&lt;br /&gt;# dig 主机名称 mx &lt;br /&gt;&lt;br /&gt;个人是觉得比 nslookup 方便多了，你觉得呢.. ^.^ &lt;br /&gt;&lt;br /&gt;当然功能不只这些，详情请 man dig 或 host.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;18、 加快你的开机速度.. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;严格说起来，FreeBSD 的开机速度算满快的，不过中间会有个 10 秒的延迟时间(以便让你进入 boot 的 command prompt mode)，如果你嫌这10秒还是太慢了，那你可将时间?#123;短一些.. &lt;br /&gt;&lt;br /&gt;FreeBSD 激活时会先去参考 /boot/defaults/loader.conf 档的设定，然后再参考 /boot/loader.conf，一般我们都不去?#123;整 /boot/defaults/loader.conf 这个档，而直接?#123;整 /boot/loader.conf.. &lt;br /&gt;&lt;br /&gt;只要在 /boot/loader.conf 中加上以下这一行即可 &lt;br /&gt;&lt;br /&gt;autoboot_delay="秒数" 即可，如 &lt;br /&gt;&lt;br /&gt;autoboot_delay="7" 代表7秒 &lt;br /&gt;&lt;br /&gt;这样开机是不是更快了.. &lt;br /&gt;&lt;br /&gt;另外建议，有时间可参考一下 /boot/defaults/loader.conf 这个档案的设定，其中有许多实用的设定哦.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;19、 忘了 root 密码  &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;如果你忘了 root 的密码怎么办，这在 FreeBSD 中满好解决的，请照以下 steps 来处理.. &lt;br /&gt;&lt;br /&gt;1. 进入单人模式 &lt;br /&gt;&lt;br /&gt;开机后，当出现 &lt;br /&gt;&lt;br /&gt;Hit [Enter] to boot immediately, or any other key for command prompt. &lt;br /&gt;Booting [kernel] in 10 seconds... &lt;br /&gt;&lt;br /&gt;按 space(或除了 enter 以外的键) 键则会进入 command prompt mode，同时出现一个 ok .. &lt;br /&gt;&lt;br /&gt;这时请输入 boot -s 以进入单人模式 &lt;br /&gt;&lt;br /&gt;2. 选择 sh &lt;br /&gt;&lt;br /&gt;进入单人模式后，系统会询问你要使用那个 sh，内定是 /bin/sh ，就使用这个吧，直接按 enter 跳过 &lt;br /&gt;&lt;br /&gt;3. 将所有的硬盘分割架起来 &lt;br /&gt;&lt;br /&gt;# mount -a &lt;br /&gt;&lt;br /&gt;4. 更改密码 &lt;br /&gt;&lt;br /&gt;# passwd &lt;br /&gt;&lt;br /&gt;长度要在 6 个以上，输入二次 &lt;br /&gt;&lt;br /&gt;5. 重新激活 &lt;br /&gt;&lt;br /&gt;# reboot &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;20、 有关 kernel 的激活.. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;kernel 对 unix-like 系统来说，是非常重要的一环，如果 kernel 损坏或编译出了问题，可能会导致严重的后果.. &lt;br /&gt;&lt;br /&gt;FreeBSD 一向以安全著称，在这方面有什么防护的措施呢？ &lt;br /&gt;&lt;br /&gt;FreeBSD 的 kernel 是放在 / 目录下，一般会有二个 &lt;br /&gt;&lt;br /&gt;kernel &lt;br /&gt;kernel.GENERIC &lt;br /&gt;&lt;br /&gt;如果你有编译过核心(kernel)的话，则原先的 kernel 会转换成 kernel.old，新的核心会变成 kernel，也就是在 / 下的 kernel 档案如下: &lt;br /&gt;&lt;br /&gt;kernel =&amp;gt; 新编译过的核心 &lt;br /&gt;kernel.GENERIC &lt;br /&gt;kernel.old =&amp;gt; 原先的核心 &lt;br /&gt;&lt;br /&gt;那 kernel.GENERIC 是什么呢，这个是系统安装时所装好的，一般都不会变动，即使编译过核心亦然，这个档案可说是救命核心，最好不要乱动，理由如下所言.. &lt;br /&gt;&lt;br /&gt;FreeBSD 激活时，会使用 kernel 这个核心，如果这个档案不存在，则会抓 kernel.old 这个档案.. &lt;br /&gt;&lt;br /&gt;如果这二个档案不幸都不在，那怎么办..这时则会进入 command prompt mode，你必需自行输入 kernel 的名称，如 &lt;br /&gt;&lt;br /&gt;boot &lt;kernel 名称=""&gt; 如 &lt;br /&gt;&lt;br /&gt;boot kernel.GENERIC &lt;br /&gt;&lt;br /&gt;了解以上之后，在编译核心无法正常执行时，相信各位知道如何处理了.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;21、 FreeBSD 在那激活程序.. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;一般 FreeBSD 激活后会依序执行以下位置的程序.. &lt;br /&gt;&lt;br /&gt;1. /etc/rc.conf 这个档案内的程序，如 sendmail、sshd .. 都是在此执行，另外要注意的是，在执行这个档案之前，会先参考 /etc/defaults/rc.conf 的设定 &lt;br /&gt;&lt;br /&gt;2. /usr/local/etc/rc.d 下的一些 .sh 檔，这些档案的权限都是被设定成 x ，如 apache samba .. 都是在此设定 &lt;br /&gt;&lt;br /&gt;3. /etc/rc.local 这里也可设定，如我要把 postfix 设定在此，只需在这个档案内加一行，如下 &lt;br /&gt;&lt;br /&gt;/use/local/sbin/postfix start &amp;amp; &lt;br /&gt;&lt;br /&gt;加上 &amp;amp; ，就不会显示出讯息 &lt;br /&gt;&lt;br /&gt;4. 由 cron 所控制的一些档案，当时间到了，便会自动执行.. &lt;br /&gt;&lt;br /&gt;那心细的人可能会问， /etc/inetd.conf 内设定的呢？这些在第 1 项就执行了.. &lt;br /&gt;&lt;br /&gt;了解以上并时时注意是否有不明的程序在执行(可能是被人植入木马程序)，也是日常检视系统的重要工作.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;22、 加快你的主机名称查询速度.. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;unix-like 系统，初期都是使用 hosts 这个设定文件来做主机的查询，因此有些程序在查主机名称时，都会参照这个设定档，像 sendmail 就是一个很好的例子.. &lt;br /&gt;&lt;br /&gt;系统内定第一个是会查 /etc/hosts 这个档案，因此如果里面设定有问题，则会影响到某些程序的执行.. &lt;br /&gt;&lt;br /&gt;典型的 hosts 档设定如下..以我本身的主机来说 &lt;br /&gt;&lt;br /&gt;127.0.0.1 localhost.cmlab.idv.tw localhost &lt;br /&gt;61.219.230.5 cmlab.idv.tw cmlab &lt;br /&gt;61.219.230.5 cmlab.idv.tw. &lt;br /&gt;&lt;br /&gt;其中第一及第二行最后一个项目是 aliases 名称(主机别名)，比如我们在主机 &lt;br /&gt;&lt;br /&gt;ping cmlab.idv.tw &lt;br /&gt;&lt;br /&gt;和 &lt;br /&gt;&lt;br /&gt;ping cmlab &lt;br /&gt;&lt;br /&gt;是同样的结果.. &lt;br /&gt;&lt;br /&gt;你可把一些常用的主机加到这个项目内，如有一台 mail.cmlab.idv.tw ，假设 IP 为 61.219.230.8 &lt;br /&gt;&lt;br /&gt;则在这个 hosts 中加入以下 &lt;br /&gt;&lt;br /&gt;61.219.230.8 mail.cmlab.idv.tw mail &lt;br /&gt;61.219.230.8 mail.cmlab.idv.tw. &lt;br /&gt;&lt;br /&gt;这样就行了.. &lt;br /&gt;&lt;br /&gt;另外如果有自行架设 dns server，请注意在 /etc/host.conf 这个档案，典型的档案如下: &lt;br /&gt;&lt;br /&gt;# $FreeBSD: src/etc/host.conf,v 1.6 1999/08/27 23:23:41 peter Exp $ &lt;br /&gt;# First try the /etc/hosts file &lt;br /&gt;hosts &lt;br /&gt;# Now try the nameserver next. &lt;br /&gt;bind &lt;br /&gt;# If you have YP/NIS configured, uncomment the next line &lt;br /&gt;# nis &lt;br /&gt;&lt;br /&gt;由以上可以看得出来，在查询主机名称时的顺序，是先查 hosts 再查 bind 也就是 dns，你可视你的需要修改其顺序.. &lt;br /&gt;&lt;br /&gt;另外要注意的就是 /etc/resolv.conf 文件，这个是有关 dns 主机 search 的顺序，如以我的设定如下: &lt;br /&gt;&lt;br /&gt;domain cmlab.idv.tw &lt;br /&gt;nameserver 61.219.230.5 &lt;br /&gt;nameserver 168.95.1.1 &lt;br /&gt;nameserver 168.95.192.1 &lt;br /&gt;&lt;br /&gt;其中第一行是设定我的网域名称，第 2-4 行则是 dns 主机的设定，建议至少设二个以上，以免一个挂了，还有个备用的.. &lt;br /&gt;&lt;br /&gt;第2行是我的 dns 主机，3-4 行是 hinet 的 dns 主机.. &lt;br /&gt;&lt;br /&gt;了解以上并有正确的设定，是有助于主机的查询的及速度的提升.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;23、 我要如何分割硬盘.. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;档案目录对于 FreeBSD (或者是所有 unix-like 系统)，都是相当重要的，如开始时，分割的不是很恰当，日后就会遇到一些麻烦，如空间不够..等问题.. &lt;br /&gt;&lt;br /&gt;那么，我们要如何分割比较恰当呢.. &lt;br /&gt;&lt;br /&gt;这就有关于你的用途及 FreeBSD 的目录架构了.. &lt;br /&gt;&lt;br /&gt;一般个人是建议你如此分割: &lt;br /&gt;&lt;br /&gt;1. / 根目录，一般在 250 ~ 500 MB 绝对够用，以我的根目录来说，使用一年多了，也才用了 66 MB 多。因为这个目录只是一些 kernel modules sbin bin etc .. 等目录 &lt;br /&gt;&lt;br /&gt;2. swap 档，一般人都不知道如何设较恰档，这也没一个标准，最主要是要看你的 ram 及硬盘而言，一般设成 1-2.5 倍(相对于你的 ram)。如你的 ram 在 256 mb 以上(含)，设成一倍；如在 64 - 128 mb，则建议设成 2 倍 &lt;br /&gt;&lt;br /&gt;如要检查你的 swap 使用状况，可用以下指令来看.. &lt;br /&gt;&lt;br /&gt;# pstat -T &lt;br /&gt;44/4044 files &lt;br /&gt;0M/127M swap space &lt;br /&gt;&lt;br /&gt;由以上可看出目前使用的 swap 为 0 ，设定的大小为 128 M &lt;br /&gt;&lt;br /&gt;3. /var 目录 及 /usr 目录 &lt;br /&gt;&lt;br /&gt;这二个目录一般都会占比较大的空间，/var 的变动较小，以我个人来说，一年前设为 8 GB ，在目前只使用了不到 2GB。 &lt;br /&gt;&lt;br /&gt;但要注意的是一般的 mail 软件，都是将信件存在 /var/mail/ 中，如果你的信件很多或很大，这个部份不妨加大一些.. &lt;br /&gt;&lt;br /&gt;而 /usr 这个目录能大就给它大一点的空间，因为所安装的程序，或是 hone 都是在这个目录下(如果你没将 home 目录设成一个分割) .. &lt;br /&gt;&lt;br /&gt;那这两个要如何分配呢，我的建议是 usr 和 var 的比例为 3:1，或是 2:1 &lt;br /&gt;&lt;br /&gt;4. 有些主机使用者较多，如学校单位。如果你没将 home 设成一个 partition，则 FreeBSD 会将 home 安装在 /usr 目录下，如果为了管理及安全问题，则不妨将 home 分割为单一目录.. &lt;br /&gt;&lt;br /&gt;至于大小，我想应该 3-5 GB 左右，就绝对够用了 &lt;br /&gt;&lt;br /&gt;我们来举个实际例子，假设你有一颗 40 GB 的硬盘，使用内存为 128 MB RAM，那我建议你的硬盘如此分割.. &lt;br /&gt;&lt;br /&gt;1. / =&amp;gt; 250 MB &lt;br /&gt;2. swap =&amp;gt; 取 2 倍，即 256 MB &lt;br /&gt;3. /home 如要独立出来，给它 3-5 GB &lt;br /&gt;4. 剩下来的以 3:1 或 2:1 的比例设给 /usr 及 /var &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;以上只是一般建议，最重要的是必需了解各目录的性质及实际使用情况而予以适当的分配，有关这方面的信息，不妨参考 man hier .. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;25、 简单编辑你的文件档.. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;在 unix-like 中，标准的文字编辑器是 vi，不过 vi 对于初学者而言，并不是很容易上手.. &lt;br /&gt;&lt;br /&gt;而在 FreeBSD 中使用的是 ee ，这个文字编辑器，虽功能没 vi 这么强大，但使用简便..新手不妨初期时使用个编辑器.. &lt;br /&gt;&lt;br /&gt;其使用方式很简单，只要在 command line 下 ee 即可 &lt;br /&gt;&lt;br /&gt;# ee &amp;lt;要编辑的档案&amp;gt; &lt;br /&gt;进入 ee 画面后，最上方是一些按键说明，如要取得相关的 ee 说明，可先按 ctrl+c 键，再输入 help，则会显示详细说明 &lt;br /&gt;&lt;br /&gt;有时可能只想在一个档案内加入一小部份的资料，那使用文字编辑器来处理，就显得没效率，其实我们可以利用 cat &amp;gt; [檔名]和 cat &amp;gt;&amp;gt; [檔名] 来做.. &lt;br /&gt;&lt;br /&gt;那这二个方式有何差异呢.. &lt;br /&gt;&lt;br /&gt;cat &amp;gt; [檔名] 时，如果档案不存在，则会自动产生一个档案；如档案存在则会将档案清空.. &lt;br /&gt;&lt;br /&gt;cat &amp;gt;&amp;gt; [檔名]，档案不存在则自动建立此档，如存在则将所编辑的资料加在档案的最后.. &lt;br /&gt;&lt;br /&gt;举个例子，如我们要编辑 /etc/mail/access 这个是 sendmail 的 relay 设定档.. &lt;br /&gt;&lt;br /&gt;想在这个档案中加入 192.168.88.5 relay &lt;br /&gt;&lt;br /&gt;则可用此方法(假设 access 档案已存在，故使用 cat &amp;gt;&amp;gt; .. 的方法) .. &lt;br /&gt;&lt;br /&gt;# cat &amp;gt;&amp;gt; /etc/mail/access &lt;br /&gt;192.168.88.5 RELAY &lt;br /&gt;按 ctrl+d 存盘 &lt;br /&gt;&lt;br /&gt;如此则可将 192.168.88.5 relay 加到 access 的最后一行.. &lt;br /&gt;&lt;br /&gt;不过，建议大家，unix-like 的共通文字编辑器是 vi，有时间不妨好好的学一下 vi.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;26、 FreeBSD 帐号及密码的注意事项 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;在架完 FreeBSD 后，再来就是新增人员(使用者)的资料了.. &lt;br /&gt;&lt;br /&gt;在设定帐号时，请注意以下事项: &lt;br /&gt;&lt;br /&gt;1.其长度需在 1-16 个字符 &lt;br /&gt;2.使用英文小写字母、数字及 - _ 符号 &lt;br /&gt;&lt;br /&gt;在设定密码时，请注意以下事项 &lt;br /&gt;&lt;br /&gt;1. 密码可设可不设，但建议你一定要设 &lt;br /&gt;2. 长度最好在 6 个字以上，你知道据安全专家的说法，破解一个长度6及长度4密码，至少要多花 10 倍的时间 &lt;br /&gt;3. 请勿用你的生日、相关证照号码、电话..等资料，而使用大小写英文字母及混合特殊符号，如 ct!Home-12 就是一个相当不容易破解的密码 &lt;br /&gt;4. 长度最长我曾设到 16 位数(最大长度多少，有兴趣者可自行试试) &lt;br /&gt;&lt;br /&gt;&lt;b&gt;27、 有关系统的一些激活问题.. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;有时，会修改 FreeBSD 的一些设定，如一些网络参数、软件的 .conf 设定，或是 /etc/r.conf 檔，那么如何让设定值生效，是否一定要重新开机呢？ &lt;br /&gt;&lt;br /&gt;这可分为三方面来说.. &lt;br /&gt;&lt;br /&gt;1. 网络相关设定，如网络适配卡、hostname .. 等，只要执行以下指令就可以重新加载你的网络设定.. &lt;br /&gt;&lt;br /&gt;# sh /etc/netstart &lt;br /&gt;&lt;br /&gt;netstart 是一个 script 档案，执行时会去参考 /etc/rc.network。因此只要执行这个指令就能够重新激活网络设定.. &lt;br /&gt;&lt;br /&gt;有兴趣者可参考一下 netstart 及 rc.network 这二个档的内容，研究看看到底做了些什么东东.. &lt;br /&gt;&lt;br /&gt;2. 修改了 rc.conf 中其它的设定 &lt;br /&gt;&lt;br /&gt;可参考以下三个 step 来做.. &lt;br /&gt;&lt;br /&gt;. 进入单人模式 &lt;br /&gt;# shutdown now &lt;br /&gt;&lt;br /&gt;. 选择 sh，造内定值即可，即 /bin/sh &lt;br /&gt;&lt;br /&gt;. 离开单人模式 &lt;br /&gt;# exit &lt;br /&gt;&lt;br /&gt;这样就会重新激活系统了.. &lt;br /&gt;&lt;br /&gt;3. 软件的设定，如一些 *.conf 檔，像是修正了 apache sendmail .. 等 &lt;br /&gt;&lt;br /&gt;通常在 /etc/local/rc.d/ 这个目录中会有相关的 .sh 檔，直接执行就可以了，注意的是一般要加上参数，一般的参数有以下(视软件而定会有不同).. &lt;br /&gt;&lt;br /&gt;start 激活 &lt;br /&gt;stop 停止 &lt;br /&gt;reload 或 restart 重新激活 &lt;br /&gt;&lt;br /&gt;第二种方法就是直接使用 killall，如我们要重新激活 inetd，可用以下方法: &lt;br /&gt;&lt;br /&gt;# killall -1 inetd &lt;br /&gt;&lt;br /&gt;或是 &lt;br /&gt;&lt;br /&gt;# killall -HUP inetd &lt;br /&gt;&lt;br /&gt;这样就可以重新激活这个 daemon 了 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;28、 保护你的档案 &lt;/b&gt;&lt;br /&gt;在系统中，有许多档案或一些设定档是非常重要的，加上 FreeBSD (或是一般 unix-like)系统都没有类似 ms 的垃圾回收桶的功能，万一不幸删掉(或修改)某个重要的档案，可能会造成不小的困扰.. &lt;br /&gt;&lt;br /&gt;虽然，FreeBSD 对于档案的权限设定的非常严密，但有些时候，我们以 root 身份工作，仍会有此风险.. &lt;br /&gt;&lt;br /&gt;那要如何避免这种情形发生或是保护某些重要的档案呢？ &lt;br /&gt;&lt;br /&gt;我们可以用 chflags 来达成这个目的，顾名思义， chflags 是由二个字所组成，即 change 和 flags(档案的旗标).. &lt;br /&gt;&lt;br /&gt;例如我们要保护 /etc/inetd.conf 这个档案，以免误删或被修改，则指令如下: &lt;br /&gt;&lt;br /&gt;# chflags schg /etc/inetd.conf &lt;br /&gt;&lt;br /&gt;这样就可以保护这些档案，如要显示这些档案的旗标(flag)，可用 ls 来看.. &lt;br /&gt;&lt;br /&gt;# ls -lo /etc/inetd.conf =&amp;gt; l 是小写的 L &lt;br /&gt;&lt;br /&gt;-rw------- 1 root wheel schg 47 Mar 28 21:29 inetd.conf &lt;br /&gt;&lt;br /&gt;要解除旗标设定，可用 unschg，也就是在 schg 前加 un ，如: &lt;br /&gt;&lt;br /&gt;# chflags unschg /etc/inetd.conf &lt;br /&gt;&lt;br /&gt;大部份我们进入主机都是以 root 身份执行，因此稍不小心，可能就..因此建议将一些重要的档案及设定档设定为 schg flags，以保护档案.. &lt;br /&gt;&lt;br /&gt;如 /bin、 /sbin、 /etc/.conf、 /usr/lcaol/etc/*.conf .. 这些档案最好都是定成 schg 旗标.. &lt;br /&gt;&lt;br /&gt;chflags 详细用法请参考 man chflags.. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;29、 谈谈软件的安装路径.. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;FreeBSD 对于档案目录的观念非常重，什么样的档案要放在那个目录都有规定，这也是有别于其它 unix-like 系统.. &lt;br /&gt;&lt;br /&gt;一般我们将软件安装分成二个部份，在这里来探讨一下软件到底都安装到那去了.. &lt;br /&gt;&lt;br /&gt;在安装软件时，通常会安装诸如 执行档、设定档、man file、doc 文件.. &lt;br /&gt;&lt;br /&gt;1. 安装系统时所安装的软件 &lt;br /&gt;&lt;br /&gt;执行档通常装在 /bin、/sbin、/usr/bin、/usr/sbin、/usr/libexec 下 &lt;br /&gt;设定文件通在在 /etc 目录下 &lt;br /&gt;man file 通常在 /usr/man 或 /usr/share/man &lt;br /&gt;doc 文件通常在 /usr/share/doc 下 &lt;br /&gt;&lt;br /&gt;2. 经由 package 或 port 安装的软件 &lt;br /&gt;&lt;br /&gt;执行档通常装在 /usr/local/bin、/usr/local/sbin、/usr/local/libexec 下 &lt;br /&gt;设定文件通在在 /use/local/etc 目录下 &lt;br /&gt;man file 通常在 /usr/local/man .. &lt;br /&gt;doc 文件通常在 /usr/share/doc 下 &lt;br /&gt;&lt;br /&gt;以上并不是绝对的(所以我用通常..^.^)，因为有些特殊情况需视软件而定.. &lt;br /&gt;&lt;br /&gt;如此有时可能会造成些许困扰，因为如 ssh 、 bind .. 大多是在系统安统时就安装的，那如果升级新版时怎么办.. &lt;br /&gt;&lt;br /&gt;由于 FreeBSD 找寻执行档时会依照 $PATH 这个环境变量找寻，因为 /bin、/sbin、/usr/bin、/usr/sbin 比 /usr/local/bin 或 /usr/local/sbin 先，所以会先执行..也就是先抓到旧版的执行档.. &lt;br /&gt;&lt;br /&gt;因此在更新时要注意这种情况，以免更新了还是执行旧的程序.. &lt;br /&gt;&lt;br /&gt;那么如何看安时程序时的相关档案的安装路径呢？通常有以下方法 &lt;br /&gt;&lt;br /&gt;1. 看 port 的 pkg-plist 檔 &lt;br /&gt;2. 有时用 man [执行档名称] 可看到一些重要档案的位置 &lt;br /&gt;3. 看说明文件，通常在 /usr/local/share/doc 目录下 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;30、 如何在 FreeBSD 同一片网硌卡加一个 ip 地址 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;有的时候，需要在同一片网络卡上加 ip 以达到一些特殊的要求.. &lt;br /&gt;&lt;br /&gt;在 FreeBSD 这是非常简单的，假设原先网络卡的 ip 是 211.211.211.211，想加一个 211.211.211.212，使用的是 rl0 这片网络卡，则做法如下.. &lt;br /&gt;&lt;br /&gt;1. 在 /etc/rc.conf 加上这一行 &lt;br /&gt;&lt;br /&gt;ifconfig_rl0_alias0="inet 211.211.211.212 netmask 255.255.255.255" &lt;br /&gt;&lt;br /&gt;其中的 alias0 就是加装的第一个 ip，如要设定多个可在此修正，如 alias1、alias2.. aliasN &lt;br /&gt;&lt;br /&gt;2. 重新激活网络卡，执行 /etc/netstart &lt;br /&gt;&lt;br /&gt;# /etc/netstart &lt;br /&gt;&lt;br /&gt;&lt;b&gt;31、 简单的加密你的资料 &lt;/b&gt;&lt;br /&gt;在实务上我们常需要将某些敏感的资料加密，一般我们可使用 pgp 或在这里所介绍的 crypt 来达到这个功能.. &lt;br /&gt;&lt;br /&gt;crypt 是透过 | 这个管道转换功能及密码设定来达成加密的功能，也就是说将你所设的密码当做加密产生的种子随机数.. &lt;br /&gt;&lt;br /&gt;先说明一下 crypt 的使用方法: &lt;br /&gt;&lt;br /&gt;crypt [-s] [-k] [password] &lt;br /&gt;&lt;br /&gt;一般 -s 及 -k 参数可不予理会，password 是加密或解密的密码 &lt;br /&gt;&lt;br /&gt;在这里假设我们先产生一个 test.txt 档，内容为 test，然后用 1234 这个密码加密 &lt;br /&gt;&lt;br /&gt;# cat &amp;gt; test.txt &lt;br /&gt;test &lt;br /&gt;按 ctrl+d 存盘 &lt;br /&gt;&lt;br /&gt;先看看 test.txt 内容 &lt;br /&gt;&lt;br /&gt;# more test.txt &lt;br /&gt;test &lt;br /&gt;&lt;br /&gt;将 test.txt 这个档案用 1234 这个密码加密，需配合管道 | 及转向符号使用，加密后的文件名称为 test2.txt &lt;br /&gt;&lt;br /&gt;# cat test.txt | crypt 1234 &amp;gt; test2.txt &lt;br /&gt;&lt;br /&gt;如此则会产生一个加密后的档案 test2.txt，另外密码可先不输入，按 enter 键后会显示 enter key: 让你输入密码 &lt;br /&gt;&lt;br /&gt;我们来看看加密后的档案内容，原先是 test 结果变成了: &lt;br /&gt;&lt;br /&gt;# more test2.txt &lt;br /&gt;e&lt;a8&gt;&amp;amp;&lt;a7&gt;h =&amp;gt; 已经不是原来的 test &lt;br /&gt;&lt;br /&gt;接着来将 test2.txt 解开，如下，假设解开后的档名为 test3.txt: &lt;br /&gt;&lt;br /&gt;# cyrpt 1234 &amp;lt; test2.txt &amp;gt; test3.txt &lt;br /&gt;&lt;br /&gt;以上的意思是 &lt;br /&gt;&lt;br /&gt;1234 加密时的密码 &lt;br /&gt;&amp;lt; test2.txt 将加密的档案转给 crypt 处理 &lt;br /&gt;&amp;gt; test3.txt 解密后的资料转向到 test3.txt &lt;br /&gt;&lt;br /&gt;再显示 test3.txt 的内容是否和原来一样，即 test &lt;br /&gt;&lt;br /&gt;# more test3.txt &lt;br /&gt;test &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS: &lt;br /&gt;&lt;br /&gt;1. 加密或解密时档名如和源文件一样，则会将原来的档案取代 &lt;br /&gt;2. 另有一个指令 enigma 和 crypt 用法完全一样 &lt;br /&gt;&lt;br /&gt;参考资料 man crypt &lt;br /&gt;&lt;br /&gt;&lt;b&gt;32、用 telnet 简测你的服务器(Server)有无在跑 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;有时你可以用 telnet 测试你的 Server 有无正常的 run &lt;br /&gt;例如:我要查看 ftpd 有无在跑 &lt;br /&gt;可下指令:# telnet localhost 21 &lt;br /&gt;若跑出类似以下的讯息, 表示有在跑 &lt;br /&gt;-------------------------------- &lt;br /&gt;Trying 127.0.0.1... &lt;br /&gt;Connected to localhost.ahkun. &lt;br /&gt;Escape character is '^]'. &lt;br /&gt;220-=(&amp;lt;*&amp;gt; )=-.:. (( Welcome to PureFTPd 1.0.11 )) .:.-=(&amp;lt;*&amp;gt; )=- &lt;br /&gt;220-You are user number 1 of 50 allowed &lt;br /&gt;220-Local time is now 18:52 and the load is 0.06. Server port: 21. &lt;br /&gt;220 You will be disconnected after 15 minutes of inactivity. &lt;br /&gt;&lt;br /&gt;若跑出以下的讯息, 表示没在跑 &lt;br /&gt;------------------------------------------------ &lt;br /&gt;Trying 127.0.0.1... &lt;br /&gt;telnet: connect to address 127.0.0.1: Connection refused &lt;br /&gt;telnet: Unable to connect to remote host &lt;br /&gt;&lt;br /&gt;同理你也可以用: &lt;br /&gt;telnet localhost 25 测 stmpd &lt;br /&gt;telnet localhost 110 测 pop3d &lt;br /&gt;&lt;br /&gt;结论: &lt;br /&gt;正确来讲是用 telnet 测 port 啦～ &lt;br /&gt;&lt;br /&gt;&lt;b&gt;33、 如何防止别人登录到你的计算机 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;有时，我们并不想让别人直接登入到我们的主机或是只想限定某些人可使用，如 telnet、ssh.. &lt;br /&gt;&lt;br /&gt;或者是开放了些服务，如 ftp、smtpd ..等，由于这些都必需在主机端建有帐号，因此防止不相干的人登入到你的主机是非常重要的，也是一个安全上的考量.. &lt;br /&gt;&lt;br /&gt;但一般限定的方式都是使用 ip 或是 domain 的方式，那么有无方法可解决这个问题呢？ &lt;br /&gt;&lt;br /&gt;答案是可从 /etc/login.access 来着手，这个档案就是限定 login 的.. &lt;br /&gt;&lt;br /&gt;一个典型的设定如下，例如我们想限定只有 root 及 使用者 john 可登入到主机(含local 及 remote): &lt;br /&gt;&lt;br /&gt;-:ALL EXCEPT root john:ALL &lt;br /&gt;&lt;br /&gt;可分为三个项目，每个项目间以 : 分隔，说明如下: &lt;br /&gt;&lt;br /&gt;1. + 或 - 代表允许或禁止 &lt;br /&gt;2. 设定的使用者或群组，可用 ALL EXCEPT 来强化限定的范围 &lt;br /&gt;&lt;br /&gt;3. 限定的来源，如 ALL 代表全部、61.219.230. 、LOCAL、console、.bad.com ..等 &lt;br /&gt;&lt;br /&gt;适当的设定，可让你的系统更加的安全.. &lt;br /&gt;&lt;br /&gt;详细用法可 man login.access.. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;34、 一个 ./ 的技巧 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;众所周知，在 nix-like 中执行目前目录中的可执行文件时，必需加上 ./ 这二个符号，很多 unix-like 的初学者都会感觉较不习惯，因为在 dos 或 windows 的 dos 窗口中并不是如此.. &lt;br /&gt;&lt;br /&gt;其实在 unix-like 中如此设定是有其安全考量的，在使用指令或执行文件时，一般是建议使用完整的目录，例如要使用 ls，则如下: &lt;br /&gt;&lt;br /&gt;# /bin/ls &lt;br /&gt;&lt;br /&gt;当然，你直接输入 ls 亦可正确的执行，这是因为你所使用的 shell 中环境变量 $PATH 的因素.. &lt;br /&gt;&lt;br /&gt;你可键入 echo $PATH，来看目前 $PATH 的设定，当我们执行一个指令时，系统会依照这个环境变量来搜寻这个执行档并加以执行.. &lt;br /&gt;&lt;br /&gt;内定 shell 不会将目前目录 . 加到 $PATH 中，因此如果你想在目前目录执行这个目录下的执行文件而不想加上 ./ 时，可在你的 shell 中将 . 加入.. &lt;br /&gt;&lt;br /&gt;如一般在 FreeBSD 都是使用 tcsh，你可编辑个人 home 目录下的 .cshrc 檔 set path = ( ........ ，在此加入 . 即可.. &lt;br /&gt;&lt;br /&gt;记得重新退出 shell 再登录，以便让你的新设定生效. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;35、在提示列秀出 [使用者]目前工作目录 (可以少打很多次pwd) &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;# cd /root &lt;br /&gt;编辑 .cshrc &lt;br /&gt;&lt;br /&gt;# set prompt="'hostname -s'# " ### 找到这一行并 mark 起来 &lt;br /&gt;set prompt = "[%n]%/# " ### 新增此行并存盘离开 &lt;br /&gt;&lt;br /&gt;# logout &lt;br /&gt;&lt;br /&gt;login: root ....重新登入 &lt;br /&gt;&lt;br /&gt;ps.其它user id 是否可照办? 我还没试过哩..刚装freebsd而已 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;36、rm 是 DEL 一个档案&lt;/b&gt;&lt;br /&gt;rm -r 是 DEL 整个目录 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;37、介绍一些一些有用的参数(注意大小写).. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;%B 代表高亮度 &lt;br /&gt;%n 代表用者名称 &lt;br /&gt;%m 主机名称 &lt;br /&gt;%/ 目前的目录 &lt;br /&gt;&lt;br /&gt;一般我们可能比较在意以上几点，如我要管理好几台 FreeBSD 主机，那么以上几个参数就很重要了.. &lt;br /&gt;&lt;br /&gt;举个实例来说，如我想把我的 prompt 改成这样，而且要高亮度显示： &lt;br /&gt;&lt;br /&gt;使用者名称@主机名称[目录名称]&amp;gt; &lt;br /&gt;&lt;br /&gt;则 prompt 的设定应该是这样的.. &lt;br /&gt;&lt;br /&gt;set prompt = "%B%n@%m[%/]&amp;gt; " &lt;br /&gt;&lt;br /&gt;注意 = 左右都要有一个空白，否则会出错，导致无法登入，另外如果要统一所有使用者的 prompt 的话，除了更改 /home/使用者/.cshrc 外，最好也在 /etc/csh.cshrc 中设定这一行，另外如要新增新用者也用这种提示，则请在 /usr/share/skel/dot.cshrc 中也加上(或改成)这一行，这是因为： &lt;br /&gt;&lt;br /&gt;tcsh 在使用时会先参考 /etc/csh.cshrc 这个档案，再依 user 去抓其 home 目录下的 .cshrc，而设定 /usr/share/skel/dot.cshrc 是让你新使用者时，自动将其 prompt 设定成 set prompt = "%B%n@%m[%/]&amp;gt; " &lt;br /&gt;&lt;br /&gt;这种设法，当你在管理多台主机及切换目录时，就不易搞错而发生一些惨剧      &lt;/a7&gt;&lt;/a8&gt;&lt;/kernel&gt;&lt;/any&gt;&lt;/ip&gt;&lt;/file_name&gt;&lt;/username&gt;&lt;/username&gt;&lt;/group&gt;&lt;/username&gt;&lt;/group&gt;&lt;/username&gt;&lt;/password&gt;&lt;/group&gt;&lt;/username&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-2938968558349236057?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/2938968558349236057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=2938968558349236057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/2938968558349236057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/2938968558349236057'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/freebsd_29.html' title='FREEBSD的一些小技巧'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-8722601228591822377</id><published>2011-10-27T16:14:00.000+08:00</published><updated>2011-10-27T17:01:35.184+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='blogspot'/><title type='text'>blogspot 用 google prettify code 实现 代码高亮</title><content type='html'>wordpress有很多代码高亮的插件,blogger可以使用 &lt;a href="http://code.google.com/p/google-code-prettify/" target="_blank"&gt;google prettify code&lt;/a&gt; 为 &lt;a href="http://www.blogger.com/" target="_blank"&gt;Blogspot&lt;/a&gt; 来实现.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/google-code-prettify/" target="_blank"&gt;google prettify code&lt;/a&gt;是一个轻量级的Javascript模块通过CSS文件对代码进行上色处理，支持C、Java、PHP、Python、HTMLl和Javascript等十几种语言。让我们动手吧。&lt;br /&gt;&lt;br /&gt;1.进入&lt;a href="http://www.blogger.com/" target="_blank"&gt;Blogspot&lt;/a&gt;控制台 –&amp;gt;布局 –&amp;gt;修改HTML&lt;br /&gt;在head区调用&lt;a href="http://code.google.com/p/google-code-prettify/" target="_blank"&gt;google prettify code&lt;/a&gt;的Javascript和CSS文件：&lt;br /&gt;&lt;pre&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;link&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;href&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css"&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;rel&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"stylesheet"&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;type&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"text/css"&lt;/span&gt;&lt;span class="pun"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;script&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;src&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js"&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;type&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"text/javascript"&lt;/span&gt;&lt;span class="pun"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;2.将“”改成“”&lt;br /&gt;3.修改pre标签的CSS以适合您的使用。&lt;br /&gt;&lt;pre&gt;&lt;span class="pln"&gt;pre &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp;margin&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;5px&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;20px&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp;border&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;1px&lt;/span&gt;&lt;span class="pln"&gt; dashed &lt;/span&gt;&lt;span class="com"&gt;#666;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp;padding&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;5px&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp;background&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="com"&gt;#f8f8f8;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp;white&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;space&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; pre&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;wrap&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="com"&gt;/* css-3 */&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp;white&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;space&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;moz&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;pre&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;wrap&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp;&lt;/span&gt;&lt;span class="com"&gt;/* Mozilla, since 1999 */&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp;white&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;space&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;pre&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;wrap&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="com"&gt;/* Opera 4-6 */&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp;white&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;space&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;o&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;pre&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;wrap&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="com"&gt;/* Opera 7 */&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp;word&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;wrap&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;break&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;word&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="com"&gt;/* Internet Explorer 5.5+ */&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;现在可以写一篇博客试一下了，将您的代码放在pre标签内，给pre加上class为“prettyprint”，即：&lt;br /&gt;&lt;br /&gt;&lt;pre class="”prettyprint”"&gt;&lt;br /&gt;&lt;br /&gt;your code&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;参考 :&amp;nbsp; &lt;a href="http://edwin-chain.blogspot.com/2008/11/how-to-publish-source-code-in.html"&gt;How to publish source code in Blogger.com&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html"&gt;Javascript code prettifier&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://antlite.com/blog/2008/07/google-prettify-code-syntax-highligting-in-blogspot/"&gt;用google prettify code给blogspot代码着色&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-8722601228591822377?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/8722601228591822377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=8722601228591822377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8722601228591822377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8722601228591822377'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/blogspot-google-prettify-code.html' title='blogspot 用 google prettify code 实现 代码高亮'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-458803891232010879</id><published>2011-10-26T18:09:00.000+08:00</published><updated>2011-10-31T23:04:17.970+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='usbdisk'/><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='archboot'/><category scheme='http://www.blogger.com/atom/ns#' term='multiple boot'/><category scheme='http://www.blogger.com/atom/ns#' term='grub2'/><title type='text'>利用grub2直读iso镜像 制作多启动u盘</title><content type='html'>U盘现在容量越来越大,4-8G的U盘只装一个启动系统太浪费了,这几天看了看利用grub2制作多启动U盘的内容,有点心得,这里大概说说.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;原理:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;&lt;a href="http://michael-prokop.at/blog/2009/05/25/boot-an-iso-via-grub2/"&gt;Boot an ISO via Grub2&lt;/a&gt;&lt;/div&gt;利用grub2可以启动iso文件的方法,可以制作大量的多启动U盘,但是很大部分还不支持,比如常用的debian,centos,等等就不支持,不过我常用的systermrescuecd,archboot,freebsd都支持这种启动方式.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;操作过程:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;首先把U盘分区,我实验用的U盘有2G容量,为了通用性,我就格式化为fat32格式,这样windows和linux,以及bsd下都可以复制iso,修改grub.cfg文件.&lt;br /&gt;&lt;br /&gt;1)&lt;b&gt;&lt;u&gt;分区就使用fdisk&lt;/u&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;首先你要把u盘的mbr清空,避免以前做的mbr影响将要安装的grub2启动&lt;br /&gt;&lt;br /&gt;(&lt;span style="color: red;"&gt;X&lt;/span&gt;代表你的&lt;span style="color: orange;"&gt;U盘所在的盘符&lt;/span&gt;,比如我的u盘就是/dev/sdb) &lt;br /&gt;&lt;br /&gt;$ &lt;span style="color: lime;"&gt;sudo dd&lt;/span&gt;&lt;span style="color: orange;"&gt; &lt;/span&gt;&lt;span style="background-color: black; color: orange;"&gt;if=/dev/zero of=/dev/sd&lt;span style="color: red;"&gt;X&lt;/span&gt; bs=512&amp;nbsp; count=1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$ sudo fdisk -l&lt;br /&gt;$ &lt;span style="color: lime;"&gt;sudo fdisk&lt;/span&gt; &lt;span style="background-color: black; color: orange;"&gt;/dev/sd&lt;span style="color: red;"&gt;X&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;d删除已有分区,p显示分区情况,m察看fdisk帮助,n新建分区,p为主分区,t转换分区格式,b转换为win95vfat格式,l显示可以转换的分区格式,a激活启动分区,w保存分区情况,q不保存关闭fdisk&lt;br /&gt;&lt;br /&gt;2) &lt;b&gt;&lt;u&gt;安装grub2&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;这里要注意,&lt;span style="color: red;"&gt;安装的grub2最好是32位的&lt;/span&gt;,比如systermrescuecd和ubuntu livecd都选用32位的,可以保持兼容性;我这里就走了很多弯路,使用机器arch本身的grub2,导致u盘无法启动的情况,应为我的arch是64位的.&lt;br /&gt;&lt;br /&gt;首先挂载你的u盘,如果你使用gnome3,或者其他自动挂载的桌面,你就需要找到你的u盘挂载的地方&lt;br /&gt;&lt;br /&gt;$ &lt;span style="color: orange;"&gt;sudo mount&lt;/span&gt; &lt;span style="background-color: black;"&gt;&lt;span style="background-color: black; color: red;"&gt;-t vfat&lt;/span&gt; &lt;span style="background-color: black; color: lime;"&gt;/dev/sdb1 /mnt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$ &lt;span style="color: orange;"&gt;sudo grub-install&lt;/span&gt; &lt;span style="background-color: black; color: lime;"&gt;--no-floppy --force --root-directory=/mnt /dev/sdb1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) 编辑grub.cfg文件,并添加iso文件&lt;br /&gt;&lt;br /&gt;$ &lt;span style="color: orange;"&gt;sudo mkdir&lt;/span&gt; &lt;span style="background-color: black; color: lime;"&gt;/mnt/iso&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;把你需要启动的iso镜像放到/mnt/iso目录中就可以了&lt;br /&gt;&lt;br /&gt;$ &lt;span style="color: orange;"&gt;sudo vim&lt;/span&gt; &lt;span style="background-color: black; color: lime;"&gt;/mnt/boot/grub/grub.cfg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;下面是我的grub.cfg配置文件,你可以自己根据自己的情况修改&lt;br /&gt;&lt;title&gt;~/grub.cfg.html&lt;/title&gt;&lt;style type="text/css"&gt;&lt;!--pre { white-space: pre-wrap; font-family: monospace; color: #ffffff; background-color: #000000; }body { font-family: monospace; color: #ffffff; background-color: #000000; }.Constant { color: #af5f00; }.Statement { color: #804000; }--&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="Statement"&gt;set color_normal&lt;/span&gt;=&lt;span class="Constant"&gt;'light-blue/black'&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;set color_highlight&lt;/span&gt;=&lt;span class="Constant"&gt;'light-cyan/blue'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;menuentry "System Rescue CD" {&lt;br /&gt; loopback loop /iso/systemrescuecd-x86-2.3.1.iso&lt;br /&gt;&lt;span class="Statement"&gt; linux (loop)/isolinux/rescuecd isoloop=/iso/systemrescuecd-x86-2.3.1.iso setkmap&lt;/span&gt;=&lt;span class="Constant"&gt;us docache dostartx&lt;/span&gt;&lt;br /&gt; initrd (loop)/isolinux/initram.igz&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;menuentry "Parted Magic Disk Utilities" {&lt;br /&gt; loopback loop /iso/pmagic-6.2.iso&lt;br /&gt;&lt;span class="Statement"&gt; linux (loop)/pmagic/bzImage iso_filename=/iso/pmagic-6.2.iso edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rwnomce sleep=10 loglevel&lt;/span&gt;=&lt;span class="Constant"&gt;0&lt;/span&gt;&lt;br /&gt; initrd (loop)/pmagic/initramfs&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;menuentry "Ubuntu 11.04" {&lt;br /&gt; loopback loop /iso/ubuntu-11.04-desktop-i386.iso&lt;br /&gt;&lt;span class="Statement"&gt; linux (loop)/casper/vmlinuz boot=casper iso-scan/filename&lt;/span&gt;=&lt;span class="Constant"&gt;/iso/ubuntu-11.04-desktop-i386.iso noeject noprompt --&lt;/span&gt;&lt;br /&gt; initrd (loop)/casper/initrd.lz&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;menuentry "Arch Linux i686" {&lt;br /&gt; loopback loop /iso/archlinux-2011.10-1-archboot.iso&lt;br /&gt;&lt;span class="Statement"&gt; linux (loop)/boot/vmlinuz rootdelay&lt;/span&gt;=&lt;span class="Constant"&gt;10&lt;/span&gt;&lt;br /&gt; initrd (loop)/boot/initrd.img&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;menuentry "Arch Linux x86_64" {&lt;br /&gt; loopback loop /iso/archlinux-2011.10-1-archboot.iso&lt;br /&gt;&lt;span class="Statement"&gt; linux (loop)/boot/vm64 rootdelay&lt;/span&gt;=&lt;span class="Constant"&gt;10&lt;/span&gt;&lt;br /&gt; initrd (loop)/boot/initrd64.img&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;menuentry "FreeBSD 8.2 i386" {&lt;br /&gt;&lt;span class="Statement"&gt; set isofile&lt;/span&gt;=&lt;span class="Constant"&gt;/iso/FreeBSD-8.2-RELEASE-i386-disc1.iso&lt;/span&gt;&lt;br /&gt; loopback loop $isofile&lt;br /&gt;&lt;span class="Statement"&gt; kfreebsd (loop)/boot/kernel/kernel iso-scan/filename&lt;/span&gt;=&lt;span class="Constant"&gt;$isofile noeject noprompt splash --&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt; kfreebsd_module (loop)/boot/mfsroot.gz type&lt;/span&gt;=&lt;span class="Constant"&gt;mfs_root&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;menuentry "FreeBSD 8.2 x86_64" {&lt;br /&gt;&lt;span class="Statement"&gt; set isofile&lt;/span&gt;=&lt;span class="Constant"&gt;/iso/FreeBSD-8.2-RELEASE-amd64-disc1.iso&lt;/span&gt;&lt;br /&gt; loopback loop $isofile&lt;br /&gt;&lt;span class="Statement"&gt; kfreebsd (loop)/boot/kernel/kernel iso-scan/filename&lt;/span&gt;=&lt;span class="Constant"&gt;$isofile noeject noprompt splash --&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt; kfreebsd_module (loop)/boot/mfsroot.gz type&lt;/span&gt;=&lt;span class="Constant"&gt;mfs_root&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-o385a7W5t7A/TqfalAA7AyI/AAAAAAAAATQ/xyqiJcJd8zw/s1600/screenshot-2011-10-26-18-01-19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="227" src="http://2.bp.blogspot.com/-o385a7W5t7A/TqfalAA7AyI/AAAAAAAAATQ/xyqiJcJd8zw/s400/screenshot-2011-10-26-18-01-19.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;参考 :&amp;nbsp; &lt;a href="https://wiki.archlinux.org/index.php/Archboot#Restore_Usbstick"&gt;Restore_Usbstick&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.pendrivelinux.com/boot-multiple-iso-from-usb-via-grub2-using-linux/"&gt;Boot Multiple ISO from USB via Grub2 using Linux&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.panticz.de/MultiBootUSB"&gt;MultiBootUSB shell&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://unix.stackexchange.com/questions/665/installing-grub-2-on-a-usb-flash-drive"&gt;Installing Grub (2) on a USB flash drive&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.pendrivelinux.com/install-grub2-on-usb-from-ubuntu-linux/"&gt;Install GRUB2 on USB from Ubuntu Linux&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-458803891232010879?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/458803891232010879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=458803891232010879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/458803891232010879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/458803891232010879'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/grub2u.html' title='利用grub2直读iso镜像 制作多启动u盘'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-o385a7W5t7A/TqfalAA7AyI/AAAAAAAAATQ/xyqiJcJd8zw/s72-c/screenshot-2011-10-26-18-01-19.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-8021946732072316861</id><published>2011-10-26T15:22:00.001+08:00</published><updated>2011-10-26T15:22:59.680+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='qemu'/><category scheme='http://www.blogger.com/atom/ns#' term='multiple boot'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><title type='text'>qemu直接使用u盘启动</title><content type='html'>一直使用virtualbox做虚拟机,今天想做个usb的多启动光盘,但是vbox使用u盘启动的方法太麻烦了.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;搜索发现qemu可以支持直接u盘启动,方法也很简单.&lt;br /&gt;&lt;br /&gt;首先 , 确保安装qemu &amp;nbsp; &lt;br /&gt;&lt;br /&gt;$ sudo pacman -S qemu&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;然后,找到你的u盘,可以使用fdisk,df,来察看,比如我的u盘就是/dev/sdb&lt;br /&gt;&lt;br /&gt;$ sudo fdisk -l &lt;br /&gt;&lt;br /&gt;最后,就可以使用qemu来启动你的u盘了&lt;br /&gt;&lt;br /&gt;$ sudo qemu -m 128 -hda /dev/sdb&lt;br /&gt;&lt;br /&gt;上面参数的含义是使用128M内存,以hda方式,把/dev/sdb作为启动盘引导&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;当然,你也可以使用物理硬盘来引导,比如&lt;br /&gt;&lt;br /&gt;$ sudo qemu -m 128 -hda /dev/sda &lt;br /&gt;&lt;br /&gt;就可以把你本身的物理硬盘系统启动起来&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-75uxnoOo7P4/Tqe1J5WCt-I/AAAAAAAAATI/7Sn4zrhoiNw/s1600/screenshot-2011-10-26-15-21-32.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-75uxnoOo7P4/Tqe1J5WCt-I/AAAAAAAAATI/7Sn4zrhoiNw/s1600/screenshot-2011-10-26-15-21-32.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-8021946732072316861?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/8021946732072316861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=8021946732072316861' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8021946732072316861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8021946732072316861'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/qemuu.html' title='qemu直接使用u盘启动'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-75uxnoOo7P4/Tqe1J5WCt-I/AAAAAAAAATI/7Sn4zrhoiNw/s72-c/screenshot-2011-10-26-15-21-32.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-634766265756530166</id><published>2011-10-26T15:12:00.003+08:00</published><updated>2011-10-27T16:32:12.708+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='archboot'/><title type='text'>使用最新的archboot制作启动u盘</title><content type='html'>archboot 是arch脱离出来的使用最新arch源制作非官方的启动镜像,2011-10月版本作成了2合一盘,i686和X86_64位同一个iso,好东西,下面是&lt;a href="https://wiki.archlinux.org/index.php/Archboot"&gt;archboot wiki&lt;/a&gt;的介绍.&lt;br /&gt;&lt;h2&gt;&lt;span class="mw-headline" id="Archboot_Releases"&gt;&lt;/span&gt;&lt;span class="mw-headline" id="Archboot_Releases"&gt;Archboot Releases&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt; Those files are no official Arch Linux releases.&lt;/li&gt;&lt;li&gt; Use them on your own risk.&lt;/li&gt;&lt;li&gt; Hybrid image file and torrent is provided, which include i686 and x86_64 core repository. &lt;/li&gt;&lt;li&gt; Please read the according Changelog files for RAM limitations.&lt;/li&gt;&lt;li&gt; Please check md5sum before using it.&lt;/li&gt;&lt;li&gt; &lt;a class="external text" href="https://downloads.archlinux.de/iso/archboot/2011.10" rel="nofollow"&gt;Download 2011.10 „2k11-R6“&lt;/a&gt; / &lt;a class="external text" href="https://downloads.archlinux.de/iso/archboot/2011.10/boot" rel="nofollow"&gt;Download /boot (PXE/Rescue files)&lt;/a&gt; / &lt;a class="external text" href="ftp://ftp.archlinux.org/iso/archboot/Changelog-2011.10-1.txt" rel="nofollow"&gt;Changelog&lt;/a&gt; / &lt;a class="external text" href="https://bbs.archlinux.org/viewtopic.php?id=127923" rel="nofollow"&gt;Forum thread&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;下载下来以后, 直接 运行一下命令就可以&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint"&gt;dd if=&lt;imagefile&gt; of=/dev/&lt;yourdevice&gt; bs=1M&lt;/yourdevice&gt;&lt;/imagefile&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-634766265756530166?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/634766265756530166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=634766265756530166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/634766265756530166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/634766265756530166'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/archbootu.html' title='使用最新的archboot制作启动u盘'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-7988870214740787930</id><published>2011-10-26T15:01:00.003+08:00</published><updated>2011-10-27T16:00:32.101+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='usbdisk'/><category scheme='http://www.blogger.com/atom/ns#' term='multiple boot'/><category scheme='http://www.blogger.com/atom/ns#' term='grub2'/><title type='text'>恢复u盘的默认状态</title><content type='html'>&lt;h2&gt; &lt;span class="mw-headline" id="Restore_Usbstick"&gt;Restore Usbstick&lt;/span&gt;&lt;/h2&gt;Take care about which device actually is your USB stick. The next command will render all data on /dev/sdX inaccessible.&lt;br /&gt;&lt;ul&gt;&lt;li&gt; First, wipe the bootsector of the USB stick:&lt;/li&gt;&lt;/ul&gt;&lt;pre class="prettyprint"&gt;dd if=/dev/zero of=/dev/sd&lt;span style="color: red;"&gt;X&lt;/span&gt; bs=512 count=1&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt; Then, create a new FAT32 partition on the stick and write a FAT32 filesystem on it (vfat or type b in fdisk terminology):&lt;/li&gt;&lt;/ul&gt;&lt;pre class="prettyprint"&gt;fdisk /dev/sd&lt;span style="color: red;"&gt;X&lt;/span&gt; &lt;br /&gt;n&lt;br /&gt;p&lt;br /&gt;1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;t&lt;br /&gt;b&lt;br /&gt;w&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;mkdosfs -F32 /dev/sd&lt;span style="color: red;"&gt;X&lt;/span&gt;1&amp;nbsp;&lt;/pre&gt;&lt;pre class="prettyprint"&gt;or (mkfs.vfat -F 32 -n mutilboot /dev/sd&lt;span style="color: red;"&gt;X&lt;/span&gt;1)&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-7988870214740787930?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/7988870214740787930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=7988870214740787930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7988870214740787930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7988870214740787930'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/u.html' title='恢复u盘的默认状态'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-721015255848456562</id><published>2011-10-26T08:43:00.000+08:00</published><updated>2011-10-26T09:01:00.174+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>几个常用开源镜像源推荐</title><content type='html'>平常经常装开源软件,从国外下载很慢,国内都有很不错的镜像,比如我常用的freebsd,centos,arch,ubuntu,这些镜像都有相应的源.&lt;br /&gt;&lt;br /&gt;首先就是国内大学类的镜像代表 BJTU 了,地址&amp;nbsp; http://mirror.bjtu.edu.cn/cn/&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-yqZ5acLzuw4/TqdbATJeVbI/AAAAAAAAAS4/dQQGjDW19BE/s1600/mirror.bjtu.edu.cn-2011-10-26-08-56-56.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-yqZ5acLzuw4/TqdbATJeVbI/AAAAAAAAAS4/dQQGjDW19BE/s400/mirror.bjtu.edu.cn-2011-10-26-08-56-56.png" width="395" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;然后是国内比较流行的163网易镜像源,163还有不错的免费邮箱,是我邮箱的第二选择,当然第一选择是 gmail了 , 地址 http://mirrors.163.com/&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-26GdhCeFo0I/TqdbD3z3cuI/AAAAAAAAATA/bHHpRThe_Co/s1600/mirrors.163.com-2011-10-26-08-57-11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-26GdhCeFo0I/TqdbD3z3cuI/AAAAAAAAATA/bHHpRThe_Co/s400/mirrors.163.com-2011-10-26-08-57-11.png" width="395" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-721015255848456562?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/721015255848456562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=721015255848456562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/721015255848456562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/721015255848456562'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/blog-post.html' title='几个常用开源镜像源推荐'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-yqZ5acLzuw4/TqdbATJeVbI/AAAAAAAAAS4/dQQGjDW19BE/s72-c/mirror.bjtu.edu.cn-2011-10-26-08-56-56.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-6401719749961516321</id><published>2011-10-26T08:32:00.000+08:00</published><updated>2011-10-26T08:32:26.364+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='grub2'/><title type='text'>arch linux 重装win7后恢复grub2启动</title><content type='html'>今天很郁闷,本来想尝试把u盘使用grub2作成多启动的,结果一不小心,把win7的c盘格式化了,只能进入arch,于是又重新安装了win7,结果又进不了arch,只能使用刚坐好的u盘恢复本机的arch了.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;情景:&lt;br /&gt;&lt;br /&gt;arch刚装好grub2(安装的grub2-bios),配置文件都还在;&lt;br /&gt;arch的安装镜像使用的是grub,所以需要有支持grub2安装的版本进行恢复,比如ubuntu的livecd,当然你也可以选择和我一样使用&lt;a href="http://mirrors.163.com/archlinux/iso/archboot/2011.10/archlinux-2011.10-1-archboot.iso"&gt;archlinux-2011.10-1-archboot.iso&lt;/a&gt;(支援i686和x86_64位安装).&lt;br /&gt;&lt;br /&gt;操作步奏:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;首先使用livecd启动,打开一个终端&lt;br /&gt;&lt;br /&gt;$ su -&lt;br /&gt;&lt;br /&gt;把自己转为root,察看分区情况&lt;br /&gt;&lt;br /&gt;# fdisk -l&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-GjUuoGLVaww/TqdQyMHG4_I/AAAAAAAAASg/J8Kx4T6Wq_Q/s1600/screenshot-2011-10-26-08-13-19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-GjUuoGLVaww/TqdQyMHG4_I/AAAAAAAAASg/J8Kx4T6Wq_Q/s1600/screenshot-2011-10-26-08-13-19.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;这里可以看到你的分区情况,比如我的/分区在/dev/sda10 ,/boot 分区在 /dev/sda8&lt;br /&gt; &lt;br /&gt; 然后把分区挂载起来&lt;br /&gt;&lt;br /&gt;# mount /dev/sda10 /mnt&lt;br /&gt;&lt;br /&gt; # mount /dev/sda8 /mnt/boot&lt;br /&gt;&lt;br /&gt;接下来安装grub2 (grub2-bios)&lt;br /&gt;&lt;br /&gt;# grub_bios-install --root-directory=/mnt/&amp;nbsp; /dev/sda&lt;br /&gt;&lt;br /&gt;接下来重启就可以了&lt;br /&gt;&lt;br /&gt;参考:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://oppih.wordpress.com/2010/09/05/%e8%ae%b0%e5%bd%95%e4%b8%80%e4%b8%8b%e9%87%8d%e8%a3%85win%e5%90%8egrub2%e7%9a%84%e6%81%a2%e5%a4%8d%e6%96%b9%e6%b3%95/"&gt;记录一下重装Win后grub2的恢复方法&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="https://wiki.archlinux.org/index.php/Archboot"&gt;arch wiki archboot 使用方法&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-6401719749961516321?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/6401719749961516321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=6401719749961516321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6401719749961516321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6401719749961516321'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/arch-linux-win7grub2.html' title='arch linux 重装win7后恢复grub2启动'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-GjUuoGLVaww/TqdQyMHG4_I/AAAAAAAAASg/J8Kx4T6Wq_Q/s72-c/screenshot-2011-10-26-08-13-19.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-3203030303661527849</id><published>2011-10-26T00:39:00.003+08:00</published><updated>2011-10-26T00:39:59.983+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='mkfs'/><title type='text'>archlinux mkfs.vfat 和 mkfs.ntfs</title><content type='html'>今天做个U盘的多启动盘,发现没有安装fat32的格式化工具,倒是有ntfs的格式化.&lt;br /&gt;&lt;br /&gt;原来需要mkfs支持vfat和ntfs格式化需要2个包&lt;br /&gt; &lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;dosfstools&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;$ sudo pacman -S dosfstools&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt; &lt;/code&gt;&lt;br /&gt;&lt;code&gt;这个包给你2个命令,mkfs.vfat,mkfs.msdos&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;如果你也想支持ntfs的格式化mkfs.ntfs就需要安装&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;$ sudo pacman -S&amp;nbsp; &lt;/code&gt;&lt;code&gt;ntfsprogs&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-IU1_mRwCxb0/TqbmRsof4gI/AAAAAAAAASY/Yyih9bQfYsk/s1600/screenshot-2011-10-26-00-38-49.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-IU1_mRwCxb0/TqbmRsof4gI/AAAAAAAAASY/Yyih9bQfYsk/s1600/screenshot-2011-10-26-00-38-49.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-3203030303661527849?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/3203030303661527849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=3203030303661527849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3203030303661527849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3203030303661527849'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/archlinux-mkfsvfat-mkfsntfs.html' title='archlinux mkfs.vfat 和 mkfs.ntfs'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-IU1_mRwCxb0/TqbmRsof4gI/AAAAAAAAASY/Yyih9bQfYsk/s72-c/screenshot-2011-10-26-00-38-49.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-3169782133651843985</id><published>2011-10-25T22:21:00.000+08:00</published><updated>2011-10-25T22:21:51.797+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multiple boot'/><category scheme='http://www.blogger.com/atom/ns#' term='grub2'/><title type='text'>Boot Multiple ISO from USB via Grub2 using Linux</title><content type='html'>&lt;em&gt;Boot ISO Files directly from USB&lt;/em&gt; using Grub2 from Linux. Here is one way to create a Multiboot USB Flash Drive from a running Ubuntu (I used the Live CD). You may eventually need a large Flash Drive or USB Hard Drive in order to include every bootable  ISO entry. I will add more Bootable ISO files to the grub.cfg file as  I find time to test them. Contact me to submit working  Bootable Linux ISO grub.cfg entries for inclusion.&lt;br /&gt;&lt;span id="more-5352"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;I. Format your USB Flash Drive to use a Single Partition&lt;/strong&gt;:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open a terminal and type &lt;code&gt;sudo su&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;fdisk -l&lt;/code&gt; (and note which device is your USB Drive)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;fdisk /dev/sd&lt;span style="color: red;"&gt;x&lt;/span&gt;&lt;/code&gt; (replacing &lt;strong&gt;&lt;span style="color: red;"&gt;x&lt;/span&gt;&lt;/strong&gt; with your actual usb device)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;d&lt;/code&gt; (to delete the existing partition)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;n&lt;/code&gt; (to create a new partition)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;p&lt;/code&gt; (for primary partition)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;1&lt;/code&gt; (to create the first partition)&lt;/li&gt;&lt;li&gt;&lt;code&gt;Press Enter&lt;/code&gt; (to use the first cylinder)&lt;/li&gt;&lt;li&gt;&lt;code&gt;Press Enter&lt;/code&gt; again (to use the default value as the last cylinder)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;a&lt;/code&gt; (for active)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;1&lt;/code&gt; (to mark the first partition active "bootable")&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;w&lt;/code&gt; (to write the changes and close fdisk)&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;II. Create a Fat32 Filesystem on the USB Flash Drive&lt;/strong&gt;:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Type &lt;code&gt;umount /dev/sd&lt;span style="color: red;"&gt;x&lt;/span&gt;1&lt;/code&gt; (to unmount the mounted partition)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;mkfs.vfat -F 32 -n MULTIBOOT /dev/sd&lt;span style="color: red;"&gt;x&lt;/span&gt;1&lt;/code&gt; (to format the partition as fat32)&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;III. Install Grub2 on the USB Flash Drive&lt;/strong&gt;:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Type &lt;code&gt;mkdir /media/MULTIBOOT&lt;/code&gt; (to create a directory for the mountpoint)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;mount /dev/sd&lt;span style="color: red;"&gt;x&lt;/span&gt;1 /media/MULTIBOOT&lt;/code&gt; (to mount the USB)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;grub-install --force --no-floppy --root-directory=/media/MULTIBOOT /dev/sd&lt;span style="color: red;"&gt;x&lt;/span&gt;&lt;/code&gt; (to install Grub2)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;cd /media/MULTIBOOT/boot/grub&lt;/code&gt; (to change directory)&lt;/li&gt;&lt;li&gt;Type &lt;code&gt;wget pendrivelinux.com/downloads/multibootlinux/grub.cfg&lt;/code&gt; (to get the grub.cfg file)&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;IV. Test to make sure your USB Device Boots into Grub2&lt;/strong&gt;:&lt;br /&gt;Reboot your Computer, and enter your BIOS or Boot Menu. Set the Boot Order to boot from the USB Device. Save your changes and Reboot. If all goes well, you should be presented with a Grub2 Boot Menu.&lt;br /&gt;&lt;strong&gt;V. Adding the Bootable ISO files&lt;/strong&gt;:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Type &lt;code&gt;cd /media/MULTIBOOT&lt;/code&gt; (assuming USB is still mounted here)&lt;/li&gt;&lt;li&gt;Follow the instructions for the ISO Distro you would like to add below. Simply click to expand the instructions.&lt;/li&gt;&lt;/ol&gt;&amp;nbsp;http://www.pendrivelinux.com/boot-multiple-iso-from-usb-via-grub2-using-linux/&lt;br /&gt;&amp;nbsp;http://www.pendrivelinux.com/install-grub2-on-usb-from-ubuntu-linux/&lt;br /&gt;http://inportb.com/2010/07/19/install-windows-7-from-usb-pen-drive-using-grub2-and-grub4dos/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-3169782133651843985?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/3169782133651843985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=3169782133651843985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3169782133651843985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3169782133651843985'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/boot-multiple-iso-from-usb-via-grub2.html' title='Boot Multiple ISO from USB via Grub2 using Linux'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-8226376361540966644</id><published>2011-10-25T22:04:00.000+08:00</published><updated>2011-10-26T01:22:25.381+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='grub'/><category scheme='http://www.blogger.com/atom/ns#' term='pacman'/><category scheme='http://www.blogger.com/atom/ns#' term='grub2'/><title type='text'>archlinux 升级grub2</title><content type='html'>GRUB2是下一代的多系统引导器，grub即将退位，项目名也改成了grub-legacy。相比grub(目前的版本是0.97)而言，grub2重写了代码以实现模块化和可移植性。&lt;br /&gt;&lt;br /&gt;GRUB 2 has replaced what was formerly known as GRUB (i.e. version 0.9x),  which has, in turn, become &lt;a href="http://www.gnu.org/software/grub/grub-legacy.en.html" style="color: orange;"&gt;GRUB Legacy&lt;/a&gt;.  Enhancements to GRUB are still being made, but the current released versions  are quite usable for normal operation.&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.gnu.org/software/grub/grub-legacy.en.html" style="color: orange;"&gt;GRUB Legacy&lt;/a&gt; is no longer being  developed&lt;/b&gt;. For the differences between &lt;a href="http://www.gnu.org/software/grub/grub-legacy.en.html" style="color: orange;"&gt;GRUB Legacy&lt;/a&gt; and GRUB, see the &lt;a href="http://www.gnu.org/software/grub/grub-legacy-support.en.html" style="color: orange;"&gt;Grub  Legacy Documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Grub2的Logo: &lt;img alt="" class="alignnone" height="105" src="http://www.inf.sgsp.edu.pl/pub/MALUNKI/LOGO/grub.png" title="grub logo" width="125" /&gt; &lt;img alt="" class="alignnone" height="152" src="http://www.inf.sgsp.edu.pl/pub/MALUNKI/LOGO/grub2.png" title="another grub logo" width="118" /&gt;&lt;br /&gt;&lt;br /&gt;将archlinux的grub升级到grub2是一件很简单的事情，你只需要通过pacman安装新的grub2软件包，转换menu.lst为grub.cfg就可以了。这篇日志的大部分资料来自&lt;a href="https://wiki.archlinux.org/index.php/GRUB2" style="color: orange;" target="_blank"&gt;Archlinux的wiki&lt;/a&gt;，命令截图来自我的笔记本电脑。&lt;br /&gt;&lt;br /&gt;首先,搜索一下仓库里的grub2软件包:&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-bvV-s88HCT0/Tqa-dPzUA1I/AAAAAAAAARw/hjuD3icLk1U/s1600/screenshot-2011-10-25-21-14-45.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-bvV-s88HCT0/Tqa-dPzUA1I/AAAAAAAAARw/hjuD3icLk1U/s1600/screenshot-2011-10-25-21-14-45.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;你会发现目前仓库里有4个grub2的软件包，做个简单的介绍吧:&lt;br /&gt;&lt;br /&gt;grub2-bios&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; –&amp;gt; 适用于PC BIOS&lt;br /&gt;grub2-commin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; –&amp;gt; 文件集合（包含了所有平台相关的文件）&lt;br /&gt;grub2-efi-i386&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; –&amp;gt; 适用于32位平台的UEFI&lt;br /&gt;grub2-efi-x86_64&amp;nbsp; –&amp;gt; 适用于64位平台的UEFI&lt;br /&gt;&lt;br /&gt;一般情况下，我们选择安装grub2-bios。什么是UEFI呢？这货全称Unified Extensible Firmware Interface，直译叫做“统一的可扩展固件接口”，这种接口用于操作系统自动从预启动的操作环境，加载到某种操作系统上，从而使开机程序化繁为简，节省时间。UEFI将替代已存在多年的BIOS，目前市场上的主板已经开始采用UEFI 。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;安装和升级过程:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;1) 安装grub2-bios&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Gqr7tzy0YxM/Tqa_G4GAfdI/AAAAAAAAAR4/IHV5SAZiTs4/s1600/screenshot-2011-10-25-21-10-27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-Gqr7tzy0YxM/Tqa_G4GAfdI/AAAAAAAAAR4/IHV5SAZiTs4/s1600/screenshot-2011-10-25-21-10-27.png" /&gt;&lt;/a&gt;&lt;/div&gt;安装过程中会提示与现有的grub冲突,直接回答y就可以了; 另外如果你喜欢干净,可以把/boot/grub/ 目录备份到别的地方,然后删除grub目录里的内容.&lt;br /&gt;&lt;br /&gt;2) 擦除MBR上grub-legacy的痕迹. 这一步很关键,如果你的grub是安装在MBR上,你就需要做这一步操作. of后面跟的是硬盘设备名,可以使用$ sudo fdisk -l 察看.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-XEep3yXYQ98/TqbAhPnp2NI/AAAAAAAAASA/CrNCN3wSMow/s1600/screenshot-2011-10-25-21-18-59.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-XEep3yXYQ98/TqbAhPnp2NI/AAAAAAAAASA/CrNCN3wSMow/s1600/screenshot-2011-10-25-21-18-59.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;3) 安装grub2到MBR.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-l35C8OK0urM/TqbA1fU8d3I/AAAAAAAAASI/LwPJU0tHcd0/s1600/screenshot-2011-10-25-21-24-12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-l35C8OK0urM/TqbA1fU8d3I/AAAAAAAAASI/LwPJU0tHcd0/s1600/screenshot-2011-10-25-21-24-12.png" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $sudo cp /usr/share/grub/{unicode.pf2,ascii.pf2} /boot/grub/&lt;br /&gt;&lt;br /&gt;4) 生成grub2的配置文件grub.cfg.(可以从 menu.lst 或者 grub.conf 转换过来)&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-a9020O5K22k/TqbBObYkl8I/AAAAAAAAASQ/CVSJin4tKog/s1600/screenshot-2011-10-25-21-27-54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-a9020O5K22k/TqbBObYkl8I/AAAAAAAAASQ/CVSJin4tKog/s1600/screenshot-2011-10-25-21-27-54.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;5)重启系统,检验成果&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;结束语:&lt;br /&gt;&lt;br /&gt;这里只是介绍了Archlinux上如何将grub（又名grub-legacy）升级到grub2，至于grub2的命令操作、grub.cfg的配置方式则没有给出说明 （你可以在wiki上获得详细内容，下面有链接）&lt;br /&gt;&lt;br /&gt;参考资料:&lt;br /&gt;1. Archlinux上有详细的介绍，包括BIOS和UEFI的安装方式，GPT的延伸阅读。&lt;br /&gt;https://wiki.archlinux.org/index.php/GRUB2#For_BIOS_Systems&lt;br /&gt;https://wiki.archlinux.org/index.php/GRUB2#During_Arch_Linux_installation &lt;br /&gt;2. GRUB项目主页&lt;br /&gt;http://www.gnu.org/software/grub/index.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-8226376361540966644?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/8226376361540966644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=8226376361540966644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8226376361540966644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8226376361540966644'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/archlinux-grub2.html' title='archlinux 升级grub2'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-bvV-s88HCT0/Tqa-dPzUA1I/AAAAAAAAARw/hjuD3icLk1U/s72-c/screenshot-2011-10-25-21-14-45.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-9196538699781925663</id><published>2011-10-25T14:38:00.001+08:00</published><updated>2011-10-25T14:38:16.024+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='pacman'/><title type='text'>pacman 之 清理缓存脚本</title><content type='html'>&lt;title&gt;~/code/shell/cleanold.html&lt;/title&gt;&lt;style type="text/css"&gt;&lt;!--pre { white-space: pre-wrap; font-family: monospace; color: #ffffff; background-color: #000000; }body { font-family: monospace; color: #ffffff; background-color: #000000; }.Error { color: #c0c0c0; background-color: #c00000; font-weight: bold; }.Constant { color: #af5f00; }.Statement { color: #804000; }.Special { color: #c000c0; }.PreProc { color: #c000c0; }.Identifier { color: #008080; font-weight: bold; }.Comment { color: #008080; }--&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="Comment"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# 本脚本清理指定文件夹(不知定默认为/var/DIR/pacman/pkg)下过期的软件包，默认保留最新的两个版本.&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# Carbon Jiao   2009-09-06 &lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# Archlive &amp;lt;&lt;a href="http://archlive.google.com/"&gt;http://archlive.google.com&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# 本脚本最开始算法来自于&lt;a href="http://www.linuxsir.org/bbs/thread348435.html"&gt;http://www.linuxsir.org/bbs/thread348435.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# 原作者  veryxp&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# 2009-09-21 更新：执行前先等待5秒。。。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;APPNAME&lt;/span&gt;=&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Special"&gt;basename &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;0&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;cmdline&lt;/span&gt;=&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;KEEPN&lt;/span&gt;=&lt;span class="Constant"&gt;2&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;DIR&lt;/span&gt;=&lt;span class="Statement"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# usage: usage &amp;lt;exitvalue&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;usage ()&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;""&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Special"&gt;用法&lt;/span&gt;&lt;span class="Constant"&gt;: sudo sh ./&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;APPNAME&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Constant"&gt; [&lt;/span&gt;&lt;span class="Special"&gt;选项&lt;/span&gt;&lt;span class="Constant"&gt;] -r &amp;lt;&lt;/span&gt;&lt;span class="Special"&gt;预清理目录&lt;/span&gt;&lt;span class="Constant"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;       &lt;/span&gt;&lt;span class="Special"&gt;如果将本脚本放在系统&lt;/span&gt;&lt;span class="Constant"&gt;PATH&lt;/span&gt;&lt;span class="Special"&gt;指定的目录中，则&lt;/span&gt;&lt;span class="Constant"&gt;:&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;       sudo &lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;APPNAME&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Constant"&gt; [&lt;/span&gt;&lt;span class="Special"&gt;选项&lt;/span&gt;&lt;span class="Constant"&gt;] -r &amp;lt;&lt;/span&gt;&lt;span class="Special"&gt;预清理目录&lt;/span&gt;&lt;span class="Constant"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Special"&gt;选项&lt;/span&gt;&lt;span class="Constant"&gt;:&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;    -f               &lt;/span&gt;&lt;span class="Special"&gt;删除前无需确认&lt;/span&gt;&lt;span class="Constant"&gt;;&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;    -a               &lt;/span&gt;&lt;span class="Special"&gt;没有安装的所有包也删除&lt;/span&gt;&lt;span class="Constant"&gt;;&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;    -r &amp;lt;DIR&amp;gt;         DIR &lt;/span&gt;&lt;span class="Special"&gt;为预清理的目录&lt;/span&gt;&lt;span class="Constant"&gt;;&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;    -n &amp;lt;n&amp;gt;          n: &lt;/span&gt;&lt;span class="Special"&gt;保留版本数默认为&lt;/span&gt;&lt;span class="PreProc"&gt;$KEEPN&lt;/span&gt;&lt;span class="Constant"&gt;;&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;    -h               &lt;/span&gt;&lt;span class="Special"&gt;本帮助信息&lt;/span&gt;&lt;span class="Constant"&gt;.&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;exit&lt;/span&gt; &lt;span class="PreProc"&gt;$1&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;COLORMSG&lt;/span&gt;=&lt;span class="Constant"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;plain() {&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="PreProc"&gt;$COLORMSG&lt;/span&gt; &lt;span class="Statement"&gt;-eq&lt;/span&gt; &lt;span class="Constant"&gt;1&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;2m    &lt;/span&gt;&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;0m&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;else&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;   &lt;/span&gt;&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;msg() {&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="PreProc"&gt;$COLORMSG&lt;/span&gt; &lt;span class="Statement"&gt;-eq&lt;/span&gt; &lt;span class="Constant"&gt;1&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;32m==&amp;gt;&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;0m&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;1m &lt;/span&gt;&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;0m&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;else&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;==&amp;gt; &lt;/span&gt;&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;msg2() {&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="PreProc"&gt;$COLORMSG&lt;/span&gt; &lt;span class="Statement"&gt;-eq&lt;/span&gt; &lt;span class="Constant"&gt;1&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;34m  -&amp;gt;&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;0m&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;1m &lt;/span&gt;&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;0m&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;else&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;  -&amp;gt; &lt;/span&gt;&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;warn() {&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="PreProc"&gt;$COLORMSG&lt;/span&gt; &lt;span class="Statement"&gt;-eq&lt;/span&gt; &lt;span class="Constant"&gt;1&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;33m==&amp;gt; &lt;/span&gt;&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Special"&gt;gettext &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;WARN:&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;0m&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;1m &lt;/span&gt;&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;0m&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;else&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;==&amp;gt; &lt;/span&gt;&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Special"&gt;gettext &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;WARN:&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;error() {&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="PreProc"&gt;$COLORMSG&lt;/span&gt; &lt;span class="Statement"&gt;-eq&lt;/span&gt; &lt;span class="Constant"&gt;1&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;31m==&amp;gt; &lt;/span&gt;&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Special"&gt;gettext &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;ERROR:&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;0m&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;1m &lt;/span&gt;&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;span class="Special"&gt;\033&lt;/span&gt;&lt;span class="Constant"&gt;[1;0m&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;else&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;==&amp;gt; &lt;/span&gt;&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Special"&gt;gettext &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;ERROR:&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;$EUID&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;!=&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;0&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt; &amp;amp;&amp;amp; error &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;错误&lt;/span&gt;&lt;span class="Constant"&gt;: &lt;/span&gt;&lt;span class="Special"&gt;必须以&lt;/span&gt;&lt;span class="Constant"&gt;root&lt;/span&gt;&lt;span class="Special"&gt;用户运行本制作脚本&lt;/span&gt;&lt;span class="Constant"&gt;.&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &amp;amp;&amp;amp; usage &lt;span class="Constant"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# 检测、配置输入的命令&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;while &lt;/span&gt;&lt;span class="Statement"&gt;getopts&lt;/span&gt;&lt;span class="Statement"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;'&lt;/span&gt;&lt;span class="Constant"&gt;:fahn:r:&lt;/span&gt;&lt;span class="Statement"&gt;'&lt;/span&gt;&lt;span class="Statement"&gt; arg&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt;&lt;span class="Statement"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;do&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;case&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;arg&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;in&lt;/span&gt;&lt;br /&gt;    n&lt;span class="Statement"&gt;)&lt;/span&gt; &lt;span class="Identifier"&gt;KEEPN&lt;/span&gt;=&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;OPTARG&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;    r&lt;span class="Statement"&gt;)&lt;/span&gt; &lt;span class="Identifier"&gt;DIR&lt;/span&gt;=&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;OPTARG&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;    f&lt;span class="Statement"&gt;)&lt;/span&gt; &lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;    a&lt;span class="Statement"&gt;)&lt;/span&gt; &lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;        h&lt;span class="Statement"&gt;)&lt;/span&gt; usage &lt;span class="Constant"&gt;0&lt;/span&gt;&lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;        ?&lt;span class="Statement"&gt;)&lt;/span&gt; error &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;输入&lt;/span&gt;&lt;span class="PreProc"&gt;$@&lt;/span&gt;&lt;span class="Special"&gt;包含无效参数&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; usage &lt;span class="Constant"&gt;1&lt;/span&gt;&lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;esac&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;x&lt;/span&gt;&lt;span class="PreProc"&gt;$DIR&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;=&lt;/span&gt; &lt;span class="Constant"&gt;"x"&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="Statement"&gt;!&lt;/span&gt; &lt;span class="Statement"&gt;-f&lt;/span&gt; /etc/pacman.conf &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt; error &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;没有指定预清理的目录，且操作系统不是&lt;/span&gt;&lt;span class="Constant"&gt;Arch&lt;/span&gt;&lt;span class="Special"&gt;，为安全考虑，程序退出！&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;&amp;amp;&amp;amp;&lt;/span&gt; usage &lt;span class="Constant"&gt;1&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;    &lt;span class="Identifier"&gt;DIR&lt;/span&gt;=&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Statement"&gt;grep&lt;/span&gt;&lt;span class="Special"&gt; CacheDir /etc/pacman.conf &lt;/span&gt;&lt;span class="Statement"&gt;|&lt;/span&gt;&lt;span class="Special"&gt; awk &lt;/span&gt;&lt;span class="Statement"&gt;'&lt;/span&gt;&lt;span class="Constant"&gt;{print $3}&lt;/span&gt;&lt;span class="Statement"&gt;'&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;x&lt;/span&gt;&lt;span class="PreProc"&gt;$DIR&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;=&lt;/span&gt; &lt;span class="Constant"&gt;"x"&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt; error &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;没有指定预清理的目录，且&lt;/span&gt;&lt;span class="Constant"&gt;pacman.conf&lt;/span&gt;&lt;span class="Special"&gt;无缓存相关设置&lt;/span&gt;&lt;span class="Constant"&gt;!&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;&amp;amp;&amp;amp;&lt;/span&gt; usage &lt;span class="Constant"&gt;1&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;msg &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;输入的参数&lt;/span&gt;&lt;span class="Constant"&gt;:&lt;/span&gt;&lt;span class="PreProc"&gt;$cmdline&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;result&lt;/span&gt;=&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;清理目录&lt;/span&gt;&lt;span class="PreProc"&gt;$DIR&lt;/span&gt;&lt;span class="Constant"&gt;, &lt;/span&gt;&lt;span class="Special"&gt;保留&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;KEEPN&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Special"&gt;个版本&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;case&lt;/span&gt; &lt;span class="PreProc"&gt;$cmdline&lt;/span&gt; &lt;span class="Statement"&gt;in&lt;/span&gt; *a*&lt;span class="Statement"&gt;)&lt;/span&gt; &lt;span class="Identifier"&gt;result&lt;/span&gt;=&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;result&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Constant"&gt;, &lt;/span&gt;&lt;span class="Special"&gt;删除系统没有安装的软件包&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;            &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="Statement"&gt;!&lt;/span&gt; &lt;span class="Statement"&gt;-f&lt;/span&gt; /etc/pacman.conf &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt; error &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;操作系统不是&lt;/span&gt;&lt;span class="Constant"&gt;Arch, &lt;/span&gt;&lt;span class="Special"&gt;出现问题后果自负！&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;            &lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;esac&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;case&lt;/span&gt; &lt;span class="PreProc"&gt;$cmdline&lt;/span&gt; &lt;span class="Statement"&gt;in&lt;/span&gt; *f*&lt;span class="Statement"&gt;)&lt;/span&gt; &lt;span class="Identifier"&gt;result&lt;/span&gt;=&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;result&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Constant"&gt;, &lt;/span&gt;&lt;span class="Special"&gt;删除先无需确认&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Statement"&gt;;;&lt;/span&gt; &lt;span class="Statement"&gt;esac&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;msg &lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;result&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Statement"&gt;shift&lt;/span&gt; &lt;span class="Special"&gt;`&lt;/span&gt;&lt;span class="Statement"&gt;expr&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="PreProc"&gt;$OPTIND&lt;/span&gt;&lt;span class="Special"&gt; - &lt;/span&gt;&lt;span class="Constant"&gt;1&lt;/span&gt;&lt;span class="Special"&gt;`&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Comment"&gt;#if ! [ "x${@}" = "x" ]; then&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;#   error "无法识别的参数或命令: $@"&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;#   usage 1&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;#fi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;msg &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;5&lt;/span&gt;&lt;span class="Special"&gt;秒后继续，&lt;/span&gt;&lt;span class="Constant"&gt;Ctrl+C &lt;/span&gt;&lt;span class="Special"&gt;可以结束本脚本的执行。&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;sleep&lt;/span&gt; &lt;span class="Constant"&gt;5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;action_clean ()&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;for &lt;/span&gt;&lt;span class="Special"&gt;((&lt;/span&gt;i&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="Constant"&gt;0&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; i&lt;span class="Statement"&gt;&amp;lt;&lt;/span&gt;&lt;span class="PreProc"&gt;${#&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;@&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; i++&lt;span class="Special"&gt;))&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;do&lt;/span&gt;&lt;br /&gt;    &lt;span class="Comment"&gt;# 取得软件包名称&lt;/span&gt;&lt;br /&gt;    &lt;span class="Identifier"&gt;pkgname&lt;/span&gt;=&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$i&lt;/span&gt;&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;%&lt;/span&gt; *&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;case&lt;/span&gt; &lt;span class="PreProc"&gt;$cmdline&lt;/span&gt; &lt;span class="Statement"&gt;in&lt;/span&gt; *-a*&lt;span class="Statement"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;span class="Comment"&gt;# 如果系统里没有安装此包，将其删除&lt;/span&gt;&lt;br /&gt;        &lt;span class="Comment"&gt;#if ! pacman -Qq $pkgname&amp;gt;/dev/null 2&amp;gt;&amp;amp;1; then  #不喜欢调用pacman的用如下语句 Carbonjiao注&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;x&lt;/span&gt;&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Statement"&gt;ls&lt;/span&gt;&lt;span class="Special"&gt; $&lt;/span&gt;&lt;span class="Statement"&gt;(&lt;/span&gt;&lt;span class="Statement"&gt;grep&lt;/span&gt;&lt;span class="Special"&gt; DBPath /etc/pacman.conf &lt;/span&gt;&lt;span class="Statement"&gt;|&lt;/span&gt;&lt;span class="Special"&gt; awk &lt;/span&gt;&lt;span class="Statement"&gt;'&lt;/span&gt;&lt;span class="Constant"&gt;{print $3}&lt;/span&gt;&lt;span class="Statement"&gt;'&lt;/span&gt;&lt;span class="Statement"&gt;)&lt;/span&gt;&lt;span class="Special"&gt;/&lt;/span&gt;&lt;span class="Statement"&gt;local&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;|&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;grep&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$i&lt;/span&gt;&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;//&lt;/span&gt; &lt;span class="Statement"&gt;/&lt;/span&gt;-&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;=&lt;/span&gt; &lt;span class="Constant"&gt;"x"&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;            plain &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;系统中没有安装&lt;/span&gt;&lt;span class="PreProc"&gt;$pkgname&lt;/span&gt;&lt;span class="Constant"&gt;, &lt;/span&gt;&lt;span class="Special"&gt;现在删除&lt;/span&gt;&lt;span class="PreProc"&gt;$DIR&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Special"&gt;下的软件包&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$i&lt;/span&gt;&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;//&lt;/span&gt; &lt;span class="Statement"&gt;/&lt;/span&gt;-&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;            &lt;span class="Statement"&gt;case&lt;/span&gt; &lt;span class="PreProc"&gt;$cmdline&lt;/span&gt; &lt;span class="Statement"&gt;in&lt;/span&gt; *-f*&lt;span class="Statement"&gt;)&lt;/span&gt; &lt;span class="Statement"&gt;rm&lt;/span&gt; -rf &lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$i&lt;/span&gt;&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;//&lt;/span&gt; &lt;span class="Statement"&gt;/&lt;/span&gt;-&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;                  *&lt;span class="Statement"&gt;)&lt;/span&gt; &lt;span class="Statement"&gt;rm&lt;/span&gt; -ri &lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$i&lt;/span&gt;&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;//&lt;/span&gt; &lt;span class="Statement"&gt;/&lt;/span&gt;-&lt;span class="PreProc"&gt;}&lt;/span&gt; &lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;            &lt;span class="Statement"&gt;esac&lt;/span&gt;&lt;br /&gt;            &lt;span class="Statement"&gt;continue&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;esac&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="Comment"&gt;# 如果出现重复的软件包名称，则更新重复计数器 dup&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;$pkgname&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;==&lt;/span&gt; &lt;span class="Constant"&gt;"$prev"&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;let&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;dup++&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;else&lt;/span&gt;&lt;br /&gt;    &lt;span class="Comment"&gt;# 如果计数器超过设置的 KEEPN，就开始清理&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;dup&lt;/span&gt;&lt;span class="Statement"&gt;:-&lt;/span&gt;0&lt;span class="PreProc"&gt;}&lt;/span&gt; &lt;span class="Statement"&gt;-gt&lt;/span&gt; &lt;span class="PreProc"&gt;$KEEPN&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;            msg &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;软件&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="PreProc"&gt;$prev&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Special"&gt;有&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="PreProc"&gt;$dup&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Special"&gt;个版本&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;            &lt;span class="Comment"&gt;# 确定需要处理的数组上下标 ub 和 lb，用 let 赋值更会清晰一些&lt;/span&gt;&lt;br /&gt;            &lt;span class="Identifier"&gt;ub&lt;/span&gt;=&lt;span class="PreProc"&gt;$((&lt;/span&gt;&lt;span class="PreProc"&gt;$i&lt;/span&gt;&lt;span class="Constant"&gt;-1&lt;/span&gt;&lt;span class="PreProc"&gt;))&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Identifier"&gt;lb&lt;/span&gt;=&lt;span class="PreProc"&gt;$((&lt;/span&gt;&lt;span class="PreProc"&gt;$i&lt;/span&gt;&lt;span class="Special"&gt;-&lt;/span&gt;&lt;span class="PreProc"&gt;$dup&lt;/span&gt;&lt;span class="PreProc"&gt;))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;span class="Comment"&gt;# 用冒泡法将要处理的数组元素排序，版本旧的在前&lt;/span&gt;&lt;br /&gt;            &lt;span class="Comment"&gt;# 如够偷懒可以不排序，按修改时间判断包的新旧，可能不准&lt;/span&gt;&lt;br /&gt;            &lt;span class="Statement"&gt;for &lt;/span&gt;&lt;span class="Special"&gt;((&lt;/span&gt;x&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="PreProc"&gt;$lb&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; x&lt;span class="Statement"&gt;&amp;lt;&lt;/span&gt;&lt;span class="PreProc"&gt;$ub&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; x++&lt;span class="Special"&gt;))&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;do&lt;/span&gt;&lt;br /&gt;                &lt;span class="Statement"&gt;for &lt;/span&gt;&lt;span class="Special"&gt;((&lt;/span&gt;y&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="PreProc"&gt;$ub&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; y&lt;span class="Statement"&gt;&amp;gt;&lt;/span&gt;&lt;span class="PreProc"&gt;$x&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; y--&lt;span class="Special"&gt;))&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;do&lt;/span&gt;&lt;br /&gt;                    vercmp &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$y&lt;/span&gt;&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;//&lt;/span&gt; &lt;span class="Statement"&gt;/&lt;/span&gt;-&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$((&lt;/span&gt;&lt;span class="PreProc"&gt;$y&lt;/span&gt;&lt;span class="Constant"&gt;-1&lt;/span&gt;&lt;span class="PreProc"&gt;))&lt;/span&gt;&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;//&lt;/span&gt; &lt;span class="Statement"&gt;/&lt;/span&gt;-&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;&amp;gt;&lt;/span&gt; /dev/null&lt;br /&gt;                    &lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="PreProc"&gt;$?&lt;/span&gt; &lt;span class="Statement"&gt;-lt&lt;/span&gt; &lt;span class="Constant"&gt;0&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;                        &lt;span class="Identifier"&gt;t&lt;/span&gt;=&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$y&lt;/span&gt;&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;                        list&lt;span class="Statement"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$y&lt;/span&gt;&lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="Constant"&gt;"${list[$(($y-1))]}"&lt;/span&gt;&lt;br /&gt;                        list&lt;span class="Statement"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Special"&gt;(&lt;/span&gt;&lt;span class="PreProc"&gt;$y&lt;/span&gt;&lt;span class="Constant"&gt;-1&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;)&lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="Constant"&gt;"$t"&lt;/span&gt;&lt;br /&gt;                    &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;                &lt;span class="Statement"&gt;done&lt;/span&gt;&lt;br /&gt;            &lt;span class="Statement"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;span class="Comment"&gt;# 排序好之后，清理掉多余的包&lt;/span&gt;&lt;br /&gt;            &lt;span class="Statement"&gt;for &lt;/span&gt;&lt;span class="Special"&gt;((&lt;/span&gt;z&lt;span class="Statement"&gt;=&lt;/span&gt;&lt;span class="Constant"&gt;0&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; z&lt;span class="Statement"&gt;&amp;lt;&lt;/span&gt;&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Special"&gt;(&lt;/span&gt;&lt;span class="PreProc"&gt;$dup&lt;/span&gt;&lt;span class="Special"&gt;-&lt;/span&gt;&lt;span class="PreProc"&gt;$KEEPN&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;)&lt;span class="Statement"&gt;;&lt;/span&gt; z++&lt;span class="Special"&gt;))&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;do&lt;/span&gt;&lt;br /&gt;                plain &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;删除过期软件包&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$((&lt;/span&gt;&lt;span class="PreProc"&gt;$lb&lt;/span&gt;&lt;span class="Special"&gt;+&lt;/span&gt;&lt;span class="PreProc"&gt;$z&lt;/span&gt;&lt;span class="PreProc"&gt;))&lt;/span&gt;&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;//&lt;/span&gt; &lt;span class="Statement"&gt;/&lt;/span&gt;-&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;                &lt;span class="Statement"&gt;case&lt;/span&gt; &lt;span class="PreProc"&gt;$cmdline&lt;/span&gt; &lt;span class="Statement"&gt;in&lt;/span&gt; *-f*&lt;span class="Statement"&gt;)&lt;/span&gt; &lt;span class="Statement"&gt;rm&lt;/span&gt; -rf &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$((&lt;/span&gt;&lt;span class="PreProc"&gt;$lb&lt;/span&gt;&lt;span class="Special"&gt;+&lt;/span&gt;&lt;span class="PreProc"&gt;$z&lt;/span&gt;&lt;span class="PreProc"&gt;))&lt;/span&gt;&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;//&lt;/span&gt; &lt;span class="Statement"&gt;/&lt;/span&gt;-&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;                         *&lt;span class="Statement"&gt;)&lt;/span&gt; &lt;span class="Statement"&gt;rm&lt;/span&gt; -ri &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;list&lt;/span&gt;&lt;span class="PreProc"&gt;[&lt;/span&gt;&lt;span class="PreProc"&gt;$((&lt;/span&gt;&lt;span class="PreProc"&gt;$lb&lt;/span&gt;&lt;span class="Special"&gt;+&lt;/span&gt;&lt;span class="PreProc"&gt;$z&lt;/span&gt;&lt;span class="PreProc"&gt;))&lt;/span&gt;&lt;span class="PreProc"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;//&lt;/span&gt; &lt;span class="Statement"&gt;/&lt;/span&gt;-&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;;;&lt;/span&gt;&lt;br /&gt;                &lt;span class="Statement"&gt;esac&lt;/span&gt;&lt;br /&gt;            &lt;span class="Statement"&gt;done&lt;/span&gt;&lt;br /&gt;        &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;        &lt;span class="Identifier"&gt;dup&lt;/span&gt;=&lt;span class="Constant"&gt;1&lt;/span&gt; &lt;span class="Comment"&gt;# 重置计数器 dup&lt;/span&gt;&lt;br /&gt;    &lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;    &lt;span class="Identifier"&gt;prev&lt;/span&gt;=&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;$pkgname&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Comment"&gt;# 记录上一个包的名称&lt;/span&gt;&lt;br /&gt;   &lt;span class="Statement"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;IFS&lt;/span&gt;=&lt;span class="Statement"&gt;$'&lt;/span&gt;&lt;span class="Special"&gt;\n&lt;/span&gt;&lt;span class="Statement"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;SED&lt;/span&gt;=&lt;span class="Statement"&gt;'&lt;/span&gt;&lt;span class="Constant"&gt;s/\(.\{1,\}\)-\([0-9][a-z0-9\._]*-[0-9\.]\{1,\}\)/\1 \2/&lt;/span&gt;&lt;span class="Statement"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# 用 sed 将缓存中的文件名分割成“软件包名称＋空格＋其它后缀的形式，并存入数组 list&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# 如 xsel-1.2.0-1.pkg.tar.gz 在数组中就是 "xsel -1.2.0-1.pkg.tar.gz"&lt;/span&gt;&lt;br /&gt;&lt;span class="Comment"&gt;# 使用下面的 ls 命令请确保文件是按名称排序&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Statement"&gt;cd&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;$DIR&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Statement"&gt;ls&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Constant"&gt;-1&lt;/span&gt;&lt;span class="Special"&gt; *-i686.* &lt;/span&gt;&lt;span class="Statement"&gt;|&lt;/span&gt;&lt;span class="Special"&gt; wc -l&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;-gt&lt;/span&gt; &lt;span class="Constant"&gt;0&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;    &lt;span class="Identifier"&gt;list&lt;/span&gt;=(&lt;span class="Special"&gt;`&lt;/span&gt;&lt;span class="Statement"&gt;ls&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Constant"&gt;-1&lt;/span&gt;&lt;span class="Special"&gt; *-i686.* &lt;/span&gt;&lt;span class="Statement"&gt;|&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;sed&lt;/span&gt;&lt;span class="Special"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;$SED&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;`&lt;/span&gt;&lt;span class="Error"&gt;)&lt;/span&gt;&lt;br /&gt;    action_clean&lt;br /&gt;&lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Statement"&gt;ls&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Constant"&gt;-1&lt;/span&gt;&lt;span class="Special"&gt; *-x86_64.* &lt;/span&gt;&lt;span class="Statement"&gt;|&lt;/span&gt;&lt;span class="Special"&gt; wc -l&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;-gt&lt;/span&gt; &lt;span class="Constant"&gt;0&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;    &lt;span class="Identifier"&gt;list&lt;/span&gt;=(&lt;span class="Special"&gt;`&lt;/span&gt;&lt;span class="Statement"&gt;ls&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Constant"&gt;-1&lt;/span&gt;&lt;span class="Special"&gt; *-x86_64.* &lt;/span&gt;&lt;span class="Statement"&gt;|&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;sed&lt;/span&gt;&lt;span class="Special"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;$SED&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;`&lt;/span&gt;&lt;span class="Error"&gt;)&lt;/span&gt;&lt;br /&gt;    action_clean&lt;br /&gt;&lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;if &lt;/span&gt;&lt;span class="Statement"&gt;[&lt;/span&gt; &lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;$(&lt;/span&gt;&lt;span class="Statement"&gt;ls&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Constant"&gt;-1&lt;/span&gt;&lt;span class="Special"&gt; *-any.* &lt;/span&gt;&lt;span class="Statement"&gt;|&lt;/span&gt;&lt;span class="Special"&gt; wc -l&lt;/span&gt;&lt;span class="PreProc"&gt;)&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt; &lt;span class="Statement"&gt;-gt&lt;/span&gt; &lt;span class="Constant"&gt;0&lt;/span&gt; &lt;span class="Statement"&gt;]&lt;/span&gt;&lt;span class="Statement"&gt;;&lt;/span&gt; &lt;span class="Statement"&gt;then&lt;/span&gt;&lt;br /&gt;    &lt;span class="Identifier"&gt;list&lt;/span&gt;=(&lt;span class="Special"&gt;`&lt;/span&gt;&lt;span class="Statement"&gt;ls&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Constant"&gt;-1&lt;/span&gt;&lt;span class="Special"&gt; *-any.* &lt;/span&gt;&lt;span class="Statement"&gt;|&lt;/span&gt;&lt;span class="Special"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;sed&lt;/span&gt;&lt;span class="Special"&gt; -e &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="PreProc"&gt;$SED&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Special"&gt;`&lt;/span&gt;&lt;span class="Error"&gt;)&lt;/span&gt;&lt;br /&gt;    action_clean&lt;br /&gt;&lt;span class="Statement"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-9196538699781925663?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/9196538699781925663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=9196538699781925663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/9196538699781925663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/9196538699781925663'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/pacman.html' title='pacman 之 清理缓存脚本'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-671816943057936318</id><published>2011-10-24T23:35:00.002+08:00</published><updated>2011-10-24T23:51:25.421+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='awesome'/><title type='text'>arch 自动更新 软件包-crontab计划任务设置</title><content type='html'>使用crontab自动更新软件源&lt;br /&gt;&lt;br /&gt;# crontab -e &lt;br /&gt;&lt;br /&gt;*/30 * * * * * pacman -Syy&lt;br /&gt;&lt;br /&gt;如果想让aur安装的软件也显示跟新可以这样 &lt;br /&gt;&lt;br /&gt;*/30 * * * * * yaourt -Syy &lt;br /&gt;&lt;br /&gt;这样搭配awesome的vicious的扩展就可以显示有多少更新的包了.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-dLmQVXTRNSI/TqWIH7-AanI/AAAAAAAAARY/_5ibuCLDsrc/s1600/screenshot-2011-10-24-23-44-53.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-dLmQVXTRNSI/TqWIH7-AanI/AAAAAAAAARY/_5ibuCLDsrc/s1600/screenshot-2011-10-24-23-44-53.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;查询只要 # crontab -l 就可以了 &lt;br /&gt;&lt;div style="font-size: 13px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 2em;"&gt;&lt;br /&gt;&lt;b&gt;crontab命令语法：&lt;/b&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;crontab [-u user] file&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;crontab [-u user] [ -e | -l | -r ]&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 13px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 2em;"&gt;&lt;b&gt;crontab命令选项:&lt;/b&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;file 使用file文件的内容作为某个用户的cron服务配置，内容会复制到cron服务的配置文件中&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;-u 设定某个用户的cron服务配置，一般root 用户在执行这个命令的时候需要此参数&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;-l&amp;nbsp;&amp;nbsp; 列出某个用户cron服务配置&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;-r&amp;nbsp; 删除某个用户的cron服务配置&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;-e&amp;nbsp; 编辑某个用户的cron服务配置，将使用vi打开配置文件进行编辑保存后退出，文件语法见后&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 13px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 2em;"&gt;举例:&lt;/div&gt;&lt;ul style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;crontab -u fred -r&amp;nbsp; 删除fred用户的cron配置&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;crontab -l 列出当前用户的cron配置&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;crontab -r 删除当前用户的cron配置&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;crontab -e 编辑当前用户的cron配置，添加或删除计划任务项&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 13px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 2em;"&gt;&lt;b&gt;cron配置文件语法&lt;/b&gt;&lt;/div&gt;&lt;div style="font-size: 13px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 2em;"&gt;每行表示一个指令，即表示一项计划任务；每行由空格分隔的六个部分组成，前5部分表示定时任务的执行时间，剩余部分为定时任务要执行的命令，格式如下：&lt;/div&gt;&lt;div style="font-size: 13px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 2em;"&gt;分&amp;nbsp;小时 日 月 星期 命令&lt;br /&gt;Minute&amp;nbsp; Hour&amp;nbsp; Day&amp;nbsp; Month&amp;nbsp; DayOfWeek&amp;nbsp; command&lt;/div&gt;&lt;ul style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;Minute 每个小时的第几分钟执行该任务，0-59&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;Hour 每天的第几个小时执行该任务，0-23&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;Day 每月的第几天执行该任务，1-31&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;Month 每年的第几个月执行该任务，1-12&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;DayOfWeek 每周的第几天执行该任务，0-6，0表示周日&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;Command 指定要执行的程序&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 13px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 2em;"&gt;以上前五项可使用以下四个特殊符号：&lt;/div&gt;&lt;ul style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;*&amp;nbsp; 表示所有数值，如第一位使用* 表示每分钟&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;/&amp;nbsp; 表示每，如第一位使用 */5 表示每5分钟&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;-&amp;nbsp; 表示数值范围，如第二位使用2-4表示2点到4点&lt;/li&gt;&lt;li style="list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"&gt;,&amp;nbsp; 表示离散的多个数值，如第2位使用6,8 表示6点和8点&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 13px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 2em;"&gt;在每行的六项字段中，除了Command是每次都必须指定的字段以外，其它字段皆为可选字段，可视需要决定。对于不指定的字段，要用“*”来填补其位置。&lt;/div&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-671816943057936318?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/671816943057936318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=671816943057936318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/671816943057936318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/671816943057936318'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/arch-crontab.html' title='arch 自动更新 软件包-crontab计划任务设置'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-dLmQVXTRNSI/TqWIH7-AanI/AAAAAAAAARY/_5ibuCLDsrc/s72-c/screenshot-2011-10-24-23-44-53.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-6746273313200684053</id><published>2011-10-24T11:31:00.001+08:00</published><updated>2011-10-24T11:32:40.302+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>freebsd 安装源代码</title><content type='html'>安装更新源代码&lt;br /&gt;&lt;br /&gt;# &lt;span style="color: red;"&gt;csup&lt;/span&gt; -L 2 -h &lt;span style="color: orange;"&gt;cvsup.freebsdchina.org &lt;/span&gt;&lt;span style="color: #45818e;"&gt;/usr/share/examples/cvsup/standard-supfile&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;csup是freebsd8.2默认就安装的软件&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;参考:&amp;nbsp; &lt;a href="http://www.freebsd.org/doc/zh_CN/books/handbook/cvsup.html"&gt;使用 CVSup&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-6746273313200684053?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/6746273313200684053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=6746273313200684053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6746273313200684053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6746273313200684053'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/freebsd_24.html' title='freebsd 安装源代码'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-1002178751973003578</id><published>2011-10-24T10:12:00.000+08:00</published><updated>2011-10-24T10:12:38.671+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>centos6 最小化安装后 安装setuptool配置工具</title><content type='html'>centos6最小化安装后,没有安装setup,需要手动安装.&lt;br /&gt;&lt;br /&gt;首先&amp;nbsp;&amp;nbsp;&amp;nbsp; 配置好网络&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;然后就可以安装这些基本的配置工具了&lt;br /&gt;&lt;br /&gt;# yum install setuptool ntsysv system-config-firewall-tui system-config-network-tui&lt;br /&gt;&lt;br /&gt;ntsysv软件包是用来通过setup工具进行“服务”项的控制； system-config-firewall-tui软件包是用来通过setup进行防火墙配置的； system-config-network-tui软件包是用来通过setup进行网卡配置的.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-_EaRDfbCdlw/TqTEudQjGbI/AAAAAAAAARQ/gLI0Ci4udoA/s1600/screenshot-2011-10-24-09-51-27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-_EaRDfbCdlw/TqTEudQjGbI/AAAAAAAAARQ/gLI0Ci4udoA/s1600/screenshot-2011-10-24-09-51-27.png" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;当然有可以安装system-config-keyboard,system-config-language,system-config-printer等等,但是这些我都不怎么需要.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-1002178751973003578?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/1002178751973003578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=1002178751973003578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1002178751973003578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1002178751973003578'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/centos6-setuptool.html' title='centos6 最小化安装后 安装setuptool配置工具'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-_EaRDfbCdlw/TqTEudQjGbI/AAAAAAAAARQ/gLI0Ci4udoA/s72-c/screenshot-2011-10-24-09-51-27.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-7309110831574275621</id><published>2011-10-24T07:25:00.001+08:00</published><updated>2011-10-24T07:45:39.793+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>centos6 最小化安装后 配置网络</title><content type='html'>centos6 最小化安装，默认网卡是不开机启动的，要把网卡设为开机启动。 &lt;br /&gt;&lt;br /&gt;一、&lt;span style="color: orange;"&gt;修改IP地址 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;因为我是virtualbox中安装的双网卡,所有有2个配置&lt;/div&gt;eth0是采用"NAT"的dhcp自动获取ip,eth1是桥接模式采用自己设定ip的方式&lt;br /&gt;&lt;br /&gt;修改对应网卡的IP地址的配置文件&lt;br /&gt;&lt;br /&gt;[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 &lt;br /&gt;&lt;br /&gt;DEVICE="eth0" &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;HWADDR="08:00:27:65:F6:C2"&amp;nbsp; &lt;br /&gt;NM_CONTORLLED="yes"&lt;br /&gt;ONBOOT="yes"&amp;nbsp;&lt;br /&gt;BOOTPROTO=dhcp &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;#设置网卡获得ip地址的方式，可能的选项为static，dhcp或bootp，分别对应静态指定的ip地址，通过dhcp协议获得的ip地址，通过bootp协议获得的ip地址&lt;br /&gt;#IPV6INIT=no &lt;br /&gt;#IPV6_AUTOCONF=no &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-YK2e9leP-ik/TqSlABHIO8I/AAAAAAAAARA/I5FoGN1xkSE/s1600/screenshot-2011-10-24-07-35-53.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-YK2e9leP-ik/TqSlABHIO8I/AAAAAAAAARA/I5FoGN1xkSE/s1600/screenshot-2011-10-24-07-35-53.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1 &lt;br /&gt;&lt;br /&gt;DEVICE="eth1"&lt;br /&gt;HWADDR="08:00:27:99:6D:46"&amp;nbsp; &lt;br /&gt;NM_CONTORLLED="yes"&lt;br /&gt;ONBOOT="yes"&lt;br /&gt;BOOTPROTO=static &lt;br /&gt;IPADDR=192.168.1.112&lt;br /&gt;NETMASK=255.255.255.0&lt;br /&gt;GATEWAY=192.168.1.1 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;#IPV6INIT=no &lt;br /&gt;#IPV6_AUTOCONF=no &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-UJRmqhU4v9E/TqSlN7Zo8UI/AAAAAAAAARI/Mn_HqSI4T6s/s1600/screenshot-2011-10-24-07-37-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-UJRmqhU4v9E/TqSlN7Zo8UI/AAAAAAAAARI/Mn_HqSI4T6s/s1600/screenshot-2011-10-24-07-37-01.png" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;二、&lt;span style="color: orange;"&gt;修改dns&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;修改对应网卡的dns的配置文件 &lt;br /&gt;&lt;br /&gt;[root@localhost ~]# vi /etc/resolv.conf &lt;br /&gt;&lt;br /&gt;#填你自己的域名服务器&lt;br /&gt;nameserver 8.8.8.8&lt;br /&gt;nameserver 8.8.4.4 &lt;br /&gt;&lt;br /&gt;三、&lt;span style="color: orange;"&gt;重启网络&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;[root@localhost ~]# service network restart&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-7309110831574275621?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/7309110831574275621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=7309110831574275621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7309110831574275621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7309110831574275621'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/centos6.html' title='centos6 最小化安装后 配置网络'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-YK2e9leP-ik/TqSlABHIO8I/AAAAAAAAARA/I5FoGN1xkSE/s72-c/screenshot-2011-10-24-07-35-53.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-8002008773222017230</id><published>2011-10-24T07:02:00.001+08:00</published><updated>2011-10-24T07:04:11.959+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>[转]CentOS6.0安装-字符界面 最小化安装</title><content type='html'>原文地址:&amp;nbsp; &lt;a href="http://litvip.com/2011/07/10/460"&gt;http://litvip.com/2011/07/10/460&lt;/a&gt;&lt;br /&gt;本文将使用字符界面来安装CentOS6.0，因为在上篇我们已经体验了CentOS6.0的桌面系统，本篇将最小化安装系统，这更符合服务器的需要。相比以前的版本，字符界面安装过程非常简单，而且默认就是最小化安装，不用我们自己去进行包选择，安装过程非常快。&lt;br /&gt;第一步，在下面这个界面的时候，不要直接回车了，按esc键。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-1.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-461" height="298" src="http://litvip.com/wp-content/uploads/centos-text-1.png" title="centos-text-1" width="400" /&gt;&lt;/a&gt;&lt;span id="more-460"&gt;&lt;/span&gt;&lt;br /&gt;第二步，输入linux text，回车。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-2.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-462" height="221" src="http://litvip.com/wp-content/uploads/centos-text-2.png" title="centos-text-2" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第三步，询问我们是否要检查安装光盘，我们不检查，按tab键盘，把光盘移动到Skip上，然后回车。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-3.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-463" height="222" src="http://litvip.com/wp-content/uploads/centos-text-3.png" title="centos-text-3" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第四步，欢迎界面，直接回车。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-4.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-464" height="221" src="http://litvip.com/wp-content/uploads/centos-text-4.png" title="centos-text-4" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第五步，选择系统默认语言，我选择的简体中文，然后按tab键把光标移动到OK上，回车。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-5.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-465" height="221" src="http://litvip.com/wp-content/uploads/centos-text-5.png" title="centos-text-5" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第六步，说中文编码在字符安装过程中不可用，接下来的安装过程依然以英文显示，直接回车。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-6.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-466" height="220" src="http://litvip.com/wp-content/uploads/centos-text-6.png" title="centos-text-6" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第七步，选择键盘种类，我的是日文键盘，然后按tab键把光标移动到OK上，回车。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-7.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-467" height="221" src="http://litvip.com/wp-content/uploads/centos-text-7.png" title="centos-text-7" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第八步，选择时区和是否使用UTC时间，我不使用，光标在UTC选择上的时候，按空格键不选中，然后按tab键把光标移动到OK上，回车。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-8.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-468" height="221" src="http://litvip.com/wp-content/uploads/centos-text-8.png" title="centos-text-8" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第九步，设置root密码，然后按tab键把光标移动到OK上，回车。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-9.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-469" height="221" src="http://litvip.com/wp-content/uploads/centos-text-9.png" title="centos-text-9" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第十步，询问你是哪种使用硬盘的方式，我们是新装系统，第一个或者第二个选项都行，按tab键把光标移动到OK上，回车。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-10.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-470" height="222" src="http://litvip.com/wp-content/uploads/centos-text-10.png" title="centos-text-10" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第十一步，警告信息界面，提示要把存储信息写到硬盘了，按tab键把光标移动到”Write changes to disk”，回车，然后稍等片刻。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-11.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-471" height="222" src="http://litvip.com/wp-content/uploads/centos-text-11.png" title="centos-text-11" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第十二步，已经开始安装了，可用看到只有204个包，所以安装会非常快的。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-12.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-472" height="221" src="http://litvip.com/wp-content/uploads/centos-text-12.png" title="centos-text-12" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第十三步，安装已经完成了，直接回车重启系统。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-13.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-473" height="221" src="http://litvip.com/wp-content/uploads/centos-text-13.png" title="centos-text-13" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第十四步，已经到了登陆界面了，输入root回车。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-14.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-474" height="221" src="http://litvip.com/wp-content/uploads/centos-text-14.png" title="centos-text-14" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第十五步，输入root密码回车，输入密码你看不到任何显示，这是正常的。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-15.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-475" height="219" src="http://litvip.com/wp-content/uploads/centos-text-15.png" title="centos-text-15" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;第十六步，已经登陆到系统了，整个安装过程完毕。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-16.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-476" height="221" src="http://litvip.com/wp-content/uploads/centos-text-16.png" title="centos-text-16" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;备注：&lt;br /&gt;如果你使用的虚拟机，可能在第七步之后，会出现如下的画面，选择”Re-initialize All”,然后回车。&lt;br /&gt;&lt;a href="http://litvip.com/wp-content/uploads/centos-text-disk.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-477" height="223" src="http://litvip.com/wp-content/uploads/centos-text-disk.png" title="centos-text-disk" width="400" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-8002008773222017230?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/8002008773222017230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=8002008773222017230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8002008773222017230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8002008773222017230'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/centos60.html' title='[转]CentOS6.0安装-字符界面 最小化安装'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-5643363455729110527</id><published>2011-10-24T05:05:00.002+08:00</published><updated>2011-10-24T09:30:12.803+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>centos 关闭IPv6支持</title><content type='html'>centos 和大多数linux发行版一样,默认是开启ipv6支持的,但是现在国内的生产情况有没有ipv6都没有多大区别,而且还会增加dns查询的时间,所以还是关闭为好.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: orange;"&gt;1.如何察看开启了ipv6呢?&lt;/div&gt;&lt;br /&gt;&amp;nbsp;# ifconfig&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Wk0NTXWecsk/TqR7j9TVoVI/AAAAAAAAAQg/aufXAwb66zs/s1600/screenshot-2011-10-24-04-38-50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-Wk0NTXWecsk/TqR7j9TVoVI/AAAAAAAAAQg/aufXAwb66zs/s1600/screenshot-2011-10-24-04-38-50.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;如图,发现采用了 inet6 addr: 就说明已经开启了ipv6支持了&lt;br /&gt;&lt;br /&gt;&lt;div style="color: orange;"&gt;2. 关闭的方法有3种&lt;/div&gt;&lt;br /&gt;首先你得在用户程序那里做出修改,在&lt;span style="color: blue;"&gt;&lt;span style="color: red;"&gt;/etc/sysconfig/network&lt;/span&gt; &lt;/span&gt;中&lt;br /&gt;&amp;nbsp;确认添加了&lt;span style="color: red;"&gt;NETWORKING_IPV6=no&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-SXyAdRsoeys/TqR_oPIH5dI/AAAAAAAAAQo/6EMFR-zt4OY/s1600/screenshot-2011-10-24-04-56-23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-SXyAdRsoeys/TqR_oPIH5dI/AAAAAAAAAQo/6EMFR-zt4OY/s1600/screenshot-2011-10-24-04-56-23.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;2.1添加一个新文件&lt;span style="color: blue;"&gt;/etc/modprobe.d/ipv6.conf&lt;/span&gt;,内容&lt;br /&gt;&lt;br /&gt;alias net-pf-10 off&lt;br /&gt;alias ipv6 off&lt;br /&gt;&lt;br /&gt;2.2 或者,在 &lt;span style="color: red;"&gt;/etc/modprobe.d/blacklist.conf&lt;/span&gt; 中添加2行语句就可以了&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;blacklist net-pf-10&lt;br /&gt;blacklist ipv6&lt;/div&gt;&lt;div style="color: red;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;我采用的第2种方法为了和arch一样,呵呵&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-_n-bv6cmDAE/TqSAcDfIhLI/AAAAAAAAAQw/PQPXHej6oEs/s1600/screenshot-2011-10-24-04-59-57.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-_n-bv6cmDAE/TqSAcDfIhLI/AAAAAAAAAQw/PQPXHej6oEs/s1600/screenshot-2011-10-24-04-59-57.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="line862"&gt;2.3 根据cento wiki的faq解释,还有一种方法&lt;/div&gt;&lt;div class="line862"&gt;Upstream employee Daniel Walsh &lt;a class="https" href="https://bugzilla.redhat.com/show_bug.cgi?id=641836#c17"&gt;recommends&lt;/a&gt; not disabling the ipv6 module, as that can cause issues with SELinux and other components, but adding the following to &lt;span style="color: blue;"&gt;/etc/sysctl.conf&lt;/span&gt;: &lt;span class="anchor" id="line-26"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-27"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre style="color: red;"&gt;net.ipv6.conf.all.disable_ipv6 = 1&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;3.关闭&lt;/span&gt;&lt;code style="color: red;"&gt;ip6tables&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;# service ip6tables stop&lt;br /&gt;# chkconfig ip6tables off&lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;重启系统，然后再次检测IPv6支持&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# reboot&lt;br /&gt;# ifconfig&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-7ZfkGdPeB0E/TqSBea2hSdI/AAAAAAAAAQ4/4y4YLx2kwjw/s1600/screenshot-2011-10-24-05-04-23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-7ZfkGdPeB0E/TqSBea2hSdI/AAAAAAAAAQ4/4y4YLx2kwjw/s1600/screenshot-2011-10-24-05-04-23.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-5643363455729110527?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/5643363455729110527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=5643363455729110527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/5643363455729110527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/5643363455729110527'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/centos-ipv6.html' title='centos 关闭IPv6支持'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Wk0NTXWecsk/TqR7j9TVoVI/AAAAAAAAAQg/aufXAwb66zs/s72-c/screenshot-2011-10-24-04-38-50.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-3037835254590894775</id><published>2011-10-24T04:01:00.001+08:00</published><updated>2011-10-24T04:01:18.613+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>centos 6 修改默认启动级别</title><content type='html'>和大多数发行版本一样,直接 编辑/etc/inittab就可以了&lt;br /&gt;# 把默认的5修改为3就ok了&lt;br /&gt;# vim /etc/inittab &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-nERcU9-kGT4/TqRycBFydZI/AAAAAAAAAP4/kkVt732dCbg/s1600/screenshot-2011-10-24-04-00-09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-nERcU9-kGT4/TqRycBFydZI/AAAAAAAAAP4/kkVt732dCbg/s1600/screenshot-2011-10-24-04-00-09.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-3037835254590894775?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/3037835254590894775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=3037835254590894775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3037835254590894775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3037835254590894775'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/centos-6_24.html' title='centos 6 修改默认启动级别'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-nERcU9-kGT4/TqRycBFydZI/AAAAAAAAAP4/kkVt732dCbg/s72-c/screenshot-2011-10-24-04-00-09.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-5557122737484341944</id><published>2011-10-24T03:52:00.001+08:00</published><updated>2011-10-24T04:06:48.750+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>CentOS 6 显示 启动信息</title><content type='html'>CentOS 6/Fedora 15 系统启动时出现读进度条，然后进入系统，但我比较习惯看到具体的启动信息，所以修改 /boot/grub/grub.conf 文件。&lt;br /&gt;&lt;br /&gt;[root@zuantianyang-vmlnx~]# vim /boot/grub/grub.conf&lt;br /&gt;default=0&lt;br /&gt;timeout=0&lt;br /&gt;splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;hiddenmenu&lt;br /&gt;title Fedora (2.6.40.4-5.fc15.i686.PAE)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; root (hd0,0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kernel /vmlinuz-2.6.40.4-5.fc15.i686.PAE ro root=/dev/mapper/vg_zuantianyangvmlnx-lv_root rd_LVM_LV=vg_zuantianyangvmlnx/lv_root rd_LVM_LV=vg_zuantianyangvmlnx/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us &lt;span style="color: black;"&gt;&lt;span style="background-color: red;"&gt;&lt;b&gt;rhgb&lt;/b&gt;&lt;/span&gt;&lt;/span&gt; quiet&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; initrd /initramfs-2.6.40.4-5.fc15.i686.PAE.img&lt;br /&gt;&amp;nbsp;"rhgb"表示"redhat graphics boot"，图形进度条模式，将"rhgb"去掉,保存，这样就可以返回原来的启动信息模式了。&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZdkSwCh4ArY/TqRzzV0-R_I/AAAAAAAAAQI/taEF0AlsJ4A/s1600/screenshot-2011-10-24-04-06-00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-ZdkSwCh4ArY/TqRzzV0-R_I/AAAAAAAAAQI/taEF0AlsJ4A/s1600/screenshot-2011-10-24-04-06-00.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-5557122737484341944?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/5557122737484341944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=5557122737484341944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/5557122737484341944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/5557122737484341944'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/centos-6.html' title='CentOS 6 显示 启动信息'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ZdkSwCh4ArY/TqRzzV0-R_I/AAAAAAAAAQI/taEF0AlsJ4A/s72-c/screenshot-2011-10-24-04-06-00.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-8277040382711522487</id><published>2011-10-24T02:10:00.001+08:00</published><updated>2011-10-24T02:10:23.339+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>[转]CentOS 5.x 系统安装配置</title><content type='html'>原文 : http://hzhawk.cjlu.edu.cn/network-service/centos-5x-install-setting/&lt;br /&gt;&lt;br /&gt;前几年配置和维护服务器一直在用 &lt;a href="http://www.freebsd.org/" target="_blank"&gt;FreeBSD&lt;/a&gt;，对 FreeBSD 有较深的感情。FreeBSD 是一个非常优秀的操作系统，稳定、高效、安全，在这一点上 &lt;a href="http://www.centos.org/" target="_blank"&gt;CentOS&lt;/a&gt; 这类采用 Linux 内核的操作系统似乎还是有那么一点点差距。然而，基于 BSD 内核的 FreeBSD 一向有它的无奈，由于它的维护团队是个拥护开源免费的非商业组织，可能同其它商业组织的合作一向不顺畅，甚至没有合作。于是几乎所有的硬件厂商推出的各种硬件，比如光纤卡之类，驱动程序一般仅仅提供 Windows、商业 Unix、Linux 平台的。而 FreeBSD 的做法只能是等他们的小组或某些组织根据那些 Unix 或 Linux 驱动程序重写出 FreeBSD 驱动程序，因此一些硬件的支持总是要滞后或者存在兼容性问题。此外还有一个原因，现在单位购买的商业软硬件系统越来越多，而这些系统有些也仅支持上面说的三类平台，并不提供 FreeBSD 客户端，导致安装 FreeBSD 操作系统的服务器无法整合或者整合得很艰难。&lt;br /&gt;&lt;span id="more-62"&gt;&lt;/span&gt;&lt;br /&gt;所以现在准备慢慢转向 Linux 内核的操作系统。&lt;a href="http://www.redhat.com/" target="_blank"&gt;Red Hat&lt;/a&gt; 一向是 Linux 中的佼佼者，而它的商业化也十分成功，各种支持也十分广泛，但毕竟它的企业级版本已经完全商业化了，不想付钱怎么办，只能选免费的版本了。而它的免费分支 &lt;a href="http://fedoraproject.org/" target="_blank"&gt;Fedora&lt;/a&gt; 主要是面向桌面用户和喜欢尝鲜的用户的。其它的 Linux 发行版有很多很多，其中在企业级服务器被采用最多的有 &lt;a href="http://www.opensuse.org/" target="_blank"&gt;openSUSE&lt;/a&gt;、&lt;a href="http://www.debian.org/" target="_blank"&gt;Debian&lt;/a&gt;、&lt;a href="http://www.slackware.com/" target="_blank"&gt;Slackware&lt;/a&gt;、&lt;a href="http://www.gentoo.org/" target="_blank"&gt;Gentoo&lt;/a&gt;等一些老牌的以安全和稳定为特点的 Linux 操作系统，新兴的 &lt;a href="http://www.ubuntu.com/" target="_blank"&gt;Ubuntu&lt;/a&gt; 也向 Desktop 和 Server 两条路线同时进军，由于它的易用性，也越来越受关注和喜爱。而我看中了 CenOS，这个操作系统很年轻，但年轻并不意味着不成熟。其实 CentOS 是在 Red Hat 的企业版完全商业化后诞生的，&lt;a href="http://wiki.centos.org/" target="_blank"&gt;官方 Wiki&lt;/a&gt; 的首页这样介绍它自己：&lt;br /&gt;&lt;blockquote&gt;&lt;h4&gt;What is CentOS?&lt;/h4&gt;CentOS is an Enterprise Linux distribution based on the &lt;a href="ftp://ftp.redhat.com/pub/redhat/linux/enterprise/" target="_blank"&gt;freely available sources from Red Hat Enterprise Linux&lt;/a&gt;. Each CentOS version is supported for 7 years (by means of security updates). A new CentOS version is released every 2 years and each CentOS version is periodically updated (roughly every 6 months) to support newer hardware. This results in a secure, low-maintenance, reliable, predictable and reproducible Linux environment.&lt;br /&gt;&lt;/blockquote&gt;他们做的其实就是把 Red Hat 发行的企业版操作系统源代码重新编译，去除了商业成分，把由 Red Hat 提供的商业化的升级等服务转向由开源免费社区来支持。说白了，CenOS 大概可以说几乎就是免费的 Red Hat 企业版产品。所以肯定不会差到哪去，而我最看重的是，由此那些商业化的软硬件系统对它的支持应该没有问题了，这对于我使用新的硬件或者整合单位的应用是至关重要的。&lt;br /&gt;今后我配置的服务器将采用 CentOS 操作系统，下面简单记录了这个操作系统的安装、安全及性能等方面的配置过程，以 CentOS 5.5 为例。&lt;br /&gt;&lt;h2 class="title"&gt;CentOS 5 操作系统的安装&lt;/h2&gt;有官方重要的 &lt;a href="http://www.redhat.com/docs/manuals/enterprise/" target="_blank"&gt;Red Hat Enterprise Linux Documentation&lt;/a&gt; 作为参考，文档有完善的中文版本，毕竟是商业化的服务体系，有完善的支持。CentOS 作为 Red Hat Enterprise Linux 的克隆版，这些文档同样完全适用，所以这里不再具体描述每一步的过程，仅对其中的某些关键地方做一些探讨。&lt;br /&gt;&lt;hr /&gt;&lt;strong&gt;关于安装模式的选择&lt;/strong&gt;，有图形模式和文本模式，多数网管员会喜欢选择简洁高效的文本模式来安装，我也喜欢。但这里有一点要注意，官方有提示：&lt;br /&gt;&lt;blockquote&gt;&lt;h3&gt;注意&lt;/h3&gt;请​注​意​，在​文​本​安​装​模​式​下​，你​不​可​能​用 LVM（逻​辑​卷​管​理​器​）来​查​看​现​有​的​设​置​。​LVM 只​能​在​图​形​安​装​模​式​下​用​图​形​化​的 Disk Druid 程​序​来​设​置​。&lt;br /&gt;&lt;/blockquote&gt;LVM 是 Linux 很强大的逻辑卷管理功能，在一些复杂的高级应用还是很有益处的。比如将来需要整合存储、在线动态调整存储空间等。当然这个还是有点复杂的，我目前还没有研究过，而且对于普通的应用也不是特别必要的，所以还是老老实实的创建传统的一个个 ext3 分区。&lt;br /&gt;&lt;hr /&gt;&lt;strong&gt;关于分区方案&lt;/strong&gt;，官方文档上也有注明，并且有专门的篇幅阐述在不同的硬件平台下如何创建分区：&lt;br /&gt;&lt;blockquote&gt;&lt;h3&gt;注​记​&lt;/h3&gt;如​果​你​还​没​有​计​划​怎​么​设​置​分​区​，你​可​以​参​考 &lt;a href="http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/zh-CN/Installation_Guide/ch-partitions-x86.html" target="_blank"&gt;第 25 章 &lt;em&gt;磁​盘​分​区​简​介&lt;/em&gt;&lt;/a&gt; 和 &lt;a href="http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/zh-CN/Installation_Guide/s2-diskpartrecommend-x86.html" target="_blank"&gt;第 4.18.4 节 “推​荐​的​分​区​方​案​”&lt;/a&gt;。​至​少​，你​ 需​要​一​个​大​小​合​适​的​根​分​区​和​两​倍​于​系​统​物​理​内​存​的​交​换​分​区​。​Itanium 系​统​的​用​户​应​该​有​一​个​大​约 100 MB 的 FAT (VFAT) 格​式​的 /boot/efi/ 分​区​、​至​少 512 MB 的​交​换​分​区​和​大​小​合​适​的​根​分​区​（/）。&lt;br /&gt;&lt;/blockquote&gt;根据这些建议，针对 &lt;a href="http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/zh-CN/Installation_Guide/ch04s18s04s02.html" target="_blank"&gt;x86、​AMD64 和 Intel® 64 位​系​统架构&lt;/a&gt; 的服务器，我们应该创建至少创建如下分区：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;交换分区，内存在 2GB 以下时，交换分区应该是内存的两倍，内存在 2GB 以上时，交换分区应该是内存大小加 2GB；&lt;/li&gt;&lt;li&gt;/boot 分区，100MB 足矣；&lt;/li&gt;&lt;li&gt;/ 分区，3.0GB – 5.0GB，3.0GB 大​小​的​根​分​区​仅​允​许​你​进​行​最​小​程​度​的​安​装​，而 5.0GB 大​小​的​根​分​区​允​许​你​执​行​完​整​安​装​，包​括​所​有​软​件​包​组​；&lt;/li&gt;&lt;li&gt;为某些应用创建单独分区，比如网站服务器最好创建一个单独的足够大的分区用来存放网站的内容，代理服务器最好创建单独的缓存文件存放分区等等，这要根据服务器的实际用途来综合考虑。&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;strong&gt;时区&lt;/strong&gt;当然是选择 Asia/Shanghai 或 Asia/Chongqing，因为没有北京可选，两个都一样，都是 UTC + 8。&lt;br /&gt;&lt;hr /&gt;&lt;strong&gt;安装包的选择&lt;/strong&gt;，官方没有太多介绍。针对服务器的话，最好什么都不要勾选，然后采用 Customize software selection，把基本的系统组件选中，其它的不要安装，也不需要 GUI 图形界面。将来服务软件的安装可以从各官方网站下载最新稳定版单独安装(用源代码包自行编译安装或用二进制分发包直接安装或通过 Yum 来自动安装)，因为操作系统的发行版附带的软件包一般都比较过时了(当然，至于这个“过时”，CentOS 有它自己的观点和充分的理由，官方 Wiki 有 &lt;a href="http://wiki.centos.org/zh/PackageManagement/SourceInstalls" target="_blank"&gt;说明&lt;/a&gt;)。为了方便，可以只选中这么几项安装：&lt;br /&gt;Administration Tools、Base、Development Tools、Network Servers、System Tools、Text-based Internet&lt;br /&gt;到这里，操作系统就安装完成了，接下来还要做一些重要的调整。&lt;br /&gt;&lt;h2 class="title"&gt;CentOS 5 的一些调整&lt;/h2&gt;&lt;h3 class="title"&gt;配置用户及限制 SU 权限&lt;/h3&gt;首先要做的是添加一个普通用户帐号，如 radmin，用作将来的远程 SSH 连接。添加用户的步骤如下：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# useradd -G wheel radmin&lt;br /&gt;# passwd radmin&lt;br /&gt;Changing password for user radmin.&lt;br /&gt;New UNIX password:(这里输入的密码是看不见的)&lt;br /&gt;Retype new UNIX password:(再输入一遍，仍然不显示)&lt;br /&gt;passwd: all authentication tokens updated successfully.&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;由此就创建了一个 radmin 用户和一个对应的 radmin 组，并设置了 radmin 用户的密码。而 -G 参数是把 radmin 用户加入 wheel 管理员组。&lt;br /&gt;默认情况下，任何用户都可以 su 到 root 用户，我们们现在就来做个限制，只允许 wheel 组内的用户才可以 su 到 root用户。编辑 su 的 PAM 配置文件 (/etc/pam.d/su)，找到下面这行，把前面的注释 # 去掉：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;auth            required        pam_wheel.so use_uid&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;这个改变意味着只有 wheel 组的成员才可以使用 su 这个命令。所以，wheel 组内的用户，包括 radmin，能够 su 到任何用户，包括 su 到 root。但这样存在个副作用，就是其他组的用户将完全无法使用这个命令，即使是想 su 到 root 以外的用户。不过作为服务器而言，我们平时也就是一个管理员做一些专门的维护，不太会有大量普通用户帐户的需求。&lt;br /&gt;&lt;h3 class="title"&gt;配置 SSH，方便安全的远端操作&lt;/h3&gt;SSH 肯定要开的，但是开得不安全的话，将成为一个很大的隐患。我觉得在 /etc/ssh/sshd_config 配置文件中最起码要做这些调整：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# 停用第 1 类协议&lt;br /&gt;# SSH 可以采用两款协议：第 1 类及第 2 类协议。&lt;br /&gt;# 较旧的第 1 类协议的安全性较低，因此它应该被停用： &lt;br /&gt;# Protocol 2,1&lt;br /&gt;Protocol 2&lt;br /&gt;&amp;nbsp;&lt;br /&gt;# 采用非标准的端口&lt;br /&gt;# (官方中文 Wiki 上的解释)&lt;br /&gt;# 根据缺省值，ssh 在端口 22 聆听进入的连接。&lt;br /&gt;# 一个骇客如果要断定 ssh 是否在你的机器上运行，他最大可能就是扫描端口 22。&lt;br /&gt;# 一个有效混淆他的方法就是在非标准的端口上运行 ssh。&lt;br /&gt;# 任何未被使用的端口都可行，但首选的是 1024 以上的。&lt;br /&gt;# 很多人选用 2222 作为替换的端口（它很易记），正如 8080 经常被用作 HTTP 的替换端口。&lt;br /&gt;# 正由于这个原因令它不是个好的选择，因为任何扫描端口 22 的骇客亦不会放过端口 2222。&lt;br /&gt;# 随机地选用一个未被使用的高位端口会比较合宜：&lt;br /&gt;Port 2345  #修改成自己想要的端口号&lt;br /&gt;&amp;nbsp;&lt;br /&gt;# 阻止 root 登录：&lt;br /&gt;PermitRootLogin no&lt;br /&gt;&amp;nbsp;&lt;br /&gt;# 只允许 radmin 用户登录，然后就可以根据前面的设定，使用 su 到 root：&lt;br /&gt;AllowUsers radmin&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;然后请重新引导 sshd 服务：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# service sshd restart&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;SSH 支持 TCP wrappers，因此服务的访问权限也可同时用 hosts.allow 及 hosts.deny 来进行控制：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# echo "sshd:ALL" &amp;gt;&amp;gt; /etc/hosts.deny&lt;br /&gt;# echo "sshd:10." &amp;gt;&amp;gt; /etc/hosts.allow&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;现在，只有 10.*.*.* 的地址才可以连接服务器的 SSH 服务。当然，如果管理员的办公地址固定，可以设置成某个具体的 IP 地址。&lt;br /&gt;这样一来，如果给 radmin 设置足够强壮的密码，并且做到不定期更换，通过 SSH 客户端登录服务器已经足够安全了。当然，如果非常在意安全性，还有个增强安全的手段，就是采用公钥／私钥来验证。&lt;br /&gt;SSH 客户端有很多，比如收费的 &lt;a href="http://www.vandyke.com/products/securecrt/" target="_blank"&gt;SecureCRT&lt;/a&gt;、免费的 &lt;a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/" target="_blank"&gt;PuTTY&lt;/a&gt;，它们都有生成公钥 / 密钥对的功能。用它们的这个功能生成 SSH-2 RSA Key，然后分别保存公钥和密钥，密钥放置在软件规定的目录，而公钥需要上传至服务器上。假设公钥文件名为 id_rsa.pub，已经传至 radmin 的 home 目录，现在以 radmin 用户登录服务器，然后做以下操作：&lt;br /&gt;如果没有 .ssh 目录，则先创建：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;$ mkdir ~/.ssh&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;安装公钥到 authorized_keys 清单内：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;$ cat id_rsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;上一步成功输入了公钥后，删除原公钥文件：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;$ rm -f id_rsa.pub&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;最后，设置服务器上的文件权限：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;$ chmod 700 ~/.ssh&lt;br /&gt;$ chmod 600 ~/.ssh/authorized_keys&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;今后就能用公钥 / 密钥对的方式登录 SSH 服务器了，如果以后只希望以这种方式登录服务器，可以在 /etc/ssh/sshd_config 配置文件中禁用掉口令登录：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# 停用口令验证，强制使用公钥 / 密钥对&lt;br /&gt;PasswordAuthentication no&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class="title"&gt;收窄个别挂载点的权限&lt;/h3&gt;官方中文 Wiki 里这么说：&lt;br /&gt;&lt;blockquote&gt;当你将分区划分好及设置尺寸后，你便可以尽量收窄个别挂载点的权限。只要情况容许，你便应该加入 nodev、nodexec 及 nosuid。下面是一个已经适切地收窄权限的 /etc/fstab 样例档：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;/dev/VG_OS/lv_root          /        ext3      defaults     1 1&lt;br /&gt;/dev/VG_OS/lv_tmp           /tmp     ext3      defaults,nosuid,noexec,nodev  1 2&lt;br /&gt;/dev/VG_OS/lv_vartmp        /var/tmp ext3      defaults,nosuid,noexec,nodev 1 2&lt;br /&gt;/dev/data_vol/lv_home       /home    ext3      defaults,nosuid,nodev  1 2&lt;br /&gt;/dev/VG_OS/lv_var           /var     ext3      defaults,nosuid     1 2&lt;br /&gt;/dev/data_vol/lv_web        /var/www ext3      defaults,nosuid,nodev  1 2&lt;br /&gt;/dev/sda1                   /boot    ext3      defaults,nosuid,noexec,nodev  1 2&lt;br /&gt;tmpfs                       /dev/shm tmpfs     defaults 0 0&lt;br /&gt;devpts                      /dev/pts devpts    gid=5,mode=620 0 0&lt;br /&gt;sysfs                       /sys     sysfs     defaults    0 0&lt;br /&gt;proc                        /proc    proc      defaults    0 0&lt;br /&gt;/dev/_VG_OS/lv_swap         swap     swap      defaults    0 0&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;明显地，你需要修改这个样例来迎合你的系统。LVM、扇区名称、标签等都可以被更改。请不要只字不漏地复制这个样例档，并期望它适合你使用。&lt;br /&gt;网页服务器的挂载亦可以被设置为 noexec，但这样做会影响到 cgi 类应用程序，与及依赖 execute bit hack 的服务器端包含档。如果你不会应用 cgi 程序，我推荐最低限度测试采用 noexec，并看看会否有副作用。&lt;br /&gt;&lt;/blockquote&gt;也就是说，我们应该根据我们的实际情况，尽量给一些挂载点加入 nodev、nodexec 及 nosuid，限制这些 dev、exec、suid 的功能属性，而达到收窄权限、增强安全的目的。&lt;br /&gt;&lt;h3 class="title"&gt;限制 root 用户权限&lt;/h3&gt;下面的命令实现两个目的，第一个是只允许 root 从 tty1 控制台登录，第二个不允许任何用户访问 root 的主目录：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# echo "tty1" &amp;gt; /etc/securetty&lt;br /&gt;# chmod 700 /root&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class="title"&gt;停用&amp;nbsp;IPv6&lt;/h3&gt;相信绝大多数网管员配置的服务器都不需要连接 IPv6 网络，因此停用 IPv6 模块是很有必要的。以下引自官方中文 Wiki：&lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;编辑 /etc/sysconfig/network 并设置「NETWORKING_IPV6」为「no」&lt;/li&gt;&lt;li&gt;在 /etc/modprobe.conf 内加入以下内容：&lt;/li&gt;&lt;/ul&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;alias ipv6 off&lt;br /&gt;alias net-pf-10 off&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;执行 /sbin/chkconfig ip6tables off 来停用 IPv6 防火墙&lt;/li&gt;&lt;li&gt;重新引导系统&lt;/li&gt;&lt;/ul&gt;另类做法（可能较容易，并适用于在任何有 /etc/modprobe.d 的发行内）：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# touch /etc/modprobe.d/disable-ipv6&lt;br /&gt;# echo "install ipv6 /bin/true" &amp;gt;&amp;gt; /etc/modprobe.d/disable-ipv6&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;5.4 版的更新引进了符号／ipv6 模块的互赖性；因此，假若 IPv6 曾经以上述方法停用，当结合界面的驱动程序被升级到 5.4 后，内核的结合模块将会不能被装入。要让这个模块正常装入，请改用：&lt;/li&gt;&lt;/ul&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# touch /etc/modprobe.d/disable-ipv6&lt;br /&gt;# echo "options ipv6 disable=1" &amp;gt;&amp;gt; /etc/modprobe.d/disable-ipv6&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;h3 class="title"&gt;停用无线网络&lt;/h3&gt;绝大多数网管员配置的服务器也不需要连接无线网络，下面的操作通过 /etc/modprobe.d 内的黑名单文件来停用它们，同时也能避免系统内核升级后，它们又会再出现。&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# for i in $(find /lib/modules/`uname -r`/kernel/drivers/net/wireless -name "*.ko" -type f) ; do echo blacklist $i &amp;gt;&amp;gt; /etc/modprobe.d/blacklist-wireless ; done&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class="title"&gt;一些 sysctl 安全设置参数&lt;/h3&gt;根据官方 Wiki 的解释，除了一些要用到多网口做特殊应用的服务器外，绝大多数只是利用一个网口以提供某一应用的服务器(比如网站服务器)，可以在 /etc/sysctl.conf 文件中调整以下参数：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;net.ipv4.ip_forward = 0&lt;br /&gt;net.ipv4.conf.all.send_redirects = 0&lt;br /&gt;net.ipv4.conf.default.send_redirects = 0&lt;br /&gt;net.ipv4.tcp_max_syn_backlog = 1280&lt;br /&gt;net.ipv4.conf.all.accept_source_route = 0&lt;br /&gt;net.ipv4.conf.all.accept_redirects = 0&lt;br /&gt;net.ipv4.conf.all.secure_redirects = 0&lt;br /&gt;net.ipv4.conf.all.log_martians = 1&lt;br /&gt;net.ipv4.conf.default.accept_source_route = 0&lt;br /&gt;net.ipv4.conf.default.accept_redirects = 0&lt;br /&gt;net.ipv4.conf.default.secure_redirects = 0&lt;br /&gt;net.ipv4.icmp_echo_ignore_broadcasts = 1&lt;br /&gt;net.ipv4.icmp_ignore_bogus_error_responses = 1&lt;br /&gt;net.ipv4.tcp_syncookies = 1&lt;br /&gt;net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;net.ipv4.tcp_timestamps = 0&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class="title"&gt;通过 Yum 来安装软件和更新系统&lt;/h3&gt;在 CentOS 中安装软件是通过 Yum 工具下载安装预编译的 RPM 包来进行的，软件源是 CentOS 官方或第三方社区维护的一些软件仓库。&lt;br /&gt;&lt;h4 class="title"&gt;取得 CentOS 的组件签署金钥&lt;/h4&gt;在使用 Yum 之前，必须安装 CentOS RPM 签署金钥，以便 RPM 能使用它来确定拥有合法签署的组件。然而基于安全理由，这个金钥在 CentOS 操作系统安装时不会被安装。我们需要通过以下命令来从 CentOS 的镜像网站导入：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 class="title"&gt;安装 ProtectBase 插件&lt;/h4&gt;从 CentOS 5 开始，Yum 工具默认启用了插件功能，官方 Wiki 推荐的插件里，FastestMirror 已经默认安装并启用了。而另一个 ProtectBase，官方 Wiki 介绍说：&lt;br /&gt;&lt;blockquote&gt;protectbase 的用处就是保护某些软件库被其它软件库的更新所取替。受保护的软件库不会被未受保护的软件库内较新的文件更新。我们推荐这个插件给任何经常启用第三方软件库的人们，因为这些非 CentOS 的软件库可能会更新某些系统文件，有机会导致你的 CentOS 安装不稳定。&lt;br /&gt;&lt;/blockquote&gt;所以如果有这个想法，可以安装这个插件。我没想法，所以我没安装。安装其实很简单，官方 Wiki 的 &lt;a href="http://wiki.centos.org/zh/PackageManagement/Yum/ProtectBase" target="_blank"&gt;这个页面&lt;/a&gt; 有详细介绍。&lt;br /&gt;&lt;h4 class="title"&gt;用 Yum 来更新系统&lt;/h4&gt;Yum 用法很简单，首先检查是否有软件更新：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# yum check-update&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;如果有的话，会列出来需要更新的软件，然后运行下面的命令来更新：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# yum update&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;对于大动作的版本升级，比如操作系统版本升级，可以用下面的命令，不过这个千万要谨慎，不要轻易使用：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# yum upgrade&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;为了节约空间，可以在升级完成后清除缓存文件：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# yum clean all&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 class="title"&gt;让 Yum 自动更新&lt;/h4&gt;有个 Yum 软件包 yum-cron 能完整这个任务，可以通过下面的命令安装：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# yum -y install yum-cron&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;完成安装后会创建 cron 脚本来自动执行自动更新的任务，任务的配置文件是 /etc/yum/yum-updatesd.conf。默认值是定期检查然后通知 root，而不自动更新，可以通过配置文件调整。&lt;br /&gt;另外，官方 Wiki 的 &lt;a href="http://wiki.centos.org/zh/YumCheckOrInstallUpdates" target="_blank"&gt;这篇文档&lt;/a&gt; 里提供了另一种方法，直接创建了几个脚本放在系统对应目录中，号称他这个脚本相对占用较少资源。如果用他这个方法的话，记得创建好 /etc/cron.daily/yum.cron 文件后，增加执行属性：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# chmod +x /etc/cron.daily/yum.cron&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class="title"&gt;利用 ntpd 同步时间&lt;/h3&gt;一般来说，让服务器一直保持标准时间是很重要的。做到这一点，明显要用到 NTP 服务。而从网络上同步标准时间有两个做法，一个是 ntpdate 命令，一个是 ntpd 守护进程。ntpdate 命令同步时间是立即生效的，不管本地时间和标准时间是不是差得离谱。命令的用法也很简单，如下即可：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# ntpdate cn.pool.ntp.org&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;上面的 cn.pool.ntp.org 是公用网络时间服务器集群在中国的地址池，更多的地址池可以在 &lt;a href="http://www.pool.ntp.org/" target="_blank"&gt;这里(http://www.pool.ntp.org)&lt;/a&gt; 找到。&lt;br /&gt;对于一个长时间开机的服务器来说，通过 ntpd 守护进程来同步时间是一个更好的办法。它根据本地时间和标准时间之间的漂移量，让本地时间慢慢的调整到标准时间，这样就不会影响一些对时间敏感的程序的运行，而且不再需要管理员去手动运行命令。但是它有个限制，当本地时间和标准时间差别太大的时候，它会报错，不允许调整。这时就要先用 ntpdate 手动同步一下时间，然后再启用 ntpd 进程。&lt;br /&gt;ntp 组件在 CenOS 5 操作系统安装的时候已经装好，如果没有的话可以通过下面的命令安装：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# yum -y install ntp&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;ntpd 的配置文件是 /etc/ntp.conf，默认配置已经完全满足我们的要求，指定了一组网络时间服务器，允许本机向这些源发请求，不接受请求(不对外提供服务)。我们要做的仅仅是更改一下配置文件中的网络时间服务器地址。根据 &lt;a href="http://www.pool.ntp.org/" target="_blank"&gt;NTP POOL PROJECT&lt;/a&gt; 提供的 &lt;a href="http://www.pool.ntp.org/zone/cn" target="_blank"&gt;中国地区的服务器集群(NTP Servers in China, cn.pool.ntp.org)&lt;/a&gt; 地址信息，把 /etc/ntp.conf 中的默认地址换成下面的地址：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# Use public servers from the pool.ntp.org project.&lt;br /&gt;# Please consider joining the pool (http://www.pool.ntp.org/join.html).&lt;br /&gt;# server 0.centos.pool.ntp.org&lt;br /&gt;# server 1.centos.pool.ntp.org&lt;br /&gt;# server 2.centos.pool.ntp.org&lt;br /&gt;server 1.cn.pool.ntp.org&lt;br /&gt;server 3.asia.pool.ntp.org&lt;br /&gt;server 0.asia.pool.ntp.org&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;ntpd 默认没有自动启动，首先通过下面的命令启动 ntpd 守护进程：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# service ntpd start&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;之后通过下面的命令进行测试，如果能看到类似于下面的那些信息，则表明服务已经正常启动，并且通信正常：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# ntpq -p&lt;br /&gt;     remote           refid      st t when poll reach   delay   offset  jitter&lt;br /&gt;==============================================================================&lt;br /&gt;*61.153.197.226  209.81.9.7       2 u  105  256  377    7.034  -27.129  10.355&lt;br /&gt;+202.71.100.89   91.189.94.4      3 u  321  256  336  645.352  107.986   3.440&lt;br /&gt;+ns1.arianrp.ir  129.6.15.28      2 u   80  256  363  540.304  -22.287   4.882&lt;br /&gt; LOCAL(0)        .LOCL.          10 l    7   64  377    0.000    0.000   0.001&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;最后要令 ntpd 开机自动启动，通过下面的命令完成：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# chkconfig ntpd on&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class="title"&gt;停止无用服务(守护进程)&lt;/h3&gt;CentOS 默认开机自动启动的守护进程中，可能有一些对于我们针对某些单独应用的服务器不是必需的，所以我们要根据实际情况停用一些守护进程。进行这一操作的是 chkconfig 命令。chkconfig 命令的用法很简单：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;usage:   chkconfig --list [name]&lt;br /&gt;         chkconfig --add &lt;name&gt;&lt;br /&gt;         chkconfig --del &lt;name&gt;&lt;br /&gt;         chkconfig [--level &lt;levels&gt;] &lt;name&gt; &lt;on|off|reset|resetpriorities&gt;&lt;/on|off|reset|resetpriorities&gt;&lt;/name&gt;&lt;/levels&gt;&lt;/name&gt;&lt;/name&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;另外还有一个文字界面下的图形操作方式，是通过 ntsysv 命令实现的：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# ntsysv&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class="title"&gt;非正常关机的自动磁盘修复配置&lt;/h3&gt;如果由于种种原因，服务器非正常关机了，比如死机、强制关机或复位、突然断电等，如果有正在打开的文件，很可能发生文件系统的一些错误，检查文件系统并修复错误的命令是著名的 fsck。通过创建 /etc/sysconfig/autofsck 文件，设置如下内容，能够在非正常关机后，系统启动时自动运行 fsck 命令来检查并修复文件系统错误：&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="shell" style="font-family: monospace;"&gt;# 启动自动检查的功能&lt;br /&gt;AUTOFSCK_DEF_CHECK=yes&lt;br /&gt;# 对所有的提示都回答 yes&lt;br /&gt;PROMPT=yes&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2 class="title"&gt;还有很多要做的……&lt;/h2&gt;根据我今后的管理和学习的积累，会随时把一些内容记录下来……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-8277040382711522487?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/8277040382711522487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=8277040382711522487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8277040382711522487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8277040382711522487'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/centos-5x.html' title='[转]CentOS 5.x 系统安装配置'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-3945330839344752175</id><published>2011-10-24T02:04:00.002+08:00</published><updated>2011-10-24T02:04:58.766+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>CentOS下设置服务自动启动的方法</title><content type='html'>在CentOS或者RedHat其他系统下，如果是后面安装的服务，如httpd、mysqld、postfix等，安装后系统默认不会自动启动的。就算手动执行/etc/init.d/mysqld start启动了服务，只要服务器重启后，系统仍然不会自动启动服务。&lt;br /&gt;在这个时候，我们就需要在安装后做个设置，让系统自动启动这些服务，避免不必要的损失和麻烦。&lt;span id="more-126"&gt;&lt;/span&gt;&lt;br /&gt;其实命令很简单的，使用&lt;strong&gt;&lt;em&gt;chkconfig&lt;/em&gt;&lt;/strong&gt;即可。比如要将mysqld设置为开机自动启动：&lt;br /&gt;&lt;blockquote&gt;#chkconfig mysqld on&lt;/blockquote&gt;同理，要取消掉某个服务自动启动，只需要将最后的参数“on”变更为“Off”即可。比如要取消postfix的自动启动：&lt;br /&gt;&lt;blockquote&gt;#chkconfig postfix off&lt;/blockquote&gt;值得注意的是，如果这个服务尚未被添加到chkconfig列表中，则现需要使用–add参数将其添加进去：&lt;br /&gt;&lt;blockquote&gt;#chkconfig –add postfix&lt;/blockquote&gt;如果要查询当前所有自动启动的服务，可以输入：&lt;br /&gt;&lt;blockquote&gt;#chkconfig –list&lt;/blockquote&gt;但是这样显示东西太多了，看起来很晕。如果只想看指定的服务怎么办呢？这个时候只需要在“–list”之后加上服务名就好了，比如查看httpd服务是否为自动启动，就输入：&lt;br /&gt;&lt;blockquote&gt;#chkconfig –list httpd&lt;/blockquote&gt;这个时候输出的结果：&lt;br /&gt;&lt;blockquote&gt;httpd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:off&amp;nbsp;&amp;nbsp; 1:off&amp;nbsp;&amp;nbsp; 2:off&amp;nbsp;&amp;nbsp; 3:off&amp;nbsp;&amp;nbsp; 4:off&amp;nbsp;&amp;nbsp; 5:off&amp;nbsp;&amp;nbsp; 6:off&lt;/blockquote&gt;此时0~6均为off，则说明httpd服务不会在系统启动的时候自动启动。我们输入chkconfig httpd on后，再次检查输出结果变为：&lt;br /&gt;&lt;blockquote&gt;httpd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:off&amp;nbsp;&amp;nbsp; 1:off&amp;nbsp;&amp;nbsp; 2:on&amp;nbsp;&amp;nbsp;&amp;nbsp; 3:on&amp;nbsp;&amp;nbsp;&amp;nbsp; 4:on&amp;nbsp;&amp;nbsp;&amp;nbsp; 5:on&amp;nbsp;&amp;nbsp;&amp;nbsp; 6:off&lt;/blockquote&gt;这个时候2~5都是on，就表明会自动启动了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-3945330839344752175?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/3945330839344752175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=3945330839344752175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3945330839344752175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3945330839344752175'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/centos.html' title='CentOS下设置服务自动启动的方法'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-6320810801030078608</id><published>2011-10-24T01:51:00.000+08:00</published><updated>2011-10-24T04:24:55.080+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><title type='text'>centos 6 安装virtualbox 增强模式</title><content type='html'>$ sudo sh ./VBoxLinuxAdditions.run&lt;br /&gt;提示错误&lt;br /&gt;没有make&lt;br /&gt;安装make&lt;br /&gt;# yum install make&lt;br /&gt;&lt;br /&gt;安装GCC &lt;br /&gt;&lt;br /&gt;# yum install gcc &lt;br /&gt;&lt;br /&gt;# yum install gcc kernel-devel kernel-headers &lt;br /&gt;&lt;br /&gt;然后挂载 /dev/cdrom&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;# mount /dev/cdrom /mnt ; cd /mnt&lt;br /&gt;&lt;br /&gt;&lt;pre class="bash" style="font-family: monospace;"&gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;# sh&lt;/span&gt; VBoxLinuxAdditions-x86.run&lt;/pre&gt;这样就安装好了.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-sgJvojfY4X4/TqRzK6A-n8I/AAAAAAAAAQA/WfIIJW_AeHA/s1600/screenshot-2011-10-24-04-03-30.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-sgJvojfY4X4/TqRzK6A-n8I/AAAAAAAAAQA/WfIIJW_AeHA/s1600/screenshot-2011-10-24-04-03-30.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;启动以后,就可以自由的切换鼠标了&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-yYx2x924SqI/TqR394Z-5bI/AAAAAAAAAQY/R7_yrG9XktU/s1600/screenshot-2011-10-24-04-23-24.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="http://4.bp.blogspot.com/-yYx2x924SqI/TqR394Z-5bI/AAAAAAAAAQY/R7_yrG9XktU/s400/screenshot-2011-10-24-04-23-24.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-6320810801030078608?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/6320810801030078608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=6320810801030078608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6320810801030078608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6320810801030078608'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/centos-6-virtualbox.html' title='centos 6 安装virtualbox 增强模式'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-sgJvojfY4X4/TqRzK6A-n8I/AAAAAAAAAQA/WfIIJW_AeHA/s72-c/screenshot-2011-10-24-04-03-30.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-7760774558096031428</id><published>2011-10-22T18:27:00.002+08:00</published><updated>2011-10-22T18:42:45.041+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>freebsd 设置 中文locale</title><content type='html'>系统环境 freebsd 8.2&lt;br /&gt; &lt;br /&gt;FreeBSD安装完成后，是英文环境，就算用ssh连接FreeBSD服务器，编辑中文时，也会乱码，因为没有正确设置可以显示中文的Locale.&lt;br /&gt;经过我的测试，发现在FreeBSD服务器环境中，只需要设置Locale, 然后用ssh连接服务器，就可以显示中文。&lt;br /&gt;如何正确设置FreeBSD的locale呢？我们可以察看FreeBSD的手册：&lt;br /&gt;&lt;a href="http://www.freebsd.org/doc/handbook/using-localization.html"&gt;http://www.freebsd.org/doc/handbook/using-localization.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;我们采用其中的一种办法，编辑/etc/csh.cshrc, 在文件中增加：&lt;br /&gt;&lt;blockquote&gt;setenv LANG en_US.UTF-8&lt;br /&gt;setenv LC_ALL en_US.UTF-8&lt;/blockquote&gt;有哪些语系可以設定，要到&lt;br /&gt;&lt;div class="codecolorer-container text"&gt;&lt;div class="codecolorer" style="font-family: monospace;"&gt;# cd /usr/share/local/&lt;br /&gt;# ls&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;要检查是否设定成功，可以使用以下指令：&lt;br /&gt;&lt;div class="codecolorer-container text"&gt;&lt;div class="codecolorer" style="font-family: monospace;"&gt;# env&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;保存编辑，退出ssh登陆，然后再重新登陆一次，打开一个含有中文的文件，如果你用的是vim,那么vim应该就可以正确的显示中文了。 同时在FreeBSD的ssh命令行中，也可以输入中文了。 以上测试完成于arch&amp;nbsp; + FreeBSD8.2下面。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;参考 : &lt;a href="http://netlab.cse.yzu.edu.tw/%7Estatue/freebsd/zh-tut/locale.html"&gt;http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/locale.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-7760774558096031428?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/7760774558096031428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=7760774558096031428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7760774558096031428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7760774558096031428'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/freebsd-locale.html' title='freebsd 设置 中文locale'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-3614622757341168246</id><published>2011-10-22T09:48:00.003+08:00</published><updated>2011-10-22T09:51:27.886+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>freebsd 时区设置</title><content type='html'>选择最小化安装,就没有设置时区.&lt;br /&gt;&lt;br /&gt;FreeBSD经常在安装的时候一不注意就设置了UTC，结果服务器上的时间和我们中国时区的时间总是差8小时，我们可以用下面的方法来更改时区。&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;div class="quote-title"&gt;引用&lt;/div&gt;&lt;div class="quote-title"&gt;&lt;/div&gt;&lt;div class="quote-title"&gt;1 .# &lt;span class="postbody"&gt;tzsetup 更改时区&lt;/span&gt;&lt;/div&gt;&lt;div class="quote-content"&gt;&lt;/div&gt;&lt;div class="quote-content"&gt;2 .# sysinstall&lt;br /&gt;选择 configure&lt;br /&gt;选择 Time Zone&lt;br /&gt;UTC = no &lt;br /&gt;选择 Asia &lt;br /&gt;选择 China&lt;br /&gt;选择 east China - Beijing,Guangdong,Shanghai etc.&lt;br /&gt;Does the abbreviation `CST' look reasonable? = OK&lt;br /&gt;然后退出sysinstall就可以了。&lt;br /&gt;&lt;br /&gt;用date命令验证一下&lt;br /&gt;# date&lt;br /&gt;Sat Oct 22 09:35:01 CST 2011&lt;br /&gt;&lt;br /&gt;如果时间不对，就用下面的命令同步windows的时间服务器&lt;br /&gt;# ntpdate time.windows.com&lt;br /&gt;这样时间就对了，如果你时钟经常会变慢，你可以在crontab设置定时执行同步时间命令。&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;显示当前的时间：&lt;br /&gt;date&lt;br /&gt;Sat Oct 22 09:38:29 CST 2011&lt;br /&gt;设置时间：&lt;br /&gt;date 1110220938&lt;br /&gt;时间格式为年、月、日、时、分，每个各占两个数字，其形式即为yymmddhhmm，大部分情况下是对时间进行小调整，可以略去前面的年月日部分，而仅使用四位数字表示时、分，形如hhmm&lt;br /&gt;通过Internet同步时间：&lt;br /&gt;# ntpdate nist1.symmetricom.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-3614622757341168246?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/3614622757341168246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=3614622757341168246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3614622757341168246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3614622757341168246'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/freebsd_22.html' title='freebsd 时区设置'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-5264765532351947221</id><published>2011-10-22T08:32:00.000+08:00</published><updated>2011-10-22T08:32:23.665+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>freebsd 自动升级脚本(freebsd-update portmaster portaudit)</title><content type='html'>&lt;title&gt;~/tips/freebsd/update.html&lt;/title&gt;&lt;style type="text/css"&gt;&lt;!--pre { white-space: pre-wrap; font-family: monospace; color: #ffffff; background-color: #000000; }body { font-family: monospace; color: #ffffff; background-color: #000000; }.PreProc { color: #c000c0; }.Special { color: #c000c0; }.Constant { color: #af5f00; }.Statement { color: #804000; }.Identifier { color: #008080; font-weight: bold; }.Comment { color: #008080; }--&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="Comment"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Identifier"&gt;LOG_FILE&lt;/span&gt;=&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;/var/log/freebsd-update.log&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;Starting updates: &lt;/span&gt;&lt;span class="Special"&gt;`date`&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;| tee &lt;span class="Special"&gt;-a&lt;/span&gt; &lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;LOG_FILE&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;***&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;*** Checking for FreeBSD patches...&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;***&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;/usr/sbin/freebsd-update fetch | tee &lt;span class="Special"&gt;-a&lt;/span&gt; &lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;LOG_FILE&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;br /&gt;/usr/sbin/freebsd-update &lt;span class="Statement"&gt;install&lt;/span&gt; | tee &lt;span class="Special"&gt;-a&lt;/span&gt; &lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;LOG_FILE&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;***&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;*** Updating ports tree...&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;***&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;/usr/sbin/portsnap fetch update | tee &lt;span class="Special"&gt;-a&lt;/span&gt; &lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;LOG_FILE&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;***&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;*** Looking for ports to update...&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;***&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;/usr/&lt;span class="Statement"&gt;local&lt;/span&gt;/sbin/portmaster &lt;span class="Special"&gt;-a&lt;/span&gt; &lt;span class="Special"&gt;--no-confirm&lt;/span&gt; | tee &lt;span class="Special"&gt;-a&lt;/span&gt; &lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;LOG_FILE&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;***&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;*** Checking installed ports for known security problems...&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;***&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;br /&gt;/usr/&lt;span class="Statement"&gt;local&lt;/span&gt;/sbin/portaudit &lt;span class="Special"&gt;-Fva&lt;/span&gt; | tee &lt;span class="Special"&gt;-a&lt;/span&gt; &lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;LOG_FILE&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Statement"&gt;echo&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt;Finished updates: &lt;/span&gt;&lt;span class="Special"&gt;`date`&lt;/span&gt;&lt;span class="Statement"&gt;"&lt;/span&gt;&lt;span class="Constant"&gt; &lt;/span&gt;| tee &lt;span class="Special"&gt;-a&lt;/span&gt; &lt;span class="PreProc"&gt;${&lt;/span&gt;&lt;span class="PreProc"&gt;LOG_FILE&lt;/span&gt;&lt;span class="PreProc"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-5264765532351947221?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/5264765532351947221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=5264765532351947221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/5264765532351947221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/5264765532351947221'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/freebsd-freebsd-update-portmaster.html' title='freebsd 自动升级脚本(freebsd-update portmaster portaudit)'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-7803362585971236580</id><published>2011-10-22T07:43:00.004+08:00</published><updated>2011-10-22T08:41:23.107+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>freebsd 更改portsnap和pkg_add源</title><content type='html'>修改/etc/portsnap.conf中的&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# SERVERNAME=portsnap.freebsd.org&lt;br /&gt;# 改为&lt;br /&gt;SERVERNAME=portsnap.cn.freebsd.org&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;修改/etc/csh.cshrc(或者~/.cshrc)，添加&lt;br /&gt;&lt;br /&gt;# 加速pkg_add -r的速度&lt;br /&gt;# setenv PACKAGEROOT ftp://ftp.cn.freebsd.org&lt;br /&gt;# cn的源速度很慢,tw的源速度很快&lt;br /&gt;setenv PACKAGEROOT ftp://ftp.tw.freebsd.org&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;永久性生效，root的用户使用bash，普通用户也是用bash&lt;br /&gt;&lt;br /&gt;1、在当前用户下执行chsh -s /usr/local/bin/bash&lt;br /&gt;&lt;br /&gt;2、sudo vim /usr/local/etc/sudoers&lt;br /&gt;把&lt;span style="color: orange;"&gt;Defaults env_keep += "PKG_PATH PKG_DBDIR PKG_TMPDIR TMPDIR PACKAGEROOT PACKAGESITE PKGDIR FTP_PASSIVE_MODE"&lt;/span&gt;&lt;br /&gt;这行的#号去掉，目的是让普通用户也能使用sudo pkg_add -r 安装软件。&lt;br /&gt;&lt;br /&gt;3、vi /etc/profile&lt;br /&gt;export PACKAGESITE=ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/&lt;br /&gt;source /etc/profile &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4、用户&lt;br /&gt;在普通用户下使用sudo pkg_add -r安装&lt;br /&gt;在root用户下直接用pkg_add -r 安装。 &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-7803362585971236580?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/7803362585971236580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=7803362585971236580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7803362585971236580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7803362585971236580'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/freebsd-port.html' title='freebsd 更改portsnap和pkg_add源'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-3735440263138152722</id><published>2011-10-22T07:25:00.001+08:00</published><updated>2011-10-24T12:53:49.606+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>freebsd 8.2 最小化安装后安装man 手册</title><content type='html'>采用最小化安装 安装了freebsd 8.2 ,发现没有man 手册页&lt;br /&gt;&lt;br /&gt;搜索得到答案&lt;br /&gt;&lt;br /&gt;sysinstall-&amp;gt;configure-&amp;gt;Distributions-&amp;gt;man-&amp;gt;空格、回车&lt;br /&gt;&lt;br /&gt;下面就跟新安装一样了，选择一个安装介质，实在不行就选ftp。&lt;br /&gt;&lt;br /&gt;When you perform FreeBSD 8.x minimal installation, it skips additional distribution sets such as man and info pages. Man and info page offers extensive documentation.&lt;br /&gt;It is very easy to add man or info pages to FreeBSD post installation. You need to use tool called sysinstall. The sysinstall utility is the pre and post installation application provided by the FreeBSD. It is console based and is divided into a number of menus and screens that you can use to configure and control the installation process. It can be use to install packages very easily:&lt;br /&gt;&lt;h3&gt;Install man pages&lt;/h3&gt;a) Login as root user&lt;br /&gt;b) Type the following command:&lt;br /&gt;&lt;code&gt;# /usr/sbin/sysinstall &lt;/code&gt;&lt;br /&gt;Please note that if you are using FreeBSD old version such as 5.0 use /stand/sysinstall command (path is changed):&lt;br /&gt;&lt;code&gt;# /stand/sysinstall&lt;/code&gt;&lt;br /&gt;c) The sysinstall menu system is controlled by the arrow keys, Enter, Space, and other keys. Select menu option as follows:&lt;br /&gt;Configure &amp;gt; Distributions &amp;gt; Select Man and Info by press space bar &amp;gt; Ok&lt;br /&gt;&lt;a href="http://figs.cyberciti.biz/howtos/man-si1-201205.png"&gt;&lt;img height="365" src="http://figs.cyberciti.biz/howtos/man-si1-201205.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;Now select man and info pages.&lt;br /&gt;When prompted for to choose Installation media select either CD or FTP/HTTP.&lt;br /&gt;&lt;a href="http://figs.cyberciti.biz/howtos/man-si2201205.png"&gt;&lt;img height="242" src="http://figs.cyberciti.biz/howtos/man-si2201205.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;Select FTP site and it will start to installation.&lt;br /&gt;&lt;img src="http://figs.cyberciti.biz/howtos/man-si3201205.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-3735440263138152722?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/3735440263138152722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=3735440263138152722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3735440263138152722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3735440263138152722'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/freebsd-82-man.html' title='freebsd 8.2 最小化安装后安装man 手册'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-2758581621717623814</id><published>2011-10-22T05:52:00.000+08:00</published><updated>2011-10-22T05:53:08.178+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>加快FreeBSD中pkg_add的速度</title><content type='html'>&lt;br /&gt;&lt;br /&gt;因为pkg_add时默认的服务器为ftp.freebsd.org，这个可是相当慢的，加上最近光缆又断了，更是无法忍受，改为ftp.freebsdchina.org会快不少。&lt;br /&gt; &lt;br /&gt; 要在csh的shell方式。&lt;br /&gt; # csh&lt;br /&gt; # setenv PACKAGEROOT ftp://ftp.cn.freebsd.org&lt;br /&gt; # pkg_add -r &lt;br /&gt; &lt;br /&gt; 问题解决....&lt;br /&gt; &lt;br /&gt; 注意：实际证明 ftp.cn.freebsd.org 的速度明显不如 ftp.tw.freebsd.org，请根据你的网络环境合理选择，以节省时间&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-2758581621717623814?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/2758581621717623814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=2758581621717623814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/2758581621717623814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/2758581621717623814'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/freebsdpkgadd.html' title='加快FreeBSD中pkg_add的速度'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-2299186853779280241</id><published>2011-10-22T04:47:00.005+08:00</published><updated>2011-10-22T04:59:27.402+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>[转]分享FreeBSD 8.0的十四条优化策略</title><content type='html'>&lt;div class="bct fc05 fc11 nbw-blog ztag js-fs2"&gt;&lt;div style="margin-bottom: 11px; margin-left: 0px; margin-right: 0px; margin-top: 11px;"&gt;&lt;span style="color: #444444; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 13px;"&gt;原文:&amp;nbsp; &lt;a href="http://os.51cto.com/art/201006/207092.htm"&gt;分享FreeBSD 8.0的十四条优化策略&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: #444444; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin: 11px 0px;"&gt;&lt;span style="color: #444444; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 13px;"&gt;【51CTO独家特稿】笔者目前是一位外企linux/unix系统工程师与项目实施工程师，而FreeBSD一直作为我们企业内部的开发服务器，具有稳定和高效的特点。本文根据笔者经验总结了十四条FreeBSD的优化策略。如无其它，以下所指FreeBSD均指FreeBSD 8.0_release。&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;一、提高ports安装速度&lt;/b&gt;&lt;br /&gt;FreeBSD中的ports安装工具默认工具是用fetch，下载时经常出现龟速现象。为了提高ports安装速度，我推荐axel工具。相关make.conf文件配置步骤如下：&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-css"&gt;&lt;br /&gt;&lt;li class="alt"&gt;cd&amp;nbsp;/usr/ports/ftp/axel &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;make&amp;nbsp;install &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;#修改/et/make.conf &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;vi&amp;nbsp;/etc/make.conf &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;#加入以下内容 &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;FETCH_CMD=axel &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;FETCH_BEFORE_ARGS=&amp;nbsp;-n&amp;nbsp;&lt;span class="value"&gt;10&lt;/span&gt;&amp;nbsp;-a &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;FETCH_AFTER_ARGS= &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;DISABLE_SIZE=yes &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MASTER_SITE_OVERRIDE?=\ &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;http://ports.hshh.org/${DIST_SUBDIR}/\ &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;http://ports.cn.freebsd.org/${DIST_SUBDIR}/\ &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;ftp://ftp.freeBSDchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP} &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;以上路径是为了用速度比较快的网站代替程序默认的下载源，达到加速的目的。配置成功后，享受axel带来的极速快感吧。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;二、安装vim编辑器&lt;/b&gt;&lt;br /&gt;工欲善其事，必先利其器。用了段时间后的FreeBSD，居然发现没有vim，我还是习惯使用Linux下的vim，先安装vim后再工作吧。安装方法如下：&lt;br /&gt;①如果安装了X Windows&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-css"&gt;&lt;br /&gt;&lt;li class="alt"&gt;cd&amp;nbsp;/usr/ports/editors/vim&lt;span class="value"&gt;6&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;make&amp;nbsp;install &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;②如果没安装X Windows，则可安装vim7.2+ruby，Ruby是一门面向对象的服务器脚步语言，相当与Perl。&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-xml"&gt;&lt;br /&gt;&lt;li class="alt"&gt;cd&amp;nbsp;/usr/ports/editors/vim6+ruby &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;make&amp;nbsp;-DWITHOUT_X11&amp;nbsp;install&amp;nbsp;clean &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;③还可采用pkd_add的方式安装&lt;br /&gt;pkg_add -r -v vim-lite&lt;br /&gt;成功安装完vim后配置下vim，让其有语法检查及颜色显示等功能。&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-xml"&gt;&lt;br /&gt;&lt;li class="alt"&gt;#echo&amp;nbsp;"syntax&amp;nbsp;on"&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;/root/.vimrc &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;#echo&amp;nbsp;"alias&amp;nbsp;vi&amp;nbsp;vim"&amp;nbsp;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;/root/.cshrc &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;三、配置远程连接工具&lt;/b&gt;&lt;br /&gt;我使用的远程连接工具是Xmanager3.0企业版，因为习惯了Linux的颜色显示，这里将其改成与linux一致：&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-rb"&gt;&lt;br /&gt;&lt;li class="alt"&gt;&lt;span class="comment"&gt;#vim&amp;nbsp;/etc/csh.cshrc&amp;nbsp; &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span class="comment"&gt;#加入如下 &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;setenv&amp;nbsp;LSCOLORS&amp;nbsp;ExGxFxdxCxegedabagExEx &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;setenv&amp;nbsp;CLICOLOR&amp;nbsp;yes &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;source&amp;nbsp;/etc/csh.cshrc &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;四、列出无法补齐的候选文件&lt;/b&gt;&lt;br /&gt;想要让FreeBSD的csh像bash那样按tab列出无法补齐的候选文件，标准的方法是按Ctrl+D。但如果一定要用tab的话，在/etc/csh.cshrc中加入：&lt;br /&gt;set autolist&lt;br /&gt;&lt;br /&gt;&lt;b&gt;五、使用portsnap升级port的目录树&lt;/b&gt;&lt;br /&gt;我们使用portsnap，首先要设置一下它的配置文件/etc/portsnap.conf:&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-xml"&gt;&lt;br /&gt;&lt;li class="alt"&gt;[root@bsd01&amp;nbsp;/usr/ports]#&amp;nbsp;vi&amp;nbsp;/etc/portsnap.conf &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;把SERVERNAME=portsnap.freebsd.org&lt;br /&gt;修改成：&lt;br /&gt;SERVERNAME=portsnap.hshh.org&lt;br /&gt;在你的freebsd首次使用portsnap必须执行下面2步：&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-xml"&gt;&lt;br /&gt;&lt;li class="alt"&gt;[root@bsd01&amp;nbsp;~]#&amp;nbsp;portsnap&amp;nbsp;fetch &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[root@bsd01&amp;nbsp;~]#&amp;nbsp;portsnap&amp;nbsp;extract &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;这2步可以合成使用：&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-xml"&gt;&lt;br /&gt;&lt;li class="alt"&gt;[root@bsd01&amp;nbsp;~]#&amp;nbsp;portsnap&amp;nbsp;fetch&amp;nbsp;extract &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;portsnap fecth是从网上获取portsnap快照的最新压缩包，听闻这个压缩包官方每小时更新一次。&lt;br /&gt;portsnap extract 则是把这个压缩包创立到/usr/ports。哪怕你以前已经手工安装了ports，他也会重新创立一次。&lt;br /&gt;以后更新，只需要执行下面2步：&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-xml"&gt;&lt;br /&gt;&lt;li class="alt"&gt;[root@bsd01&amp;nbsp;~]#&amp;nbsp;portsnap&amp;nbsp;fetch &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[root@bsd01&amp;nbsp;~]#&amp;nbsp;portsnap&amp;nbsp;update &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;这2步可以合成使用：&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-xml"&gt;&lt;br /&gt;&lt;li class="alt"&gt;[root@bsd01&amp;nbsp;~]#&amp;nbsp;portsnap&amp;nbsp;fetch&amp;nbsp;update &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;portsnap第一次运行extract命令时，可能需要一段时间，以后更新使用update的时候，速度就块很多了。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;六、系统内核级优化+防止ddos&lt;/b&gt;&lt;br /&gt;根据某位unix前辈的观点：本来就很好，加加更健康。加载文件修改方法如下：&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-rb"&gt;&lt;br /&gt;&lt;li class="alt"&gt;&lt;span class="comment"&gt;#&amp;nbsp;vim&amp;nbsp;/boot/loader.conf加入如下文本 &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;kern.dfldsiz=&lt;span class="string"&gt;"2147483648"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;kern.maxdsiz=&lt;span class="string"&gt;"2147483648"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;kern.ipc.nmbclusters=&lt;span class="string"&gt;"0"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;kern.ipc.nsfbufs=&lt;span class="string"&gt;"66560"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;解释：&lt;br /&gt;a、第一、二行主要是为了突破1G内存设置的。&lt;br /&gt;b、第三行其实是bsd的一个bug，当系统并发达到一个数量级的时候，系统会crash，这个是非常糟糕的事情。所幸更改了这个参数后，在高并发的时候，基本可以没有类似情况，当然非常bt的情况，还得进一步想办法。&lt;br /&gt;c、第四行是读取的文件数，如果你下载的文件比较大，且比较多，加大这个参数，是非常爽的。&lt;br /&gt;Sysctl修改方法如下：&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-rb"&gt;&lt;br /&gt;&lt;li class="alt"&gt;&lt;span class="comment"&gt;#vi&amp;nbsp;/etc/rc.local &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;sysctl&amp;nbsp;kern.ipc.maxsockets=100000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="comment"&gt;##增加并发的socket，对于ddos很有用 &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;sysctl&amp;nbsp;kern.ipc.somaxconn=65535&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="comment"&gt;##打开文件数 &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;sysctl&amp;nbsp;net.inet.tcp.msl=2500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="comment"&gt;##timeout时间 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;七、FreeBSD的pf防火墙&lt;/b&gt;&lt;br /&gt;众所周知，FreeBSD的ipfw是移植自OPENBSD的防火墙，其强大我这里就不多说了。因为其用途主要用于内部开发，所以我这里就是关闭了防火墙，pfctl -d。在对外实施项目的过程中发现，Linux下的iptables及FreeBSD的ipfw均不可能防DDOS攻击，所以在安全方面我就转向于硬件防火墙，而将iptables和ipfw主要用于内网NAT路由器这块。&lt;br /&gt;这里简单介绍下ipfw的语法吧:&lt;br /&gt;&lt;pre&gt;pfctl -e                 #启动ipfw防火墙 &lt;br /&gt;pfctl -d                 #停止ipfw防火墙 &lt;br /&gt;pfctl -sa | grep Status  #查看状态 &lt;br /&gt;pfctl -f /etc/pf.conf    #载入 pf.conf 文件  &lt;br /&gt;pfctl -nf /etc/pf.conf   #检查配置文件错误，但不载入  &lt;br /&gt;pfctl -Nf /etc/pf.conf   #只载入文件中的NAT规则  &lt;br /&gt;pfctl -Rf /etc/pf.conf   #只载入文件中的过滤规则  &lt;br /&gt;pfctl -sn    #显示当前的NAT规则  &lt;br /&gt;pfctl -sr    #显示当前的过滤规则  &lt;br /&gt;pfctl -ss    #显示当前的状态表  &lt;br /&gt;pfctl -si    #显示过滤状态和计数  &lt;br /&gt;pfctl -sa    #显示任何可显示的 &lt;br /&gt;pfctl -t http_table -T show             #查看动态表 &lt;br /&gt;pfctl -t http_table -T add 192.168.1.X    #添加一个IP到表 &lt;br /&gt;pfctl -t http_table -T del 192.168.1.X    #从表中删除IP   &lt;/pre&gt;&lt;br /&gt;&lt;b&gt;八、运行新安装的命令&lt;/b&gt;&lt;br /&gt;FreeBSD 8.0的cshell会缓存环境变量PATH中指定的目录里的可执行文件，以加快查找速度，这会造成一些新安装的命令无法运行，最典型的例子就是刚安装的vim居然提示找不到命令。用如下命令解决问题：&lt;br /&gt;rehash&lt;br /&gt;感觉此习惯跟linux下用locate查找某文件比较类似。linux下一般也会在安装前软件后用updatedb来更新文件最新数据库，然后用locate命令令其生效。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;九、进行安全的远程登录&lt;/b&gt;&lt;br /&gt;很多人会修改/etc/ssh/sshd_config文件，以便让root远程登陆FreeBSD服务器，但这样做是极不安全的，建议还是添加一个wheel组的用户，然后再su – root更为安全。&lt;br /&gt;&lt;pre&gt;&lt;ol class="dp-rb"&gt;&lt;br /&gt;&lt;li class="alt"&gt;PermitRootLogin&amp;nbsp;yes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="comment"&gt;#允许root登录 &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;PermitEmptyPasswords&amp;nbsp;no&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="comment"&gt;#不允许空密码登录 &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li class="alt"&gt;PasswordAuthentication&amp;nbsp;yes&amp;nbsp;&amp;nbsp;&lt;span class="comment"&gt;#设置是否使用口令验证 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;十、检查网络流量是否异常&lt;/b&gt;&lt;br /&gt;如果你感觉你的网络流量异常，可采用如下方法来检查排障：&lt;br /&gt;systat -if 1&lt;br /&gt;1表示1秒刷新屏幕一次，Traffic流量平均值，peak 峰值，total流量总值，很实用的命令；缺省情况下systat是报告处理器的使用率，包括总利用状态、空闲使用率和各个进程的使用率。通过指定参数，systat也能进行I/O的统计、虚存的统计、网络的统计等。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;十一、查看FreeBSD服务器的一些基础情况和信息&lt;/b&gt;&lt;br /&gt;①查看CPU：&lt;br /&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;sysctl&amp;nbsp;hw.model&amp;nbsp;hw.ncpu &amp;nbsp;&lt;/li&gt;&lt;li&gt;dmesg&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;"CPU:" &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;②查看内存：&lt;br /&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;dmesg&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;"real&amp;nbsp;memory"&amp;nbsp;|&amp;nbsp;awk&amp;nbsp;-F&amp;nbsp;'[(&amp;nbsp;)]'&amp;nbsp;'{print&amp;nbsp;$2,$4,$7,$8}' &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;查看swap：&lt;br /&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;top&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;"Swap:"&amp;nbsp;|&amp;nbsp;awk&amp;nbsp;'{print&amp;nbsp;$1,$2}' &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;③查看硬盘：&lt;br /&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;diskinfo&amp;nbsp;-vt&amp;nbsp;/dev/ad0 &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;④看硬盘大小及硬件使用情况：&lt;br /&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;dmesg&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;"sector"&amp;nbsp;|&amp;nbsp;awk&amp;nbsp;'{print&amp;nbsp;$1,$2}' &amp;nbsp;&lt;/li&gt;&lt;li&gt;df&amp;nbsp;-h &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;⑤查看服务器品牌：&lt;br /&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;dmesg&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;"ACPI&amp;nbsp;APIC" &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;⑥查看系统内核，命令跟Linux下一样：&lt;br /&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;uname&amp;nbsp;-a &amp;nbsp;&lt;/li&gt;&lt;li&gt;mail#&amp;nbsp;uname&amp;nbsp;-a &amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;FreeBSD&amp;nbsp;mail.cn7788.com&amp;nbsp;8.0-RELEASE&amp;nbsp;FreeBSD&amp;nbsp;8.0-RELEASE&amp;nbsp;#0:&amp;nbsp;Sat&amp;nbsp;Nov&amp;nbsp;21&amp;nbsp;15:48:17&amp;nbsp;UT &amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;十二、关于Linux二进制兼容模式&lt;/b&gt;&lt;br /&gt;许多公司和开发人员只为Linux开发程序，因为这是目前计算机世界最热门的技术；这时FreeBSD能够做什么呢，答案就是使用FreeBSD所提供的Linux二进制兼容性，方法是：&lt;br /&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;kldstat&amp;nbsp;linux &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;让Linux兼容在系统初始化自动启动，在/etc/rc.conf中加入&lt;br /&gt;&lt;ol class="dp-css"&gt;&lt;li class="alt"&gt;linux_enable=&lt;span class="string"&gt;"YES"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;检查KLD模块是否加载：&lt;br /&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;mail#&amp;nbsp;kldstat&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;Id&amp;nbsp;Refs&amp;nbsp;Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Name &amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;0xc0400000&amp;nbsp;b6dfe0&amp;nbsp;&amp;nbsp;&amp;nbsp;kernel &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;如果您不想或者无法将Linux KLD加载，您就需要在内核中静态链接进Linux二进制兼容性模式。您必须在您的内核配置文件里面加入options COMPAT_LINUX,然后重新编译内核。&lt;br /&gt;&lt;b&gt;十三、有关于FreeBSD的网络配置&lt;/b&gt;&lt;br /&gt;虽然sysinstall也能修改主机的网络相关，但修改完网卡的相关参数后sysinstall会提示Would you liketo bring the le0 interface up right now?（你想让le0生效吗?）但我兴冲冲的执行此步后，发现新改的网卡参数并没重新重奖；所以我建议修改/etc/rc.conf文件后用命令使其立即生效。&lt;br /&gt;&lt;ol class="dp-css"&gt;&lt;li class="alt"&gt;vim&amp;nbsp;/etc/rc.conf &amp;nbsp;&lt;/li&gt;&lt;li&gt;hostname=&lt;span class="string"&gt;"mail.bolaninfo.com"&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;ifconfig_le&lt;span class="value"&gt;0&lt;/span&gt;=&lt;span class="string"&gt;"inet&amp;nbsp;192.168.1.108&amp;nbsp;netmask&amp;nbsp;255.255.255.0"&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;defaultrouter=&lt;span class="string"&gt;"192.168.1.1"&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="value"&gt;#defaul&lt;/span&gt;trouter是网关地址 &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;修改后需要让修改立即生效。这里不建议reboot服务器，有个小技巧与大家分享下，即&lt;br /&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;sh&amp;nbsp;/etc/rc &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;测试修改defaultroute="192.168.1.103"，然后sh /etc/rc，最后用命令测试了，大家注意下Gateway这行，即改动生效了。&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="FreeBSD网络配置" border="0" class="fit-image" height="308" src="http://images.51cto.com/files/uploadimg/20100623/141441894.jpg" width="498" /&gt;&lt;/div&gt;域名解析DNS配置如下&lt;br /&gt;&lt;ol class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span class="comment"&gt;#vim&amp;nbsp;/etc/resolv.conf &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;nameserver&amp;nbsp;210.5.4.116 &amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;nameserver&amp;nbsp;210.51.176.71 &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;另外这里稍为解释下名字解析hosts，它的执行顺序是优于DNS，现阶段多用于集群环境，如DRDB+Heartbeat，配置过程如下&lt;br /&gt;&lt;ol class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span class="comment"&gt;#vim&amp;nbsp;/etc/hosts &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;192.168.1.100&amp;nbsp;HA1 &amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;192.168.1.101&amp;nbsp;HA2 &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;十四、LVS脚本&lt;/b&gt;&lt;br /&gt;在用Freebsd作LVS后端的web集群时，发现用其作的lvs脚本比linux简单多了，尤其是arp抑制。脚本如下：&lt;br /&gt;&lt;ol class="dp-py"&gt;&lt;li class="alt"&gt;mail&lt;span class="comment"&gt;#&amp;nbsp;vim&amp;nbsp;/usr/local/bin/lvs_real_bsd&amp;nbsp; &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span class="comment"&gt;#!/usr/local/bin/bash &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="comment"&gt;#description&amp;nbsp;:&amp;nbsp;start&amp;nbsp;realserver &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;VIP=&lt;span class="number"&gt;192.168&lt;/span&gt;.&lt;span class="number"&gt;1.188&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;case&amp;nbsp;&lt;span class="string"&gt;"$1"&lt;/span&gt;&amp;nbsp;&lt;span class="keyword"&gt;in&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;start) &amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;echo&amp;nbsp;&lt;span class="string"&gt;"&amp;nbsp;start&amp;nbsp;LVS&amp;nbsp;of&amp;nbsp;REALServer"&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;/sbin/ifconfig&amp;nbsp;lo0&amp;nbsp;$VIP&amp;nbsp;netmask&amp;nbsp;&lt;span class="number"&gt;255.255&lt;/span&gt;.&lt;span class="number"&gt;255.255&lt;/span&gt;&amp;nbsp;alias&amp;nbsp;-arp&amp;nbsp;up &amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;;; &amp;nbsp;&lt;/li&gt;&lt;li&gt;stop) &amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;/sbin/ifconfig&amp;nbsp;lo0&amp;nbsp;alias&amp;nbsp;down &amp;nbsp;&lt;/li&gt;&lt;li&gt;echo&amp;nbsp;&lt;span class="string"&gt;"close&amp;nbsp;LVS&amp;nbsp;Directorserver"&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;/sbin/ifconfig&amp;nbsp;lo0&amp;nbsp;&lt;span class="number"&gt;127.0&lt;/span&gt;.&lt;span class="number"&gt;0.1&lt;/span&gt;&amp;nbsp;arp&amp;nbsp;up &amp;nbsp;&lt;/li&gt;&lt;li&gt;;; &amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;*) &amp;nbsp;&lt;/li&gt;&lt;li&gt;echo&amp;nbsp;&lt;span class="string"&gt;"Usage:&amp;nbsp;$0&amp;nbsp;{start|stop}"&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;exit&amp;nbsp;&lt;span class="number"&gt;1&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;esac &lt;/li&gt;&lt;/ol&gt;&lt;pre&gt; &lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-2299186853779280241?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/2299186853779280241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=2299186853779280241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/2299186853779280241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/2299186853779280241'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/freebsd-80.html' title='[转]分享FreeBSD 8.0的十四条优化策略'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-709637786406427362</id><published>2011-10-22T04:32:00.001+08:00</published><updated>2011-10-22T04:38:54.059+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>freebsd 8.2 最小化安装图解</title><content type='html'>&lt;div&gt;-----(下载映射文件)-------------------------------------&lt;/div&gt;&lt;div&gt;有多个ftp服务器可供选择（列表看这里 http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/）&lt;/div&gt;&lt;div&gt;在freebsd.org的5号ftp服务器 ftp5.freebsd.org 用匿名方式下载&lt;/div&gt;&lt;div&gt;ftp://ftp5.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/8.2/ 其下主要有这些文件&lt;/div&gt;&lt;div&gt;8.2-RELEASE-i386-bootonly.iso 只是启动 ，&amp;lt;40几MB&amp;gt;&lt;/div&gt;&lt;div&gt;8.2-RELEASE-i386-disc1.iso 一般安装用这个就可以了，CD映像，包含上面*bootonly.iso 的内容，有&amp;lt;625MB&amp;gt;&lt;/div&gt;&lt;div&gt;8.2-RELEASE-i386-dvd1.iso.gz 打包文件,内含DVD映像，应该比较全，里面的ISO文件有&amp;lt;1.9G&amp;gt;&lt;/div&gt;&lt;div&gt;8.2-RELEASE-i386-livefs.iso 可直接运行的精简系统，主要用于维护系统，有&amp;lt;244MB&amp;gt;&lt;/div&gt;&lt;div&gt;8.2-RELEASE-i386-memstick.img 用于U盘启动的映像文件，有&amp;lt;880MB&amp;gt;&lt;/div&gt;&lt;div&gt;CHECKSUM.MD5 上面文件的md5验证码列表&lt;/div&gt;&lt;div&gt;-----(先在虚拟机上尝试安装)-------------------------------------&lt;/div&gt;&lt;br /&gt;&lt;b&gt;第一步　光盘启动&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;设置你的服务器从光盘启动，使用默认的方式安装，10秒后系统默认从1.Boot FreeBSD[default]以默认选项安装，当然如果不想等待可以按回车键直接确认。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;第二步　sysinstall界面&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;确认之后会进入自检,然后就进入了sysinstall一个简单面实用的图形安装界面。第二个Standard是标准安装，初学者经常用到这个,而且一般的教程也先介绍安装他,而在选择安装时会选ALL。因为我们是最小化安装，所以我们选择第四个(Expree下的)Custom定制安装方式随后我们就会进入到定制安装界面。&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_3.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;第三步　分配硬盘空间&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_4.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;选择第三个选项3 Partition进行磁盘的分配&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_5.jpg" /&gt;&lt;br /&gt;&lt;div&gt;-----(分区的一些知识)-------------------------------------&lt;/div&gt;&lt;div&gt;-----(分区的一些知识：编号)-------------------------------------&lt;/div&gt;&lt;div&gt;磁盘名 ad0 ……&lt;/div&gt;&lt;div&gt;分片 &amp;nbsp; &amp;nbsp;ad0s1 &amp;nbsp;ad0s2 ……&lt;/div&gt;&lt;div&gt;分区 &amp;nbsp; &amp;nbsp;ad0s1a ad0s1b ……&lt;/div&gt;&lt;div&gt;这里的分片,分区 名词概念和win有些不同,不对应&lt;/div&gt;&lt;div&gt;freeBSD分片对应win的分区&lt;/div&gt;&lt;div&gt;freeBSD分区有点象win的虚拟内存&lt;/div&gt;&lt;div&gt;-----(分区的一些知识：按键)-------------------------------------&lt;/div&gt;&lt;div&gt;按 A 让整个硬盘给freeBSD使用，会清除现有所有分片&lt;/div&gt;&lt;div&gt;按 S 让指定分片设为可启动 Flags列上会有个A字&lt;/div&gt;&lt;div&gt;按 D 删除指定分片&lt;/div&gt;&lt;div&gt;按 C 指定分配空间，待填数字，写block的数量或者256M这样，然后是分片类型&lt;/div&gt;&lt;div&gt;默认165是freeBSD的，6是DOS的FAT，131是Linux的ext2，130是Linux的swap&lt;/div&gt;&lt;div&gt;按 Q 完成，这时还不会写到硬盘上，只是记住了&lt;/div&gt;&lt;div&gt;-----(继续分区操作)-------------------------------------&lt;/div&gt;按Ａ键自动分配，按Ｑ键完成返回&lt;br /&gt;&lt;br /&gt;第一个会要求按快捷键选择你所需要的操作系统我试过了如果没有其他的引导程序选择第三个是不行的，而且我想如果有其他的操作系统也必须要经过一些设置才可以使FreeBSD正常的选择启动。&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_6.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;第四步　分区&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;选择4 Label这一步分区，同样的按Ａ键，然后按Ｑ完成自动分区返回。自动分区会将硬盘分成根目录/、swap /var /tmp /usr 五个区&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_7.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_8.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;第五步　定制安装&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;首先选择5 Distribution进入下一级&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_9.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_10.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;然后选择Minimal最小化安装&lt;br /&gt;&lt;br /&gt;&lt;b&gt;第六步　选择安装介质&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_11.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;进入5 Media我们选择CD/DVD(以后大家也可以试着使用FTP等其他方式安装)&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_12.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;第七步　提交安装&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;选择OK回到上一级选择Commit确认安装&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_13.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;第八步　安装及确认&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_14.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;确认安装，不过如果是多系统安装的话，请先保存好您的重要数据。&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_15.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_16.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;因为是最小化安装,所以安装很快,安装完成后会询问你是否要做一些改变，选择否。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;第九步　重新启动&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;选择否之后，一路取消，到sysinstall界面，然后选择　Exit Install，弹出一个对话框提示你取出CD安装盘，选择YES计算机重新启动&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_17.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;第十步　登陆界面&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://www.qqread.com/ArtImage/20060806/pj3326_18.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;如果重启后出现login登陆界面，那么恭喜你，一个FreeBSD8.2的最小化安装就成功了输入管理员账号root就可以进入使用FreeBSD了,密码默认的是空的。&lt;br /&gt;&lt;br /&gt;到此，FreeBSD 服务器操作系统也完成了，那么余了工作就是设置你的服务器以及配置相关应用。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-709637786406427362?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/709637786406427362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=709637786406427362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/709637786406427362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/709637786406427362'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/freebsd-82.html' title='freebsd 8.2 最小化安装图解'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-1705147668973599081</id><published>2011-10-22T04:30:00.004+08:00</published><updated>2011-10-22T10:25:44.345+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>[转]最小化安装FreeBSD8服务器后建议做的事</title><content type='html'>&lt;b&gt;原文: &lt;a href="http://os.51cto.com/art/201102/244562_1.htm"&gt;最小化安装FreeBSD8服务器后建议做的事&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;一、使用portsnap生级port的目录树，建议使用;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;我没做这步，使用port安装vim系统报错;接着安装平时最基本的应用软件同样报错。唉，不偷懒了，做完这步先。&lt;br /&gt;&lt;b&gt;①配置portsnap：&lt;/b&gt;&lt;br /&gt;我们使用portsnap，首先要设置一下它的配置文件，位于/etc/portsnap.conf:&lt;br /&gt;&lt;pre&gt;[root@bsd01 /usr/ports]# vi /etc/portsnap.conf&lt;/pre&gt;把&lt;br /&gt;&lt;pre&gt;SERVERNAME=portsnap.freebsd.org&lt;/pre&gt;修改成：&lt;br /&gt;&lt;pre&gt;SERVERNAME=portsnap.cn.FreeBSD.org&lt;br /&gt;#这步可根据你的实际速度，你来判断到底需不需要更新port的生级源&lt;/pre&gt;在你的freebsd首次使用portsnap必须执行下面2步：&lt;br /&gt;&lt;pre&gt;[root@bsd01 ~]# portsnap fetch&lt;br /&gt;[root@bsd01 ~]# portsnap extract&lt;br /&gt;#这2步可以合成使用：&lt;br /&gt;[root@bsd01 ~]# portsnap fetch extract&lt;br /&gt;#portsnap fecth是从网上获取portsnap快照的最新压缩包，听闻这个压缩包官方每小时更新一次。&lt;br /&gt;#portsnap extract 则是把这个压缩包创立到/usr/ports。哪怕你以前已经手工安装了ports，他也会重新创立一次。&lt;/pre&gt;③以后使用portsnap更新ports：&lt;br /&gt;以后更新，只需要执行下面2步：&lt;br /&gt;&lt;pre&gt;[root@bsd01 ~]# portsnap fetch&lt;br /&gt;[root@bsd01 ~]# portsnap update&lt;br /&gt;这2步可以合成使用：&lt;br /&gt;[root@bsd01 ~]# portsnap fetch update&lt;br /&gt;portsnap第一次运行extract命令时，可能需要一段时间，以后更新使用update的时候，速度就块很多了。&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;二、配置make.conf文件&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;FreeBSD中的ports安装工具默认工具是用fetch，下载时经常出现龟速现象;为了提高ports安装速度，我推荐axel工具，当然具体还得配置下make.conf文件。&lt;br /&gt;&lt;pre&gt;cd /usr/ports/ftp/axel&lt;br /&gt;make install&lt;br /&gt;#修改/et/make.conf&lt;br /&gt;vi /etc/make.conf&lt;br /&gt;#加入以下内容&lt;br /&gt;FETCH_CMD=axel&lt;br /&gt;FETCH_BEFORE_ARGS= -n 10 -a&lt;br /&gt;FETCH_AFTER_ARGS=&lt;br /&gt;DISABLE_SIZE=yes&lt;/pre&gt;&lt;pre&gt;MASTER_SITE_BACKUP?=\   &lt;br /&gt;ftp://ftp.cn.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\&lt;br /&gt;ftp://ftp.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\&lt;br /&gt;ftp://ftp.jp.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\&lt;br /&gt;&lt;br /&gt;MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;#以上路径是为了用速度比较快的网站代替程序默认的下载源，达到加速的目的;我在家里没配置前大约是20kb/s左右，配置之后是230kb/s，所以强烈推荐。&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;三、安装vim&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;工欲善其事，必先利其器，我还是习惯使用Linux下的vim，先安装vim：&lt;br /&gt;安装方法有如下方法&lt;br /&gt;1)如果没安装X Windows，则可安装vim6+ruby，Ruby是一门面向对象的服务器脚步语言，相当与Perl;强大的puppet就是靠Ruby支撑着。&lt;br /&gt;&lt;pre&gt;cd /usr/ports/editors/vim7+ruby&lt;br /&gt;make -DWITHOUT_X11 install clean&lt;/pre&gt;2)还可采用pkd_add的方式安装&lt;br /&gt;&lt;pre&gt;pkg_add -r -v vim-lite&lt;/pre&gt;r的意思表示也会安装vim-lite依赖的软件和库，v表示显示详细安装过程;这里也注意下pkg_add和make install clean的区别。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;四、如何让FreeBSD的csh像bash那样按tab列出列出无法补齐的候选文件?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;答：标准的方法是按Ctrl+D。但因为我们都是用普通用户的身份登陆FreeBSD8，然后编辑我的csh控制文件.cshrc，例如 vim /home/andrewy/.cshrc&lt;br /&gt;代码:&lt;br /&gt;&lt;pre&gt;set autolist&lt;/pre&gt;让其立即生效的方法&lt;br /&gt;&lt;pre&gt;source .cshrc&lt;/pre&gt;如果root用户也是csh环境，则可以在/root/.cshrc中同样操作，按如下操作进行&lt;br /&gt;&lt;pre&gt;sudo su - 切换到root用户&lt;br /&gt;vim .cshrc&lt;br /&gt;增加 set autolist&lt;br /&gt;source .cshrc&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;五、新安装的命令无法运行，怎么办？&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;FreeBSD8.0的cshell会缓存环境变量PATH中指定的目录里的可执行文件，以加快查找速度，这会造成一些新安装的命令无法运行，执行以下命令，然后才能运行新安装的那些命令(最典型的例子就是刚安装的vim居然提示找不到命令)，用如下命令解决问题：&lt;br /&gt;&lt;pre&gt;rehash&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;六、记得用vim的模板文件优化下vim，方便以后的编辑工作&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;vim /home/andrewy/.vimrc&lt;br /&gt;set nobackup&lt;br /&gt;set number&lt;br /&gt;set cindent&lt;br /&gt;set autoindent&lt;br /&gt;set shiftwidth=2&lt;br /&gt;set tabstop=2&lt;br /&gt;set softtabstop=2&lt;br /&gt;set expandtab&lt;br /&gt;set ruler&lt;br /&gt;syntax on&lt;/pre&gt;常用设定&lt;br /&gt;下面说说一些常用的设定及其具体含义&lt;br /&gt;set nobackup 不要备份文件，使用backup备份文件(原文件加后缀~)&lt;br /&gt;set number 显示行号&lt;br /&gt;set cindent 设定c风格缩进，使用nocindent取消设置&lt;br /&gt;set autoindent 设定自动缩进，每行缩进与上一行相等，使用noautoindet取消设置&lt;br /&gt;set shiftwidth=2 设定缩进为两个空格&lt;br /&gt;set tabstop=2 设定制表符为两个空格&lt;br /&gt;set softtabstop=2 设定软制表符为两个空格&lt;br /&gt;set expandtab 缩进和(软)制表符使用空格替代，用noexpandtab取消设置&lt;br /&gt;set ruler 显示光标所在行列号&lt;br /&gt;syntax on 启动语法高亮&lt;br /&gt;其中涉及到的名词术语相关解释&lt;br /&gt;cindent&lt;br /&gt;使用C语言的缩进方式，根据特殊字符如“{”、“}”、“:”和语句是否结束等信息自动调整缩进;在编辑 C/C++ 等类型文件时会自动设定;&lt;br /&gt;softtabstop&lt;br /&gt;软制表符宽度，设置为非零数值后使用Tab键和 Backspace时光标移动的格数等于该数值，但实际插入的字符仍受tabstop和 expandtab控制;这样配置vim比以前好用多了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;七、给普通用户增加相应的sudo权限&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;有个事情大家也不要不做，就是要将我们在安装系统时添加的普通用户增加相应的sudo权限。因为FreeBSD默认是不允许root远程登陆的，大家在用命令visudo时会发现此命令找不到;原来是没有安装的原因&lt;br /&gt;&lt;pre&gt;#pkg_add -r -v sudo 或 cd /usr/ports/security/sudo &amp;amp;&amp;amp; make install clean&lt;/pre&gt;安装完后记得将此用户给予root一样的权限，语法跟root的权限分配一样&lt;br /&gt;&lt;pre&gt;# User privilege specification&lt;br /&gt;root ALL=(ALL) ALL&lt;br /&gt;andrewy ALL=(ALL) ALL&lt;/pre&gt;这项工作建议在将机器送进机房前完成，不然如果你不小心操作时将FreeBSD的重要文件/usr/local/etc/sudoers文件破坏掉后，你会发现你的FreeBSD机器会一个不受权限控制的机器，犹如断了线的风筝样在网络的世界飘移;所以此项操作一定要慎重谨慎!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: larger;"&gt;&lt;b&gt;FreeBSD8下安装软件相关&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;优化后系统就是安装应用软件了，我们可以用pkg_add安装稳定的软件版本，也可以用make install clean有选择性的安装软件。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;一、POSTS安装软件有时可能这个包已经安装过了，会有提示，无法继续安装，能够用提示中的参数&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;#make install clean FORCE_PKG_REGISTER=yes&lt;/pre&gt;这样就能够继续安装了，yes不区分大小写。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;二、PORTS安装软件时有时能够下载回来的包的md5值不匹配，能够加参数强制安装。&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;#make install clean NO_CHECKSUM=yes&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;三、如何查找安装一个ports软件&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;假如不知道详细文件名，能够用：&lt;br /&gt;&lt;pre&gt;#cd /usr/ports&lt;br /&gt;#make search name=php5&lt;/pre&gt;我这里兴例说明下，如果我要查找apache22的软件包，但我又不知道它在哪里，这个时候该怎么办呢&lt;br /&gt;可以用命令&lt;br /&gt;&lt;pre&gt;#make search name=apache | grep apache22&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;四、如何查找已完装软件包的信息&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;#pkg_info&lt;/pre&gt;用管道命令过滤定位&lt;br /&gt;&lt;pre&gt;#pkg_info grep php&lt;/pre&gt;例如 pkg_info | grep vim&lt;br /&gt;&lt;br /&gt;&lt;b&gt;五、如何删除一个软件包&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;#pkg_delete 软件包细致名，细致名称能够用pkg_info grep先管道命令查出。&lt;/pre&gt;加上-f 参数，能够删除一人别的软件对其有依靠联系的软件包&lt;br /&gt;&lt;pre&gt;#pkg_delete -f 软件包细致名，执行时请谨慎操作&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;六、PORTS安装软件后，如何修改配置&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;有些POST包安装时会有蓝色配置挑选页，通常选过一次后就不会再显示了&lt;/span&gt;&lt;pre&gt;#make rmconfig 删除配置，须要有root权限&lt;br /&gt;#make reconfig 重新配置，须要有root权限&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;七、重新安装已安装ports软件包&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;#make reinstall&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;八、删险已安装ports软件包&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;#make deinstall&lt;br /&gt;#make clean&lt;/pre&gt;如果不能删除掉，则用make deinstall-depends可以删除强制删除，并且删除掉有依赖的软件，执行此项操作时请谨慎。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-1705147668973599081?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/1705147668973599081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=1705147668973599081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1705147668973599081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1705147668973599081'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/freebsd8.html' title='[转]最小化安装FreeBSD8服务器后建议做的事'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-3551042021591122670</id><published>2011-10-21T23:48:00.001+08:00</published><updated>2011-10-21T23:56:55.768+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cli'/><category scheme='http://www.blogger.com/atom/ns#' term='正则表达式'/><category scheme='http://www.blogger.com/atom/ns#' term='grep'/><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><title type='text'>grep 正则表达式</title><content type='html'>&lt;span class="text_h2"&gt;比如显示 /etc/laptop-mode/laptop-mode.conf中去掉#注释的行&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="text_h2"&gt;$ grep '^[^#]'&amp;nbsp; &lt;/span&gt;&lt;span class="text_h2"&gt;/etc/laptop-mode/laptop-mode.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;span class="mw-headline" id=".E8.A1.A8.E8.BE.BE.E5.BC.8F.E5.85.A8.E9.9B.86"&gt;表达式全集&lt;/span&gt;&lt;/h2&gt;正则表达式有多種不同的风格。下表是在PCRE中元字符及其在正则表达式上下文中的行为的一个完整列表：&lt;br /&gt;&lt;table class="wikitable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;字符&lt;/th&gt;&lt;th&gt;描述&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\&lt;/th&gt;&lt;td&gt;将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如，「&lt;code&gt;n&lt;/code&gt;」匹配字符「&lt;code&gt;n&lt;/code&gt;」。「&lt;code&gt;\n&lt;/code&gt;」匹配一个换行符。序列「&lt;code&gt;\\&lt;/code&gt;」匹配「&lt;code&gt;\&lt;/code&gt;」而「&lt;code&gt;\(&lt;/code&gt;」则匹配「&lt;code&gt;(&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;^&lt;/th&gt;&lt;td&gt;匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性，^也匹配「&lt;code&gt;\n&lt;/code&gt;」或「&lt;code&gt;\r&lt;/code&gt;」之后的位置。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;$&lt;/th&gt;&lt;td&gt;匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性，$也匹配「&lt;code&gt;\n&lt;/code&gt;」或「&lt;code&gt;\r&lt;/code&gt;」之前的位置。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;*&lt;/th&gt;&lt;td&gt;匹配前面的子表达式零次或多次。例如，zo*能匹配「&lt;code&gt;z&lt;/code&gt;」以及「&lt;code&gt;zoo&lt;/code&gt;」。*等价于{0,}。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;+&lt;/th&gt;&lt;td&gt;匹配前面的子表达式一次或多次。例如，「&lt;code&gt;zo+&lt;/code&gt;」能匹配「&lt;code&gt;zo&lt;/code&gt;」以及「&lt;code&gt;zoo&lt;/code&gt;」，但不能匹配「&lt;code&gt;z&lt;/code&gt;」。+等价于{1,}。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;?&lt;/th&gt;&lt;td&gt;匹配前面的子表达式零次或一次。例如，「&lt;code&gt;do(es)?&lt;/code&gt;」可以匹配「&lt;code&gt;does&lt;/code&gt;」或「&lt;code&gt;does&lt;/code&gt;」中的「&lt;code&gt;do&lt;/code&gt;」。?等价于{0,1}。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;{&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;}&lt;/th&gt;&lt;td&gt;&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;是一个非负整数。匹配确定的&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;次。例如，「&lt;code&gt;o{2}&lt;/code&gt;」不能匹配「&lt;code&gt;Bob&lt;/code&gt;」中的「&lt;code&gt;o&lt;/code&gt;」，但是能匹配「&lt;code&gt;food&lt;/code&gt;」中的两个o。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;{&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;,}&lt;/th&gt;&lt;td&gt;&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;是一个非负整数。至少匹配&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;次。例如，「&lt;code&gt;o{2,}&lt;/code&gt;」不能匹配「&lt;code&gt;Bob&lt;/code&gt;」中的「&lt;code&gt;o&lt;/code&gt;」，但能匹配「&lt;code&gt;foooood&lt;/code&gt;」中的所有o。「&lt;code&gt;o{1,}&lt;/code&gt;」等价于「&lt;code&gt;o+&lt;/code&gt;」。「&lt;code&gt;o{0,}&lt;/code&gt;」则等价于「&lt;code&gt;o*&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;{&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;,&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;m&lt;/span&gt;}&lt;/th&gt;&lt;td&gt;&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;m&lt;/span&gt;和&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;均为非负整数，其中&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;&amp;lt;=&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;m&lt;/span&gt;。最少匹配&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;次且最多匹配&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;m&lt;/span&gt;次。例如，「&lt;code&gt;o{1,3}&lt;/code&gt;」将匹配「&lt;code&gt;fooooood&lt;/code&gt;」中的前三个o。「&lt;code&gt;o{0,1}&lt;/code&gt;」等价于「&lt;code&gt;o?&lt;/code&gt;」。请注意在逗号和两个数之间不能有空格。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;?&lt;/th&gt;&lt;td&gt;当该字符紧跟在任何一个其他限制符（*,+,?，{&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;}，{&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;,}，{&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;,&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;m&lt;/span&gt;}）后面时，匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串，而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如，对于字符串「&lt;code&gt;oooo&lt;/code&gt;」，「&lt;code&gt;o+?&lt;/code&gt;」将匹配单个「&lt;code&gt;o&lt;/code&gt;」，而「&lt;code&gt;o+&lt;/code&gt;」将匹配所有「&lt;code&gt;o&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;.&lt;/th&gt;&lt;td&gt;匹配除「&lt;code&gt;\&lt;/code&gt;&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;&lt;code&gt;n&lt;/code&gt;&lt;/span&gt;」之外的任何单个字符。要匹配包括「&lt;code&gt;\&lt;/code&gt;&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;&lt;code&gt;n&lt;/code&gt;&lt;/span&gt;」在内的任何字符，请使用像「&lt;code&gt;(.|\n)&lt;/code&gt;」的模式。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;(pattern)&lt;/th&gt;&lt;td&gt;匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到，在VBScript中使用SubMatches集合，在JScript中则使用$0…$9属性。要匹配圆括號字符，请使用「&lt;code&gt;\(&lt;/code&gt;」或「&lt;code&gt;\)&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;(?:pattern)&lt;/th&gt;&lt;td&gt;匹配pattern但不获取匹配结果，也就是说这是一个非获取匹配，不进行存储供以后使用。这在使用或字符「&lt;code&gt;(|)&lt;/code&gt;」来组合一个模式的各个部分是很有用。例如「&lt;code&gt;industr(?:y|ies)&lt;/code&gt;」就是一个比「&lt;code&gt;industry|industries&lt;/code&gt;」更简略的表达式。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;(?=pattern)&lt;/th&gt;&lt;td&gt;正向肯定预查，在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。例如，「&lt;code&gt;Windows(?=95|98|NT|2000)&lt;/code&gt;」能匹配「&lt;code&gt;Windows2000&lt;/code&gt;」中的「&lt;code&gt;Windows&lt;/code&gt;」，但不能匹配「&lt;code&gt;Windows3.1&lt;/code&gt;」中的「&lt;code&gt;Windows&lt;/code&gt;」。预查不消耗字符，也就是说，在一个匹配发生后，在最后一次匹配之后立即开始下一次匹配的搜索，而不是从包含预查的字符之后开始。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;(?!pattern)&lt;/th&gt;&lt;td&gt;正向否定预查，在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。例如「&lt;code&gt;Windows(?!95|98|NT|2000)&lt;/code&gt;」能匹配「&lt;code&gt;Windows3.1&lt;/code&gt;」中的「&lt;code&gt;Windows&lt;/code&gt;」，但不能匹配「&lt;code&gt;Windows2000&lt;/code&gt;」中的「&lt;code&gt;Windows&lt;/code&gt;」。预查不消耗字符，也就是说，在一个匹配发生后，在最后一次匹配之后立即开始下一次匹配的搜索，而不是从包含预查的字符之后开始&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;(?&amp;lt;=pattern)&lt;/th&gt;&lt;td&gt;反向肯定预查，与正向肯定预查类拟，只是方向相反。例如，「&lt;code&gt;(?&amp;lt;=95|98|NT|2000)Windows&lt;/code&gt;」能匹配「&lt;code&gt;2000Windows&lt;/code&gt;」中的「&lt;code&gt;Windows&lt;/code&gt;」，但不能匹配「&lt;code&gt;3.1Windows&lt;/code&gt;」中的「&lt;code&gt;Windows&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;(?&lt;/th&gt;&lt;td&gt;反向否定预查，与正向否定预查类拟，只是方向相反。例如「&lt;code&gt;(?」能匹配「&lt;code&gt;3.1Windows&lt;/code&gt;」中的「&lt;code&gt;Windows&lt;/code&gt;」，但不能匹配「&lt;code&gt;2000Windows&lt;/code&gt;」中的「&lt;code&gt;Windows&lt;/code&gt;」。&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;x|y&lt;/th&gt;&lt;td&gt;匹配x或y。例如，「&lt;code&gt;z|food&lt;/code&gt;」能匹配「&lt;code&gt;z&lt;/code&gt;」或「&lt;code&gt;food&lt;/code&gt;」。「&lt;code&gt;(z|f)ood&lt;/code&gt;」则匹配「&lt;code&gt;zood&lt;/code&gt;」或「&lt;code&gt;food&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;[xyz]&lt;/th&gt;&lt;td&gt;字符集合。匹配所包含的任意一个字符。例如，「&lt;code&gt;[abc]&lt;/code&gt;」可以匹配「&lt;code&gt;plain&lt;/code&gt;」中的「&lt;code&gt;a&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;[^xyz]&lt;/th&gt;&lt;td&gt;负值字符集合。匹配未包含的任意字符。例如，「&lt;code&gt;[^abc]&lt;/code&gt;」可以匹配「&lt;code&gt;plain&lt;/code&gt;」中的「&lt;code&gt;p&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;[a-z]&lt;/th&gt;&lt;td&gt;字符范围。匹配指定范围内的任意字符。例如，「&lt;code&gt;[a-z]&lt;/code&gt;」可以匹配「&lt;code&gt;a&lt;/code&gt;」到「&lt;code&gt;z&lt;/code&gt;」范围内的任意小写字母字符。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;[^a-z]&lt;/th&gt;&lt;td&gt;负值字符范围。匹配任何不在指定范围内的任意字符。例如，「&lt;code&gt;[^a-z]&lt;/code&gt;」可以匹配任何不在「&lt;code&gt;a&lt;/code&gt;」到「&lt;code&gt;z&lt;/code&gt;」范围内的任意字符。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\b&lt;/th&gt;&lt;td&gt;匹配一个单词边界，也就是指单词和空格间的位置。例如，「&lt;code&gt;er\b&lt;/code&gt;」可以匹配「&lt;code&gt;never&lt;/code&gt;」中的「&lt;code&gt;er&lt;/code&gt;」，但不能匹配「&lt;code&gt;verb&lt;/code&gt;」中的「&lt;code&gt;er&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\B&lt;/th&gt;&lt;td&gt;匹配非单词边界。「&lt;code&gt;er\B&lt;/code&gt;」能匹配「&lt;code&gt;verb&lt;/code&gt;」中的「&lt;code&gt;er&lt;/code&gt;」，但不能匹配「&lt;code&gt;never&lt;/code&gt;」中的「&lt;code&gt;er&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\cx&lt;/th&gt;&lt;td&gt;匹配由x指明的控制字符。例如，\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则，将c视为一个原义的「&lt;code&gt;c&lt;/code&gt;」字符。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\d&lt;/th&gt;&lt;td&gt;匹配一个数字字符。等价于[0-9]。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\D&lt;/th&gt;&lt;td&gt;匹配一个非数字字符。等价于[^0-9]。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\f&lt;/th&gt;&lt;td&gt;匹配一个换页符。等价于\x0c和\cL。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\n&lt;/th&gt;&lt;td&gt;匹配一个换行符。等价于\x0a和\cJ。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\r&lt;/th&gt;&lt;td&gt;匹配一个回车符。等价于\x0d和\cM。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\s&lt;/th&gt;&lt;td&gt;匹配任何空白字符，包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\S&lt;/th&gt;&lt;td&gt;匹配任何非空白字符。等价于[^\f\n\r\t\v]。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\t&lt;/th&gt;&lt;td&gt;匹配一个制表符。等价于\x09和\cI。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\v&lt;/th&gt;&lt;td&gt;匹配一个垂直制表符。等价于\x0b和\cK。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\w&lt;/th&gt;&lt;td&gt;匹配包括下划线的任何单词字符。等价于「&lt;code&gt;[A-Za-z0-9_]&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\W&lt;/th&gt;&lt;td&gt;匹配任何非单词字符。等价于「&lt;code&gt;[^A-Za-z0-9_]&lt;/code&gt;」。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\x&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;&lt;/th&gt;&lt;td&gt;匹配&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;，其中&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如，「&lt;code&gt;\x41&lt;/code&gt;」匹配「&lt;code&gt;A&lt;/code&gt;」。「&lt;code&gt;\x041&lt;/code&gt;」则等价于「&lt;code&gt;\x04&amp;amp;1&lt;/code&gt;」。正則表达式中可以使用ASCII编码。.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;num&lt;/span&gt;&lt;/th&gt;&lt;td&gt;匹配&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;num&lt;/span&gt;，其中&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;num&lt;/span&gt;是一个正整数。对所获取的匹配的引用。例如，「&lt;code&gt;(.)\1&lt;/code&gt;」匹配两个连续的相同字符。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;&lt;/th&gt;&lt;td&gt;标识一个八进制转义值或一个向后引用。如果\&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;之前至少&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;个获取的子表达式，则&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;为向后引用。否则，如果&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;为八进制数字（0-7），则&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;为一个八进制转义值。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;nm&lt;/span&gt;&lt;/th&gt;&lt;td&gt;标识一个八进制转义值或一个向后引用。如果\&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;nm&lt;/span&gt;之前至少有&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;nm&lt;/span&gt;个获得子表达式，则&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;nm&lt;/span&gt;为向后引用。如果\&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;nm&lt;/span&gt;之前至少有&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;个获取，则&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;为一个后跟文字&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;m&lt;/span&gt;的向后引用。如果前面的条件都不满足，若&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;和&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;m&lt;/span&gt;均为八进制数字（0-7），则\&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;nm&lt;/span&gt;将匹配八进制转义值&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;nm&lt;/span&gt;。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;nml&lt;/span&gt;&lt;/th&gt;&lt;td&gt;如果&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;为八进制数字（0-3），且&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;m和l&lt;/span&gt;均为八进制数字（0-7），则匹配八进制转义值&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;nm&lt;/span&gt;l。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;\u&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;&lt;/th&gt;&lt;td&gt;匹配&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;，其中&lt;span style="font-family: Times New Roman; font-style: italic;"&gt;n&lt;/span&gt;是一个用四个十六进制数字表示的Unicode字符。例如，\u00A9匹配版权符号（©）。&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;span class="mw-headline" id=".E5.B8.B8.E7.94.A8.E6.AD.A3.E5.88.99.E8.A1.A8.E8.BE.BE.E5.BC.8F"&gt;常用正则表达式&lt;/span&gt;&lt;/h2&gt;用户名&lt;br /&gt;/^[a-z0-9_-]{3,16}$/&lt;br /&gt;密码&lt;br /&gt;/^[a-z0-9_-]{6,18}$/&lt;br /&gt;十六进制值&lt;br /&gt;/^#?([a-f0-9]{6}|[a-f0-9]{3})$/&lt;br /&gt;电子邮箱&lt;br /&gt;/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/&lt;br /&gt;URL&lt;br /&gt;/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/&lt;br /&gt;IP 地址&lt;br /&gt;/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/&lt;br /&gt;或&lt;br /&gt;/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/&lt;br /&gt;HTML 标签&lt;br /&gt;/^&amp;lt;([a-z]+)([^&amp;lt;]+)*(?:&amp;gt;(.*)&amp;lt;\/\1&amp;gt;|\s+\/&amp;gt;)$/&lt;br /&gt;Unicode编码中的汉字范围&lt;br /&gt;/^[\u2E80-\u9FFF]+$/&lt;br /&gt;&lt;span class="editsection"&gt;&lt;/span&gt; &lt;span class="mw-headline" id=".E7.9B.B8.E9.97.9C.E6.A2.9D.E7.9B.AE"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-3551042021591122670?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/3551042021591122670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=3551042021591122670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3551042021591122670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3551042021591122670'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/grep.html' title='grep 正则表达式'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-6486304575799659188</id><published>2011-10-21T21:52:00.002+08:00</published><updated>2011-10-21T23:55:59.236+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cli'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><title type='text'>virtualbox  headless (无头)启动 虚拟机 命令</title><content type='html'>常用的2个命令&lt;br /&gt;&lt;br /&gt;启动虚拟机 &lt;br /&gt;vboxmanager startvm xp &lt;br /&gt;&lt;br /&gt;无头模式启动虚拟机 (注意后面的&amp;amp;)&lt;br /&gt;vboxheadless -s freebsd &amp;amp;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-6486304575799659188?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/6486304575799659188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=6486304575799659188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6486304575799659188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6486304575799659188'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/virtualbox-headless.html' title='virtualbox  headless (无头)启动 虚拟机 命令'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-3704227962397708807</id><published>2011-10-21T21:15:00.004+08:00</published><updated>2011-10-21T21:16:17.030+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cli'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='aria2'/><title type='text'>[转]24 个很酷的 Linux/Unix 工具</title><content type='html'>原文 &lt;a href="http://linuxtoy.org/archives/cool-linux-tools.html"&gt;24 个很酷的 Linux/Unix 工具&lt;/a&gt;&lt;br /&gt;&lt;a href="http://kkovacs.eu/"&gt;KKovacs&lt;/a&gt; 收集了 24 个 Linux/Unix 平台上的工具，既有熟悉的，也有鲜为人知的。这些运行于终端的工具都很酷，很有用。&lt;span id="more-4727"&gt;&lt;/span&gt; &lt;br /&gt;&lt;h3&gt;dstat &amp;amp; sar&lt;/h3&gt;&lt;img alt="Dstat screenshot" src="http://linuxtoy.org/img/2011/05/dstat%20screenshot.png" /&gt;&lt;br /&gt;iostat、vmstat、ifstat 等。&lt;br /&gt;&lt;h3&gt;htop &amp;amp; iotop&lt;/h3&gt;&lt;img alt="Htop screenshot" src="http://linuxtoy.org/img/2011/05/htop%20screenshot.png" /&gt;&lt;br /&gt;进程、内存、以及 io 监视。&lt;br /&gt;&lt;h3&gt;slurm&lt;/h3&gt;&lt;img alt="Slurm screenshot" src="http://linuxtoy.org/img/2011/05/slurm%20screenshot.png" /&gt;&lt;br /&gt;可视化网络流量。&lt;br /&gt;&lt;h3&gt;ttyrec &amp;amp; ipbt&lt;/h3&gt;&lt;img alt="Ipbt screenshot" src="http://linuxtoy.org/img/2011/05/ipbt%20screenshot.png" /&gt;&lt;br /&gt;录制并播放终端会话。&lt;br /&gt;&lt;h3&gt;vim (&amp;amp;ctags)&lt;/h3&gt;&lt;img alt="Vim screenshot" src="http://linuxtoy.org/img/2011/05/vim%20screenshot.png" /&gt;&lt;br /&gt;程序员的编辑器。&lt;br /&gt;&lt;h3&gt;rsync&lt;/h3&gt;&lt;img alt="Rsync screenshot" src="http://linuxtoy.org/img/2011/05/rsync%20screenshot.png" /&gt;&lt;br /&gt;通过 SSH 保持文件系统同步。&lt;br /&gt;&lt;h3&gt;screen, dtach, tmux, byobu&lt;/h3&gt;&lt;img alt="Gnu screen screenshot" src="http://linuxtoy.org/img/2011/05/gnu%20screen%20screenshot.png" /&gt;&lt;br /&gt;保持你的终端会话。&lt;br /&gt;&lt;h3&gt;mtr&lt;/h3&gt;&lt;img alt="Mtr screenshot" src="http://linuxtoy.org/img/2011/05/mtr%20screenshot.png" /&gt;&lt;br /&gt;traceroute 2.0。&lt;br /&gt;&lt;h3&gt;multitail&lt;/h3&gt;&lt;img alt="Multitail screenshot" src="http://linuxtoy.org/img/2011/05/multitail%20screenshot.png" /&gt;&lt;br /&gt;在分隔的窗口中查看你的日志。&lt;br /&gt;&lt;h3&gt;socat &amp;amp; netpipes&lt;/h3&gt;&lt;img alt="Socat screenshot" src="http://linuxtoy.org/img/2011/05/socat%20screenshot.png" /&gt;&lt;br /&gt;socket 输入、输出更容易。&lt;br /&gt;&lt;h3&gt;tpp&lt;/h3&gt;&lt;img alt="Tpp screenshot" src="http://linuxtoy.org/img/2011/05/tpp%20screenshot.png" /&gt;&lt;br /&gt;适用于终端的幻灯演示工具。&lt;br /&gt;&lt;h3&gt;iftop &amp;amp; iptraf&lt;/h3&gt;&lt;img alt="Iftop screenshot" src="http://linuxtoy.org/img/2011/05/iftop%20screenshot.png" /&gt;&lt;br /&gt;查看你的网络流量。&lt;br /&gt;&lt;h3&gt;xargs&lt;/h3&gt;&lt;img alt="Xargs screenshot" src="http://linuxtoy.org/img/2011/05/xargs%20screenshot.png" /&gt;&lt;br /&gt;从标准输入执行任务。&lt;br /&gt;&lt;h3&gt;siege &amp;amp; tsung&lt;/h3&gt;&lt;img alt="Siege screenshot" src="http://linuxtoy.org/img/2011/05/siege%20screenshot.png" /&gt;&lt;br /&gt;web 载入测试工具。&lt;br /&gt;&lt;h3&gt;duplicity &amp;amp; rsyncrypto&lt;/h3&gt;&lt;img alt="Duplicity screenshot" src="http://linuxtoy.org/img/2011/05/duplicity%20screenshot.png" /&gt;&lt;br /&gt;加密备份工具。&lt;br /&gt;&lt;h3&gt;ledger&lt;/h3&gt;&lt;img alt="Ledger screenshot" src="http://linuxtoy.org/img/2011/05/ledger%20screenshot.png" /&gt;&lt;br /&gt;基于终端的帐单管理工具。&lt;br /&gt;&lt;h3&gt;nethack &amp;amp; slash'em&lt;/h3&gt;&lt;img alt="Nethack screenshot" src="http://linuxtoy.org/img/2011/05/nethack%20screenshot.png" /&gt;&lt;br /&gt;游戏。&lt;br /&gt;&lt;h3&gt;taskwarrior&lt;/h3&gt;&lt;img alt="Taskwarrior screenshot" src="http://linuxtoy.org/img/2011/05/taskwarrior%20screenshot.png" /&gt;&lt;br /&gt;任务管理。&lt;br /&gt;&lt;h3&gt;lftp&lt;/h3&gt;&lt;img alt="Lftp screenshot" src="http://linuxtoy.org/img/2011/05/lftp%20screenshot.png" /&gt;&lt;br /&gt;ftp 客户端。&lt;br /&gt;&lt;h3&gt;curl&lt;/h3&gt;&lt;img alt="Curl screenshot" src="http://linuxtoy.org/img/2011/05/curl%20screenshot.png" /&gt;&lt;br /&gt;大家喜爱的 HTTP 工具。&lt;br /&gt;&lt;h3&gt;ack&lt;/h3&gt;&lt;img alt="Ack screenshot" src="http://linuxtoy.org/img/2011/05/ack%20screenshot.png" /&gt;&lt;br /&gt;类似 grep，比 grep 更好。&lt;br /&gt;&lt;h3&gt;rtorrent &amp;amp; aria2&lt;/h3&gt;&lt;img alt="Rtorrent screenshot" src="http://linuxtoy.org/img/2011/05/rtorrent%20screenshot.png" /&gt;&lt;br /&gt;命令行的 torrent 下载器。&lt;br /&gt;&lt;h3&gt;calcurse &amp;amp; remind + wyrd&lt;/h3&gt;&lt;img alt="Calcurse screenshot" src="http://linuxtoy.org/img/2011/05/calcurse%20screenshot.png" /&gt;&lt;br /&gt;日程系统。&lt;br /&gt;&lt;h3&gt;ttytter&lt;/h3&gt;&lt;img alt="Ttytter screenshot" src="http://linuxtoy.org/img/2011/05/ttytter%20screenshot.png" /&gt;&lt;br /&gt;不错的 Twitter 客户端。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-3704227962397708807?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/3704227962397708807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=3704227962397708807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3704227962397708807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3704227962397708807'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/24-linuxunix.html' title='[转]24 个很酷的 Linux/Unix 工具'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-7137568168572516381</id><published>2011-10-21T21:02:00.001+08:00</published><updated>2011-10-21T21:05:44.772+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rsync'/><title type='text'>rsync 用法</title><content type='html'>把我的数据备份到 移动硬盘上 ,分别是&lt;br /&gt;~/&amp;nbsp; /media/wine/TDdownloads/&amp;nbsp; /media/wine/music/ /media/wine/tutorial/&lt;br /&gt;&lt;br /&gt;这是增量备份，旧的数据不会被删除：&lt;br /&gt;# rsync -avh --progress SRC DEST&lt;br /&gt;&lt;br /&gt;这是数据同步，使两个目录内容保持一致：&lt;br /&gt;# rsync -avh --delete --progress SRC DEST&lt;br /&gt;&lt;br /&gt;具体选项 意思 man&amp;nbsp; rsync&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-7137568168572516381?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/7137568168572516381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=7137568168572516381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7137568168572516381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/7137568168572516381'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/rsync.html' title='rsync 用法'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-1779559300776142948</id><published>2011-10-20T22:14:00.001+08:00</published><updated>2011-10-20T22:14:33.286+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mutt'/><title type='text'>mutt 的手册 中文翻译 使用搜索 批量 删除邮件</title><content type='html'>&lt;a href="http://www.mutt.org/"&gt;www.mutt.org&lt;/a&gt;&amp;nbsp; &lt;a href="http://xhc.me/wp-content/uploads/mutt/manual_1.5.19_zh.html"&gt;mutt 中文翻译手册&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;T ~A 可以把全部邮件打上tag,然后 ;d 就可以删除了&lt;br /&gt;&lt;br /&gt;l ~A 可以显示所有邮件&amp;nbsp; =b jarodlau 可以让imap远程处理有jarodlau的邮件,本地显示&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-1779559300776142948?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/1779559300776142948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=1779559300776142948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1779559300776142948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1779559300776142948'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/mutt.html' title='mutt 的手册 中文翻译 使用搜索 批量 删除邮件'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-3699298849123083595</id><published>2011-10-20T21:46:00.001+08:00</published><updated>2011-10-20T21:46:13.053+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mutt'/><title type='text'>mutt patten 搜索</title><content type='html'>&lt;h2 class="title" style="clear: both;"&gt;2. 模式：搜索，提取和标记&lt;/h2&gt;Mutt中的许多命令允许你使用模式来匹配邮件（&lt;code class="literal"&gt;limit&lt;/code&gt;，&lt;code class="literal"&gt;tag-pattern&lt;/code&gt;，&lt;code class="literal"&gt;delete-pattern&lt;/code&gt;，等等）。表4.4 “模式修饰符”给出了几种选择邮件的方式。&lt;br /&gt;&lt;div class="table"&gt;&lt;div class="title"&gt;&lt;b&gt;表4.4.&lt;/b&gt;&lt;b&gt;模式修饰符&lt;/b&gt;&lt;/div&gt;&lt;table border="1"&gt;&lt;colgroup&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;模式修饰符&lt;/th&gt;&lt;th&gt;描述&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;~A&lt;/td&gt;&lt;td&gt;所有邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~b &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;正文中匹配&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;=b &lt;span class="emphasis"&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;正文包含&lt;span class="emphasis"&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/span&gt;的邮件。如果启用了IMAP，将在服务器上执行搜寻&lt;span class="emphasis"&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/span&gt;的工作，而不是下载每封邮件并在本地搜索。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~B &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;在整个邮件中匹配&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~c &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;“Cc:”字段匹配&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%c &lt;span class="emphasis"&gt;&lt;em&gt;GROUP&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;Cc给&lt;span class="emphasis"&gt;&lt;em&gt;GROUP&lt;/em&gt;&lt;/span&gt;成员的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~C &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;“To:”或“Cc:”字段匹配&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%C &lt;span class="emphasis"&gt;&lt;em&gt;GROUP&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;发送或Cc给&lt;span class="emphasis"&gt;&lt;em&gt;GROUP&lt;/em&gt;&lt;/span&gt;成员的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~d [&lt;span class="emphasis"&gt;&lt;em&gt;MIN&lt;/em&gt;&lt;/span&gt;]-[&lt;span class="emphasis"&gt;&lt;em&gt;MAX&lt;/em&gt;&lt;/span&gt;]&lt;/td&gt;&lt;td&gt;“&lt;span class="quote"&gt;date-sent&lt;/span&gt;”匹配日期范围的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~D&lt;/td&gt;&lt;td&gt;已删除的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~e &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;“&lt;span class="quote"&gt;Sender&lt;/span&gt;”字段匹配&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%e &lt;span class="emphasis"&gt;&lt;em&gt;GROUP&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;“&lt;span class="quote"&gt;Sender&lt;/span&gt;”字段包含&lt;span class="emphasis"&gt;&lt;em&gt;Group&lt;/em&gt;&lt;/span&gt;成员的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~E&lt;/td&gt;&lt;td&gt;过期的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~F&lt;/td&gt;&lt;td&gt;标记为重要的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~f &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;来自&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F &lt;span class="emphasis"&gt;&lt;em&gt;GROUP&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;来自&lt;span class="emphasis"&gt;&lt;em&gt;GROUP&lt;/em&gt;&lt;/span&gt;成员的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~g&lt;/td&gt;&lt;td&gt;使用密钥签名的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~G&lt;/td&gt;&lt;td&gt;使用密钥加密的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~h &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;邮件头匹配&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~H &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;spam attribute匹配&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~i &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;“&lt;span class="quote"&gt;Message-ID&lt;/span&gt;”字段匹配&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~k&lt;/td&gt;&lt;td&gt;包含PGP密钥的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~L &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;由&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;发出或来自&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L &lt;span class="emphasis"&gt;&lt;em&gt;GROUP&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;由&lt;span class="emphasis"&gt;&lt;em&gt;GROUP&lt;/em&gt;&lt;/span&gt;成员发出或来自他们的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~l&lt;/td&gt;&lt;td&gt;寄给已知邮件列表的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~m [&lt;span class="emphasis"&gt;&lt;em&gt;MIN&lt;/em&gt;&lt;/span&gt;]-[&lt;span class="emphasis"&gt;&lt;em&gt;MAX&lt;/em&gt;&lt;/span&gt;]&lt;/td&gt;&lt;td&gt;从&lt;span class="emphasis"&gt;&lt;em&gt;MIN到MAX&lt;/em&gt;&lt;/span&gt;的邮件*)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~n [&lt;span class="emphasis"&gt;&lt;em&gt;MIN&lt;/em&gt;&lt;/span&gt;]-[&lt;span class="emphasis"&gt;&lt;em&gt;MAX&lt;/em&gt;&lt;/span&gt;]&lt;/td&gt;&lt;td&gt;评分在&lt;span class="emphasis"&gt;&lt;em&gt;MIN到MAX&lt;/em&gt;&lt;/span&gt;范围内的邮件*)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~N&lt;/td&gt;&lt;td&gt;新邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~O&lt;/td&gt;&lt;td&gt;旧邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~p&lt;/td&gt;&lt;td&gt;发给你（参考后备地址）的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~P&lt;/td&gt;&lt;td&gt;由你（参考后备地址）发出的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~Q&lt;/td&gt;&lt;td&gt;已回复的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~r [&lt;span class="emphasis"&gt;&lt;em&gt;MIN&lt;/em&gt;&lt;/span&gt;]-[&lt;span class="emphasis"&gt;&lt;em&gt;MAX&lt;/em&gt;&lt;/span&gt;]&lt;/td&gt;&lt;td&gt;“&lt;span class="quote"&gt;date-received&lt;/span&gt;”匹配日期范围的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~R&lt;/td&gt;&lt;td&gt;已读的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~s &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="quote"&gt;Subject&lt;/span&gt;”字段匹配&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;“的邮件。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~S&lt;/td&gt;&lt;td&gt;superseded messages&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~t &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;发给&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~T&lt;/td&gt;&lt;td&gt;被标记的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~u&lt;/td&gt;&lt;td&gt;寄给己订阅的邮件列表的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~U&lt;/td&gt;&lt;td&gt;未读邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~v&lt;/td&gt;&lt;td&gt;折叠thread之中的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~V&lt;/td&gt;&lt;td&gt;已验证的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~x &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;“&lt;span class="quote"&gt;References&lt;/span&gt;”字段匹配&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~X [&lt;span class="emphasis"&gt;&lt;em&gt;MIN&lt;/em&gt;&lt;/span&gt;]-[&lt;span class="emphasis"&gt;&lt;em&gt;MAX&lt;/em&gt;&lt;/span&gt;]&lt;/td&gt;&lt;td&gt;包含&lt;span class="emphasis"&gt;&lt;em&gt;MIN到MAX&lt;/em&gt;&lt;/span&gt;个附件的邮件*)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~y &lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;“&lt;span class="quote"&gt;X-Label&lt;/span&gt;”字段匹配&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;的邮件&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~z [&lt;span class="emphasis"&gt;&lt;em&gt;MIN&lt;/em&gt;&lt;/span&gt;]-[&lt;span class="emphasis"&gt;&lt;em&gt;MAX&lt;/em&gt;&lt;/span&gt;]&lt;/td&gt;&lt;td&gt;大小介于&lt;span class="emphasis"&gt;&lt;em&gt;MIN到MAX&lt;/em&gt;&lt;/span&gt;之间的邮件*)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~=&lt;/td&gt;&lt;td&gt;重复的邮件（见$duplicate_threads）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~$&lt;/td&gt;&lt;td&gt;未索引的邮件 (需要以thread方式排列)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~ (&lt;span class="emphasis"&gt;&lt;em&gt;PATTERN&lt;/em&gt;&lt;/span&gt;)&lt;/td&gt;&lt;td&gt;thread中所包含匹配&lt;span class="emphasis"&gt;&lt;em&gt;PATTERN&lt;/em&gt;&lt;/span&gt;的邮件，例如，所有thread包含的来自你的邮件：~(~P)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;上表中的&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;是指正则表达式。在模式中使用正则表达式需要特别的注意。具体来说， Mutt对这些模式的解析将剥除一层反斜杠（“&lt;span class="quote"&gt;\&lt;/span&gt;”）, 一般它用于引用。如果你打算在正则表达式中使用反斜杠，你就需要使用两个反斜杠（“&lt;span class="quote"&gt;\\&lt;/span&gt;”）。你可以强制mutt将模式中的&lt;span class="emphasis"&gt;&lt;em&gt;EXPR&lt;/em&gt;&lt;/span&gt;看作一个简单的字符串而非正则表达式，使用“=”代替“~“。例如，“&lt;code class="literal"&gt;=b *.*&lt;/code&gt;”表示所有包含基本字符串“&lt;span class="quote"&gt;*.&lt;/span&gt;&lt;span class="quote"&gt;*&lt;/span&gt;“的邮件。简单字符串的匹配不如正则表达式强大，但它的效率更高。尤其是对IMAP文件夹，因为搜寻匹配字符串的工作可以在服务器上执行，而不需要获取每封邮件。特别地，IMAP对待“&lt;code class="literal"&gt;=h&lt;/code&gt;”：它的格式必须是“header: substring”，不会部份地匹配邮件头的字段名。如果你只想要简单地找出包含特定邮件头的邮件，而不关心其具体的值，那么可以省略“substring”。&lt;br /&gt;*）也可以使用其它的一些形式，如“&lt;span class="quote"&gt;&amp;lt;[MAX]&lt;/span&gt;“，”&lt;span class="quote"&gt;&amp;gt;[MIN]&lt;/span&gt;”，“&lt;span class="quote"&gt;[MIN]-&lt;span class="quote"&gt;”和“&lt;span class="quote"&gt;-[MAX]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;”。&lt;br /&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;2.1.模式修饰符&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="note"&gt;&lt;h3 class="title"&gt;注意&lt;/h3&gt;匹配地址列表的模式（尤其是c，C，p，P和t），如果整个地址列表中有一个地址匹配，那么这个模式就会匹配这封邮件。如果你想保证地址列表中的每一项都匹配的话，你需要在给模式加上前缀“&lt;span class="quote"&gt;^&lt;/span&gt;”。下面这个例子匹配所有只包含来自德国的收件人的邮件。&lt;/div&gt;&lt;pre class="screen"&gt;^~C \.de$&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;2.2.简单模式&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Mutt中有两种所谓的“&lt;span class="quote"&gt;简单搜索&lt;/span&gt;”，当搜索或提取邮件时，如果给出的查询语句没有包含一个可用的操作符（即它不包含这些符号：“&lt;span class="quote"&gt;~&lt;/span&gt;”，“&lt;span class="quote"&gt;=&lt;/span&gt;“或”&lt;span class="quote"&gt;%&lt;/span&gt;“），查询也将会进行。如果要查询一个特殊字符，必须在特殊字符之前使用反斜杠（“&lt;span class="quote"&gt;\&lt;/span&gt;”）转义。&lt;br /&gt;第一种是通过检查查询语句是否属于表4.5 “简单搜索关键词”所列出的关键字（大小写不敏感）：如果是的话，Mutt使用关键字所对应的模式修饰符代替关键字。如果你要查询的内容和某个关键字有冲突，你需要把它变成一个正则表达式，以避免和关键字一致。例如，如果你想查询所有匹配“&lt;span class="quote"&gt;flag&lt;/span&gt;”的邮件（使用$simple_search），而不是要查询被标记为重要的邮件，那么就要写成“&lt;span class="quote"&gt;&lt;code class="literal"&gt;[f]lag&lt;/code&gt;&lt;/span&gt;”。&lt;br /&gt;&lt;div class="table"&gt;&lt;div class="title"&gt;&lt;b&gt;表4.5.&lt;/b&gt;&lt;b&gt;简单搜索关键词&lt;/b&gt;&lt;/div&gt;&lt;table border="1"&gt;&lt;colgroup&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;关键字&lt;/th&gt;&lt;th&gt;模式修饰符&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;all&lt;/td&gt;&lt;td&gt;~A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;.&lt;/td&gt;&lt;td&gt;~A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;^&lt;/td&gt;&lt;td&gt;~A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;del&lt;/td&gt;&lt;td&gt;~D&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;flag&lt;/td&gt;&lt;td&gt;~F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;new&lt;/td&gt;&lt;td&gt;~N&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;old&lt;/td&gt;&lt;td&gt;~O&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;repl&lt;/td&gt;&lt;td&gt;~Q&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;read&lt;/td&gt;&lt;td&gt;~R&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;tag&lt;/td&gt;&lt;td&gt;~T&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;unread&lt;/td&gt;&lt;td&gt;~U&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;第二种简单搜索，是使用组合的模式搜索，利用$simple_search为模板。Mutt会你的查询字符串插入到模板中来执行搜索。&lt;/div&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;2.3.组合模式&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;指定一个以上的查询规则会执行逻辑与操作。例如:&lt;br /&gt;&lt;pre class="screen"&gt;~t mutt ~f elkins&lt;br /&gt;&lt;/pre&gt;将选择收件人列表包含“&lt;span class="quote"&gt;mutt&lt;/span&gt;”的，&lt;span class="bold"&gt;&lt;strong&gt;并且&lt;/strong&gt;&lt;/span&gt;在“From:”字段包含“&lt;span class="quote"&gt;elkins&lt;/span&gt;”的邮件。&lt;br /&gt;Mutt同样可以通过以下操作符达到更多的模式组合搜索：&lt;br /&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="disc"&gt;&lt;li&gt;! -- 逻辑非操作符&lt;/li&gt;&lt;li&gt;| -- 逻辑或操作符&lt;/li&gt;&lt;li&gt;() -- 分组操作符&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;下面的例子可以说明组合模式搜索。这个例子将选择的所有“&lt;span class="quote"&gt;To:&lt;/span&gt;”或“&lt;span class="quote"&gt;Cc:&lt;/span&gt;”字段中不包含“&lt;span class="quote"&gt;mutt&lt;/span&gt;”，但来自“&lt;span class="quote"&gt;elkins&lt;/span&gt;”的邮件。&lt;br /&gt;&lt;div class="example"&gt;&lt;div class="title"&gt;&lt;b&gt;例4.1.&lt;/b&gt;&lt;b&gt;模式匹配中使用布尔操作符&lt;/b&gt;&lt;/div&gt;&lt;pre class="screen"&gt;!(~t mutt|~c mutt) ~f elkins&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;下面这个例子在正则表达式中使用空白符（注意'和"）。例子中，该邮件的主题必须匹配“&lt;span class="quote"&gt;^Junk +From +Me$&lt;/span&gt;”，它必须来自“&lt;span class="quote"&gt;Jim +Somebody&lt;/span&gt;”或“&lt;span class="quote"&gt;Ed +SomeoneElse&lt;/span&gt;”：&lt;br /&gt;&lt;pre class="screen"&gt; '~s "^Junk +From +Me$" ~f ("Jim +Somebody"|"Ed +SomeoneElse")'&lt;/pre&gt;&lt;div class="note"&gt;&lt;h3 class="title"&gt;注意&lt;/h3&gt;如果正则表达式中包含括号，或管道符("|"),你&lt;span class="bold"&gt;&lt;strong&gt;必须&lt;/strong&gt;&lt;/span&gt;将表达式放到双引号或单引号内，因为这些字符也被用来分隔不同的模式。例如：&lt;code class="literal"&gt;~f "me@(mutt\.org|cs\.hmc\.edu)"&lt;/code&gt;。&lt;/div&gt;没有引号，括号不会结束。它的作用是分离两个逻辑与的模式：&lt;span class="emphasis"&gt;&lt;em&gt;˜f me@(mutt\.org&lt;/em&gt;&lt;/span&gt;和&lt;span class="emphasis"&gt;&lt;em&gt;cs\.hmc\.edu)&lt;/em&gt;&lt;/span&gt;。这样总会产生错误的结果。&lt;/div&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;2.4.按日期搜索&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Mutt支持两种类型的日期， &lt;span class="emphasis"&gt;&lt;em&gt;绝对的&lt;/em&gt;&lt;/span&gt;和&lt;span class="emphasis"&gt;&lt;em&gt;相对的&lt;/em&gt;&lt;/span&gt; 。&lt;br /&gt;&lt;span class="bold"&gt;&lt;strong&gt;绝对的&lt;/strong&gt;&lt;/span&gt;：日期的格式&lt;span class="bold"&gt;&lt;strong&gt;必须&lt;/strong&gt;&lt;/span&gt;是日/月/年（月份和年份是可选的，默认为当前的月份和年份） 。例子，一个有效的日期范围是：&lt;br /&gt;&lt;pre class="screen"&gt;Limit to messages matching: ~d 20/1/95-31/10&lt;br /&gt;&lt;/pre&gt;如果你省略了开始日期，仅仅指定“&lt;span class="quote"&gt;-DD/MM/YY&lt;/span&gt;”，那么在指定日期&lt;span class="emphasis"&gt;&lt;em&gt;之前&lt;/em&gt;&lt;/span&gt;的邮件将被选中。如果您省略了结束日期，指定的是“&lt;span class="quote"&gt;DD/MM/YY-&lt;/span&gt;”，那么所有在指定日期&lt;span class="emphasis"&gt;&lt;em&gt;之后&lt;/em&gt;&lt;/span&gt;的邮件将被选中。如果你只指定了一个日期，而没有破折号（“-”），那么只有在指定日期发送的邮件将被选中。&lt;br /&gt;&lt;span class="bold"&gt;&lt;strong&gt;偏差&lt;/strong&gt;&lt;/span&gt;：您可以给绝对日期加上一个偏差值。偏差是由符号（+或-），后跟数字，最后加上表4.6所列出的时间单位构成的。你可以用“&lt;span class="quote"&gt;*&lt;/span&gt;”代替“+”或者“-”，这相当于同时使用了“+”或者“-”。&lt;br /&gt;&lt;div class="table"&gt;&lt;div class="title"&gt;&lt;b&gt;表4.6.&lt;/b&gt;&lt;b&gt;日期单位&lt;/b&gt;&lt;/div&gt;&lt;table border="1"&gt;&lt;colgroup&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;单位&lt;/th&gt;&lt;th&gt;描述&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;y&lt;/td&gt;&lt;td&gt;年&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;m&lt;/td&gt;&lt;td&gt;月&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;w&lt;/td&gt;&lt;td&gt;周&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;d&lt;/td&gt;&lt;td&gt;天&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;例如：要选择2001年1月15号前后两周的邮件，你要使用以下的方式：&lt;br /&gt;&lt;pre class="screen"&gt;Limit to messages matching: ~d 15/1/2001*2w&lt;/pre&gt;&lt;span class="bold"&gt;&lt;strong&gt;相对的&lt;/strong&gt;&lt;/span&gt;：这种类型相对于当前的日期，可以被指定为：&lt;br /&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;span class="emphasis"&gt;&lt;em&gt;&amp;gt;offset&lt;/em&gt;&lt;/span&gt;（“&lt;span class="emphasis"&gt;&lt;em&gt;offset&lt;/em&gt;&lt;/span&gt;单位”时间以前的邮件）&lt;/li&gt;&lt;li&gt;&lt;span class="emphasis"&gt;&lt;em&gt;&lt;offset&lt; em=""&gt;&lt;/offset&lt;&gt;&lt;/em&gt;&lt;/span&gt;&lt;em&gt;（“&lt;span class="emphasis"&gt;&lt;em&gt;offset&lt;/em&gt;&lt;/span&gt;单位”时间之内的邮件）&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&lt;span class="emphasis"&gt;&lt;em&gt;=offset&lt;/em&gt;&lt;/span&gt;（“&lt;span class="emphasis"&gt;&lt;em&gt;offset&lt;/em&gt;&lt;/span&gt;单位"时间当天的邮件）&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;em&gt;&lt;span class="emphasis"&gt;&lt;em&gt;offset&lt;/em&gt;&lt;/span&gt;为一个正数与表4.6 “时间单位”中所列的单位。&lt;/em&gt;&lt;br /&gt;&lt;em&gt;例如：选择1个月之内的邮件，你可以使用&lt;br /&gt;&lt;pre class="screen"&gt;Limit to messages matching: ~d &amp;lt;1m&lt;/pre&gt;&lt;div class="note"&gt;&lt;h3 class="title"&gt;注意&lt;/h3&gt;使用相对搜索时都是相对去&lt;span class="bold"&gt;&lt;strong&gt;本地&lt;/strong&gt;&lt;/span&gt;时区，&lt;span class="bold"&gt;&lt;strong&gt;并非&lt;/strong&gt;&lt;/span&gt;index上显示的日期，除非你将格式&lt;code class="literal"&gt;%[...]&lt;/code&gt;加入了$index_format变量。&lt;/div&gt;&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-3699298849123083595?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/3699298849123083595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=3699298849123083595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3699298849123083595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/3699298849123083595'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/mutt-patten.html' title='mutt patten 搜索'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-2810146922534624964</id><published>2011-10-20T20:11:00.002+08:00</published><updated>2011-10-20T20:19:32.864+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='github'/><title type='text'>git 生成 好看的 chanlog</title><content type='html'>&lt;div class="codecolorer-container bash default" style="overflow: auto; white-space: nowrap; width: 580px;"&gt;&lt;div class="bash codecolorer"&gt;&lt;span class="kw2"&gt;$ git log&lt;/span&gt; &lt;span class="re5"&gt;--no-merges&lt;/span&gt; &lt;span class="re5"&gt;--pretty&lt;/span&gt;=format:&lt;span class="st_h"&gt;' - %s'&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="kw2"&gt;&amp;nbsp;&lt;/span&gt;–no-merges: 不要秀出 merge message&lt;br /&gt;–pretty=format:’ – %s’ : 关键 format&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Xmr0usSzxxU/TqARZ-emnnI/AAAAAAAAAPc/TipEsXYJhGg/s1600/screenshot-2011-10-20-20-17-15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-Xmr0usSzxxU/TqARZ-emnnI/AAAAAAAAAPc/TipEsXYJhGg/s1600/screenshot-2011-10-20-20-17-15.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kw2"&gt;$ git log&lt;/span&gt; &lt;span class="re5"&gt;--graph&lt;/span&gt; &lt;span class="re5"&gt;--pretty&lt;/span&gt;=format:&lt;span class="st_h"&gt;'%s - %Cred%h%Creset &amp;nbsp;%Cgreen(%cr)%Creset %an'&lt;/span&gt; &lt;span class="re5"&gt;--abbrev-commit&lt;/span&gt; &lt;span class="re5"&gt;--date&lt;/span&gt;=relative&lt;br /&gt;&lt;br /&gt;如图,我的 home dotfieles &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-xczA5XQSMsc/TqARu27PyAI/AAAAAAAAAPk/09I_5YKSGbk/s1600/screenshot-2011-10-20-20-18-33.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-xczA5XQSMsc/TqARu27PyAI/AAAAAAAAAPk/09I_5YKSGbk/s1600/screenshot-2011-10-20-20-18-33.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-2810146922534624964?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/2810146922534624964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=2810146922534624964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/2810146922534624964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/2810146922534624964'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/git-chanlog.html' title='git 生成 好看的 chanlog'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Xmr0usSzxxU/TqARZ-emnnI/AAAAAAAAAPc/TipEsXYJhGg/s72-c/screenshot-2011-10-20-20-17-15.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-1056660448386037725</id><published>2011-10-20T19:55:00.003+08:00</published><updated>2011-10-20T19:55:41.296+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>vi Command Reference Sheet</title><content type='html'>&lt;h2&gt;Cursor movement&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;h – move left&lt;/li&gt;&lt;li&gt;j – move down&lt;/li&gt;&lt;li&gt;k – move up&lt;/li&gt;&lt;li&gt;l – move right&lt;/li&gt;&lt;li&gt;w – jump by start of words (punctuation considered words)&lt;/li&gt;&lt;li&gt;W – jump by words (spaces separate words)&lt;/li&gt;&lt;li&gt;e – jump to end of words (punctuation considered words)&lt;/li&gt;&lt;li&gt;E – jump to end of words (no punctuation)&lt;/li&gt;&lt;li&gt;b – jump backward by words (punctuation considered words)&lt;/li&gt;&lt;li&gt;B – jump backward by words (no punctuation)&lt;/li&gt;&lt;li&gt;0 – (zero) start of line&lt;/li&gt;&lt;li&gt;^ – first non-blank character of line&lt;/li&gt;&lt;li&gt;$ – end of line&lt;/li&gt;&lt;li&gt;G – Go To command (prefix with number – 5G goes to line 5)&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Note:&lt;/b&gt; Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines.&lt;br /&gt;&lt;h2&gt;Insert Mode – Inserting/Appending text&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;i – start insert mode at cursor&lt;/li&gt;&lt;li&gt;I – insert at the beginning of the line&lt;/li&gt;&lt;li&gt;a – append after the cursor&lt;/li&gt;&lt;li&gt;A – append at the end of the line&lt;/li&gt;&lt;li&gt;o – open (append) blank line below current line (no need to press return)&lt;/li&gt;&lt;li&gt;O – open blank line above current line&lt;/li&gt;&lt;li&gt;ea – append at end of word&lt;/li&gt;&lt;li&gt;Esc – exit insert mode&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Editing&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;r – replace a single character (does not use insert mode)&lt;/li&gt;&lt;li&gt;J – join line below to the current one&lt;/li&gt;&lt;li&gt;cc – change (replace) an entire line&lt;/li&gt;&lt;li&gt;cw – change (replace) to the end of word&lt;/li&gt;&lt;li&gt;c$ – change (replace) to the end of line&lt;/li&gt;&lt;li&gt;s – delete character at cursor and subsitute text&lt;/li&gt;&lt;li&gt;S – delete line at cursor and substitute text (same as cc)&lt;/li&gt;&lt;li&gt;xp – transpose two letters (delete and paste, technically)&lt;/li&gt;&lt;li&gt;u – undo&lt;/li&gt;&lt;li&gt;. – repeat last command&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Marking text (visual mode)&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;v – start visual mode, mark lines, then do command (such as y-yank)&lt;/li&gt;&lt;li&gt;V – start Linewise visual mode&lt;/li&gt;&lt;li&gt;o – move to other end of marked area&lt;/li&gt;&lt;li&gt;Ctrl+v – start visual block mode&lt;/li&gt;&lt;li&gt;O – move to Other corner of block&lt;/li&gt;&lt;li&gt;aw – mark a word&lt;/li&gt;&lt;li&gt;ab – a () block (with braces)&lt;/li&gt;&lt;li&gt;aB – a {} block (with brackets)&lt;/li&gt;&lt;li&gt;ib – inner () block&lt;/li&gt;&lt;li&gt;iB – inner {} block&lt;/li&gt;&lt;li&gt;Esc – exit visual mode&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Visual commands&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&amp;gt; – shift right&lt;/li&gt;&lt;li&gt;&amp;lt; – shift left&lt;/li&gt;&lt;li&gt;y – yank (copy) marked text&lt;/li&gt;&lt;li&gt;d – delete marked text&lt;/li&gt;&lt;li&gt;~ – switch case&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Cut and Paste&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;yy – yank (copy) a line&lt;/li&gt;&lt;li&gt;2yy – yank 2 lines&lt;/li&gt;&lt;li&gt;yw – yank word&lt;/li&gt;&lt;li&gt;y$ – yank to end of line&lt;/li&gt;&lt;li&gt;p – put (paste) the clipboard after cursor&lt;/li&gt;&lt;li&gt;P – put (paste) before cursor&lt;/li&gt;&lt;li&gt;dd – delete (cut) a line&lt;/li&gt;&lt;li&gt;dw – delete (cut) the current word&lt;/li&gt;&lt;li&gt;x – delete (cut) current character&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Exiting&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;:w – write (save) the file, but don’t exit&lt;/li&gt;&lt;li&gt;:wq – write (save) and quit&lt;/li&gt;&lt;li&gt;:q – quit (fails if anything has changed)&lt;/li&gt;&lt;li&gt;:q! – quit and throw away changes&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Search/Replace&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;/&lt;i&gt;pattern&lt;/i&gt; – search for pattern&lt;/li&gt;&lt;li&gt;?&lt;i&gt;pattern&lt;/i&gt; – search backward for pattern&lt;/li&gt;&lt;li&gt;n – repeat search in same direction&lt;/li&gt;&lt;li&gt;N – repeat search in opposite direction&lt;/li&gt;&lt;li&gt;:%s/&lt;i&gt;old&lt;/i&gt;/&lt;i&gt;new&lt;/i&gt;/g – replace all &lt;i&gt;old&lt;/i&gt; with &lt;i&gt;new&lt;/i&gt; throughout file&lt;/li&gt;&lt;li&gt;:%s/&lt;i&gt;old&lt;/i&gt;/&lt;i&gt;new&lt;/i&gt;/gc – replace all &lt;i&gt;old&lt;/i&gt; with &lt;i&gt;new&lt;/i&gt; throughout file with confirmations&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Working with multiple files&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;:e &lt;i&gt;filename&lt;/i&gt; – Edit a file in a new buffer&lt;/li&gt;&lt;li&gt;:bnext (or :bn) – go to next buffer&lt;/li&gt;&lt;li&gt;:bprev (of :bp) – go to previous buffer&lt;/li&gt;&lt;li&gt;:bd – delete a buffer (close a file)&lt;/li&gt;&lt;li&gt;:sp &lt;i&gt;filename&lt;/i&gt; – Open a file in a new buffer and split window&lt;/li&gt;&lt;li&gt;ctrl+ws – Split windows&lt;/li&gt;&lt;li&gt;ctrl+ww – switch between windows&lt;/li&gt;&lt;li&gt;ctrl+wq – Quit a window&lt;/li&gt;&lt;li&gt;ctrl+wv – Split windows vertically&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-1056660448386037725?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/1056660448386037725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=1056660448386037725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1056660448386037725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1056660448386037725'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/vi-command-reference-sheet.html' title='vi Command Reference Sheet'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-6207297258616100850</id><published>2011-10-20T17:52:00.001+08:00</published><updated>2011-10-20T20:19:58.967+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><title type='text'>hdparm  spin down problem  (自旋停止) 设置</title><content type='html'>&lt;h5&gt;&lt;span class="mw-headline" id="Hard_drive_spin_down_problem"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h5&gt;Documented &lt;a class="external text" href="https://bugs.launchpad.net/ubuntu/+source/acpi-support/+bug/59695" rel="nofollow"&gt;here&lt;/a&gt;&lt;br /&gt;To prevent your laptop hard drive from spinning down too often (result of too aggressive APM defaults) do the following:&lt;br /&gt;Add the following to &lt;span style="color: #005500; font-family: monospace; white-space: nowrap;"&gt;/etc/rc.local&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;hdparm -B 254 /dev/sdX &lt;i&gt;where X is your hard drive device&lt;/i&gt;&lt;br /&gt;&lt;/pre&gt;You can also set it to 255 to completely disable spinning down.  You may wish to set a lower value if you move your laptop around as lower values park the heads more often and reduce the chance of damage to your hard disk while it is being moved.  If you do not move your laptop at all when you are using it, then 255 or 254 is probably best.  If you do, then you might want to try a lower value.  A value like 128 might be a good middle-ground.&lt;br /&gt;Add the following to &lt;span style="color: #005500; font-family: monospace; white-space: nowrap;"&gt;/etc/pm/sleep.d/50-hdparm_pm&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;#!/bin/sh&lt;br /&gt; &lt;br /&gt;if [ -n "$1" ] &amp;amp;&amp;amp; ([ "$1" = "resume" ] || [ "$1" = "thaw" ]); then&lt;br /&gt; hdparm -B 254 /dev/your-hard-drive &amp;gt; /dev/null&lt;br /&gt;fi&lt;br /&gt;&lt;/pre&gt;and run &lt;i&gt;chmod +x /etc/pm/sleep.d/50-hdparm_pm&lt;/i&gt; to make sure it resets after suspend.  Again, you can change the value 254 as you see fit.&lt;br /&gt;Now the APM level should be set for your hard drive.&lt;br /&gt;For some laptops, the option -S to hdparm can also be relevant (sets the spindown time for the drive). Note that all these options can also be configured using the &lt;a href="https://wiki.archlinux.org/index.php/Laptop_Mode_Tools" title="Laptop Mode Tools"&gt; laptop-mode tools&lt;/a&gt;.  This will allow you to set a high value when on AC and a lower value when you are running on battery power.t&lt;br /&gt;&lt;br /&gt;&amp;nbsp;运行一下命令&lt;br /&gt;# smartctl -d ata -a /dev/sda | grep "Load_Cycle"; hdparm -B 180 /dev/sda; sleep 600;\&lt;br /&gt;smartctl -d ata -a /dev/sda | grep "Load_Cycle"; hdparm -B 255 /dev/sda&lt;br /&gt;&lt;br /&gt;可以看到 当 设置 180的时候,10分钟就 增加了很多 Load_Cycle计数,所以最好设置为&lt;br /&gt;&amp;nbsp;254 &lt;br /&gt;这个问题的出现 可以使用2种解决办法, 1是 写 /etc/rc.local,2 是在lapbot-mode tools中设置&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;我采用的办法是使用 laptop-mode tools设置,&lt;br /&gt;&lt;br /&gt;# vim /etc/laptop-mode/laptop-mode.conf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-UptASjNrME4/Tp_w689OJ0I/AAAAAAAAAPE/TEx448DlxZY/s1600/screenshot-2011-10-20-17-58-09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-UptASjNrME4/Tp_w689OJ0I/AAAAAAAAAPE/TEx448DlxZY/s1600/screenshot-2011-10-20-17-58-09.png" /&gt;&lt;/a&gt;&lt;/div&gt;参考阅读 &lt;a href="https://wiki.archlinux.org/index.php/Laptop#Hard_drive_spin_down_problem"&gt;arch wiki Laptop#Hard_drive_spin_down_problem&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="https://bbs.archlinux.org/viewtopic.php?id=39258"&gt; Hard drive advanced power management level can kill your laptop drive?&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="https://bugs.launchpad.net/ubuntu/+source/acpi-support/+bug/59695"&gt;High frequency of load/unload cycles on some hard disks may shorten lifetime&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-6207297258616100850?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/6207297258616100850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=6207297258616100850' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6207297258616100850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/6207297258616100850'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/hdparm-spin-down-problem.html' title='hdparm  spin down problem  (自旋停止) 设置'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-UptASjNrME4/Tp_w689OJ0I/AAAAAAAAAPE/TEx448DlxZY/s72-c/screenshot-2011-10-20-17-58-09.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-1262797441265840136</id><published>2011-10-20T17:43:00.001+08:00</published><updated>2011-11-02T12:14:07.427+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='smart'/><title type='text'>S.M.A.R.T 信息察看</title><content type='html'>&lt;h3&gt;&lt;b&gt;S.M.A.R.T.简介&lt;/b&gt;&lt;/h3&gt;S.M.A.R.T.，全称 Self-Monitoring Analysis and Reporting Technology，自我检测分析报告技术，简称smart，它可以对磁盘温度，工作时间，起转次数，健康状况进行分析并报告。这个功能可以比较客观的反映硬盘目前的健康状况。&lt;br /&gt;目前，大部分硬盘都使用了smart技术，用户可以通过软件轻松查看其相关信息。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;b&gt;如何查看 S.M.A.R.T. 信息？&lt;/b&gt;&lt;/h3&gt;在linux平台上，使用smart tools查看相关信息是最好的方法。&lt;br /&gt;安装：&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div class="syntaxhighlighter  bash" id="highlighter_274287"&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;sudo pacman -S&amp;nbsp; libatasmart&amp;nbsp; smartmontools&amp;nbsp; gsmartcontrol&amp;nbsp; gnome-disk-utility&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;其中smartmontools是cli程序（&lt;span style="color: lime;"&gt;$smartctl&lt;/span&gt;），gsmartcontrol是图形界面程序（$gsmartcontrol），gnome-disk-utility是gnome桌面环境默认的磁盘管理工具（$&lt;span style="color: lime;"&gt;palimpsest&lt;/span&gt;）&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-126Y3ELXnNM/Tp_uI8VL3rI/AAAAAAAAAO8/_J1fEO8mHyA/s1600/screenshot-2011-10-20-17-46-04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="310" src="http://2.bp.blogspot.com/-126Y3ELXnNM/Tp_uI8VL3rI/AAAAAAAAAO8/_J1fEO8mHyA/s400/screenshot-2011-10-20-17-46-04.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;b&gt;S.M.A.R.T. 属性解读&lt;/b&gt;&lt;/h3&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;b&gt;Normalized：&lt;/b&gt;正常值范围；&lt;br /&gt;&lt;b&gt;Worst(最坏值)：&lt;/b&gt; 该属性出现过的峰值；&lt;br /&gt;&lt;b&gt;Threshold/Warn(阈值/临界/极限值)：&lt;/b&gt; 硬盘厂商所规定的该属性峰值。如果某个属性超过极限值时，就表示你的硬盘可能出现了问题；&lt;br /&gt;&lt;b&gt;Value/Current(当前值)/&lt;/b&gt;&lt;b&gt;Raw Values/Data (Raw值/数据) ：&lt;/b&gt;和该属性有关联的数据累计值。&lt;br /&gt;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;如何辨读？&lt;/b&gt;主要是看 Value 的值是否还在临界值之内(&amp;gt;或&amp;lt;临界值)&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;read error rate&lt;/b&gt; 错误读取率：记录读取数据错误次数（累计），非0值表示硬盘已经或者可能即将发生坏道；&lt;/li&gt;&lt;li&gt;&lt;b&gt;throughput performance &lt;/b&gt;磁盘吞吐量：平均吞吐性能（一般在进行了人工 Offline S.M.A.R.T. 测试以后才会有值。）；&lt;/li&gt;&lt;li&gt;&lt;b&gt;spinup time &lt;/b&gt;主轴电机到达要求转速时间（毫秒/秒）；&lt;/li&gt;&lt;li&gt;&lt;b&gt;start/stop count&lt;/b&gt; 电机启动/停止次数（可以当作开机/关机次数，或者休眠后恢复，均增加一次计数。全新的硬盘应该小于10）；&lt;/li&gt;&lt;li&gt;&lt;b&gt;reallocated sectors count&lt;/b&gt; 重分配扇区计数：硬盘生产过程中，有一部分扇区是保留的。当一些普通扇区读/写/验证错误，则重新映射到保留扇区，挂起该异常扇区，并增加计数。随着计数增加，io性能骤降。&lt;span style="color: maroon;"&gt;&lt;b&gt;如果数值不为0，就需要密切关注硬盘健康状况；如果持续攀升，则硬盘已经损坏；如果重分配扇区数超过保留扇区数，将不可修复&lt;/b&gt;&lt;/span&gt;；&lt;/li&gt;&lt;li&gt;&lt;b&gt;seek error rate&lt;/b&gt; 寻道错误率：磁头定位错误一次，则技术增加一次。如果持续攀升，则可能是机械部分即将发生故障；&lt;/li&gt;&lt;li&gt;&lt;b&gt;seek timer performance&lt;/b&gt; 寻道时间：寻道所需要的时间，越短则读取数据越快，但是如果时间增加，则可能机械部分即将发生故障；&lt;/li&gt;&lt;li&gt;&lt;b&gt;power-on time&lt;/b&gt; 累计通电时间：指硬盘通电时间累计值。（单位：天/时/分/秒。休眠/挂起不计入？新购入的硬盘应小于100hrs）；&lt;/li&gt;&lt;li&gt;&lt;b&gt;spinup retry count&lt;/b&gt; 电机启动失败计数：电机启动到指定转速失败的累计数值。如果失败，则可能是动力系统产生故障；&lt;/li&gt;&lt;li&gt;&lt;b&gt;power cycle count&lt;/b&gt; 电源开关计数：每次加电增加一次计数，新硬盘应小于10次；&lt;/li&gt;&lt;li&gt;&lt;b&gt;g-sensor error rate&lt;/b&gt; 坠落计数：异常加速度（例如坠落，抛掷）计数——磁头会立即回到landing zone，并增加一次计数；&lt;/li&gt;&lt;li&gt;&lt;b&gt;power-off retract count &lt;/b&gt;异常断电次数：磁头在断电前没有完全回到landing zone的次数，每次异常断电则增加一次计数；&lt;/li&gt;&lt;li&gt;&lt;b&gt;load/unload cycle count &lt;/b&gt;磁头归位次数：指工作时，磁头每次回归landing zone的次数。（ps：流言说某个linux系统——不点名，在使用电池时候，会不断强制磁头归为，而磁头归位次数最大值约为600k次，所以认为linux会损坏硬盘，实际上不是这样的）；&lt;/li&gt;&lt;li&gt;&lt;b&gt;temperature&lt;/b&gt; 温度：没嘛好说的，硬盘温度而已，理论上比工作环境高不了几度。（sudo hddtemp /dev/sda）&lt;/li&gt;&lt;li&gt;&lt;b&gt;reallocetion event count &lt;/b&gt;重映射扇区操作次数：上边的重映射扇区还记得吧？这个就是操作次数，成功的，失败的都计数。成功好说，也许硬盘有救，失败了，也许硬盘就要报废了；&lt;/li&gt;&lt;li&gt;&lt;b&gt;current pending sector count&lt;/b&gt; 待映射扇区数：出现异常的扇区数量，待被映射的扇区数量。 如果该异常扇区之后成功读写，则计数会减小，扇区也不会重新映射。读错误不会重新映射，只有写错误才会重新映射；&lt;/li&gt;&lt;li&gt;&lt;b&gt;uncorrectable sector count&lt;/b&gt; 不可修复扇区数：所有读/写错误计数，非0就证明有坏道，硬盘报废；&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;&lt;b&gt;扩展阅读&lt;/b&gt;&lt;/h3&gt;&lt;a href="http://baike.baidu.com/view/50863.htm"&gt;百度百科 S.M.A.R.T.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/S.M.A.R.T.#Known_ATA_S.M.A.R.T._attributes"&gt;wikipedia S.M.A.R.T. attributes &lt;/a&gt;(&lt;a href="http://blogold.chinaunix.net/u/32270/showart_2401101.html"&gt;zh_CN&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-1262797441265840136?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/1262797441265840136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=1262797441265840136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1262797441265840136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1262797441265840136'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/smart.html' title='S.M.A.R.T 信息察看'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-126Y3ELXnNM/Tp_uI8VL3rI/AAAAAAAAAO8/_J1fEO8mHyA/s72-c/screenshot-2011-10-20-17-46-04.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-571077249809406675</id><published>2011-10-20T01:06:00.001+08:00</published><updated>2011-10-20T01:06:25.292+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Enable/Show “http://” URL Prefix in Firefox 7 Location Bar</title><content type='html'>It’s all set for &lt;strong&gt;Firefox 7 final&lt;/strong&gt; release on September 27th of this month, &lt;a href="http://techdows.com/tag/mozilla"&gt;Mozilla&lt;/a&gt; follows Chrome and Opera removes http:// protocol and trailing slash by default in the location bar for user friendly and better readability, that means you can only view or for that matter &lt;a href="http://techdows.com/tag/firefox"&gt;Firefox&lt;/a&gt; shows www.Example.com in the address bar. It may be confusing for novice users, here is how to enable or &lt;em&gt;show http:// in the location bar&lt;/em&gt; again.&lt;br /&gt;&lt;a href="http://techdows.com/wp-content/uploads/2011/09/show-http-in-Firefox-7-url-bar.png"&gt;&lt;img alt="show http in Firefox 7 url bar" border="0" height="151" src="http://techdows.com/wp-content/uploads/2011/09/show-http-in-Firefox-7-url-bar_thumb.png" style="background-image: none; border: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="show http in Firefox 7 url bar" width="240" /&gt;&lt;/a&gt;&lt;br /&gt;But Firefox will display https:// prefix in the URL bar to let the users know they’re are on secured page and when you copy and paste URLs Firefox will include http prefix.&lt;br /&gt;&lt;a href="http://techdows.com/wp-content/uploads/2011/09/Firefox-without-http-prefix-in-the-url-bar.png"&gt;&lt;img alt="Firefox without http prefix in the url bar" border="0" height="20" src="http://techdows.com/wp-content/uploads/2011/09/Firefox-without-http-prefix-in-the-url-bar_thumb.png" style="background-image: none; border: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Firefox without http prefix in the url bar" width="240" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Show http:// in Firefox 7 URL bar&lt;/strong&gt;&lt;br /&gt;1. Type “about:config “ in the address bar and press enter proceed by agreeing to the warning.&lt;br /&gt;2. Double-click on &lt;em&gt;browser.urlbar.trimURLs&lt;/em&gt; preference to turn its value to false.&lt;br /&gt;Now type any website URL in the browser, HTTP:// will be shown greyed out/not highlighted for a change in Firefox 7 when compared to previous versions.&lt;br /&gt;&lt;strong&gt;Update&lt;/strong&gt;: Set “&lt;em&gt;browser.urlbar.formatting.enabled&lt;/em&gt;” preference to false after the above mentioned steps to remove the highlighting.(Thanks to Anonymous commenter).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-571077249809406675?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/571077249809406675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=571077249809406675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/571077249809406675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/571077249809406675'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/enableshow-http-url-prefix-in-firefox-7.html' title='Enable/Show “http://” URL Prefix in Firefox 7 Location Bar'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-8863449017474836840</id><published>2011-10-20T00:04:00.003+08:00</published><updated>2011-10-20T00:44:41.757+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Fortune Cookie Cowsay</title><content type='html'>&lt;i&gt;I can’t believe this hasn’t been covered yet!  So I thought I’ll cover it at least.&lt;/i&gt;&lt;br /&gt;Today, I’m feeling in a good mood.  Don’t know what, perhaps its the fortune’s I have been getting.  Sadly though these fortunes aren’t magical and it wasn’t destiny that I was to get this fortune.  Or maybe it was, who knows if &lt;i&gt;rand()&lt;/i&gt; is rigged sometimes just to favor you?&lt;br /&gt;So if your feeling in the mood for a fortune cookie, fire up your terminal and start typing!&lt;br /&gt;&lt;pre&gt;&lt;code&gt;fortune&lt;/code&gt;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;Hopully that was able to cheer you up..No?&lt;br /&gt;Well lets see what kind of fortunes are installed on my machine&lt;br /&gt;&lt;pre&gt;&lt;code&gt;fortune -f&lt;/code&gt;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;Which gives me:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;52.24% fortunes&lt;br /&gt;31.76% literature&lt;br /&gt;16.00% riddles&lt;/code&gt;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;So on my Ubuntu Dapper Drake machine, I did a &lt;i&gt;apt-cache search fortunes&lt;/i&gt; (on my and behold!  More &lt;i&gt;fortune&lt;/i&gt;s! Ranging from mario, to offensive, to different languages.  So I decided to install some of them for fun.&lt;br /&gt;To run a specific fortune just enter:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;fortune FORTUNENAME&lt;/code&gt;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt; &lt;br /&gt;Now to wrap it up!  This requires &lt;i&gt;cowsay&lt;/i&gt; to be installed.&lt;br /&gt;&lt;pre&gt;&lt;code&gt;cowsay `fortune`&lt;/code&gt;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;And tada, we get our fortune wrapped in &lt;i&gt;beautiful&lt;/i&gt; &lt;a href="http://en.wikipedia.org/wiki/Ascii_art"&gt;ascii art&lt;/a&gt;.&lt;br /&gt;&lt;pre&gt;&lt;code&gt; _________________________________________&lt;br /&gt;/ Live in a world of your own, but always \&lt;br /&gt;\ welcome visitors.                       /&lt;br /&gt; -----------------------------------------&lt;br /&gt;        \   ^__^&lt;br /&gt;         \  (oo)\_______&lt;br /&gt;            (__)\       )\/\&lt;br /&gt;                ||----w |&lt;br /&gt;                ||     ||&lt;/code&gt;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;Similarly you can change what type of image is displayed.&lt;br /&gt;So if I run:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;cowsay -f tux `fortune`&lt;/code&gt;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt; _______________________________________&lt;br /&gt;/ You have an ability to sense and know \&lt;br /&gt;\ higher truth.                         /&lt;br /&gt; ---------------------------------------&lt;br /&gt;   \&lt;br /&gt;    \&lt;br /&gt;        .--.&lt;br /&gt;       |o_o |&lt;br /&gt;       |:_/ |&lt;br /&gt;      //   \ \&lt;br /&gt;     (|     | )&lt;br /&gt;    /'\_   _/`\&lt;br /&gt;    \___)=(___/&lt;/code&gt;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;Ain't he cute?  If you want you can make your own asii art actually!&lt;br /&gt;For a list of what cowsay's you have run:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;cowsay -l&lt;/code&gt;&lt;/pre&gt;So I hope you enjoy your fotune today.&lt;br /&gt;If you have the disclaimer package installed for &lt;i&gt;fortune&lt;/i&gt;, for fun add to your &lt;i&gt;.bashrc&lt;/i&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;fortune disclaimer&lt;/code&gt;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;and now you'll get disclaimers everytime you start your Terminal!&lt;br /&gt;&lt;br /&gt;Resources:&lt;br /&gt; &lt;a href="https://wiki.archlinux.org/index.php/Bash#ASCII_art.2C_fortunes_and_cowsay"&gt;Bash#ASCII_art.2C_fortunes_and_cowsay&lt;/a&gt;&lt;br /&gt;&lt;span class="aizatto_related_posts_header"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-8863449017474836840?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/8863449017474836840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=8863449017474836840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8863449017474836840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/8863449017474836840'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/fortune-cookie-cowsay.html' title='Fortune Cookie Cowsay'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-1975987764144786788</id><published>2011-10-19T22:33:00.002+08:00</published><updated>2011-10-19T22:33:59.875+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='awesome'/><title type='text'>awesome wm ,keep client on top</title><content type='html'>使当前窗口保持在最顶端：&lt;br /&gt;clientkeys = awful.util.table.join(&lt;br /&gt;...&lt;br /&gt;awful.key({ modkey, "Shift"  }, "t", function (c) c.ontop = not c.ontop end),&lt;br /&gt;...&lt;br /&gt;)&lt;br /&gt;或者加到awful.rules中，如对mplayer&lt;br /&gt;-- {{{ Rules&lt;br /&gt;awful.rules.rules = {&lt;br /&gt;    -- All clients will match this rule.&lt;br /&gt;    { rule = { class = "MPlayer" },&lt;br /&gt;      properties = { floating = true,&lt;br /&gt;                     ontop = true } },&lt;br /&gt;}&lt;br /&gt;-- }}}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-1975987764144786788?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/1975987764144786788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=1975987764144786788' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1975987764144786788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/1975987764144786788'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/awesome-wm-keep-client-on-top.html' title='awesome wm ,keep client on top'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-5848012970458511700</id><published>2011-10-19T19:00:00.001+08:00</published><updated>2011-10-19T19:09:33.279+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='daemon'/><title type='text'>arch 配置 daemon</title><content type='html'>arch的daemon配置在 /etc/rc.conf中&lt;br /&gt;&lt;br /&gt;DAEMONS=(syslog-ng network netfs crond)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;常用命令: &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;显示daemon的情况&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;$ rc.d list&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dre7u3FRwBM/Tp6tGIYw3II/AAAAAAAAAOs/yCwgz1WCw2A/s1600/screenshot-2011-10-19-18-56-23.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-dre7u3FRwBM/Tp6tGIYw3II/AAAAAAAAAOs/yCwgz1WCw2A/s320/screenshot-2011-10-19-18-56-23.png" width="174" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;我的daemon启动情况&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-NF9idP82LO8/Tp6uwrDC5gI/AAAAAAAAAO0/Pvs58AJMMlM/s1600/screenshot-2011-10-19-19-03-42.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="175" src="http://4.bp.blogspot.com/-NF9idP82LO8/Tp6uwrDC5gI/AAAAAAAAAO0/Pvs58AJMMlM/s320/screenshot-2011-10-19-19-03-42.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;我的arch server上启动的daemon&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;(启动,停止,重启)daemon&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;# rc.d {start|stop|restart|...} daemon-name-1 daemon-name-2 daemon-name-3 ...&lt;br /&gt;# /etc/rc.d/daemon-name {start|stop|restart|...}&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;后台启动&lt;/li&gt;&lt;/ul&gt;只需要在要启动的daemon前面加个@就可以了,如下&lt;br /&gt; &lt;br /&gt;DAEMONS=(syslog-ng gensplash dbus network netfs @avahi-daemon @samba @crond @openntpd @cupsd @mpd)&lt;br /&gt;&lt;br /&gt;参考 : &lt;a href="https://wiki.archlinux.org/index.php/Daemon"&gt;arch wiki Daemon &lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;     &lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-5848012970458511700?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/5848012970458511700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=5848012970458511700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/5848012970458511700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/5848012970458511700'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/arch-daemon.html' title='arch 配置 daemon'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-dre7u3FRwBM/Tp6tGIYw3II/AAAAAAAAAOs/yCwgz1WCw2A/s72-c/screenshot-2011-10-19-18-56-23.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-4274999328350642454</id><published>2011-10-19T14:15:00.002+08:00</published><updated>2011-11-01T12:28:37.270+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arch'/><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><title type='text'>virtualbox 中安装 arch freebsd  设置双网卡</title><content type='html'>机器上使用virtualbox装着2个虚拟机,分别是arch和freebsd. 在安装的时候都设置的双网卡,一个NAT,一个briged模式.&lt;br /&gt;&lt;br /&gt;因为arch就是从freebsd那里学来的rc.conf总控制文件,所有配置都很简单,只要配置rc.conf就可以了&lt;br /&gt;&lt;br /&gt;freebsd的rc.conf配置如下&lt;br /&gt;&lt;br /&gt;# change ip by jarodlau # &lt;br /&gt;ifconfig_em1="inet 192.168.1.110 netmask 255.255.255.0"&lt;br /&gt;&lt;br /&gt;# -- sysinstall generated deltas -- # Wed Oct&amp;nbsp; 5 08:03:16 2011&lt;br /&gt;ifconfig_em0="DHCP"&lt;br /&gt;&lt;br /&gt;然后测试一下&lt;br /&gt;&lt;br /&gt;&lt;pre class="SCREEN"&gt;&lt;samp class="PROMPT"&gt;#&lt;/samp&gt; &lt;kbd class="USERINPUT"&gt;/etc/rc.d/netif restart&lt;/kbd&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;arch的rc.conf配置如下&lt;br /&gt;&lt;br /&gt;&amp;nbsp;# Use 'ip addr' or 'ls /sys/class/net/' to see all available interfaces.&lt;br /&gt;#&lt;br /&gt;# Wired network setup&lt;br /&gt;#&amp;nbsp;&amp;nbsp; - interface: name of device (required)&lt;br /&gt;#&amp;nbsp;&amp;nbsp; - address: IP address (leave blank for DHCP)&lt;br /&gt;#&amp;nbsp;&amp;nbsp; - netmask: subnet mask (ignored for DHCP) (optional, defaults to 255.255.255.0)&lt;br /&gt;#&amp;nbsp;&amp;nbsp; - broadcast: broadcast address (ignored for DHCP) (optional)&lt;br /&gt;#&amp;nbsp;&amp;nbsp; - gateway: default route (ignored for DHCP)&lt;br /&gt;# &lt;br /&gt;# Static IP example&lt;br /&gt;# interface=eth0&lt;br /&gt;# address=192.168.0.2&lt;br /&gt;# netmask=255.255.255.0&lt;br /&gt;# broadcast=192.168.0.255&lt;br /&gt;# gateway=192.168.0.1&lt;br /&gt;#&lt;br /&gt;# DHCP example&lt;br /&gt;# interface=eth0&lt;br /&gt;# address=&lt;br /&gt;# netmask=&lt;br /&gt;# gateway=&lt;br /&gt;&lt;br /&gt;interface=eth0&lt;br /&gt;address=&lt;br /&gt;netmask=&lt;br /&gt;broadcast=&lt;br /&gt;gateway=&lt;br /&gt;&lt;br /&gt;interface=eth1&lt;br /&gt;address=192.168.1.111&lt;br /&gt;netmask=255.255.255.0&lt;br /&gt;brodcast=192.168.1.255&lt;br /&gt;gateway=192.168.1.1&lt;br /&gt;&lt;br /&gt;配置arch的时候老出现eth0无法自动使用dhcp的情况根据wiki,原来需要修改/etc/rc.local&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;#&lt;br /&gt;# /etc/rc.local: Local multi-user startup script.&lt;br /&gt;#&lt;br /&gt;dhcpcd -k eth0&lt;br /&gt;dhcpcd -nd eth0&lt;br /&gt;&lt;br /&gt;这样,vitualbox中的arch和freebsd就可以上网和本地链接了.&lt;br /&gt;&lt;br /&gt;参考文档 : &lt;a href="http://www.freebsd.org/doc/zh_CN/books/handbook/config-network-setup.html"&gt;freebsd设置网卡&lt;/a&gt;&lt;br /&gt;&lt;a href="https://wiki.archlinux.org/index.php/Network"&gt;arch network配置&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616068516723546448-4274999328350642454?l=jarodlau.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jarodlau.blogspot.com/feeds/4274999328350642454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6616068516723546448&amp;postID=4274999328350642454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/4274999328350642454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616068516723546448/posts/default/4274999328350642454'/><link rel='alternate' type='text/html' href='http://jarodlau.blogspot.com/2011/10/virtualbox-arch-freebsd.html' title='virtualbox 中安装 arch freebsd  设置双网卡'/><author><name>jerry</name><uri>http://www.blogger.com/profile/15470207574707724400</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_uo7EdHzlULU/SId0BUzpniI/AAAAAAAAADo/u5ZVUBJK1rc/S220/jarodlauface.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616068516723546448.post-8269143043882454092</id><published>2011-10-19T13:57:00.001+08:00</published><updated>2011-10-19T14:15:49.286+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><title type='text'>Vim编辑远程文件</title><content type='html'>&lt;span class="Dx"&gt;&lt;/span&gt;&lt;br /&gt;Vi/Vim作为我最值得炫耀的编辑器（没有之一），与它的对手Emacs相比，经常被&lt;wbr&gt;&lt;/wbr&gt;提到的一个优点就是：这个世界上几乎所有的*nix服务器，都会自带Vi/Vim。这个优点带来的方便之处&lt;wbr&gt;&lt;/wbr&gt;在于，只要会用Vi/Vim，你就可以在任何一台*nix服务器上使用神乎奇技的手法来编辑文件，而不用额&lt;wbr&gt;&lt;/wbr&gt;外安装软件（Emacs去哭吧）。这个优点几乎在我所有的服务器操作中都用到过，但在今天，似乎略有不便。&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;我有一台VPS，这基本上是众所周知的事情了。但中美网速的差别与两国国民生活水平一样大，导致我娴熟的&lt;wbr&gt;&lt;/wbr&gt;指头在服务器上用Vim直接修改文件时，遇到了十分强烈停顿感。这深深地挫伤了我文思如泉涌的灵感。便想把&lt;wbr&gt;&lt;/wbr&gt;远程文件下载到本地，修改后再上传，就像Emacs一直以来无奈的做法一样。当然这事必须不能手工去做，不&lt;wbr&gt;&lt;/wbr&gt;然不仅不能给Vimer长脸，还会被认为是其它阵营派来给Vim抹黑的。&lt;br /&gt;本文的主角是&lt;a href="http://www.vim.org/scripts/script.php?script_id=1075"&gt;netrw.vim&lt;wbr&gt;&lt;/wbr&gt;&lt;/a&gt;，它可以让Vim直接编辑网络上的文件（当然是netrw已经把该文件下载到临时文件里了），并且还支持保&lt;wbr&gt;&lt;/wbr&gt;存到网络上（如果有写权限的话）。不知道从什么开始，它便成为Vim默认自带的插件了。在大多数现代GNU&lt;wbr&gt;&lt;/wbr&gt;/Linux发行版里，安装Vim时都会顺便把它给装上了。&lt;br /&gt;netrw使用起来也很简单。在终端里可以直&lt;wbr&gt;&lt;/wbr&gt;接：&lt;br /&gt;&lt;blockquote&gt;$ vim ftp://user@some_url/path/filename&lt;/blockquote&gt;这样便可以编辑一个远程文件，其它&lt;wbr&gt;&lt;/wbr&gt;操作，便与编辑本地文件无异，该':w'或':q'时都悉听尊便。&lt;br /&gt;但并不是所有的远程文件都能这么方便的&lt;wbr&gt;&lt;/wbr&gt;访问，像我今天修改的那个文件，只有通过ssh才能访问到，并且ssh还是有key认证的。但是呢，对于我&lt;wbr&gt;&lt;/wbr&gt;而言丝毫不影响，因为我还可以这样：&lt;br /&gt;&lt;blockquote&gt;$ vim scp://&lt;a class="ot-anchor" href="http://t@tigerlee.me/path/target_file"&gt;t@tigerlee.me/path/target_file&lt;/a&gt;&lt;/blockquote&gt;也许你这样做，并不会成功，&lt;wbr&gt;&lt;/wbr&gt;当然不成功的原因是多样的，最主要原因可能是你不能顺利地（不用输入密码，没有任何交互的提示）使用&lt;br /&gt;&lt;blockquote&gt;$ scp://&lt;a class="ot-anchor" href="http://t@tigerlee.me/path/target_file"&gt;t@tigerlee.me/path/target_file&lt;/a&gt; .&lt;/blockquote&gt;来将target_file拷贝到本地。如果能做到顺利，那么你也会成功的。要实现顺利地使用scp，&lt;wbr&gt;&lt;/wbr&gt;无外乎就是去掉一些不必要的认证过程，使用不带密码的key是最方便的了。详细使用参见netrw的文档：&lt;wbr&gt;&lt;/wbr&gt;&lt;a href="http://vimdoc.sourceforge.net/htmldoc/pi_netrw.html"&gt;'netrw-ssh-hack'&lt;/a&gt;，有Vim的哥们呢，就直接使用':h netrw-ssh-hack'来看好了。&lt;br /&gt;当远程文件拥有一个冗长的路径时，直接输入全部路径可能比较麻&lt;wbr&gt;&lt;/wbr&gt;烦，因为它又不能使用Tab补全。这时可以先输入：&lt;br /&gt;&lt;blockquote&gt;$ vim scp://&lt;a class="ot-anchor" href="http://t@tigerlee.me/"&gt;t@tigerlee.me/&lt;/a&gt;&lt;/blockquote&gt;然后再在稍后出现的路径列表里慢慢选了。&lt;br /&gt;netrw共支持三&lt;wbr&gt;&lt;/wbr&gt;种使用模式：远程编辑，远程浏览（包括浏览目录内容），远程写入。不同的模式，支持的协议也不同。这是理所&lt;wbr&gt;&lt;/wbr&gt;当然了，不然对于HTTP地址的文件，怎么写入啊？以下是不同模式支持的协议：&lt;br /&gt;&lt;pre&gt;远程编辑&lt;br /&gt;:e&amp;nbsp;dav:&lt;wbr&gt;&lt;/wbr&gt;//machine[:port]/path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses cadaver&lt;br /&gt;:e fetch://[user@]machine/path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses fetch&lt;br /&gt;:e ftp://[user@]machine[[:#]port]/path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses ftp&amp;nbsp;&amp;nbsp; autodetects &amp;lt;.netrc&amp;gt;&lt;br /&gt;:e http://[user@]machine/path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses http&amp;nbsp;&amp;nbsp;uses wget&lt;br /&gt;:e rcp://[user@]machine/path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uses rcp&lt;br /&gt;:e rsync://[user@]machine[:port]/path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   uses rsync&lt;br /&gt;:e scp://[user@]machine[[:#]port]/path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  uses scp&lt;br /&gt;:e sftp://[user@]machine/path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses sftp&lt;br /&gt;&lt;br /&gt;远程浏览&lt;br /&gt;:Nread ?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;give help&lt;br /&gt;:Nread "machine:path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses rcp&lt;br /&gt;:Nread "machine path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uses ftp&amp;nbsp;&amp;nbsp; with &amp;lt;.netrc&amp;gt;&lt;br /&gt;:Nread "machine id password path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses ftp&lt;br /&gt;:Nread "dav://machine[:port]/path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses cadaver&lt;br /&gt;:Nread "fetch://[user@]machine/path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses fetch&lt;br /&gt;:Nread "ftp://[user@]machine[[:#]port]/path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses ftp&amp;nbsp;&amp;nbsp; autodetects &amp;lt;.netrc&amp;gt;&lt;br /&gt;:Nread "http://[user@]machine/path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses http&amp;nbsp;&amp;nbsp;uses wget&lt;br /&gt;:Nread "rcp://[user@]machine/path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uses rcp&lt;br /&gt;:Nread "rsync://[user@]machine[:port]/path"&amp;nbsp;  &amp;nbsp; uses rsync&lt;br /&gt;:Nread "scp://[user@]machine[[:#]port]/path"&amp;nbsp;&amp;nbsp;  uses scp&lt;br /&gt;:Nread "sftp://[user@]machine/path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uses sftp&lt;br /&gt;&lt;br /&gt;远程写入&lt;br /&gt;:Nwrite ?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;give help&lt;br /&gt;:Nwrite "machine:path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses rcp&lt;br /&gt;:Nwrite "machine path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses ftp&amp;nbsp;&amp;nbsp; with &amp;lt;.netrc&amp;gt;&lt;br /&gt;:Nwrite "machine id password path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses ftp&lt;br /&gt;:Nwrite "dav://machine[:port]/path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses cadaver&lt;br /&gt;:Nwrite "ftp://[user@]machine[[:#]port]/path"&amp;nbsp;&amp;nbsp; uses ftp&amp;nbsp;&amp;nbsp; autodetects &amp;lt;.netrc&amp;gt;&lt;br /&gt;:Nwrite "rcp://[user@]machine/path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses rcp&lt;br /&gt;:Nwrite "rsync://[user@]machine[:port]/path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses rsync&lt;br /&gt;:Nwrite "scp://[user@]machine[[:#]port]/path"&amp;nbsp;&amp;nbsp; uses scp&lt;br /&gt;:Nwrite "sftp://[user@]machine/path"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uses sftp&lt;br /&gt;http: not supported!&lt;/pre&gt;小总结一下：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;网速慢，文件小的情况下，可以使用此法编辑远程文件。&lt;/li&gt;&lt;li&gt;网速快，文&lt;wbr&gt;&lt;/wbr&gt;件大的情况下，那就远程编辑文件吧。&lt;/li&gt;&lt;li&gt;网速慢，文件大或网速快，文件小的情况下，你应该明白怎样做吧？&lt;/li&gt;&lt;/ul&gt;&lt;div class=
