<?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-6733890142173588113</id><updated>2011-07-31T14:46:27.196+09:00</updated><category term='others'/><category term='linux'/><category term='JNI'/><category term='vim'/><category term='japanese'/><category term='Windows'/><category term='shell'/><category term='SandBox'/><category term='Project Manager'/><category term='PhotoGraphy'/><title type='text'>城市猟人</title><subtitle type='html'>何を書けばいいかなぁ？</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>45</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-1818218113453655499</id><published>2010-07-28T00:24:00.001+09:00</published><updated>2010-07-28T00:25:10.752+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>ubuntu下的WPA无线网络配置</title><content type='html'>安装好网卡后，安装 (最新版Ubuntu Server 10.04已集成wpasupplicant) &lt;br /&gt;apt-get install wpasupplicant &lt;br /&gt;&lt;br /&gt;生成配置文件：&lt;br /&gt;wpa_passphrase YOUR_SSID YOUR_KEY &gt; /etc/wpa_supplicant.conf&lt;br /&gt;&lt;br /&gt;修改/etc/network/interfaces：&lt;br /&gt;auto wlan0&lt;br /&gt;iface wlan0 inet dhcp&lt;br /&gt;wpa-conf /etc/wpa_supplicant.conf &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;（/etc/wpa_supplicant.conf 这个位置可以随便定）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-1818218113453655499?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/1818218113453655499/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=1818218113453655499&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/1818218113453655499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/1818218113453655499'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2010/07/ubuntuwpa.html' title='ubuntu下的WPA无线网络配置'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-93350490234728008</id><published>2010-04-16T00:59:00.000+09:00</published><updated>2010-04-16T01:00:22.798+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>不同的类UNIX操作系统密码破解方法介绍</title><content type='html'>（一）Linux 系统密码破解&lt;br /&gt;&lt;br /&gt;1.在grub选项菜单按E进入编辑模式&lt;br /&gt;&lt;br /&gt;2.编辑kernel那行 /init 1 (或/single)&lt;br /&gt;&lt;br /&gt;3.按B重启&lt;br /&gt;&lt;br /&gt;4.进入后执行下列命令&lt;br /&gt;&lt;br /&gt;root@#passwd root (设置root的密码)&lt;br /&gt;&lt;br /&gt;Enter new unix password:输入新的密码&lt;br /&gt;&lt;br /&gt;root@#init 6&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;（二）debian linux 系统密码破解&lt;br /&gt;&lt;br /&gt;1.在grub选项菜单'Debian GNU/Linux,...(recovery mode)'，按e进入编辑模式&lt;br /&gt;&lt;br /&gt;2.编辑kernel那行最后面的 ro single 改成 rw single init=/bin/bash，按b执行重启&lt;br /&gt;&lt;br /&gt;3.进入后执行下列命令&lt;br /&gt;&lt;br /&gt;root@(none)#mount -a&lt;br /&gt;&lt;br /&gt;root@(none)#passwd root&lt;br /&gt;&lt;br /&gt;root@(none)#reboot&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;（三）Freebsd 系统密码破解&lt;br /&gt;&lt;br /&gt;1.开机进入引导菜单&lt;br /&gt;&lt;br /&gt;2.选择每项(按4)进入单用户模式&lt;br /&gt;&lt;br /&gt;3.进入之后输入一列命令&lt;br /&gt;&lt;br /&gt;root@#mount -a&lt;br /&gt;&lt;br /&gt;root@#fsck -y&lt;br /&gt;&lt;br /&gt;root@#passwd(修改密码命令)&lt;br /&gt;&lt;br /&gt;root@#root(要破解密码的用户名)&lt;br /&gt;&lt;br /&gt;Enter new unix password:&lt;br /&gt;&lt;br /&gt;root@#init 6 (重启)&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;（四）Solaris 系统密码破解&lt;br /&gt;&lt;br /&gt;1.在grub选项菜中选择solaris failasfe 项&lt;br /&gt;&lt;br /&gt;2.系统提示Do you wish to have it mounted read-write on /a ?[y,n,?] 选择y&lt;br /&gt;&lt;br /&gt;3.就进入单用户模式&lt;br /&gt;&lt;br /&gt;4.输入下列命令&lt;br /&gt;&lt;br /&gt;#passwd&lt;br /&gt;&lt;br /&gt;#New passwd:输入新的密码&lt;br /&gt;&lt;br /&gt;#Re-enter New passwd:在次输入新的密码&lt;br /&gt;&lt;br /&gt;#init 6 (重启)&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;（五）NetBsd 系统密码破解&lt;br /&gt;&lt;br /&gt;1.开机：当出现提示符号并开始倒数五秒时， 键入以下指令：&lt;br /&gt;&lt;br /&gt;&gt; boot -s (进入单用户模式命令)&lt;br /&gt;&lt;br /&gt;2.在以下的提示符号中&lt;br /&gt;&lt;br /&gt;Enter pathname of shell or RETURN for sh:&lt;br /&gt;&lt;br /&gt;按下 Enter。&lt;br /&gt;&lt;br /&gt;3.键入以下指令：&lt;br /&gt;&lt;br /&gt;# mount -a&lt;br /&gt;&lt;br /&gt;# fsck -y&lt;br /&gt;&lt;br /&gt;4.使用 passwd 更改 root 的密码。&lt;br /&gt;&lt;br /&gt;5.使用 exit 指令进入多人模式。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-93350490234728008?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/93350490234728008/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=93350490234728008&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/93350490234728008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/93350490234728008'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2010/04/unix.html' title='不同的类UNIX操作系统密码破解方法介绍'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-8346694067122601936</id><published>2010-03-28T20:40:00.002+09:00</published><updated>2010-03-28T20:41:12.364+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>VIM配置初级指南</title><content type='html'>在终端下使用vim进行编辑时，默认情况下，编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能的。为了更好的在vim下进行工作，需要手动设置一个配置文件：.vimrc。&lt;br /&gt;&lt;br /&gt;在启动vim时，当前用户根目录下的.vimrc文件会被自动读取，该文件可以包含一些设置甚至脚本，所以，一般情况下把.vimrc文件创建在当前用户的根目录下比较方便，即创建的命令为：&lt;br /&gt;&lt;br /&gt;$vi ~/.vimrc&lt;br /&gt;&lt;br /&gt;设置完后&lt;br /&gt;&lt;br /&gt;$:x 或者 $wq&lt;br /&gt;&lt;br /&gt;进行保存退出即可。&lt;br /&gt;&lt;br /&gt;VIM 中可供用户定制的选项非常非常多， 作为初学者， 我们没有必要了解这么多东西。 下面， 滇狐简单列出了一些最常用的配置项， 大家可以根据自己的需要将这些内容添加到自己的 .vimrc 中。&lt;br /&gt;1 基本设置&lt;br /&gt;&lt;br /&gt;    * set nocp&lt;br /&gt;      该命令指定让 VIM 工作在不兼容模式下。 在 VIM 之前， 出现过一个非常流行的编辑器叫 vi。 VIM 许多操作与 vi 很相似， 但也有许多操作与 vi 是不一样的。 如果使用“:set cp”命令打开了兼容模式开关的话， VIM 将尽可能地模仿 vi 的操作模式。&lt;br /&gt;      也许有许多人喜欢“最正统的 vi”的操作模式， 对于初学者来说， vi 里许多操作是比较不方便的。&lt;br /&gt;      举一个例子， VIM 里允许在 Insert 模式下使用方向键移动光标， 而 vi 里在 Insert 模式下是不能移动光标的， 必须使用 ESC 退回到 Normal 模式下才行。&lt;br /&gt;      再举一个例子， vi 里使用 u 命令可以撤消一次先前的操作， 再次按下 u 时， 将撤消“撤消”这个动作本身， 也就是我们常说的“重复”(redo)。 而 VIM 里可以使用 u 命令撤消多步操作， “重复”使用的快捷键是 Ctrl + R。&lt;br /&gt;      使用兼容模式后， VIM 将放弃这些新的功能， 尽量模仿 vi 的各种操作方式。 只有在不兼容模式下， 才能更好地发挥 VIM 自身的特点。 Bram 爷爷强烈推荐大家使用 VIM 的不兼容模式， 滇狐也是这样推荐的。 请务必在你的 .vimrc 中的第一行写上： “set nocp”。&lt;br /&gt;    * set ru&lt;br /&gt;      该命令打开 VIM 的状态栏标尺。 默认情况下， VIM 的状态栏标尺在屏幕底部， 它能即时显示当前光标所在位置在文件中的行号、列号， 以及对应的整个文件的百分比。 打开标尺可以给文件的编辑工作带来一定方便。&lt;br /&gt;    * set hls&lt;br /&gt;      搜索时高亮显示被找到的文本。 该指令的功能在 vimtutor 中已经有过介绍， 这里就不多说了。 其实似乎许多人并不喜欢这个功能。&lt;br /&gt;    * set is&lt;br /&gt;      搜索时在未完全输入完毕要检索的文本时就开始检索。 vimtutor 对该命令也有过介绍， 滇狐并不喜欢这个功能， 因此滇狐自己的配置文件里是没有这条命令的。 但是周围有朋友很喜欢这个， 因此滇狐还是将它列在这里。&lt;br /&gt;    * syntax on&lt;br /&gt;      打开关键字上色。 进行程序设计的朋友应该都知道关键字上色是什么东西， 因此这里就不多说了。 不进行程序设计的朋友不妨也打开这个功能， 虽然不一定能够用得着， 但这个功能其实也是很好玩的。&lt;br /&gt;    * set backspace=indent,eol,start&lt;br /&gt;      设想这样一个情况： 当前光标前面有若干字母， 我们按下 i 键进入了 Insert 模式， 然后输入了 3 个字母， 再按 5 下删除(Backspace)。 默认情况下， VIM 仅能删除我们新输入的 3 个字母， 然后喇叭“嘟嘟”响两声。 如果我们“set backspace=start”， 则可以在删除了新输入的 3 个字母之后， 继续向前删除原有的两个字符。&lt;br /&gt;      再设想一个情况： 有若干行文字， 我们把光标移到中间某一行的行首， 按 i 键进入 Insert 模式， 然后按一下 Backspace。 默认情况下， 喇叭会“嘟”一声， 然后没有任何动静。 如果我们“set backspace=eol”， 则可以删除前一行行末的回车， 也就是说将两行拼接起来。&lt;br /&gt;      当我们设置了自动缩进后， 如果前一行缩进了一定距离， 按下回车后， 下一行也会保持相同的缩进。 默认情况下， 我们不能在 Insert 模式下直接按 Backspace 删除行首的缩进。 如果我们“set backspace=indent”， 则可以开启这一项功能。&lt;br /&gt;      上述三项功能， 你可以根据自己的需要， 选择其中一种或几种， 用逗号分隔各个选项。 建议把这三个选项都选上。&lt;br /&gt;    * set whichwrap=b,s,&lt;,&gt;,[,]&lt;br /&gt;      默认情况下， 在 VIM 中当光标移到一行最左边的时候， 我们继续按左键， 光标不能回到上一行的最右边。 同样地， 光标到了一行最右边的时候， 我们不能通过继续按右跳到下一行的最左边。 但是， 通过设置 whichwrap 我们可以对一部分按键开启这项功能。 如果想对某一个或几个按键开启到头后自动折向下一行的功能， 可以把需要开启的键的代号写到 whichwrap 的参数列表中， 各个键之间使用逗号分隔。 以下是 whichwrap 支持的按键名称列表：&lt;br /&gt;          o b&lt;br /&gt;            在 Normal 或 Visual 模式下按删除(Backspace)键。&lt;br /&gt;          o s&lt;br /&gt;            在 Normal 或 Visual 模式下按空格键。&lt;br /&gt;          o h&lt;br /&gt;            在 Normal 或 Visual 模式下按 h 键。&lt;br /&gt;          o l&lt;br /&gt;            在 Normal 或 Visual 模式下按 l 键。&lt;br /&gt;          o &lt;&lt;br /&gt;            在 Normal 或 Visual 模式下按左方向键。&lt;br /&gt;          o &gt;&lt;br /&gt;            在 Normal 或 Visual 模式下按右方向键。&lt;br /&gt;          o ~&lt;br /&gt;            在 Normal 模式下按 ~ 键(翻转当前字母大小写)。&lt;br /&gt;          o [&lt;br /&gt;            在 Insert 或 Replace 模式下按左方向键。&lt;br /&gt;          o ]&lt;br /&gt;            在 Insert 或 Replace 模式下按右方向键。 &lt;br /&gt;    * set encoding=utf-8&lt;br /&gt;      设置当前字符编码为 UTF-8。 UTF-8 是支持字符集最多的编码之一， 在 UTF-8 下进行工作， 会带来许多方便之处。 由于 VIM 在运行过程中切换 encoding 会造成许多问题， 如提示信息乱码、 register 丢失等， 因此强烈建议大家在启动 VIM 的时候把 encoding 设置为 UTF-8， 在编辑非 UTF-8 的文件时， 通过 fileencoding 来进行转码。&lt;br /&gt;    * set langmenu=zh_CN.UTF-8&lt;br /&gt;      使用中文菜单， 并使用 UTF-8 编码。 如果没有这句的话， 在非 UTF-8 的系统， 如 Windows 下， 用了 UTF-8 的 encoding 后菜单会乱码。&lt;br /&gt;    * language message zh_CN.UTF-8&lt;br /&gt;      使用中文提示信息， 并使用 UTF-8 编码。 如果没有这句的话， 在非 UTF-8 的系统， 如 Windows 下， 用了 UTF-8 的 encoding 后系统提示会乱码。&lt;br /&gt;    * set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1&lt;br /&gt;      设置编码的自动识别。 关于这条设置的详细含义， 请参看这篇文章。&lt;br /&gt;    * set ambiwidth=double&lt;br /&gt;      防止特殊符号无法正常显示。 在 Unicode 中， 许多来自不同语言的字符， 如果字型足够近似的话， 会把它们放在同一个编码中。 但在不同编码中， 字符的宽度是不一样的。 例如中文汉语拼音中的 ā 就很宽， 而欧洲语言中同样的字符就很窄。 当 VIM 工作在 Unicode 状态时， 遇到这些宽度不明的字符时， 默认使用窄字符， 这会导致中文的破折号“——”非常短， 五角星“★”等符号只能显示一半。 因此， 我们需要设置 ambiwidth=double 来解决这个问题。&lt;br /&gt;    * filetype plugin indent on&lt;br /&gt;      开启文件类型自动识别， 启用文件类型插件， 启用针对文件类型的自动缩进。 &lt;br /&gt;&lt;br /&gt;2 文本编辑设置&lt;br /&gt;&lt;br /&gt;    * set sw=4&lt;br /&gt;      自动缩进的时候， 缩进尺寸为 4 个空格。&lt;br /&gt;    * set ts=4&lt;br /&gt;      Tab 宽度为 4 个字符。&lt;br /&gt;    * set et&lt;br /&gt;      编辑时将所有 Tab 替换为空格。&lt;br /&gt;      该选项只在编辑时将 Tab 替换为空格， 如果打开一个已经存在的文件， 并不会将已有的 Tab 替换为空格。 如果希望进行这样的替换的话， 可以使用这条命令“:retab”。&lt;br /&gt;    * set smarttab&lt;br /&gt;      当使用 et 将 Tab 替换为空格之后， 按下一个 Tab 键就能插入 4 个空格， 但要想删除这 4 个空格， 就得按 4 下 Backspace， 很不方便。 设置 smarttab 之后， 就可以只按一下 Backspace 就删除 4 个空格了。&lt;br /&gt;    * set spell&lt;br /&gt;      打开拼写检查。 拼写有错的单词下方会有红色波浪线， 将光标放在单词上， 按 z= 就会出现拼写建议， 按 ]s 可以直接跳到下一个拼写错误处。 &lt;br /&gt;&lt;br /&gt;3 断行设置&lt;br /&gt;&lt;br /&gt;    * set tw=78&lt;br /&gt;      设置光标超过 78 列的时候折行。&lt;br /&gt;    * set lbr&lt;br /&gt;      不在单词中间断行。 设置了这个选项后， 如果一行文字非常长， 无法在一行内显示完的话， 它会在单词与单词间的空白处断开， 尽量不会把一个单词分成两截放在两个不同的行里。&lt;br /&gt;    * set fo+=mB&lt;br /&gt;      打开断行模块对亚洲语言支持。 m 表示允许在两个汉字之间断行， 即使汉字之间没有出现空格。 B 表示将两行合并为一行的时候， 汉字与汉字之间不要补空格。 该命令支持的更多的选项请参看用户手册。 &lt;br /&gt;&lt;br /&gt;4 C/C++ 编码设置&lt;br /&gt;&lt;br /&gt;    * set sm&lt;br /&gt;      显示括号配对情况。 打开这个选项后， 当输入后括号 (包括小括号、中括号、大括号) 的时候， 光标会跳回前括号片刻， 然后跳回来， 以此显示括号的配对情况。&lt;br /&gt;    * set cin&lt;br /&gt;      打开 C/C++ 风格的自动缩进。 打开了自动缩进后， 在编码的时候我们可以使用“V”命令选中一段文本后， 按“=”将这段文本重新调整缩进格式， 在一定程度上起到代码美化的作用。&lt;br /&gt;      另外， 打开了自动缩进后， 在使用 TERM 下的 vim 的时， 粘贴代码时常常会出现版式混乱的现象。 那是因为 TERM 并不知道你现在正在粘贴代码， 它直接“粘贴”动作向 vim 解释为键入， 因此 vim 便按照设置的自动缩进格式为你的代码调整了缩进。 不幸的是， 粘贴进去的代码中本身已经包含了缩进， 因此便出现了版式混乱的情况。 在 gvim 中就不会出现这个问题， 因为它能够知道你现在正在粘贴。&lt;br /&gt;      知道了这个症状的来由， 解决方案也就显而易见了： 在粘贴的时候把所有自动缩进都关闭， 粘贴完毕之后再打开。 一个个手工关闭自动缩进未免过于繁琐， vim 为我们提供了一个很好用的命令， 只要输入“:set paste”， 就可以关闭所有自动缩进。 粘贴完毕后再输入“:set nopaste”就可以重新打开原有的自动缩进设置了。&lt;br /&gt;    * set cino=:0g0t0(sus&lt;br /&gt;      设定 C/C++ 风格自动缩进的选项， 这里简要介绍一下这段代码里用到的选项的含义， cino 支持的选项还很多， 更多选项请看用户手册。 &lt;br /&gt;&lt;br /&gt;// :0&lt;br /&gt;//&lt;br /&gt;// switch 语句之下的 case 语句缩进 0 个空格，也就是说不缩进，与 switch 块平&lt;br /&gt;// 齐，使用这样风格：&lt;br /&gt;switch (x)&lt;br /&gt;{&lt;br /&gt;case 1:&lt;br /&gt;     a = b;&lt;br /&gt;    break;&lt;br /&gt;default:&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// g0&lt;br /&gt;//&lt;br /&gt;// class、struct 等之下的访问权限控制语句，如 public、protected、private 等，&lt;br /&gt;// 相对 class、struct 等所在的块缩进 0 个空格，与 class 等块平齐，使用这样的&lt;br /&gt;// 风格：&lt;br /&gt;class foo&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;    int a;&lt;br /&gt;private:&lt;br /&gt;    int b;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// t0&lt;br /&gt;//&lt;br /&gt;// 如果函数返回值与函数名不在同一行，则返回值缩进 0 个空格，也就是说不缩进，如&lt;br /&gt;// 下所示：&lt;br /&gt;&lt;br /&gt;// set cino=t4&lt;br /&gt;    int&lt;br /&gt;func1()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// set cino=t0&lt;br /&gt;int&lt;br /&gt;func()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// (sus&lt;br /&gt;//&lt;br /&gt;// 当一对括号跨越多行时，其后的行缩进前面 sw 指定的距离，效果如下：&lt;br /&gt;int a = (1 + 2 + 3&lt;br /&gt;     + 4 + 5 + 6&lt;br /&gt;     + 7 + 8) * 9;&lt;br /&gt;&lt;br /&gt;    * set ai&lt;br /&gt;      打开普通文件类型的自动缩进。 该自动缩进不如 cindent 智能， 但它可以为你编辑非 C/C++ 文件提供一定帮助。 &lt;br /&gt;&lt;br /&gt;5 其它设置&lt;br /&gt;&lt;br /&gt;    * set selectmode=&lt;br /&gt;      不使用 selectmode。&lt;br /&gt;    * set keymodel=&lt;br /&gt;      不使用 “Shift + 方向键”选择文本， “Shift + 方向键”代表向指定方向跳一个单词。 如果你喜欢这项功能的话， 可以使用“set keymodel=startsel,stopsel”打开它。&lt;br /&gt;    * set selection=inclusive&lt;br /&gt;      指定在选择文本时， 光标所在位置也属于被选中的范围。 如果指定 selection=exclusive 的话， 可能会出现某些文本无法被选中的情况。&lt;br /&gt;    * set wildmenu&lt;br /&gt;      在命令模式下使用 Tab 自动补全的时候， 将补全内容使用一个漂亮的单行菜单形式显示出来。&lt;br /&gt;    * colo torte&lt;br /&gt;      选择 torte 配色方案。 VIM 里内置了许多关键字上色的配色方案， 另外你还可以到网上下载更多配色方案， 或是自己编写。 点击“编辑”→“调色板”， 就能列出所有支持的配色方案。 你可以把“调色板”子菜单剪下来， 然后慢慢选择， 挑出一个你最喜欢的配色方案来。 &lt;br /&gt;&lt;br /&gt;6 图形界面设置&lt;br /&gt;&lt;br /&gt;    * set nowrap&lt;br /&gt;      指定不折行。 如果一行太长， 超过屏幕宽度， 则向右边延伸到屏幕外面。 如果使用图形界面的话， 指定不折行视觉效果会好得多。&lt;br /&gt;    * set mousemodel=popup&lt;br /&gt;      当右键单击窗口的时候， 弹出快捷菜单。&lt;br /&gt;    * set guioptions+=b&lt;br /&gt;      添加水平滚动条。 如果你指定了不折行， 那为窗口添加一个水平滚动条就非常有必要了。&lt;br /&gt;    * set guifont=Bitstream Vera Sans Mono 9&lt;br /&gt;      设置图形界面下的字体。 你可以点“编辑”→“选择字体”， 然后在对话框中选出你喜欢的字体与字号， 选择完毕后， 先按几下 ESC 确认处在 Normal 模式下， 然后输入这条命令：“:set guifont?” 回车后 gvim 屏幕最下方会显示出你当前所用的字体的名称与字号。 将获得的结果写到配置文件里面就可以了， 需要注意一点， 如果字体名称里面含有空格的话， 在抄的时候需要在所有空格前面加一个斜杠。 &lt;br /&gt;&lt;br /&gt;7 条件选择&lt;br /&gt;&lt;br /&gt;同一个配色方案， 在 gvim 下和字符界面的 vim 下效果大相径庭， 滇狐个人的习惯是， 在 gvim 下使用 torte 配色方案， 在 vim 下使用 ron 配色方案。 因此我们有必要针对 gvim 和 vim 进行不同的设置。&lt;br /&gt;&lt;br /&gt;另外， 前面我们在 gvim 下不使用折行， 开启水平滚动条， 但在 vim 下， 是没有滚动条可用的， 因此还是有必要为 vim 保留自动折行。&lt;br /&gt;&lt;br /&gt;条件选择设置的格式如下：&lt;br /&gt;if (has("gui_running"))&lt;br /&gt;" 图形界面下的设置&lt;br /&gt;    set nowrap&lt;br /&gt;    set guioptions+=b&lt;br /&gt;    colo torte&lt;br /&gt;else&lt;br /&gt;" 字符界面下的设置&lt;br /&gt;    set wrap&lt;br /&gt;    colo ron&lt;br /&gt;endif&lt;br /&gt;8 示例配置文件&lt;br /&gt;&lt;br /&gt;下面给出一个滇狐推荐的初学者专用 (G)Vim 配置文件， 里面没有太多个性化的设置， 方便大家进一步扩展：&lt;br /&gt;set nocp&lt;br /&gt;&lt;br /&gt;" Tab related&lt;br /&gt;set ts=4&lt;br /&gt;set sw=4&lt;br /&gt;set smarttab&lt;br /&gt;set et&lt;br /&gt;set ambiwidth=double&lt;br /&gt;&lt;br /&gt;" Format related&lt;br /&gt;set tw=78&lt;br /&gt;set lbr&lt;br /&gt;set fo+=mB&lt;br /&gt;&lt;br /&gt;" Indent related&lt;br /&gt;set cin&lt;br /&gt;set ai&lt;br /&gt;set cino=:0g0t0(susj1&lt;br /&gt;&lt;br /&gt;" Editing related&lt;br /&gt;set backspace=indent,eol,start&lt;br /&gt;set whichwrap=b,s,&lt;,&gt;,[,]&lt;br /&gt;set mouse=a&lt;br /&gt;set selectmode=&lt;br /&gt;set mousemodel=popup&lt;br /&gt;set keymodel=&lt;br /&gt;set selection=inclusive&lt;br /&gt;&lt;br /&gt;" Misc&lt;br /&gt;set wildmenu&lt;br /&gt;set spell&lt;br /&gt;&lt;br /&gt;" Encoding related&lt;br /&gt;set encoding=utf-8&lt;br /&gt;set langmenu=zh_CN.UTF-8&lt;br /&gt;language message zh_CN.UTF-8&lt;br /&gt;set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1&lt;br /&gt;&lt;br /&gt;" File type related&lt;br /&gt;filetype plugin indent on&lt;br /&gt;&lt;br /&gt;" Display related&lt;br /&gt;set ru&lt;br /&gt;set sm&lt;br /&gt;set hls&lt;br /&gt;if (has("gui_running"))&lt;br /&gt;    set guioptions+=b&lt;br /&gt;    colo torte&lt;br /&gt;    set nowrap&lt;br /&gt;else&lt;br /&gt;    colo ron&lt;br /&gt;    set wrap&lt;br /&gt;endif&lt;br /&gt;syntax on&lt;br /&gt;&lt;br /&gt;"=============================================================================&lt;br /&gt;" Platform dependent settings&lt;br /&gt;"=============================================================================&lt;br /&gt;&lt;br /&gt;if (has("win32"))&lt;br /&gt;&lt;br /&gt;     "-------------------------------------------------------------------------&lt;br /&gt;     " Win32&lt;br /&gt;     "-------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;    if (has("gui_running"))&lt;br /&gt;        set guifont=Bitstream_Vera_Sans_Mono:h9:cANSI&lt;br /&gt;        set guifontwide=NSimSun:h9:cGB2312&lt;br /&gt;    endif&lt;br /&gt;&lt;br /&gt;else&lt;br /&gt;&lt;br /&gt;    if (has("gui_running"))&lt;br /&gt;        set guifont=Bitstream Vera Sans Mono 9&lt;br /&gt;    endif&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-8346694067122601936?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/8346694067122601936/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=8346694067122601936&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8346694067122601936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8346694067122601936'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2010/03/vim.html' title='VIM配置初级指南'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-4725397633808024080</id><published>2009-12-26T13:17:00.002+09:00</published><updated>2009-12-26T13:20:17.540+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='others'/><title type='text'>Smile</title><content type='html'>&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Cbk980jV7Ao&amp;amp;hl=ja_JP&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Cbk980jV7Ao&amp;amp;hl=ja_JP&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-4725397633808024080?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/4725397633808024080/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=4725397633808024080&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/4725397633808024080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/4725397633808024080'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2009/12/smile.html' title='Smile'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-8398637881732841002</id><published>2009-12-20T23:57:00.003+09:00</published><updated>2009-12-21T00:13:37.351+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='others'/><title type='text'>笑一笑</title><content type='html'>&lt;ol&gt;&lt;li&gt;我们小学毕业F D了，我们初中毕业禽流感了，我们高中毕业甲流了，我们大学毕业....2012了&lt;/li&gt;&lt;li&gt;等中国强大了，全叫老外考中文四六级！文言文太简单，全用毛笔答题，这是便宜他们，惹急了爷，一人一把刀，一个龟壳，刻甲骨文。论文题目就叫论三个代表，听力全用周杰伦的歌，双节棍只听一遍，阅读理解就用周易，口试要求唱京剧，实验就考包饺子&lt;/li&gt;&lt;li&gt;刚上大学，我们怀着憧憬看了《奋斗》，当我们踟躇的时候，我们看了《我的青春谁做主》，就当我们即将豁然开朗的时候，一部《蜗居》把我们全拍死了。绝望中，我们看了《2012》，顿时淡定了。买什么房子啊，早晚要塌的！&lt;/li&gt;&lt;li&gt;毛主席语录第38章第5节第27行,不以结婚为目的的恋爱都是耍流氓&lt;/li&gt;&lt;li&gt;话说唐中宗李显是历史上最牛X的皇帝。这是为什么呢？因为他自己是皇帝，父亲是皇帝，弟弟是皇帝，儿子是皇帝，侄子是皇帝，更要命的是他妈也是皇帝，于是历史给了他一个很光耀的名字：六位帝皇丸。&lt;/li&gt;&lt;li&gt;祖国尚未统一，没有心情复习&lt;/li&gt;&lt;li&gt;鸳鸳相抱和时了，鸯在一旁看热闹&lt;/li&gt;&lt;li&gt;没有房地产就没有新中国，没有房地产就没有新中国。房地产，它辛劳占耕地；房地产，它一心谋暴利。房地产 它忽悠就能活;房地产 它一心救中国 它指给了富豪圈钱的门路，它引导go-vern-ment走向豪奢。它坚持了疯涨八年多，它改善了官员的生活；它构建了升官GDP，它收取了税费好处多。&lt;/li&gt;&lt;li&gt;明天你是否会想起/ 昨天你下的日剧/ 明天你是否还惦记/ 曾经红火的越狱/ 网友们都已想不起/ 下载了多少个G/ 我也是偶然翻硬盘/ 才想起CHINABT/ 谁封了你的服务器/ 谁锁了你的IP/ 谁把你的资源清洗/谁给你做的寿衣...&lt;/li&gt;&lt;li&gt;据说某公司招聘，先把收到的一大堆简历随机扔掉一半，因为他们的招聘理念是“我们不要运气不好的人”&lt;/li&gt;&lt;li&gt;清华女人就是专业，今儿在C楼听见一个女的打电话：“刚开始你把我当氧气，后来当空气，再后来当二氧化碳，现在已经把我当一氧化碳了，你什么意思！”&lt;/li&gt;&lt;li&gt;刷牙是一件悲喜交加的事情，因为一手拿着杯具，一手拿着洗具。&lt;/li&gt;&lt;li&gt;“恋”是个很强悍的字。它的上半部取自“变态”的“变”，下半部取自“变态”的“态”。&lt;/li&gt;&lt;li&gt;复习=不挂科，不复习=挂科，所以，复习+不复习=不挂科+挂科，提公因式、（1+不）复习=（不+1）挂科，约分，所以，复习=挂科 。我靠，真理诞生了&lt;br /&gt;&lt;/li&gt;&lt;li&gt;时间是最好的老师，但遗憾的是——最后他把所有的学生都弄死了。&lt;br /&gt;&lt;/li&gt;&lt;li&gt;新世纪女性：上得了厅堂，下得了厨房，写得了代码，查得出异常，杀得了木马，翻得了围墙，开得起好车，买得起新房，斗得过二奶，打得过流氓... &lt;/li&gt;&lt;li&gt;只要半个平米的价格，日韩新马泰都玩了一圈；一两个平米的价格，欧美列国也回来了；下一步只好策划去埃及南非这些更为神奇的所在......几年下来，全世界你都玩遍，可能还没花完一个厨房的价钱。但是那时候，说不定你的世界观都已经变了。&lt;/li&gt;&lt;li&gt;生活就像超级女生，走到最后的都是纯爷们&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-8398637881732841002?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/8398637881732841002/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=8398637881732841002&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8398637881732841002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8398637881732841002'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2009/12/blog-post.html' title='笑一笑'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-1705757951213591176</id><published>2009-12-20T14:59:00.007+09:00</published><updated>2009-12-20T16:16:18.379+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>我的Linux常用软件（随时更新）</title><content type='html'>Ubuntu9.1安装完成后，又安装了以下软件。&lt;br /&gt;记录下来，下次重装系统的时候用。&lt;br /&gt;&lt;ol&gt;&lt;li&gt;aMSN&lt;/li&gt;&lt;li&gt;腾讯QQ For Linux&lt;/li&gt;&lt;li&gt;Skype&lt;/li&gt;&lt;li&gt;Audacious2&lt;/li&gt;&lt;li&gt;MPlayer(SMPlayer)&lt;/li&gt;&lt;li&gt;GVim&lt;/li&gt;&lt;li&gt;EasyTAG&lt;/li&gt;&lt;li&gt;7zip&lt;/li&gt;&lt;li&gt;unrar&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-1705757951213591176?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/1705757951213591176/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=1705757951213591176&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/1705757951213591176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/1705757951213591176'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2009/12/linux.html' title='我的Linux常用软件（随时更新）'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-5858963539080838697</id><published>2009-12-09T01:52:00.000+09:00</published><updated>2009-12-09T01:54:54.174+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>《SED 单行脚本快速参考》的 awk 实现</title><content type='html'>&lt;p&gt;{ 撰文/&lt;a href="http://li2z.cn/"&gt;bones7456&lt;/a&gt; }&lt;/p&gt;  &lt;p&gt;sed 和 awk 都是 Linux 下常用的流编辑器，他们各有各的特色，本文并不是要做什么对比，而是权当好玩，把《&lt;a href="http://sed.sourceforge.net/sed1line_zh-CN.html"&gt;SED 单行脚本快速参考&lt;/a&gt;》这文章，用 awk 做了一遍~ 至于孰好孰坏，那真是很难评论了。一般来说，sed 的命令会更短小一些，同时也更难读懂；而 awk 稍微长点，但是 if、while 这样的，逻辑性比较强，更加像“程序”。到底喜欢用哪个，就让各位看官自己决定吧！&lt;span id="more-3552"&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;文本间隔：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;# 在每一行后面增加一空行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed G&lt;br /&gt;awk '{printf("%s\n\n",$0)}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 将原来的所有空行删除并在每一行后面增加一空行。&lt;br /&gt;# 这样在输出的文本中每一行后面将有且只有一空行。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/^$/d;G'&lt;br /&gt;awk '!/^$/{printf("%s\n\n",$0)}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 在每一行后面增加两行空行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 'G;G'&lt;br /&gt;awk '{printf("%s\n\n\n",$0)}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 将第一个脚本所产生的所有空行删除（即删除所有偶数行）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 'n;d'&lt;br /&gt;awk '{f=!f;if(f)print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 在匹配式样“regex”的行之前插入一空行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/regex/{x;p;x;}'&lt;br /&gt;awk '{if(/regex/)printf("\n%s\n",$0);else print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 在匹配式样“regex”的行之后插入一空行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/regex/G'&lt;br /&gt;awk '{if(/regex/)printf("%s\n\n",$0);else print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 在匹配式样“regex”的行之前和之后各插入一空行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/regex/{x;p;x;G;}'&lt;br /&gt;awk '{if(/regex/)printf("\n%s\n\n",$0);else print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;&lt;strong&gt;编号：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;# 为文件中的每一行进行编号（简单的左对齐方式）。这里使用了“制表符”&lt;br /&gt;# （tab，见本文末尾关于’\t’的用法的描述）而不是空格来对齐边缘。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed = filename | sed 'N;s/\n/\t/'&lt;br /&gt;awk '{i++;printf("%d\t%s\n",i,$0)}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 对文件中的所有行编号（行号在左，文字右端对齐）。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed = filename | sed 'N; s/^/     /; s/ *\(.\{6,\}\)\n/\1  /'&lt;br /&gt;awk '{i++;printf("%6d  %s\n",i,$0)}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 对文件中的所有行编号，但只显示非空白行的行号。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/./=' filename | sed '/./N; s/\n/ /'&lt;br /&gt;awk '{i++;if(!/^$/)printf("%d %s\n",i,$0);else print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 计算行数 （模拟 “wc -l”）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '$='&lt;br /&gt;awk '{i++}END{print i}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;&lt;strong&gt;文本转换和替代：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;# Unix环境：转换DOS的新行符（CR/LF）为Unix格式。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 's/.$//'                     # 假设所有行以CR/LF结束&lt;br /&gt;sed 's/^M$//'                    # 在bash/tcsh中，将按Ctrl-M改为按Ctrl-V&lt;br /&gt;sed 's/\x0D$//'                  # ssed、gsed 3.02.80，及更高版本&lt;br /&gt;awk '{sub(/\x0D$/,"");print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# Unix环境：转换Unix的新行符（LF）为DOS格式。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed "s/$/`echo -e \\\r`/"        # 在ksh下所使用的命令&lt;br /&gt;sed 's/$'"/`echo \\\r`/"         # 在bash下所使用的命令&lt;br /&gt;sed "s/$/`echo \\\r`/"           # 在zsh下所使用的命令&lt;br /&gt;sed 's/$/\r/'                    # gsed 3.02.80 及更高版本&lt;br /&gt;awk '{printf("%s\r\n",$0)}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# DOS环境：转换Unix新行符（LF）为DOS格式。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed "s/$//"                      # 方法 1&lt;br /&gt;sed -n p                         # 方法 2&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;DOS环境的略过&lt;/p&gt;  &lt;p&gt;# DOS环境：转换DOS新行符（CR/LF）为Unix格式。&lt;br /&gt;# 下面的脚本只对UnxUtils sed 4.0.7 及更高版本有效。要识别UnxUtils版本的&lt;br /&gt;# sed可以通过其特有的“–text”选项。你可以使用帮助选项（“–help”）看&lt;br /&gt;# 其中有无一个“–text”项以此来判断所使用的是否是UnxUtils版本。其它DOS&lt;br /&gt;# 版本的的sed则无法进行这一转换。但可以用“tr”来实现这一转换。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed "s/\r//" infile &gt;outfile     # UnxUtils sed v4.0.7 或更高版本&lt;br /&gt;tr -d \r &lt;infile&gt;outfile        # GNU tr 1.22 或更高版本&lt;br /&gt;&lt;/infile&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;DOS环境的略过&lt;/p&gt;  &lt;p&gt;# 将每一行前导的“空白字符”（空格，制表符）删除&lt;br /&gt;# 使之左对齐&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 's/^[ \t]*//'                # 见本文末尾关于'\t'用法的描述&lt;br /&gt;awk '{sub(/^[ \t]+/,"");print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 将每一行拖尾的“空白字符”（空格，制表符）删除&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 's/[ \t]*$//'                # 见本文末尾关于'\t'用法的描述&lt;br /&gt;awk '{sub(/[ \t]+$/,"");print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 将每一行中的前导和拖尾的空白字符删除&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 's/^[ \t]*//;s/[ \t]*$//'&lt;br /&gt;awk '{sub(/^[ \t]+/,"");sub(/[ \t]+$/,"");print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 在每一行开头处插入5个空格（使全文向右移动5个字符的位置）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 's/^/     /'&lt;br /&gt;awk '{printf("     %s\n",$0)}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 以79个字符为宽度，将所有文本右对齐&lt;br /&gt;# 78个字符外加最后的一个空格&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e :a -e 's/^.\{1,78\}$/ &amp;amp;/;ta'&lt;br /&gt;awk '{printf("%79s\n",$0)}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 以79个字符为宽度，使所有文本居中。在方法1中，为了让文本居中每一行的前&lt;br /&gt;# 头和后头都填充了空格。 在方法2中，在居中文本的过程中只在文本的前面填充&lt;br /&gt;# 空格，并且最终这些空格将有一半会被删除。此外每一行的后头并未填充空格。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed  -e :a -e 's/^.\{1,77\}$/ &amp;amp; /;ta'                     # 方法1&lt;br /&gt;sed  -e :a -e 's/^.\{1,77\}$/ &amp;amp;/;ta' -e 's/\( *\)\1/\1/'  # 方法2&lt;br /&gt;awk '{for(i=0;i&lt;39-length($0)/2;i++)printf("&gt;&lt;/pre&gt;  &lt;p&gt;# 在每一行中查找字串“foo”，并将找到的“foo”替换为“bar”&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 's/foo/bar/'                 # 只替换每一行中的第一个“foo”字串&lt;br /&gt;sed 's/foo/bar/4'                # 只替换每一行中的第四个“foo”字串&lt;br /&gt;sed 's/foo/bar/g'                # 将每一行中的所有“foo”都换成“bar”&lt;br /&gt;sed 's/\(.*\)foo\(.*foo\)/\1bar\2/' # 替换倒数第二个“foo”&lt;br /&gt;sed 's/\(.*\)foo/\1bar/'            # 替换最后一个“foo”&lt;br /&gt;awk '{gsub(/foo/,"bar");print $0}'   # 将每一行中的所有“foo”都换成“bar”&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 只在行中出现字串“baz”的情况下将“foo”替换成“bar”&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/baz/s/foo/bar/g'&lt;br /&gt;awk '{if(/baz/)gsub(/foo/,"bar");print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 将“foo”替换成“bar”，并且只在行中未出现字串“baz”的情况下替换&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/baz/!s/foo/bar/g'&lt;br /&gt;awk '{if(/baz$/)gsub(/foo/,"bar");print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 不管是“scarlet”“ruby”还是“puce”，一律换成“red”&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 's/scarlet/red/g;s/ruby/red/g;s/puce/red/g'  #对多数的sed都有效&lt;br /&gt;gsed 's/scarlet\|ruby\|puce/red/g'               # 只对GNU sed有效&lt;br /&gt;awk '{gsub(/scarlet|ruby|puce/,"red");print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 倒置所有行，第一行成为最后一行，依次类推（模拟“tac”）。&lt;br /&gt;# 由于某些原因，使用下面命令时HHsed v1.5会将文件中的空行删除&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '1!G;h;$!d'               # 方法1&lt;br /&gt;sed -n '1!G;h;$p'             # 方法2&lt;br /&gt;awk '{A[i++]=$0}END{for(j=i-1;j&gt;=0;j--)print A[j]}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 将行中的字符逆序排列，第一个字成为最后一字，……（模拟“rev”）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/\n/!G;s/\(.\)\(.*\n\)/&amp;amp;\2\1/;//D;s/.//'&lt;br /&gt;awk '{for(i=length($0);i&gt;0;i--)printf("%s",substr($0,i,1));printf("\n")}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 将每两行连接成一行（类似“paste”）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '$!N;s/\n/ /'&lt;br /&gt;awk '{f=!f;if(f)printf("%s",$0);else printf(" %s\n",$0)}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 如果当前行以反斜杠“\”结束，则将下一行并到当前行末尾&lt;br /&gt;# 并去掉原来行尾的反斜杠&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e :a -e '/\\$/N; s/\\\n//; ta'&lt;br /&gt;awk '{if(/\\$/)printf("%s",substr($0,0,length($0)-1));else printf("%s\n",$0)}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 如果当前行以等号开头，将当前行并到上一行末尾&lt;br /&gt;# 并以单个空格代替原来行头的“=”&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e :a -e '$!N;s/\n=/ /;ta' -e 'P;D'&lt;br /&gt;awk '{if(/^=/)printf(" %s",substr($0,2));else printf("%s%s",a,$0);a="\n"}END{printf("\n")}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 为数字字串增加逗号分隔符号，将“1234567”改为“1,234,567”&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;gsed ':a;s/\B[0-9]\{3\}\&gt;/,&amp;amp;/;ta'                     # GNU sed&lt;br /&gt;sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'  # 其他sed&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;#awk的正则没有后向匹配和引用，搞的比较狼狈，呵呵。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;awk '{while(match($0,/[0-9][0-9][0-9][0-9]+/)){$0=sprintf("%s,%s",substr($0,0,RSTART+RLENGTH-4),substr($0,RSTART+RLENGTH-3))}print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 为带有小数点和负号的数值增加逗号分隔符（GNU sed）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;gsed -r ':a;s/(^|[^0-9.])([0-9]+)([0-9]{3})/\1\2,\3/g;ta'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;#和上例差不多&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;awk '{while(match($0,/[^\.0-9][0-9][0-9][0-9][0-9]+/)){$0=sprintf("%s,%s",substr($0,0,RSTART+RLENGTH-4),substr($0,RSTART+RLENGTH-3))}print $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 在每5行后增加一空白行 （在第5，10，15，20，等行后增加一空白行）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;gsed '0~5G'                      # 只对GNU sed有效&lt;br /&gt;sed 'n;n;n;n;G;'                 # 其他sed&lt;br /&gt;awk '{print $0;i++;if(i==5){printf("\n");i=0}}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;&lt;strong&gt;选择性地显示特定行：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;# 显示文件中的前10行 （模拟“head”的行为）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 10q&lt;br /&gt;awk '{print;if(NR==10)exit}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示文件中的第一行 （模拟“head -1”命令）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed q&lt;br /&gt;awk '{print;exit}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示文件中的最后10行 （模拟“tail”）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e :a -e '$q;N;11,$D;ba'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;#用awk干这个有点亏，得全文缓存，对于大文件肯定很慢&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;awk '{A[NR]=$0}END{for(i=NR-9;i&lt;=NR;i++)print A[i]}' &lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示文件中的最后2行（模拟“tail -2”命令）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '$!N;$!D'&lt;br /&gt;awk '{A[NR]=$0}END{for(i=NR-1;i&lt;=NR;i++)print A[i]}' &lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示文件中的最后一行（模拟“tail -1”）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '$!d'                        # 方法1&lt;br /&gt;sed -n '$p'                      # 方法2&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;#这个比较好办，只存最后一行了。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;awk '{A=$0}END{print A}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示文件中的倒数第二行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e '$!{h;d;}' -e x              # 当文件中只有一行时，输出空行&lt;br /&gt;sed -e '1{$q;}' -e '$!{h;d;}' -e x  # 当文件中只有一行时，显示该行&lt;br /&gt;sed -e '1{$d;}' -e '$!{h;d;}' -e x  # 当文件中只有一行时，不输出&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;#存两行呗（当文件中只有一行时，输出空行）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;awk '{B=A;A=$0}END{print B}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 只显示匹配正则表达式的行（模拟“grep”）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '/regexp/p'               # 方法1&lt;br /&gt;sed '/regexp/!d'                 # 方法2&lt;br /&gt;awk '/regexp/{print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 只显示“不”匹配正则表达式的行（模拟“grep -v”）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '/regexp/!p'              # 方法1，与前面的命令相对应&lt;br /&gt;sed '/regexp/d'                  # 方法2，类似的语法&lt;br /&gt;awk '!/regexp/{print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 查找“regexp”并将匹配行的上一行显示出来，但并不显示匹配行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '/regexp/{g;1!p;};h'&lt;br /&gt;awk '/regexp/{print A}{A=$0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 查找“regexp”并将匹配行的下一行显示出来，但并不显示匹配行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '/regexp/{n;p;}'&lt;br /&gt;awk '{if(A)print;A=0}/regexp/{A=1}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示包含“regexp”的行及其前后行，并在第一行之前加上“regexp”所在行的行号 （类似“grep -A1 -B1”）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n -e '/regexp/{=;x;1!p;g;$!N;p;D;}' -e h&lt;br /&gt;awk '{if(F)print;F=0}/regexp/{print NR;print b;print;F=1}{b=$0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示包含“AAA”、“BBB”和“CCC”的行（任意次序）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/AAA/!d; /BBB/!d; /CCC/!d'   # 字串的次序不影响结果&lt;br /&gt;awk '{if(match($0,/AAA/) &amp;amp;&amp;amp; match($0,/BBB/) &amp;amp;&amp;amp; match($0,/CCC/))print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示包含“AAA”、“BBB”和“CCC”的行（固定次序）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/AAA.*BBB.*CCC/!d'&lt;br /&gt;awk '{if(match($0,/AAA.*BBB.*CCC/))print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示包含“AAA”“BBB”或“CCC”的行 （模拟“egrep”）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e '/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d    # 多数sed&lt;br /&gt;gsed '/AAA\|BBB\|CCC/!d'                        # 对GNU sed有效&lt;br /&gt;awk '/AAA/{print;next}/BBB/{print;next}/CCC/{print}'&lt;br /&gt;awk '/AAA|BBB|CCC/{print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示包含“AAA”的段落 （段落间以空行分隔）&lt;br /&gt;# HHsed v1.5 必须在“x;”后加入“G;”，接下来的3个脚本都是这样&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;'&lt;br /&gt;awk 'BEGIN{RS=""}/AAA/{print}'&lt;br /&gt;awk -vRS= '/AAA/{print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示包含“AAA”“BBB”和“CCC”三个字串的段落 （任意次序）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;/BBB/!d;/CCC/!d'&lt;br /&gt;awk -vRS= '{if(match($0,/AAA/) &amp;amp;&amp;amp; match($0,/BBB/) &amp;amp;&amp;amp; match($0,/CCC/))print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示包含“AAA”、“BBB”、“CCC”三者中任一字串的段落 （任意次序）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e '/./{H;$!d;}' -e 'x;/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d&lt;br /&gt;gsed '/./{H;$!d;};x;/AAA\|BBB\|CCC/b;d'         # 只对GNU sed有效&lt;br /&gt;awk -vRS= '/AAA|BBB|CCC/{print "";print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示包含65个或以上字符的行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '/^.\{65\}/p'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;cat ll.txt | awk '{if(length($0)&gt;=65)print}'&lt;/p&gt;  &lt;p&gt;# 显示包含65个以下字符的行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '/^.\{65\}/!p'            # 方法1，与上面的脚本相对应&lt;br /&gt;sed '/^.\{65\}/d'                # 方法2，更简便一点的方法&lt;br /&gt;awk '{if(length($0)&lt;=65)print}' &lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示部分文本——从包含正则表达式的行开始到最后一行结束&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '/regexp/,$p'&lt;br /&gt;awk '/regexp/{F=1}{if(F)print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示部分文本——指定行号范围（从第8至第12行，含8和12行）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '8,12p'                   # 方法1&lt;br /&gt;sed '8,12!d'                     # 方法2&lt;br /&gt;awk '{if(NR&gt;=8 &amp;amp;&amp;amp; NR&lt;12)print}'&gt;&lt;/pre&gt;  &lt;p&gt;# 显示第52行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '52p'                     # 方法1&lt;br /&gt;sed '52!d'                       # 方法2&lt;br /&gt;sed '52q;d'                      # 方法3, 处理大文件时更有效率&lt;br /&gt;awk '{if(NR==52){print;exit}}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 从第3行开始，每7行显示一次&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;gsed -n '3~7p'                   # 只对GNU sed有效&lt;br /&gt;sed -n '3,${p;n;n;n;n;n;n;}'     # 其他sed&lt;br /&gt;awk '{if(NR==3)F=1}{if(F){i++;if(i%7==1)print}}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 显示两个正则表达式之间的文本（包含）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '/Iowa/,/Montana/p'       # 区分大小写方式&lt;br /&gt;awk '/Iowa/{F=1}{if(F)print}/Montana/{F=0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;&lt;strong&gt;选择性地删除特定行：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;# 显示通篇文档，除了两个正则表达式之间的内容&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/Iowa/,/Montana/d'&lt;br /&gt;awk '/Iowa/{F=1}{if(!F)print}/Montana/{F=0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除文件中相邻的重复行（模拟“uniq”）&lt;br /&gt;# 只保留重复行中的第一行，其他行删除&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '$!N; /^\(.*\)\n\1$/!P; D'&lt;br /&gt;awk '{if($0!=B)print;B=$0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除文件中的重复行，不管有无相邻。注意hold space所能支持的缓存大小，或者使用GNU sed。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n 'G; s/\n/&amp;amp;&amp;amp;/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P'  #bones7456注：我这里此命令并不能正常工作&lt;br /&gt;awk '{if(!($0 in B))print;B[$0]=1}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除除重复行外的所有行（模拟“uniq -d”）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '$!N; s/^\(.*\)\n\1$/\1/; t; D'&lt;br /&gt;awk '{if($0==B &amp;amp;&amp;amp; $0!=l){print;l=$0}B=$0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除文件中开头的10行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '1,10d'&lt;br /&gt;awk '{if(NR&gt;10)print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除文件中的最后一行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '$d'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;#awk在过程中并不知道文件一共有几行，所以只能通篇缓存，大文件可能不适合，下面两个也一样&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;awk '{B[NR]=$0}END{for(i=0;i&lt;=NR-1;i++)print B[i]}' &lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除文件中的最后两行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 'N;$!P;$!D;$d'&lt;br /&gt;awk '{B[NR]=$0}END{for(i=0;i&lt;=NR-2;i++)print B[i]}' &lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除文件中的最后10行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e :a -e '$d;N;2,10ba' -e 'P;D'   # 方法1&lt;br /&gt;sed -n -e :a -e '1,10!{P;N;D;};N;ba'  # 方法2&lt;br /&gt;awk '{B[NR]=$0}END{for(i=0;i&lt;=NR-10;i++)print B[i]}' &lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除8的倍数行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;gsed '0~8d'                           # 只对GNU sed有效&lt;br /&gt;sed 'n;n;n;n;n;n;n;d;'                # 其他sed&lt;br /&gt;awk '{if(NR%8!=0)print}' |head&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除匹配式样的行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/pattern/d'                      # 删除含pattern的行。当然pattern可以换成任何有效的正则表达式&lt;br /&gt;awk '{if(!match($0,/pattern/))print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除文件中的所有空行（与“grep ‘.’ ”效果相同）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/^$/d'                           # 方法1&lt;br /&gt;sed '/./!d'                           # 方法2&lt;br /&gt;awk '{if(!match($0,/^$/))print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 只保留多个相邻空行的第一行。并且删除文件顶部和尾部的空行。&lt;br /&gt;# （模拟“cat -s”）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/./,/^$/!d'        #方法1，删除文件顶部的空行，允许尾部保留一空行&lt;br /&gt;sed '/^$/N;/\n$/D'      #方法2，允许顶部保留一空行，尾部不留空行&lt;br /&gt;awk '{if(!match($0,/^$/)){print;F=1}else{if(F)print;F=0}}'  #同上面的方法2&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 只保留多个相邻空行的前两行。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/^$/N;/\n$/N;//D'&lt;br /&gt;awk '{if(!match($0,/^$/)){print;F=0}else{if(F&lt;2)print;f++}}'&gt;&lt;/pre&gt;  &lt;p&gt;# 删除文件顶部的所有空行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/./,$!d'&lt;br /&gt;awk '{if(F || !match($0,/^$/)){print;F=1}}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除文件尾部的所有空行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e :a -e '/^\n*$/{$d;N;ba' -e '}'  # 对所有sed有效&lt;br /&gt;sed -e :a -e '/^\n*$/N;/\n$/ba'        # 同上，但只对 gsed 3.02.*有效&lt;br /&gt;awk '/^.+$/{for(i=l;i&lt;nr-1;i++)print l="NR}'"&gt;&lt;/nr-1;i++)print&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 删除每个段落的最后一行&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -n '/^$/{p;h;};/./{x;/./p;}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;#很长，很ugly，应该有更好的办法&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;awk -vRS= '{B=$0;l=0;f=1;while(match(B,/\n/)&gt;0){print substr(B,l,RSTART-l-f);l=RSTART;sub(/\n/,"",B);f=0};print ""}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;&lt;strong&gt;特殊应用：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;# 移除手册页（man page）中的nroff标记。在Unix System V或bash shell下使&lt;br /&gt;# 用’echo’命令时可能需要加上 -e 选项。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed "s/.`echo \\\b`//g"    # 外层的双括号是必须的（Unix环境）&lt;br /&gt;sed 's/.^H//g'             # 在bash或tcsh中, 按 Ctrl-V 再按 Ctrl-H&lt;br /&gt;sed 's/.\x08//g'           # sed 1.5，GNU sed，ssed所使用的十六进制的表示方法&lt;br /&gt;awk '{gsub(/.\x08/,"",$0);print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 提取新闻组或 e-mail 的邮件头&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/^$/q'                # 删除第一行空行后的所有内容&lt;br /&gt;awk '{print}/^$/{exit}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 提取新闻组或 e-mail 的正文部分&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '1,/^$/d'              # 删除第一行空行之前的所有内容&lt;br /&gt;awk '{if(F)print}/^$/{F=1}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 从邮件头提取“Subject”（标题栏字段），并移除开头的“Subject:”字样&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/^Subject: */!d; s///;q'&lt;br /&gt;awk '/^Subject:.*/{print substr($0,10)}/^$/{exit}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 从邮件头获得回复地址&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/^Reply-To:/q; /^From:/h; /./d;g;q'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;#好像是输出第一个Reply-To:开头的行？From是干啥用的？不清楚规则。。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;awk '/^Reply-To:.*/{print;exit}/^$/{exit}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 获取邮件地址。在上一个脚本所产生的那一行邮件头的基础上进一步的将非电邮地址的部分剃除。（见上一脚本）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 's/ *(.*)//; s/&gt;.*//; s/.*[:&lt;] *//' &lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;#取尖括号里的东西吧？&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;awk -F'[&lt;&gt;]+' '{print $2}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 在每一行开头加上一个尖括号和空格（引用信息）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 's/^/&gt; /'&lt;br /&gt;awk '{print "&gt; " $0}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 将每一行开头处的尖括号和空格删除（解除引用）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed 's/^&gt; //'&lt;br /&gt;awk '/^&gt; /{print substr($0,3)}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 移除大部分的HTML标签（包括跨行标签）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed -e :a -e 's/&lt;[^&gt;]*&gt;//g;/&lt;[^&gt;]*&gt;/,"",$0);print}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 将分成多卷的uuencode文件解码。移除文件头信息，只保留uuencode编码部分。&lt;br /&gt;# 文件必须以特定顺序传给sed。下面第一种版本的脚本可以直接在命令行下输入；&lt;br /&gt;# 第二种版本则可以放入一个带执行权限的shell脚本中。（由Rahul Dhesi的一&lt;br /&gt;# 个脚本修改而来。）&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/^end/,/^begin/d' file1 file2 ... fileX | uudecode   # vers. 1&lt;br /&gt;sed '/^end/,/^begin/d' "$@" | uudecode                    # vers. 2&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;#我不想装个uudecode验证，大致写个吧&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;awk '/^end/{F=0}{if(F)print}/^begin/{F=1}' file1 file2 ... fileX&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 将文件中的段落以字母顺序排序。段落间以（一行或多行）空行分隔。GNU sed使用&lt;br /&gt;# 字元“\v”来表示垂直制表符，这里用它来作为换行符的占位符——当然你也可以&lt;br /&gt;# 用其他未在文件中使用的字符来代替它。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;sed '/./{H;d;};x;s/\n/={NL}=/g' file | sort | sed '1s/={NL}=//;s/={NL}=/\n/g'&lt;br /&gt;gsed '/./{H;d};x;y/\n/\v/' file | sort | sed '1s/\v//;y/\v/\n/'&lt;br /&gt;awk -vRS= '{gsub(/\n/,"\v",$0);print}' ll.txt | sort | awk '{gsub(/\v/,"\n",$0);print;print ""}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;# 分别压缩每个.TXT文件，压缩后删除原来的文件并将压缩后的.ZIP文件&lt;br /&gt;# 命名为与原来相同的名字（只是扩展名不同）。（DOS环境：“dir /b”&lt;br /&gt;# 显示不带路径的文件名）。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;echo @echo off &gt;zipup.bat&lt;br /&gt;dir /b *.txt | sed "s/^\(.*\)\.TXT/pkzip -mo \1 \1.TXT/" &gt;&gt;zipup.bat&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;DOS 环境再次略过，而且我觉得这里用 bash 的参数 ${i%.TXT}.zip 替换更帅。&lt;/p&gt;  &lt;p&gt;下面的一些 SED 说明略过，需要的朋友自行查看原文。&lt;/p&gt;  &lt;p&gt;{ &lt;a href="http://li2z.cn/2009/12/07/sed_awk/"&gt;Source&lt;/a&gt;. Thanks bones7456. }&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-5858963539080838697?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/5858963539080838697/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=5858963539080838697&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5858963539080838697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5858963539080838697'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2009/12/sed-awk.html' title='《SED 单行脚本快速参考》的 awk 实现'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-7784385177237290130</id><published>2009-12-06T23:35:00.013+09:00</published><updated>2009-12-20T13:28:32.013+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Ubuntu Tips（随时更新）</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;1 在ubuntu中firefox的flash乱码问题的解决&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;打开文件/etc/fonts/conf.d/49-sansserif.conf&lt;/li&gt;&lt;li&gt;将除monospace以外（3处）的字体修改为&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;wqy-zenhei&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;需要管理员权限&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;2 Ubuntu9.10中QQ自动退出问题的解决&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;打开文件/usr/bin/qq&lt;/li&gt;&lt;li&gt;增加一行&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt; export GDK_NATIVE_WINDOWS=true&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;需要管理员权限&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;3 audacious2中MP3文件的TAG中的中文乱码问题解决&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;使用easyTag软件将MP3的TAG中的文字编码变换为&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;UTF8&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;4 用evince看PDF文件时的乱码问题解决&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;sudo apt-get install poppler-data&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-7784385177237290130?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/7784385177237290130/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=7784385177237290130&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7784385177237290130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7784385177237290130'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2009/12/ubuntu-tips.html' title='Ubuntu Tips（随时更新）'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-9015582408548196931</id><published>2009-09-22T23:53:00.000+09:00</published><updated>2009-09-22T23:54:36.674+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>SSD環境のOS設定（WindowsXPの設定）</title><content type='html'>SSDは高速なストレージだが、デメリットに書換え回数の上限値（1万回～10万回）などのデメリットがあるため、RAMディスク、HDDと併用で使用した方が良いと考える。（&lt;a href="http://3son.blog114.fc2.com/blog-entry-8.html" title="SSD/RAMディスクのメリット・デメリット"&gt;SSD/RAMディスクのメリット・デメリット&lt;/a&gt;）&lt;br /&gt;加えて、SSDのデメリットを低減するために、ＯＳの設定を行った方が良いと思う。&lt;br /&gt;SSD、RAMディスクと併用使用時の自分が行ったOS（WindowsXP　SP3）の設定を記す。&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;ページングファイル（仮想メモリ）の設定変更&lt;/strong&gt;&lt;br /&gt;ページングファイルは、書換えが多いため、SSD以外のドライブへ移動する。&lt;br /&gt;または、メモリ容量（最低でも2GB以上）によっては、"ページングファイルなし"に設定する。&lt;br /&gt;【設定】&lt;br /&gt;[コントロールパネル]→[システム]→[詳細設定]→[パフォーマンス]→[詳細設定]→[仮想メモリ]&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;一時フォルダ（TEMP）の移動&lt;/strong&gt;&lt;br /&gt;OSやアプリケーションが利用する一時フォルダ。書換えが多いため、RAMディスクやHDDへ移動を行う。&lt;br /&gt;【設定】"Tempフォルダの場所を変更する（＠IT）"&lt;br /&gt;&lt;a href="http://www.atmarkit.co.jp/fwin2k/win2ktips/389extprec/extprec.html" target="_blank" title="http://www.atmarkit.co.jp/fwin2k/win2ktips/389extprec/extprec.html"&gt;http://www.atmarkit.co.jp/fwin2k/win2ktips/389extprec/extprec.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;"マイドキュメント"、"デスクトップ”フォルダの移動&lt;/strong&gt;&lt;br /&gt;ユーザデータの書換えが多い"マイドキュメント"、"デスクトップ"フォルダをHDDへ移動を行う。&lt;br /&gt;【設定】"［マイ ドキュメント］フォルダの場所を移動する（＠IT）"&lt;br /&gt;&lt;a href="http://www.atmarkit.co.jp/fwin2k/win2ktips/932mydocmove/mydocmove.html" target="_blank" title="http://www.atmarkit.co.jp/fwin2k/win2ktips/932mydocmove/mydocmove.html"&gt;http://www.atmarkit.co.jp/fwin2k/win2ktips/932mydocmove/mydocmove.html&lt;/a&gt;&lt;br /&gt;　&lt;br /&gt;【設定】"デスクトップ"フォルダの移動&lt;br /&gt;レジストリの変更（regedit.exe）&lt;br /&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders&lt;br /&gt;の「Desktop」を移動先のフォルダへ変更&lt;/li&gt;&lt;/ol&gt;   &lt;span class="fc2_entry_more_mark" style="display: none;"&gt;&lt;/span&gt;&lt;ol start="4"&gt;&lt;li&gt;&lt;strong&gt;自動デフラグ設定の停止&lt;/strong&gt;&lt;br /&gt;　SSDはディスクを持たないため、デフラグする必要がない。また、デフラグは書換えが多く寿命を短くするだけなので、停止する。&lt;br /&gt;　&lt;br /&gt;【設定】アイドル時の自動デフラグを停止&lt;br /&gt;レジストリの変更（regedit.exe）&lt;br /&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout&lt;br /&gt;の DWORD値「EnableAutoLayout」（なければ、新規に作成）の値を「0」に設定する。&lt;br /&gt;（レジスト記述例）&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout]&lt;br /&gt;"EnableAutoLayout"=dword:00000000&lt;br /&gt;&lt;br /&gt;【設定】システム起動時の自動デフラグの停止&lt;br /&gt;レジストリの変更（regedit.exe）&lt;br /&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction&lt;br /&gt;の「Enalbe」を「N」に設定する。&lt;br /&gt;（レジストリファイル記述例）&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]&lt;br /&gt;"Enable"="N"&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;アクセス日時の非更新設定&lt;/strong&gt;&lt;br /&gt;ファイルや、フォルダへの最終アクセス日時を更新しないように設定する。&lt;br /&gt;【設定】&lt;br /&gt;レジストリの変更（regedit.exe）&lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem&lt;br /&gt;の"NtfsDisableLastAccessUpdate"を"dword:1"（更新を行なわない） に設定&lt;br /&gt;＃NtfsDisableLastAccessUpdate=dword:0（初期値：更新を行なう）&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;「ディスクの書込みキャッシュを有効にする」のチェックをはずす。&lt;/strong&gt;&lt;br /&gt;【設定】&lt;br /&gt;[コントロールパネル]→[システム]→[ハードウェア]→[デバイスマネージャー]→[ディスクドライブ]→"SSDのデバイスを選択"→[ポリシー]&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;strong&gt;※その他の設定&lt;/strong&gt;&lt;br /&gt;　・休止状態の無効化⇒⇒電源オプションから設定&lt;br /&gt;　・システムの復元の無効化⇒⇒システムのプロパティから設定&lt;br /&gt;　・"窓の手"等により、"カーネルを常に物理メモリに配置"するよう設定&lt;br /&gt;　・ブラウザのキャッシュをRAMディスク等へ移動する。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-9015582408548196931?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/9015582408548196931/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=9015582408548196931&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/9015582408548196931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/9015582408548196931'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2009/09/ssdoswindowsxp.html' title='SSD環境のOS設定（WindowsXPの設定）'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-4577736964730844673</id><published>2009-09-22T23:16:00.004+09:00</published><updated>2009-09-22T23:55:06.782+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>XP　最適化</title><content type='html'>&lt;span style="font-weight: bold;"&gt;ショートカット・ファイルのリンク先を探索する機能を停止させる&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Windowsにはファイルのショートカットを作成し，オリジナルのファイル名を変更してもショートカットのリンク先を自動的に探すという機能が備わっているが，この機能はファイル名の変更を常に監視しており，システム・パフォーマンスを低下させている。この機能を停止するには，レジストリのキー HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies \ExplorerにNoResolveTrackとNoResolveSearchの2つのDWORD値を作成し，値をそれぞれ1にする。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;最近使ったファイルを記録する機能を停止する&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Windowsでは最近使ったファイルの名前をレジストリに記録しているため，ファイルの監視によるシステム・パフォーマンスの低下と，レジストリの肥大化を引き起こす。この機能を停止するには，レジストリのキーHKEY_CURRENT_USER\SOFTWARE\Microsoft \Windows\CurrentVersion\Policies\ExplorerにNoRecentDocsMenuというDWORD値を作成し，値を1にする。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;ワトソン博士を無効化する&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ワトソン博士とはシステムとアプリケーションの障害を監視し，記録するプログラムのこと。必要なければ，レジストリのキー HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebugにAutoというDWORD値を作成し，値を0にする。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;日付と時刻の自動同期を停止する&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;定期的にインターネット上にあるタイムサーバーにアクセスして，コンピュータの時刻を正確な時刻に合わせる機能。必要なければ，コントロール・パネルの日付と時刻のプロパティから，インターネット時刻タブの自動的にインターネット時刻サーバーと同期するのチェックを外す。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;別の場所からコンピュータを使う機能を無効化する&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Windows XPには外部のネットワークからコンピュータを操作する機能が搭載されているが，その機能を使用していなくても若干システム・リソースを消費している。必要なければ，コントロール・パネル→システムのプロパティ→リモート・タブを辿り，このコンピュータからリモートアシスタントの招待を送信することを許可するとこのコンピュータにユーザがリモートで接続することを許可するのチェックを外す。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;ユーザの簡易切り替えを無効化する&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Windows XPではログオフせずにユーザを切り替える機能が備わっているが，その機能が若干システム・リソースを消費している。必要なければ，コントロール・パネル→ユーザアカウント→ユーザのログオンやログオフの方法を変更するを辿り，ユーザの簡易切り替えを使用するのチェックを外す。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;電源を常にオンにする&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Windowsでは電源設定によって一部の処理が変わるため，パフォーマンスの低下を招いていることがある。コントロール・パネル→電源オプション→電源設定タブを辿り，電源設定を常にオンに設定する。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;大容量メモリのパフォーマンスを最適化する&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Windows XPではメモリの使用方法を自動的に調整するが，コンピュータの使用形態やハードウェア特性に合わせた設定を行うことでパフォーマンスを改善できることがある。これらの設定は，レジストリのキーHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagementで行う。&lt;br /&gt;&lt;br /&gt;物理メモリの容量が512MB以上なら，カーネルに割り当てるメモリ領域を物理メモリのみに限定することができる。この設定によってカーネル・メモリがスワップ・アウトされないため，動作が高速に保たれる可能性がある。設定するには，DisablePagingExecutiveというDWORD値を作成し，値を1にする。&lt;br /&gt;&lt;br /&gt;物理メモリの容量が十分にある場合，入出力に用いるバッファ・サイズを調整するとパフォーマンスが向上する可能性がある。設定するには，IoPageLockLimitというDWORD値を作成し，値を設定したいサイズにする（値はバイト単位）。一般的には4194304（4MB）程度に設定すると良い。&lt;br /&gt;&lt;br /&gt;物理メモリをアプリケーション実行用に割り当てる（Standardファイル・システム・キャッシュ）か，優先的にファイル・システムのキャッシュに割り当てる（Largeファイル・システム・キャッシュ）かを選択することができる。規定値はStandardファイル・システム・キャッシュだが，ファイル・アクセスの多い環境ではファイル・システムのキャッシュに確保したほうがパフォーマンスが向上する可能性がある。Largeファイル・システム・キャッシュを使用するように設定するにはLargeSystemCacheというDWORD値を作成し，値を1にする。ただし，Largeファイル・システム・キャッシュではアプリケーション実行用メモリ領域がスワップ・アウトしやすくなるため，用途に合わせて慎重に選択したい。なお，Windows XPではコントロール・パネル→システムのプロパティ→詳細設定タブ→パフォーマンス→設定→詳細設定タブ→メモリ使用量から設定することもできる。プログラムを選択するとStandardファイル・システム・キャッシュが，システム キャッシュを選択するとLargeファイル・システム・キャッシュが設定される。&lt;br /&gt;&lt;br /&gt;ダイレクト・マップ方式の2次キャッシュを採用しているプロセッサをもつコンピュータで，HALから2次キャッシュサイズを正しく取得できない場合に参照されるキャッシュ・サイズを設定することができる。設定するには，SecondLevelDataCacheというDWORD値を作成し，値を設定したいサイズにする（値はKB単位）。HALからデータを取得できず，SecondLevelDataCacheが設定されていないか，0に設定されている場合は256KBになる。プロセッサに合わせて，512KB程度に設定すると良い。なお，セット・アソシエイティブ方式の2次キャッシュを採用しているプロセッサを使用している場合は，この設定は適用されない。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;クラシック表示に切り替える&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Windows XPからエクスプローラのアイコンの表示方法が若干変わり，通常の表示より負荷が高くなっている。従来のクラシック表示に切り替えるには，フォルダ・オプションの全般タブにある従来の Windows フォルダを使うのチェックを入れる。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;すべてのファイルとフォルダを表示する&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;通常エクスプローラでは隠しファイルおよび隠しフォルダを表示しないようになっているが，アイコンを隠すために若干負荷がかかっている。すべてのアイコンを表示するようにするには，フォルダ・オプションの表示タブにあるすべてのファイルとフォルダを表示するのチェックを入れる。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;フォルダの表示設定を保存しないようにする&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;エクスプローラではウィンドウの大きさやアイコンの表示方法などを，各フォルダごとに保存するようになっている。この機能を停止するには，フォルダ・オプションの表示タブにある各フォルダの表示設定を保存するのチェックを外す。&lt;br /&gt;&lt;br /&gt;ファイルのアクセス日時の記録を行わない&lt;br /&gt;&lt;br /&gt;NTFSではファイルにアクセスすると，その日時を随時記録するため，パフォーマンスの低下を招いている。これを無効化するにはレジストリのキーHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystemにNtfsDisableLastAccessUpdateというDWORD値を作成し，値を1にする。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ドライブの自動再生を停止&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ドライブにメディアが挿入されると自動的に再生するという機能は，メディアの挿入を常に監視しているため，ハード・ディスク・ドライブと光学ドライブが同じチャンネルにあるとシステム全体のパフォーマンス低下に繋がる。この機能を停止するには，管理ツールのグループポリシーから，コンピューターの構成→管理テンプレート→システムのフォルダを辿り，自動再生機能をオフにするを有効にする。このとき，対象のドライブはすべてのドライブに設定する。&lt;br /&gt;&lt;br /&gt;また，この設定はレジストリから詳細に設定することも可能だ。ドライブの種類別に設定を行うには，レジストリのキー HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies \ExplorerにNoDriveTypeAutoRunというDWORD値を作成し，以下に示す値に変更する。&lt;br /&gt;設定値（16進数）  CD-ROMドライブの自動再生  リムーバブル・ドライブの自動再生&lt;br /&gt;91  する&lt;br /&gt;95  する  しない&lt;br /&gt;b1  しない  する&lt;br /&gt;b5  しない&lt;br /&gt;&lt;br /&gt;また，ドライブごとに個別の設定を行うには，レジストリのキーHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\ExplorerにNoDriveAutoRunというバイナリ値を作成し，適当な値を設定する。この値は，下位ビットから順に各ドライブと対応しており，対応するビットが1のドライブは自動再生が無効化される。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-4577736964730844673?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/4577736964730844673/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=4577736964730844673&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/4577736964730844673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/4577736964730844673'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2009/09/xp.html' title='XP　最適化'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-1652277244616071115</id><published>2009-09-05T15:33:00.000+09:00</published><updated>2009-09-05T15:34:10.452+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux 死机了怎么办</title><content type='html'>Linux 会死机么？我可以很肯定地说，会！要让 Linux 死机很容易，但难的是在死机以后如何安全的让他摆脱死机状态，本文讲述如何从 Linux 的死机状态中挣脱出来。&lt;br /&gt;&lt;br /&gt;Linux 死机有很多种情况，最常见的是系统负载过高导致的。如上次介绍的 fork 炸弹就是这个原理，此外还可以运行内存耗用极大的程序（如虚拟机），也会迅速提升系统负载。由于系统负载过高导致的卡死，一定是解决的越快越好！此时必须记住的是，不能再试图依赖任何图形界面的东西，如 Gnome 的系统监视器（这是我从 Windows 遗留下来的愚昧习惯……），这只会继续加重这种卡死的局面。那怎么办？&lt;br /&gt;&lt;br /&gt;不要怕，Linux 最初就是不需要图形界面的，因为有一个很强大的文字界面。按 Ctrl-Alt-F1（F1-F6 一般来说都可以），然后等一会儿，就会切换到 tty，也就是所谓的文字界面。这个时候需要用用户名密码登入。注意，可能键盘输入的速度比较慢，不过应该还是可以忍受的。下面在提示符后面输入 top 回车，这时会看到一张动态的表，上面列出了耗用资源最多的进程。观察它刷新一两次，按q退出，然后输入 kill ，其中的 PID 你可以在 top 里面看到。这个时候应该会快了不少，如果你发现没有成功结束掉，就再输入 kill -KILL ，这次基本上就没问题了。&lt;br /&gt;&lt;br /&gt;除了上面这种情况外，一些底层软件的 bug 也可能导致一些奇怪的死机问题。我某位同学近日就因为莫名其妙的死机强制重启把 ext4 的分区给伤了。（最后是 sysreccd 修复了，貌似是分区表部分损坏）据其说，死机是键鼠均无反应。一般来说，系统负载高导致的死机，在可怕键盘也会有反应，有人说如果死机到键盘无响应“负载都无限大了”，亦有人说这可能是 X Server 与驱动配合有问题导致的。不过我们考虑一下遇到这种情况怎么办？&lt;br /&gt;&lt;br /&gt;OK，这是今天才学到的方法，叫做 reisub，这个方法可以在各种情况下安全地重启计算机。大家在键盘上找，可以找到一个叫做“Sys Rq”的键，在台机的键盘上通常与 Prt Sc 共键，在笔记本可能在其他位置，如 Delete。以台机为例，要使用这种方法需要按住 Alt-Print(Sys Rq)，然后依次按下 reisub 这几个键，按完 b 系统就会重启。&lt;br /&gt;&lt;br /&gt;下面解释一下这个方法：其实 Sys Rq 是一种叫做系统请求的东西，按住 Alt-Print 的时候就相当于按住了 Sys Rq 键，这个时候输入的一切都会直接由 Linux 内核来处理，它可以进行许多低级操作。这个时候 reisub 中的每一个字母都是一个独立操作，他们分别表示：&lt;br /&gt;&lt;br /&gt;unRaw 将键盘控制从 X Server 那里抢回来&lt;br /&gt;tErminate 给所有进程发送 SIGTERM 信号，让他们自己解决善后&lt;br /&gt;kIll 给所有进程发送 SIGKILL 信号，强制他们马上关闭&lt;br /&gt;Sync 将所有数据同步至磁盘&lt;br /&gt;Unmount 将所有分区挂载为只读模式&lt;br /&gt;reBoot 重启&lt;br /&gt;&lt;br /&gt;这6个字母的顺序是不可以记错的。那怎么记呢？这里提供一个个人认为比较好的方法：单词 busier（busy 的比较级，更忙）倒过来就是了。&lt;br /&gt;&lt;br /&gt;基本上就这样了，Linux 的死机本来就不多见，现在见了也可以安全解决，多好~&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-1652277244616071115?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/1652277244616071115/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=1652277244616071115&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/1652277244616071115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/1652277244616071115'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2009/09/linux.html' title='Linux 死机了怎么办'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-8904241540029113305</id><published>2009-08-29T13:52:00.001+09:00</published><updated>2009-08-29T13:55:15.697+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='others'/><title type='text'>北京妞写的</title><content type='html'>还甭闲长，看完你肯定想看第二遍——————开始：&lt;br /&gt;要是我的男人真的就没那本事，我就忍了，弄不好他有了本事，我就没了他呢。他没逼我长成曼玉嘉欣，我没理由逼他盖过李嘉诚。&lt;br /&gt;&lt;br /&gt;OK 不废话了。开始......&lt;br /&gt;是不是女孩从13岁起，每个月多花几个卫生巾钱（当然得是生理上正常的女性朋友们）觉得自己特冤，所以都憋着让男朋友（老公）给自己花钱啊？其实男人的钱也不是大风刮来的……&lt;br /&gt;&lt;br /&gt;我在想，为什么女性朋友比男性朋友的平均寿命长，除了女性大多不常抽烟饮酒以外，还有一个主要原因，即男人要负担的社*会责任更重，男人要承受的生活压力要比女人多得多。&lt;br /&gt;&lt;br /&gt;你是女孩，你可以想起一出是一出地瞎闹，烦了就哭美了就乐，你撒娇你任性，你翻着跟头抒发自己的感情，什么时候折腾舒服了什么时候算。没人说你什么……女孩嘛，感性一些，大家都能原谅你的情绪化。你可以不计后果不失时机地犯犯间歇性神经病，然后美其名曰：我们每个月都有那么几天……我不是故意的啦……&lt;br /&gt;&lt;br /&gt;你想想，是不是每次你撒着娇对他说这话的时候，他都会潇洒地揽你入怀说，你发脾气也很可爱！这老招屡试不爽，即使你犯病的时候一脚踢死他们家养了十年的猫。人家谁愿意和你置气啊？&lt;br /&gt;你就没想过你凭什么啊！谁都不缺奶奶！&lt;br /&gt;&lt;br /&gt;他现在爱你，你骑他头上撒尿都行。你别太过，把男人逼急了，你丫爱谁谁！你以为你真是还珠格格呢！你们家祖坟上长那根蒿子了么？&lt;br /&gt;&lt;br /&gt;女人要怀有一颗珍惜之心，珍惜那个依着你由着你性子的人。你要记得，若不是他爱你，你什么都不是！说得阴暗一点，女人要学会居安思危，给自己留条后路。&lt;br /&gt;&lt;br /&gt;是，他现在拿你当老佛爷贡着，等你习惯了，以为这就是属于你的生活了，他一下变了心，你可哭都找不着坟头儿。平时收敛一点，也是对自己的一种保护。咱那点“刁蛮”劲，老使就不管用了，还是留到关键时刻好，你说呢？&lt;br /&gt;&lt;br /&gt;女人似乎总喜欢问一些诸如你真的喜欢我么、我和你妈掉河里你先救谁、我和她谁漂亮……要是你不重要的话，人家每天强忍着回答同一个问题10遍之多是为了什么？要是你不重要，你都咒人家妈了人家还强颜欢笑哄着你是为了什么？&lt;br /&gt;&lt;br /&gt;如果你嫌你的男人没本事，就趁早找一个有本事的去，免得以后结了婚有了孩子，再后悔就晚了，别给自己找活罪受。你男人没本事赖谁啊？当初是谁该好好上学不好好上学，为了你翘课来着？当初是谁该好好上班不好好上班，为了你旷工来着？你到底是让她陪着你，还是让他专注事业？你以为你男人是耶和华啊？你干脆多找几个，有给你挣钱的，有给你争脸的，有点灯说话的，有吹灯拔蜡的得了！你知道么，男人最讨厌你满脸旧社*会地往床上一歪，就开始没完没了数落他这也不行那也不行，有行的，你配么？咱得知道自己值多少钱一两！别一边要爱情要浪漫要人家逢年过节送你玫瑰，一边又要现实要生活要人家攒钱给你买房买车。你以为男人都和盖茨有一腿啊！&lt;br /&gt;&lt;br /&gt;男人在外面讨生活是很不容易的，有的时候，他们的感情也很脆弱，可是他们还要保持理智保持冷静保持坚强！你不会明白，那有多难！扪心自问，女人在这个社*会上如果实在混不下去了，还有最后一条路，找个人嫁了，做职业家庭主妇。别人说不出你什么来。而你男人，他混得下去也得混，混不下去还得 拼了老命地混；更何况还拖着一个姑奶奶混；更何况往后还得拖着一个甚至更多的小少爷小姑奶奶（你们的结晶）混啊？你想过么……&lt;br /&gt;&lt;br /&gt;如果说你不知道怎样省钱，不如自己也想办法赚点钱，而不是一味抱怨自己嫁错了郎。你的东西，至少应该有一半是自己买的，那样即使他负了你，你可以给自己一个机会，把他买给你的东西撕烂了拽丫脸上解解气！而不至于把人家买的东西都毁掉之后，自己光着屁股回家。&lt;br /&gt;&lt;br /&gt;即使你们已经决定结婚，也多给你男人一些空间吧。他会明白而且感激你的，相信我。再爱你他也是个男人，你可以不去理解他为什么看起球赛来就忘记你的存在、你可以不理解他为什么每周都要和哥们出去喝几次小酒、你可以不理解他为什么能随口就有瞎话等着你,你只要接受就可以了；因为那些事是不需要你去理解的。就像他不会理解，你的衣柜里有你一天一件换到80岁都不重样的衣服一样，虽然他不理解，但依然愿意为你相中的一条裙子，去吃半个月的素。&lt;br /&gt;&lt;br /&gt;我想说，男人不在我们身边的时候，除了去胡搞乱搞还有挥霍他的钱以外，我们还有很多事情可以做。比如，回家看看你的父母，吃他们给你做的饭，听听他们忆苦思甜；比如，去他家帮他父母打扫一下卫生，活动活动筋骨；比如，约个姐们找地方锻炼锻炼身体，将好身材保持到底；比如，找几本经典，给自己充充电，提高一下素养，别觉得一天到晚傻呵呵的当个胸大无脑丢了好找的蠢货，是件特露脸的事；书实在看不下去，看盘也成，又臭又长的韩剧就别看了，看完了更默叽，看看有点技术含量的，女人必须还是得以内养外的；要是有点追求，业余时间我劝你练练字，挥毫泼墨就免了，只要赶明儿给你儿子签字的时候，别让老师冤枉是你们家孩子自己签的，罚小丫挺门口站着去就行了。&lt;br /&gt;&lt;br /&gt;男人回家了，你能笑着就别丧这个脸了，干嘛啊，苦大仇深的？你男人是杀你爸爸那仇人么？你跟了他不会是想演绎一出女版的伤城吧？这个时候，把你平时苦练的厨艺展示展示，饭桌上把你偷学的“学问”拿出来吓唬吓唬他，跟他聊聊姚明易建联，侃侃世乒欧锦，说说基金走势祖国政策……比一来就家长里短强多了。&lt;br /&gt;有这么一个出得厅堂入得厨房的好媳妇，你想让他有外遇都难！男人是很怕麻烦的，只要家里的还好使，他绝不浪费时间精力金钱再重新建立一段感情，除非他还很幼稚。要是他厌烦了你，你就先从自己身上找原因吧！曾经我一知己说过这样一句话：我爱你，我可以给你当牛做马，但你别真把我当牛马使唤！这话让我感触颇深……姑娘们啊，在你心里，他就真的是牛马么？你知道，你的一生中，遇到一个甘心为你做牛马的人，是多大的造化么？为年幼无知的娇纵默哀……&lt;br /&gt;如果男人真的不要你了，那就是肯定不要你了。我的意思是说，你最好别纠缠了。他不和你好了，不用歇斯底里地探寻因由了，我告诉你吧，真相只有一个，你不足够好。我也困惑过很久，女人的愚蠢，究竟源溪何处？至今，最能让我信服的答案，是依赖。女人总是把原本不属于自己的东西死死地认定为是自己的，然后患得患失；更好玩的是，明明是自己不懂珍惜刁蛮成性而导致失去的东西，她们非要说成是别人的背叛，这点让男人挺没辙的。老说女人是弱势群体，这矫情劲上来，不一定谁弱呢。你的痛苦，是你老觉得自己是受害者，那你不自找的么？我不得不给你这样的忠告：认真游戏，但牢记只是游戏。&lt;br /&gt;&lt;br /&gt;你得面对，最能考验你们感情的，其实是一件很恶俗的东西——钱。我之所以不反对早恋，是因为，也许只有在学生时代的恋爱，才是最牛X的，牛X得那么纯净。那时候，是男人最不得志的时候，他没房没车没钱，就算他整天想着和你上床，也是因为他风华正茂生理上的确有这个迫切需要。而那时候，是女人最得意的时候，她年轻天真纯洁，没有逼着男人给她买SK2、LV……一个前途未知的穷小子领着一个缺心少肺的傻姑娘，一路傻了吧唧地走着。你们一路走来，走过每天放学要经过的小吃店、走过顶风冒雪也想多腻味一会的车站、走过情人节他只送了你一支玫瑰的天桥、走过逃了不计其数次课的教室后门……一直走到今天，面对声色犬马的物质诱惑，你犹疑过么……&lt;br /&gt;&lt;br /&gt;其实，归根结底，我想告诉我的男人，我爱你，我也离不开你，我也想24小时和你腻在一起；但还是因为我爱你，我强迫自己独立。&lt;br /&gt;我想告诉我的男人，我希望你有钱，因为我骨子里有所有女人有的贪婪和虚荣；你可以不养着我，但你要有养我的能力。&lt;br /&gt;我想告诉我的男人，如果你有一块钱，那我要你花五毛钱给我买一串我爱吃的麻辣烫；如果你有一千元，我们必须得去吃一次我想吃的三千里，不然，你凭什么说你是爱我的？&lt;br /&gt;如果，所有感情的问题，都可以用钱来解释和解决，那该有多好……但你要知道，只要能用钱解决的事，就都不叫事！我还是想把我的爱情，放在比金钱更神圣一步的位置上。&lt;br /&gt;要是我的男人真的就没那本事，我就忍了，弄不好他有了本事，我就没了他呢。他没逼我长成曼玉嘉欣，我没理由逼他盖过李嘉诚。&lt;br /&gt;闲来无事，谨以此文献给包括我在内的让人欢喜让人忧的女孩子们；顺便祝包括我在内的大家，每天都由内而外散发着让人难以抗拒的魅力——性的魅力和人的魅力。&lt;br /&gt;最后，把我认为的一些很好的习惯贴出来，和可爱的你一起分享；强烈希望，姐妹们看完之后，除了可爱，更多几分优雅！&lt;br /&gt;1.养成每天写点什么的习惯，哪怕是记录，哪怕只言片语。&lt;br /&gt;2.不认同别人的看法很正常，因为你有一个独立的CPU,但学会尊重。&lt;br /&gt;3.别和你爷们儿吵架了，才想起你姐们儿我，再这样恕我概不接待！&lt;br /&gt;4.就算你长得的确赛过张柏芝，也别搞出“陈冠希事件”，珍惜上天给你的优越条件，潜龙勿用。&lt;br /&gt;5.注重内心，但别不修边幅；男人审着美都疲劳，整天邋邋遢遢的你这儿给谁填堵呢！&lt;br /&gt;6.了解点国家大事，但别不近人间烟火；了解点时尚潮流，但不必盲目跟 风。&lt;br /&gt;7.一辈子就一个男人，并不丢人。&lt;br /&gt;8.如果可以，要有一套自己的房子；一处纯纯粹粹属于你自己的落脚之处。&lt;br /&gt;9.记住，男人身上有你一辈子也学不完的东西。你必须欣赏男人。至于欣赏什么样的男人，欣赏男人的什么，我想在于你的品位。&lt;br /&gt;10.一切条件允许，在适当的时候，做母亲吧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-8904241540029113305?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/8904241540029113305/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=8904241540029113305&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8904241540029113305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8904241540029113305'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2009/08/ok.html' title='北京妞写的'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-7535449465637923306</id><published>2009-07-20T16:10:00.001+09:00</published><updated>2009-07-20T16:11:17.684+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Ubuntu中删除旧内核的方法</title><content type='html'>sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-7535449465637923306?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/7535449465637923306/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=7535449465637923306&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7535449465637923306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7535449465637923306'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2009/07/ubuntu.html' title='Ubuntu中删除旧内核的方法'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-5172409822536564713</id><published>2009-01-31T03:33:00.000+09:00</published><updated>2009-01-31T03:34:15.821+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>硬盘安装Ubuntu 8.10无法分区最简单的解决方法</title><content type='html'>关于Ubuntu 8.10硬盘安装无法分区的情况，最开始的解决方式为用U盘或者双硬盘帮助分区，使用的时候比较繁琐，必须要先制作引导U盘，今天在Ubuntu中文论坛发现已经有人提出更好的解决方式，不需要使用U盘或者双硬盘，顺利的在安装过程中对硬盘进行分区，不过使用的是alternate镜像。&lt;br /&gt;&lt;br /&gt;详细步骤如下：&lt;br /&gt;&lt;br /&gt;第一、硬盘安装进行到分区步骤，对话框中出现空白时，按下ALT+F2进入shell（busybox内建的shell），回一下车到命令提示符。&lt;br /&gt;&lt;br /&gt;第二、在shell中ls一下，会发现一个名为hd-media的目录，进去检查一下，应该看到这个目录就是存放iso映像的那个硬盘分区的挂载点。&lt;br /&gt;&lt;br /&gt;第三、检查完了之后，从hd-media回到根目录下，用umount - l hd-media来卸载它。“- l”参数一定要加，否则卸载不掉。&lt;br /&gt;&lt;br /&gt;第四、卸载之后，按ALT+F1回到安装界面，这时还停在分区步骤，通过对话框下面的“返回”按钮来到“安装程序主菜单”，再次选择“硬盘分区”，此时分区步骤应该就正常了，能够看到它扫描出来的硬盘分区。&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/6733890142173588113-5172409822536564713?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/5172409822536564713/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=5172409822536564713&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5172409822536564713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5172409822536564713'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2009/01/ubuntu-810.html' title='硬盘安装Ubuntu 8.10无法分区最简单的解决方法'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-7436150227282809109</id><published>2008-11-03T00:50:00.001+09:00</published><updated>2008-11-03T00:53:22.283+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PhotoGraphy'/><title type='text'>拍摄人像的9个Tips</title><content type='html'>这是看到一本国外期刊上的文章，觉得有点意思，然后突然想到：色影无忌图片论坛上不是有许多这样类似的照片吗？于是从“精品图片论坛”中挑选了一些符合这些Tips的作品，来图解这些方法。&lt;br /&gt;&lt;br /&gt;1、使用合适焦距的镜头&lt;br /&gt;&lt;br /&gt;对于35mm照相机而言，拍摄人像最好的焦距段是85~135mm这类中焦镜头。为什么呢？因为中焦镜头可以在一定的拍摄距离内得到透视比较正常的肖像。&lt;br /&gt;&lt;br /&gt;如果使用广角镜头来拍摄肖像，拍摄距离要很近，于是造成透视变形，夸大了被摄者的某些部位特征；如果用长焦镜头来拍摄肖像，一是拍摄距离要比较远，二是镜头的特性使被摄者的透视被压缩。&lt;br /&gt;&lt;br /&gt;在大多数场合下，中焦镜头都能给出很好的拍摄效果。当然，用其他焦段拍摄也不是不可以，这里讲的是大多数场合。&lt;br /&gt;&lt;br /&gt;2、消除背景的干扰&lt;br /&gt;&lt;br /&gt;人像拍摄中最重要的元素之一是背景，好的背景不会干扰对主体的欣赏。&lt;br /&gt;&lt;br /&gt;处理背景的方式有多种，在拍摄前最好从取景器中观看，如果背景不好，条件许可的情况下，转换一个地方或者角度，避开不好的背景。&lt;br /&gt;&lt;br /&gt;如果条件不允许，那么最好开大镜头的光圈，使景深减少，背景由于在焦外，所以全部虚化了。&lt;br /&gt;&lt;br /&gt;当然，条件许可的话，也可以用人工背景。&lt;br /&gt;&lt;br /&gt;背景的处理是很重要的，要养成在按下快门前检查取景器中影象的习惯。&lt;br /&gt;&lt;br /&gt;3、注意姿势(Posing)&lt;br /&gt;&lt;br /&gt;呆板地站立在镜头前面拍摄的人像是不悦目的，尽量引导被摄者在镜头前面要自然、放松，必要的时候，也可以让他/她摆出一些不同寻常的姿势。&lt;br /&gt;&lt;br /&gt;4、相互影响和交流(Interaction)&lt;br /&gt;&lt;br /&gt;人的活动中，最重要的是交流。在交流的过程中，可以捕捉到许多有趣生动的画面，比如孩子玩耍、会谈等，只要有两个及以上的场合都可以捕捉到机会。如果被摄者们意识到你的存在，那么就要耐心等待，等时间稍长些，他们会慢慢忽视你的存在了，这时就有可能捕捉到好的照片。&lt;br /&gt;&lt;br /&gt;5、光线&lt;br /&gt;&lt;br /&gt;奇特的光线可以使画面生动，也可以给人物增加眼神光。&lt;br /&gt;&lt;br /&gt;在自然光允许的情况下，尽量利用自然光；&lt;br /&gt;&lt;br /&gt;在自然光不理想的情况下，可以利用闪光灯或者反光板之类的辅助工具，使画面生动起来。&lt;br /&gt;&lt;br /&gt;6、注意捕捉&lt;br /&gt;&lt;br /&gt;许多生动活泼的画面的出现是意想不到的，只有随时注意才能将这些画面凝固起来。&lt;br /&gt;&lt;br /&gt;7、眼睛接触&lt;br /&gt;&lt;br /&gt;眼睛是心灵的窗户，内心的活动与个人的态度都可以从眼睛中反映出来。&lt;br /&gt;&lt;br /&gt;尽量让被摄者的眼睛直视镜头，出来的照片是很有个性的，观看照片者也可以从这类照片中感觉到被摄者的特点和个性。&lt;br /&gt;&lt;br /&gt;8、改变构图&lt;br /&gt;&lt;br /&gt;一般拍摄人像都是竖构图的偏多，可以尝试用横构图来拍摄，这样可以使自己的拍摄风格多样化。如果对横构图不熟悉，那么就多看些电影，看看别人是如何在固定的横画面中是如何处理的。&lt;br /&gt;&lt;br /&gt;9、道具&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/6733890142173588113-7436150227282809109?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/7436150227282809109/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=7436150227282809109&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7436150227282809109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7436150227282809109'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2008/11/9tips.html' title='拍摄人像的9个Tips'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-3080143598353195131</id><published>2008-11-01T17:58:00.002+09:00</published><updated>2008-11-01T18:03:47.436+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project Manager'/><title type='text'>IT项目管理人士常用管理工具</title><content type='html'>随着IT行业的发展，IT行业内的项目拓展和投资比比皆是。为了提高项目管理水平，赢得市场竞争，特别是在加入WTO后在国内、国际市场上拥有与国际接轨的项目管理人才，越来越多的业界人士正通过不同的方式参加项目管理培训并力争获得世界上最权威的职业项目经理（PMP）资格认证。同时，大部分的IT行业项目管理人士正尝试使用项目管理软件对自己的项目进行辅助管理，为了方便大家的使用，现对项目管理作一简要介绍。&lt;br /&gt;&lt;br /&gt;　　目前市场上项目管理软件种类较多，具有代表性的为微软项目管理软件2000，但大多以美国项目管理协会（PMI）的项目管理理论为基础，在使用过程中要注意以下内容：&lt;br /&gt;&lt;br /&gt;　    1． 预算及成本控制&lt;br /&gt;&lt;br /&gt;　　大部分项目管理软件系统都可以用来获得项目中各项活动、资源的有关情况。人员的工资可以按小时、加班或一次性来计算，也可以具体明确到期支付日；对于原材料，可以确定一次性或持续成本；对各种材料，可以设立相应的会计和预算代码。另外，还可以利用用户自定义公式来运行成本函数。大部分软件程序都应用这一&lt;br /&gt;信息来帮助计算项目成本，在项目过程中跟踪费用。项目过程中，随时可以就单个资源、团队资源或整个项目的实际成本与预算成本进行对比分析，在计划和汇报工作中都要用到这一信息。大多数软件程序可以随时显示并打印出每项任务、每种资源（人员、机器等）或整个项目的费用情况。&lt;br /&gt;&lt;br /&gt;　　2． 日程表&lt;br /&gt;&lt;br /&gt;　　日程表程序主要用来对项目中各个单项资源或一组资源确定工作时间。可以用这些日程表计算出项目的进度计划。大部分系统软件都对基本工作时间设置一个默认值，比如星期一到星期五，早上8点到下午5点，中间有一小时的午餐时间。对于各个单项资源或一组资源，可以修改此日程表。例如：修改上、下班时间，按非工作时间输入公司假期，输入各种换班（白天、夜晚），包括节假日以及数量单位（小时、天、周）。汇报工作进程时要用到这些日程表，它通常可以根据每个单项资源按天、周或月打印出来，或者将整个项目的日程打印成一份全面的，可能有墙壁大的项目日程表。&lt;br /&gt;&lt;br /&gt;　　3． 电子邮件&lt;br /&gt;&lt;br /&gt;　　一些项目管理软件程序的共同特征是可以通过电子邮件发送项目信息。这一功能使得用户不必通过打印机或屏幕显示，直接从电子邮件中获得信息。通过电子邮件，项目团队成员可以了解重大变化，比如最新的项目计划或进度计划，可以掌握当前的项目工作情况，也可以发出各种业务表格。&lt;br /&gt;&lt;br /&gt;　　4． 图形&lt;br /&gt;&lt;br /&gt;　　对于有大量活动事项的项目工程，人工制出一份甘特图或网络图，或人工进行修改制图是一件极其乏味而又容易出错的工作。当前项目管理软件的一个最突出的特点是能在最新数据资料的基础上简便、迅速地制作各种图表，包括甘特图及网络图。有了基准计划后，任何修改就可以轻易地输入到系统中，图表自动会反映出这些改变。项目管理软件可以将甘特图中的任务连接起来，显示出工作流程。特别是用户可以仅用一个命令就在甘特图和网络图之间来回转换显示。另外，图形和表格通常有以下功能供用户使用：&lt;br /&gt;&lt;br /&gt;　　. 进行任务和关系的交互式操作处理。例如，通过图表连接任务，改变优先关系或通过扩展活动持续显示功能来改变活动持续时间。&lt;br /&gt;&lt;br /&gt;　　. 定制格式，例如图形大小、标题、颜色、字型以及文件布局。&lt;br /&gt;&lt;br /&gt;　　. 显示任务或成本的基准对照表。&lt;br /&gt;&lt;br /&gt;　　. 突出关键路径，显示出任何活动的延缓。&lt;br /&gt;&lt;br /&gt;　　. 放大或缩小显示图像。&lt;br /&gt;&lt;br /&gt;　　5． 转入/转出资料&lt;br /&gt;&lt;br /&gt;　　许多项目管理软件包允许用户从其他应用程序，比如文字处理、电子表格以及数据库程序中获得信息。为项目管理软件输入信息的过程叫做转入。例如，你只需在需要时转入某个电子表格的信息就可以了，而大可不必将电子表格中有关人员或机器的成本信息重新键入项目管理软件程序，而且这样还可能会输入相互冲突或错误的资料。同样地，常常也要把你的项目管理软件的一些信息输入到这些应用程序中去。发出信息的过程叫做转出。例如，可能要把对某一承包商的进度计划报告转出到文字处理备注文件中。&lt;br /&gt;&lt;br /&gt;　　绝大部分项目管理软件程序允许把标准ASCⅡ码中的信息文件从Windows Clipboard转出到SQL database, Lotus, Excel, Microsoft Project Exchange, OLE client/server, DDE client/server 以及一些其他系统中。&lt;br /&gt;&lt;br /&gt;    6． 处理多个项目及子项目&lt;br /&gt;&lt;br /&gt;　　有些项目规模很大，需要分成较小的任务集合或子项目。另一种情况是经验丰富的项目经理同时管理好几个项目，而且，团队成员也同时为多个项目工作，在多个项目中分派工作时间。在这种情况下，大部分项目管理软件程序能提供帮助。它们通常可以将多个项目储存在不同文件里，这些文件相互连接。项目管理软件也能在同一个文件中储存多个项目，同时处理几百个甚至几千个项目，并绘制出甘特图和网络图。&lt;br /&gt;&lt;br /&gt;　　7． 制作报表&lt;br /&gt;&lt;br /&gt;　　项目管理软件包在最初应用时，一般只有少数报表，通常是列表总结进度计划、资源或预算。今天，决大多数项目管理软件包都有非常广泛的报表功能。下面列出一些可制作的报表内容：&lt;br /&gt;&lt;br /&gt;　　. 项目全面汇报报表。&lt;br /&gt;&lt;br /&gt;　　. 项目主要阶段（里程碑）报表。&lt;br /&gt;&lt;br /&gt;　　. 一定时期内的各种信息，例如这一时期内完成和正在进行的任务，以及准备开始的任务。&lt;br /&gt;&lt;br /&gt;　　. 财务报表，显示全面的信息，包括所有任务、整个项目预算、超支情况、累计预算成本、实际成本以及承付款项。&lt;br /&gt;&lt;br /&gt;　　. 成本/进度控制系统准则（c/scsc）报表。通常美国国防部进行国防项目时要求使用这个报表。&lt;br /&gt;&lt;br /&gt;　　. 对项目的各种或一组资源进行资源配置报表。&lt;br /&gt;&lt;br /&gt;　　. 定制的标准报表、交叉报表、变量基准对比表。&lt;br /&gt;&lt;br /&gt;　　8． 资源管理&lt;br /&gt;&lt;br /&gt;　　目前的项目管理软件都有一份资源清单，列明各种资源的名称、资源可以利用时间的极限、资源标准及过时率、资源的收益方法和文本说&lt;br /&gt;明。每种资源都可以配以一个代码和一份成员个人的计划日程表。对每种资源加以约束，比如它可被利用的时间数量。用户可以按百分比分为任务配置资源，设定资源配置的优先标准，为同一任务分配各个资源，并保持对每项资源的备注和说明。系统能突出显示并帮助修正不合理配置，调整和修匀资源配置。大部分软件包可以为项目处理数以千计的资源。&lt;br /&gt;&lt;br /&gt;　　9． 计划&lt;br /&gt;&lt;br /&gt;　　在所有项目管理软件包中，用户都能界定需要进行的活动。正如软件通常能维护资源清单，它也能维护一个活动或任务清单。用户对每项任务选取一个标题、起始与结束日期、总结评价，以及预计工期（包括按各种计时标准的乐观、最可能及悲观估计），明确与其他任务的先后顺序关系以及负责人。通常，项目管理软件中的项目会有几千个相关任务。另外，大部分程序可以创建工作分析结构，协助进行计划工作。&lt;br /&gt;&lt;br /&gt;　　10．项目监督及跟踪&lt;br /&gt;&lt;br /&gt;　　项目管理的一项基本工作是对工作进程、实际费用和实际资源耗用进行跟踪管理。大部分项目管理软件包允许用户确定一个基准计划，并就实际进程及成本与基准计划里的相应部分进行比较。大部分系统能跟踪许多活动，如进行中或已完成的任务、相关的费用、所用的时间、起止日期、实际投入或花费的资金、耗用的资源，以及剩余的工期、资源和费用。关于这些临近和跟踪特征，管理软件包有许多报告格式。&lt;br /&gt;&lt;br /&gt;　　11．进度安排&lt;br /&gt;&lt;br /&gt;　　在实际工作中，项目规模往往比较大，人工进行进度安排活动就显得极为复杂了。项目管理软件包能为进度安排工作提供广泛的支持，而且一般是自动化的。大部分系统能根据任务和资源清单以及所有相关信息制作甘特图及网络图，对于这些清单的任何变化，进度安排会自动反映出来。此外，用户还能调度重复任务，制定进度安排任务的优先顺序，进行反向进度安排（从末期到日首期），确定工作轮班，调度占用时间，调度任务，确定最晚开始或尽早开始时间，明确任务必须开始或必须结束日期，或者是最早、最晚日期。&lt;br /&gt;&lt;br /&gt;　　12．保密&lt;br /&gt;&lt;br /&gt;　　项目管理软件一个相对新颖的特点是安全性。一些系统对项目管理包自身、单个项目文件、项目文件中的基本信息（例如工资）均设有口令密码。&lt;br /&gt;&lt;br /&gt;　　13．排序及筛选&lt;br /&gt;&lt;br /&gt;　　利用排序，用户可以按随心所欲的顺序来浏览信息，比如从高到低的工资率，按字母顺序的资源名称或任务名称。大部分程序有各种排序方式（例如：按名、姓等）。筛选功能帮助用户选择出符合具体准则的一些资源。例如，某些任务要用到某种具体资源，用户如果想了解这些任务的有关信息，只需命令软件程序忽略未使用这种的任务，而只把用到这种资源的任务显示出来就可以了。&lt;br /&gt;&lt;br /&gt;　　14．假设分析&lt;br /&gt;&lt;br /&gt;　　项目管理软件一个非常实用的特点是进行假设分析。用户可以利用这一特点来探讨各种情形的效果。在某一项目的一些节点上，用户可以向系统询问："如果拖延一周，会有什么结果？"系统会自动计算出延迟对整个项目的影响，并显示出结果。例如，某个建筑项目，要研究木材消耗率上升15%将发生什么结果，承包商只要把这一变化输入计算机，所有的相关费用成本就能显示出来。几乎可以对项目中所有变量（人员、工资率、成本）进行测试，观察发生具体情况的影响。这种分析能使项目经理更好地控制有关项目的各种风险。&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;　　下面简要介绍一下当前一些最常见的项目管理软件包。&lt;br /&gt;&lt;br /&gt;　　1． CA-SuperProject&lt;br /&gt;&lt;br /&gt;　　Computer Associates International公司的CA-SuperProject是一个常用的软件，特别是在那些管理公司网络的项目管理人员、在Unix或Windows环境下的工作人员以及需要高性能程序的人中更受欢迎。这个软件包能支持多达160，000多个任务的大型项目。许多评论人员因为它在大型项目及小型项目两方面的优异表现而予以高度评价。CA-SuperProject能创建及合并多个项目文件，为网络工作者提供多层密码入口，进行计划审评法（PERT）的概率分析。而且，这一程序包含一个资源平衡算法，在必要时，可以保证重要工作的优先性。它的主要缺点是用户界面不如其他一些程序友好，应当在将来的版本中进一步解决。&lt;br /&gt;&lt;br /&gt;　　2． Microsoft Project&lt;br /&gt;&lt;br /&gt;　　毫不意外，作为微软家庭一员的Microsoft Project，已经占领了项目管理软件包市场的大量份额。Microsoft Project的主要优点是它与微软其他产品（Access、Excel、PowerPoint、Word）很相似，菜单栏几乎一样，用户的工具栏如出一辙。另外，用户可以在应用文件之间轻易地来回移动信息资料，例如，可以把Excel资源表中的成本信息轻易地移到Microsoft Project中，Microsoft Project中的一份甘特图也可通过拖入或连接，轻易地移入Word文件&lt;br /&gt;中。日常用语（Tips of the day）、提示卡以及大量帮助范例大大简化了程序的应用，交互式日程系统、电子邮件以及分配设备的功能很强大。现在，还包含应用文件的视象（Visual Basic fot Applications），便于高级用户设计接口或自动处理重复性工作。Microsoft Project的缺点是它的关键路径处理，用户不太容易查看，并且它也不如其他一些软件包能处理多个项目及子项目。&lt;br /&gt;&lt;br /&gt;　　3． Project Scheduler&lt;br /&gt;&lt;br /&gt;　　Scitor公司的Project Scheduler软件是一个易于操作、基于Windows的项目管理软件包，它获得《电脑杂志》的"编辑选择奖"（Editos' Choice Award）。Project Scheduler具备传统项目管理软件的所有特征，图形界面设计完好，报表功能强大，制图方面也是如此。比如甘特图，能用各种颜色把关键任务、正或负的时差、已完成的任务以及正在进行的任务区别开来。任务之间建立图式连接极为方便，任务工时的修改也很容易。资源的优先设置及资源的平衡算法非常实用。对多个项目及大型项目的操作处理也比较简单，与外部数据库的连接也不同一般。该软件美中不足的地方是联机帮助和文件编制以及电子邮件功能有限。无论如何，这些将会在将来的版本中得到改进。&lt;br /&gt;&lt;br /&gt;　　4． Sure　Trak Project Manager&lt;br /&gt;&lt;br /&gt;　　Sure Trak Project Manager是Primavera Systems公司的产品。该公司也生产一种叫做Project Planner的优质尖端项目管理软件包。Sure Trak Project Manager是一个高度视觉导向的程序，具有优异的放缩、压缩及拖入功能。它的基本结构，比如柱形、图表、色彩和数据结构便于调整，定制模板也容易创建。它的工作分析结构功能优异，便于使用。重复活动处理简便，活动网络图可以分区段储存在磁盘里，并可装入其他程序。联机帮助及文件编制是Sure Trak Project Manager的不足之处，这会在将来版本里改进。&lt;br /&gt;&lt;br /&gt;　　5． Time Line&lt;br /&gt;&lt;br /&gt;　　《电脑杂志》的"编辑选择奖"的另一位得主是Symantec公司的Time Line软件。尽管这个软件在初学者使用时略微有些困难，但Time Line是有经验的项目经理的首选。它的报表功能以及与SQL数据库的连接功能都很突出。日程表、电子邮件的功能，排序和筛选能力以及多项目处理都是精心设计的。另外，它还有一个叫做Co-Pilot的功能，这是一个很有用的推出式帮助设施，用户界面很好，极易操作。然而，许多评论人员认为Time Line最适于大型项目以及多任务项目，但不如其他软件包便于初学者使用。&lt;br /&gt;&lt;br /&gt;　　6． High-End Project Management Software&lt;br /&gt;&lt;br /&gt;　　如果上面讨论的基于个人电脑的软件包不能管理大型或企业规模型的项目，人们就会想到High-End Project Management Software的软件包。这些系统软件包括Lucas Management Systems的Artemis、Welcome Software Technology的Open Plan、Primavera的Project Planner以及PSDI的Project/2。这些软件能在一个颁布式数据环境下共享资料，便于处理多任务项目，连接其他商业信息系统，比如会计、采购、而且通常对进度计划及资源配置有非常完善的算法。这些系统软件的成本普遍从数千到7.5万美元，预计这些系统的价格会降低，而同时基于个人电脑的系统功能将不断增强。&lt;br /&gt;&lt;br /&gt;　　下面是购买项目管理软件包时应考虑的一些因素。根据你个人的需要，下面的某些因素相对其他人而言，可能对你会更重要或不十分重要。&lt;br /&gt;&lt;br /&gt;　　1． 容量&lt;br /&gt;&lt;br /&gt;　　这主要是考虑系统能否处理你预计进行的项目数量、预计需要的资源数以及预计同时管理的项目数量。&lt;br /&gt;&lt;br /&gt;　　2． 文件编制和联机帮助功能&lt;br /&gt;&lt;br /&gt;　　各个项目管理软件包的文件编制和联机帮助功能质量各不相同，差别较大。主要考虑用户手册的可读性、用户手册里概念的逻辑表达、手册和联机帮助的详细程度，举例说明的数量、质量、对高级性能的说明水平。&lt;br /&gt;&lt;br /&gt;　　3． 操作简易性&lt;br /&gt;&lt;br /&gt;　　这一点通常不论选择在哪种软件包时都是主要的。主要应考虑系统的"观看"和"感觉"效果、菜单结构、可用的快捷键、彩色显示、每次显示的信息容量、数据输入的简易性、现在数据修改的简易性、报表绘制的简易性、打印输出的质量、屏幕显示的一致性，以及熟悉系统操作的难易程度。&lt;br /&gt;&lt;br /&gt;　　4． 可利用的功能&lt;br /&gt;&lt;br /&gt;　　一定要考虑系统是否具备&lt;br /&gt;项目组织所需要的各种功能。例如，程序是否包含工作分析结构以及甘特图和网络图，资源平衡或均衡算法怎么样？系统能否排序和筛选信息、监控预算、生成定制的日程表，并协助进行跟踪和控制？它能否检查出资源配置不当并有助于解决？&lt;br /&gt;&lt;br /&gt;　　5． 与其他系统的兼容能力&lt;br /&gt;&lt;br /&gt;　　在当今的数字化社会里，大量的电子系统日趋统一。如果你的工作环境里，切合数据储存在各个地方，比如数据库、电子数据表里，这时就要特别注意项目管理软件的兼容统一能力。有些系统只能与少数几种常见的软件包进行最基本的统一，有些却可以与分布数据库甚至对象向数据库进行高级的综合统一。另外，项目管理软件通过电子信箱向文字处理及图形软件包转入信息的能力也会影响到你的决策。&lt;br /&gt;&lt;br /&gt;　　6． 安装要求&lt;br /&gt;&lt;br /&gt;　　这里主要考虑运行项目管理软件对计算机硬件和软件的要求：存储器、硬盘空间容量、处理速度和能力、图形显示类型、打印设置以及操作系统等。&lt;br /&gt;&lt;br /&gt;　　7． 报表功能&lt;br /&gt;&lt;br /&gt;　　目前各种项目管理软件系统的主要不同之处是它们提供的报表种类和数量。有些系统仅有基本的计划、进度计划和成本报表，而有一些则有广泛的设置，对各个任务、资源、实际成本、承付款项、工作进程以及其他一些内容提供报表。另外，有些系统更便于定制化。报表功能应给予高度的重视，因为大多数用户非常注重软件这种能生成内容广泛、有说服力的报表的功能。&lt;br /&gt;&lt;br /&gt;　　8． 安全性能&lt;br /&gt;&lt;br /&gt;　　有些项目管理软件有相对更好的安全性。如果安全问题很重要，那么就要特别注意对项目管理软件、每个项目文件及每个文件数据资料的限制访问方式。&lt;br /&gt;&lt;br /&gt;　　9． 经销商的支持&lt;br /&gt;&lt;br /&gt;　　要特别注意，经销商或零售商是否提供技术支持、支持的费用，以及经销商的信誉。&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;　　应用项目管理软件有很多益处。下面介绍一些：&lt;br /&gt;&lt;br /&gt;　　1． 精确性&lt;br /&gt;&lt;br /&gt;　　应用项目管理软件的一个主要益处是可以大大提高精确性。对于大型项目，人工绘制网络图、计算起止时间、临近资源使用情况是非常困难的。项目管理软件有精确的算法来计算项目信息并设有大量内部例行程序检查用户的错误。&lt;br /&gt;&lt;br /&gt;　　2． 经济性&lt;br /&gt;&lt;br /&gt;　　基于个人电脑的项目管理软件售价约400-700美元。这个价格对于个人来说显得昂贵些，但对大多数业务而言，这样的软件确实物有所值。&lt;br /&gt;&lt;br /&gt;　　3． 使用简便&lt;br /&gt;&lt;br /&gt;　　近几年来，项目管理软件的操作使用变得极其简便，稍加训练就可以完全掌握。这一特点，加上价格能接受，便利项目管理软件的用户迅速增加。&lt;br /&gt;&lt;br /&gt;　　4． 处理复杂问题的能力&lt;br /&gt;&lt;br /&gt;　　显然，项目管理软件在处理大型项目的某些方面（特别是数据方面）确实要比人工简便得多。对于只有少数活动的短期项目，人工方法也许行得通，但如果项目有数以千计的活动、上千种资源、持续几年时间，项目管理软件对如此复杂工作的协助作用就显得必不可少了。&lt;br /&gt;&lt;br /&gt;　　5． 可维护性和可更改性&lt;br /&gt;&lt;br /&gt;　　对人工系统进行项目信息的维护和修改，通常是很麻烦的。例如，对某个项目的管理没有应用计算机，那么每次发生变化时，项目人员就不得不人工重新设计网络图、重新核算成本。利用项目管理软件数据资源的任何更改都会自动反应到网络图表、成本表以及资源颁布表等这些项目文件中。这个功能会经常用到，因为无论你的计划做得多么完善，在过程中都必定会发生一些变化（至少一点儿）。&lt;br /&gt;&lt;br /&gt;　　6． 保持记录&lt;br /&gt;&lt;br /&gt;　　项目管理软件的一个主要优点是它能很好地保持记录。例如，可以保护有关各个团队成员的进度计划、各项任务及所用资源的数据资料。在准备优质的报表或将来做计划时，会用到这些数据资料。但是，用户必须不断更新文件，使记录保持不失去意义。 &lt;br /&gt; &lt;br /&gt;7． 速度&lt;br /&gt;&lt;br /&gt;　　收集好相关数据资料并且输入后，软件就能非常迅速地进行几乎每一种能想出来的计算。人工创建、修改计划、进度计划和预算，要花费几小时、几天或几个星期，但是，系统在分秒之内便可完成修改工作，省下的时间通常足够来支付软件的价格了。&lt;br /&gt;&lt;br /&gt;　　8． 假设分析&lt;br /&gt;&lt;br /&gt;　　进行假设分析是项目管理软件的一个超前进步的功能，也是它的一个显著优点。正如前面讨论的，假设分析使用户可以了解项目中发生的各种情形的效果。用户在软件上运行不同的情景，然后做出评估。这样，项目经理对某些偶发事件就可以做好计划准备，并估计相应的结果。进行假设分析如果不使用软件是难以想象，甚至是不可能的。&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;　　尽管使用项目管理软件有许多益处，但在使用过程中也有一些应该注意的地方，同时尽可能避免其中的一些陷阱。&lt;br /&gt;&lt;br /&gt;　　1． 沉溺于软件程序中&lt;br /&gt;&lt;br /&gt;　　有时，一些项目经理会沉溺于项目管理软件。某个项目经理可能会把大量时间投入软件中，摆弄那些报表、功能，把工件中最主要的部分-人员抛在脑后。&lt;br /&gt;&lt;br /&gt;　　2． 安全错觉&lt;br /&gt;&lt;br /&gt;　　项目管理软件有时会使项目经理产生一种安全错觉。主要以几种方式：&lt;br /&gt;首先，项目经理会认为，由于有功能强大的软件，项目会管理完成得更出色。其次，如果项目偏离计划，项目经理会认为软件能有办法让项目回到正常轨道上来。第三，软件如果使用不当，它可能会显示项目进行良好，但实际情况却并非如此，单凭软件显示一切正常是远远不够的。&lt;br /&gt;&lt;br /&gt;　　3． 信息超载&lt;br /&gt;&lt;br /&gt;　　项目管理软件提供了众多的功能和大量信息。有时可怕的数量能导致危险局面。应该只使用有合适功能的软件。项目经理要克制自已，避免使用某些功能，生成更多的报表和数据资料，却对成功地完成项目毫无益处。&lt;br /&gt;&lt;br /&gt;　　4． 学习曲线&lt;br /&gt;&lt;br /&gt;　　要熟练使用项目管理包，确实需要花些时间。所需时间根据个人的不同情况和经历而不同。对于那些目前不使用计算机和商业软件的人来说，会有一个非常明显的学习曲线。然后，近几年来，由于软件越来越易于使用，使得为掌握软件应用而需要的学习培训时间大大缩短了。&lt;br /&gt;&lt;br /&gt;　　5． 过度依赖于软件&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/6733890142173588113-3080143598353195131?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/3080143598353195131/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=3080143598353195131&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/3080143598353195131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/3080143598353195131'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2008/11/it.html' title='IT项目管理人士常用管理工具'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-5971721325371966715</id><published>2008-10-16T00:13:00.001+09:00</published><updated>2008-10-16T00:15:25.550+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='japanese'/><title type='text'>女人必会日语单词（美容类）</title><content type='html'>女人必会日语单词（美容类）&lt;br /&gt;一 目力アップのアイメーク用品&lt;br /&gt;(提升眼睛魅力的眼部彩装用品)&lt;br /&gt;１アイシャドー　（Eye Shadow） 眼影&lt;br /&gt;２クリーミィ　アイシャドー　（Creamy Eye Shadow）眼彩&lt;br /&gt;３パウダー　アイブロウ　（Powder Eyebrow）眉粉&lt;br /&gt;４アイブロウ　ペンシル　（Eyebrow Pencil）眉笔&lt;br /&gt;５リキッド　アイライナー　（Liquid Eyeliner）眼线液&lt;br /&gt;６カラー　ペンシル　（Color Pencil） 眼彩笔&lt;br /&gt;７アイライナー　ペンシル　（Eyeliner Pencil）眼线笔&lt;br /&gt;二 マスカラ　睫毛膏&lt;br /&gt;もっと長く、もっと濃く、もっと強く！&lt;br /&gt;更纤长,更浓密,更持久！&lt;br /&gt;１ボリューム　マスカラ　浓密型睫毛膏&lt;br /&gt;２ロング　マスカラ  纤长型睫毛膏&lt;br /&gt;３マスカラ　ウォータープルーフ  防水型睫毛膏&lt;br /&gt;４もちよし　マスカラ  持久型睫毛膏&lt;br /&gt;三 フェイスメーク　脸部彩妆&lt;br /&gt;ナチュラルメークにこれだけは必要！というアイテムは？&lt;br /&gt;自然彩装的必备单品&lt;br /&gt;１フェイス　パウダー  密粉&lt;br /&gt;２スティックチークス腮红条&lt;br /&gt;３リキッド（リクイド）ファンデーション粉底液&lt;br /&gt;４ベース　クリーム隔离霜&lt;br /&gt;５パウダーファンデーション粉饼&lt;br /&gt;６チーク　カラー腮红&lt;br /&gt;四 リップスティック唇膏&lt;br /&gt;これがウワサの売れ売れリップ用品情報！！&lt;br /&gt;口碑绝佳的唇部彩妆情报!!&lt;br /&gt;１リップ　モイスト  保湿唇膏　&lt;br /&gt;２ホワイト　コンシール  遮瑕膏&lt;br /&gt;３リップ　グロス  唇蜜&lt;br /&gt;４リップスティック  唇膏&lt;br /&gt;５リップライナー　ペンシル  唇线笔&lt;br /&gt;６リップ　マッサージ　エッセンス  唇部按摩精华&lt;br /&gt;７リップ　クリーム  护唇膏&lt;br /&gt;五 メークアップツール化装小工具&lt;br /&gt;これを全部そろえたら、コスメ美人になれるよ！&lt;br /&gt;拥有这些化装小工具之后，可以帮你成为彩妆美人哦!&lt;br /&gt;１マスカラ　ブラッシュ  睫毛刷&lt;br /&gt;２アイブロウ　眉刷&lt;br /&gt;　ブラッシュ　アンド　コーム  眉梳&lt;br /&gt;３アイブロウ　ツィザーズ  眉拔&lt;br /&gt;４アイブロウ　シザーズ  眉剪&lt;br /&gt;５つけまつげ  假睫毛&lt;br /&gt;６アイラッシュ　カーラー  睫毛夹&lt;br /&gt;７部分ビューラー  局部睫毛夹&lt;br /&gt;８パフ  粉扑&lt;br /&gt;９ファンデーション　スポンジ  化装海绵&lt;br /&gt;六 ネイル 指甲油&lt;br /&gt;きれいなネイルメークをしよう！&lt;br /&gt;给你的指甲美容一下吧&lt;br /&gt;１ネイル　カラー　指甲油&lt;br /&gt;２トップ　コート  表层护甲油&lt;br /&gt;３ベース　コート  基础护甲油&lt;br /&gt;ネイルアート指甲彩绘&lt;br /&gt;フレンチネール法式指甲&lt;br /&gt;ネイルチップ  法甲贴片&lt;br /&gt;ラメ入りネイル  亮粉指甲油&lt;br /&gt;七 メーク　リムーバー 卸妆品&lt;br /&gt;毛穴の置くまできれいにメークを落とす！&lt;br /&gt;连毛孔深处的妆都卸除干净&lt;br /&gt;１クレンジング　オイル　　卸妆油&lt;br /&gt;２メーク　クリア　ジェル　　卸妆凝胶&lt;br /&gt;３クレンジング　フォーム　　卸妆泡沫&lt;br /&gt;４アイ　メイク　クレンジング　　眼部卸妆液&lt;br /&gt;八 ベーシック　スキン　ケア&lt;br /&gt;１　ミルク　　乳液&lt;br /&gt;２　ローション  化妆水&lt;br /&gt;３　エッセンス  精华液&lt;br /&gt;４　アイ　ジェル  眼部凝胶&lt;br /&gt;５　アイ　モイスチャー  保湿眼霜&lt;br /&gt;６　アイ　セラム  眼部精华液&lt;br /&gt;九 美容常见单词&lt;br /&gt;一重まぶた　  单眼皮　　　二重まぶた  双眼皮&lt;br /&gt;奥二重　　　  内双　　　　アクネ      粉刺&lt;br /&gt;スポット　　  斑点　　　　ニキビ      痘痘&lt;br /&gt;そばかす　　  雀斑　　　　しわ        皱纹&lt;br /&gt;小じわ　　　  细纹　　　　古い角質    角质老皮&lt;br /&gt;混合肌　　　  混合性肌肤　ドライ肌    干性肌肤&lt;br /&gt;オイリー肌　　油性肌肤　　敏感肌      敏感性肌肤&lt;br /&gt;肌荒れ　　　  皮肤粗糙　　スべすべ    光滑&lt;br /&gt;化粧下地　    底妆　　クマ   黑眼圈&lt;br /&gt;小鼻         鼻翼     毛穴   毛孔&lt;br /&gt;フルーツ酸    果酸    オイルフリー    无油脂&lt;br /&gt;ノーメーク    裸妆     素肌    素肌&lt;br /&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/6733890142173588113-5971721325371966715?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/5971721325371966715/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=5971721325371966715&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5971721325371966715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5971721325371966715'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2008/10/blog-post.html' title='女人必会日语单词（美容类）'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-8396258728498822692</id><published>2008-08-31T03:53:00.001+09:00</published><updated>2008-08-31T03:53:38.759+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>gnome 自启动程序设置</title><content type='html'>呼...花了几个小时,终于弄明白了,没想到这个东西挺隐蔽而且网上基本搜不到...&lt;br /&gt;&lt;br /&gt;以前我一直用~/.gnomerc,不过这个是在gdm刚加载时调用的,如果这个时候运行一个窗口程序,一开始会没有标题栏等等,挺不爽.&lt;br /&gt;&lt;br /&gt;后来知道了可以用gnome-session-properties(System-&gt;Preferences-&gt;Sessions)来进行配置, 里面有个startup.&lt;br /&gt;&lt;br /&gt;但是我想知道其具体配置文件在哪里,网上很多说在~/.gnome2/session,我看了,一开始没有这个文件,但是在gnome-session-properties里选择Save the current session后就有这个文件了.&lt;br /&gt;&lt;br /&gt;如果这个文件不存在,gdm会找/usr/share/gnome/default.session&lt;br /&gt;&lt;br /&gt;不过我觉得这个并不是我想要的,虽然也能起到自启动的效果. 因为它里面的内容和gnome-session-properties的startup配置并不符合.&lt;br /&gt;&lt;br /&gt;最后花了九牛二虎之力找到了,在~/.config/autostart目录下,里面有若干.desktop文件. 虽然对其格式还不是非常了解,但是肯定这就是我要找的了.&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/6733890142173588113-8396258728498822692?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/8396258728498822692/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=8396258728498822692&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8396258728498822692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8396258728498822692'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2008/08/gnome.html' title='gnome 自启动程序设置'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-6046842660152557850</id><published>2008-08-31T01:58:00.002+09:00</published><updated>2008-08-31T02:04:33.283+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>自己动手提高ubuntu系统的性能</title><content type='html'>在每一个基本的系统中，都包含有各种各样的基本进程，用于检查系统服务，和操作系统通信等等。进程和系统的性能表现有着很大的关系，因此，一个系统管理者应该清楚了解当前系统中正在运行什么东西，有什么资源可用等等，只有这样，你才能够调整配置，例如，禁止不需要的进程，打开必须的监护程序以及将你的内核调整到最优化，最后得到一个最适合自己使用的最好的系统。Ubuntu是一个为大众设计的系统，这也就决定了其系统设置的大众化，换句话说，臃肿化。为了适应兼容性而支持的很多东西，我们其实不一定需要。在这里，笔者试图讲解一些通过调整内核参数，shell参数以及特定应用的设置来优化系统的方法，供大家参考。需要注意的是，不同的ubuntu系统有着不同的启动脚本，并有着不同的运行进程，这里我只能以7.04系统为基础来讲解。其实自己学会对进程进行追踪查看是非常重要的，只有这样你才能在不同的系统中都游刃有余。另外，如果要更加深入调整系统，那么自己编译一个属于自己的系统是最合适的，本文没有牵涉这么深入的东西。如果你对自己编译 linux系统感兴趣，可以参考这篇文章和这篇文章。&lt;br /&gt;&lt;br /&gt;本文假设你有一点点基本使用linux的基础，所以很多东西只是讲一个概念性的大纲，想深入了解的话，网络上有很多文章。如果你是系统高手，基本就可以不用看本文了，你会觉得很简单，如果你是连ps，who -r都不知道的新手，建议你还是先放google搜索一些入门文章，并亲自使用linux一周以上，再回过头来看这篇文章。本文很大程度上参考了 Ubuntu Performance Guides，篇幅较长，故分两页发出。&lt;br /&gt;&lt;br /&gt;刚才就几次提到进程，那么，我们应该怎么理解这个词语？广泛得说，所有在系统中运行的，用于执行各种各样任务的，都是一个进程，只不过根据具体执行任务的不同可以有所区分，例如，用于管理和维持操作系统运行的属于系统进程，而用于处理用户需求的就是用户进程。&lt;br /&gt;&lt;br /&gt;进程并不是一个独立的概念，它是相互交互的，很多进程都为其他进程提供服务，或者携手共同完成某一个功能。这些服务中，有一些对于系统的运作是非常关键的，例如X-Windows服务。绝大多数的系统进程都是服务性质的进程，而绝大多数用户进程则是应用程序类进程。应用程序，比如你现在在使用的 FireFox（或者其它，估计FF最多吧）通常是由一个或多个满足用户需求的进程组成。总的来说，服务的开启和关闭是基于系统需求的，而应用程序的开启和关闭，则是基于用户的需求的。&lt;br /&gt;&lt;br /&gt;我们上面说的这些进程阿，服务阿啥的，其实之间的区分并不是很明显，举个例子，Gnome的桌面系统就是由各种程序和进程组成，而他们不仅提供其它程序需要的服务，还可以支持用户的需求。GDE完全可以被称为是程序，进程，应用和服务的集合体，这不会产生任何冲突。&lt;br /&gt;&lt;br /&gt;当然，我们还是要稍微做一下区分，后面才方便继续讲解。现在就统一一下，进程表示任何可以产生运行中的进程标志符的东西，程序则表示能产生进程的可执行文件。用户能够直接使用应用程序，而操作系统才使用服务。&lt;br /&gt;进程基本操作&lt;br /&gt;&lt;br /&gt;在你的机器上，唯一能够消耗你资源的就是正在运行的进程。如果当你发现自己的系统突然很慢，运行不正常时，通常只有两个可能，一种是某些进程运行异常，另一种就是某些进程所消耗的资源已经大于你所拥有的资源。&lt;br /&gt;&lt;br /&gt;当然，想看看什么东西正在你机器上运行其实很简单，使用ps -aux或者top命令即可，这些东西资料很多，我就不多说了，实在不行man top或者man ps吧。当然，对于初学者来说最方便的还是利用图形化界面的系统监视器，如图：&lt;br /&gt;&lt;br /&gt;screeshot(点击缩放)&lt;br /&gt;&lt;br /&gt;所有信息都尽显眼前。注意，在系统监视器中，你不仅能看到进程运行情况，还能看到磁盘使用，CPU使用等很多有价值的信息，这些信息是接下来的部分可能用到的。&lt;br /&gt;&lt;br /&gt;ok，现在我们知道，如果系统异常，如何去确定是什么进程异常了。但是接下来该怎么处理呢？无论是命令行还是图形界面显示，你都可以看到每一个进程都有属于自己的ID，也就是PID。它们都是进程的句柄，而不是表示真实的进程。这有什么区别？对于一个拥有多线程的进程来讲，可以让所有的线程都拥有同一个句柄，也可以让每一个线程都拥有一个句柄。太专业了？恩，通俗来讲，这就相当于……进程的身份证，我们通过它来标志进程。这个东西在ubuntu中默认可以有 32768个不同的PID，每有一个新的进程，就分配一个当前未用的PID给它。&lt;br /&gt;&lt;br /&gt;好了，让我们找到那个让我们系统变慢的该死的罪魁祸首，看看它的PID，然后用kill PID命令来关闭它。等等，你确定就是这个进程影响了你的系统？你确信没有错杀好人？好吧，其实可以先用kill -stop PID命令来暂停一个进程，看看没有了它，我们的系统是否正常。如果发现了冤假错案，没关系，kill -cont PID能让进程继续工作。&lt;br /&gt;&lt;br /&gt;除了直接使用kill PID之外，我们还有更进一步的kill进程的办法。kill PID仅仅是发出一个TERM信号，然后进程能捕捉这个信号，开始释放资源，关闭程序，这不是一下子就完成的，因此在关闭程序之前，你可以结束打开的文件和完成正在做的任务。但是这导致一个问题，假如进程正在进行作业而且不能中断，那么进程可以忽略这个SIGTERM信号，而且如果进程失去响应了怎么办？别急，我们还可以试一试kill -1 PID命令，这个命令发送的是hang up信号，含义是“中止信号”，它告诉进程，终端已经被kill了。但这个信号同样只被运行良好的进程所拦截。假设这两种方式都无法结束进程，那么只能使用kill -9 PID了。这个命令发送的是真正的kill信号，对于这个信号，进程是不能忽略的。这是一个“我不管您在做什么,立刻停止”的信号，也就是说进程立刻被终止，不实施清理操作。&lt;br /&gt;&lt;br /&gt;信号是用来与守护程序和进程通信的。任何活动任务都是一个进程，而守护程序是等待对某些事件做出反应或者按照日程安排执行任务的后台服务。一个程序必须有建在其中的信号处理程序用于捕获和应答信号。在LINUX中的signal参考指南解释了各种不同信号和这些信号的用途。常用的信号除了上面介绍的以外，还有INT，CHLD等。&lt;br /&gt;进程操作进阶&lt;br /&gt;&lt;br /&gt;当然，仅仅了解上面的知识，对于对进程的理解，还是不够的。下面，我会介绍更多的关于进程的知识。&lt;br /&gt;&lt;br /&gt;首先，我们需要知道，并不是所有的进程都会被动态分配PID，至少有两个进程不会，就是kernel和init。kernel进程的PID是0, 一直是0，而且你无法从ps，top这些命令中看见它，当然，也无法用kill命令来终止它。init进程是主父进程，什么意思呢？每一个进程都需要一个父进程来监管它，父进程的作用就是接受子进程的返回值和状态值。而如果任何一个进程的父进程被终止，init就会成为它的父进程。init进程的PID固定是1，从理论上讲，你也可以终止它，但是千万不要试图这样做，因为它是用来清除呆死进程的，一旦将其kill，系统最终将崩溃。&lt;br /&gt;&lt;br /&gt;除了他俩，还有一些进程是你不应该kill的，包括Zombies,/O Bound—A和Interception。事实上，我们很少解除这几个进程，普通用户也没必要接触它们，因此，在这里我不会详细解释它们的用途，有兴趣的朋友可以自己google。&lt;br /&gt;&lt;br /&gt;其它进程，在保证系统本身不崩溃的情况下，一旦有异常你都可以试图去kill，不过要知道，kill命令只作用一次，也就是说，假如，我是说假如，这个进程在被kill后又重新自启动，那么你不得不再运行一次kill，这样循环。当然，此时，你就不能一直陪它kill下去了，追踪查看其自启动的根源才是正确的做法。你觉得这太麻烦了？好吧，还有一个懒办法，就是看看这个进程的名字，然后用kill name来阻止它。我知道很多地方都有介绍kill -9 -1这个命令，但是你需要知道，这个命令会kill你所有的进程，包括界面进程以及终端。而且如果你是root权限……它会连所有系统应用都一起 kill，然后，你的系统就将崩溃。所以用这个命令，你还不如直接按下你的重新启动按键，还更加省心……&lt;br /&gt;进程的启动&lt;br /&gt;&lt;br /&gt;我们能够查看正在运行的进程，查看进程的具体信息，但是，我们能不能知道它们是怎样开始的？难道是和孙猴子一样从石头里面崩出来的？你也许会看它的 PPID，恭喜你，摸着点门道了，but……你会发现大多数进程的PPID都是1，init进程。而事实上，进程的启动原因可能是很多种，启动脚本，设备配置脚本，网络变化，甚至是任务日程等等等等。因此，我们需要探查进程启动的秘密。&lt;br /&gt;启动脚本&lt;br /&gt;&lt;br /&gt;看看你的/etc/init.d/文件夹，你会发现其中包含了很多用于启动和停止系统服务的脚本，而它们，都将以链接形式存在于/etc/rc0.d, /etc/rc1.d以及类似目录中。例如，在/etc/rc1.d执行命令ls -l，你会看见如下结果：&lt;br /&gt;&lt;br /&gt;lrwxrwxrwx 1 root root 13 2007-04-21 22:01 K01gdm -&gt; ../init.d/gdm*&lt;br /&gt;lrwxrwxrwx 1 root root 17 2007-04-21 21:59 K01usplash -&gt; ../init.d/usplash*&lt;br /&gt;lrwxrwxrwx 1 root root 17 2007-04-23 14:54 K09apache2 -&gt; ../init.d/apache2*&lt;br /&gt;lrwxrwxrwx 1 root root 17 2007-04-21 21:58 K11anacron -&gt; ../init.d/anacron*&lt;br /&gt;lrwxrwxrwx 1 root root 13 2007-04-21 21:58 K11atd -&gt; ../init.d/atd*&lt;br /&gt;lrwxrwxrwx 1 root root 14 2007-04-21 21:58 K11cron -&gt; ../init.d/cron*&lt;br /&gt;lrwxrwxrwx 1 root root 16 2007-04-21 21:59 K19cupsys -&gt; ../init.d/cupsys*&lt;br /&gt;lrwxrwxrwx 1 root root 15 2007-04-21 21:59 K19hplip -&gt; ../init.d/hplip*&lt;br /&gt;lrwxrwxrwx 1 root root 22 2007-04-21 21:58 K20acpi-support -&gt; ../init.d/acpi-su&lt;br /&gt;……………………………..&lt;br /&gt;&lt;br /&gt;如果你的运行级别是1，init就会进入/etc/rc1.d并调用其中的链接符号，也就是启动相应的进程，以此类推。如果想知道目前系统的运行级别，最简单的办法就是用who -r命令，会显示：&lt;br /&gt;&lt;br /&gt;run-level 2 2007-05-04 10:09&lt;br /&gt;&lt;br /&gt;这就表示我目前的系统运行级别是2。在boot的时候，所有/etc/rc2.d目录下对应的init脚本的输出都会存到/var/log/messages这个文件中，你可以根据它来判断哪些进程被执行了。&lt;br /&gt;启动设备&lt;br /&gt;&lt;br /&gt;udev进程用于动态管理设备的配置，这个进程监视和管理即插即用设备。一旦这些设备生效，存在于/etc/udev/rules.d/文件夹下的哪些脚本就会生效，调用不同的应用程序。&lt;br /&gt;shell启动脚本&lt;br /&gt;&lt;br /&gt;每当你登入登出系统，或者是启动了一个新的shell之后，都会执行配置脚本，每一个脚本都会启动进程。对于笔者使用的ubuntu而言，默认的shell是bash，相应的配置脚本如下：&lt;br /&gt;&lt;br /&gt;/etc/profile：每次登录shel都会执行，全局配置文件&lt;br /&gt;$HOME/.bash_profile：基于用户自定义，每一个用户都可以有自己的登录脚本&lt;br /&gt;/etc/bash.bashrc：交互式非登录全局配置脚本，这个文件在.bashrc中会调用&lt;br /&gt;$HOME/.bashrc：交互式非登录用户自定义的配置脚本，也是我们大多数时候需要修改的文件&lt;br /&gt;/etc/bash.logout：不一定存在，如果存在的话，每次用户登出时调用它&lt;br /&gt;$HOME/.bash_logout：同上，只不过是用户自定义的&lt;br /&gt;&lt;br /&gt;我们可以注意到，上面这些脚本大致可以分为两类，一类是用于登入登出的，一类是交互式。它们有什么区别么？简单得说，每当你登入你的系统时，登入脚本和交互式脚本都会执行。而当你打开一个终端窗口时，只有交互式脚本才会被执行。&lt;br /&gt;桌面脚本&lt;br /&gt;&lt;br /&gt;linux喊了一万年的要易用，要占领桌面系统，简单说来，就是希望有一个漂亮易用的图形界面。大多数人的大多数应用还是基于图形界面的，因此，除了上面介绍的shell脚本，我们还应该关注一下图形界面脚本。&lt;br /&gt;&lt;br /&gt;在启动图形界面的时候，首先会运行/etc/X11/xinit/xinitrc, /etc/X11/Xsession和/etc/X11/xinit/xserverrc这三个脚本。它们会设置相应的环境变量，并在最开始启动时运行应用程序。在X-Windows启动完毕之后，就是Gnome的启动，它会调用很多程序，产生很多进程，也就是类似于Windwos下的开机自启动程序。到底是哪些进程呢？我们可以从存放系统级别启动脚本的/etc/X11/gdm/目录，用于用户自定义启动程序的$HOME/.gnomerc文件，或者通过系统&gt;首选项&gt;会话菜单来查看：&lt;br /&gt;&lt;br /&gt;screeshot(点击缩放)&lt;br /&gt;&lt;br /&gt;好，问题来了。既然有这么多的地方都能进行开机自启动程序的添加，难道它们都是完全一样的么？这样有什么意义呢？&lt;br /&gt;&lt;br /&gt;恩，它们当然不是完全一样的，而是各司其职。&lt;br /&gt;&lt;br /&gt;如果你希望自启动程序是作用于使用X-Windwos的所有人，那么你要修改的地方就是/etc/X11/Xsession，或者把脚本放置到 /etc/X11/Xsession.d/目录下。如果仅仅是希望对你自己使用X-Windwos时生效，则修改$HOME/.xsession即可。&lt;br /&gt;&lt;br /&gt;如果你希望自启动程序是作用于使用Gnome的所有人，那么你要修改的地方就是 /etc/X11/gdm/PostSession/Default，它会仅仅对Gnome使用者起作用，而不是KDE使用者或者其他。或者把脚本放置到 /etc/X11/Xsession.d/目录下。如果仅仅是希望对你自己使用Gnome时生效，则修改$HOME/.gnomerc即可。&lt;br /&gt;&lt;br /&gt;小知识：Gnome和X-Windows的区别？&lt;br /&gt;X- Windows是图形界面底层，提供的功能是在屏幕上构造方块（窗口），然后画出里面的元素，但不提供交互式操作。gnome,kde这些都是基于X -Windows的不同风格的界面，属于桌面环境。怎么理解这个桌面环境呢？基本的意思是指“ Mac OS 和 Windows的图形界面有，而X没有却应该有的东西”。通常是一组有着共同外观和操作感的应用程序，和程序库，以及创建新的应用程序的方法。事实上你可以同时有两个文件管理器，两个面板，等等，并不冲突，因为它们都是属于应用。&lt;br /&gt;&lt;br /&gt;桌面应用&lt;br /&gt;&lt;br /&gt;插入光盘，就会自动弹出文件浏览器，插入数码相机，就会自动弹出照片导入程序，等等。这些应用是怎么实现的？如何禁止程序的自动执行？如何自定义在即插即用设备被认出以后的启动程序？&lt;br /&gt;答案就在 系统&gt;首选项&gt;可移动驱动器和介质里。打开它，你就明白怎么回事了，这东西实在太简单，我就不多说了。只有一点补充的，就是如果你要使用一款新的即插即用设备，而这种设备在可移动驱动器和介质选项中没有，那么此时你就必须求助于udev了。至于udev的具体知识，讲起来又是一篇文章，所以就不讲了，还是那句话，放 google~~^_^。&lt;br /&gt;评估资源&lt;br /&gt;&lt;br /&gt;刚才我们一直再说资源资源，当然，系统资源的使用情况直接决定了你系统当前的性能。那么，我们如何才能对自己系统的性能做一个基础评估呢？在评估之前，我们需要对资源做一个更加详细的解释。所谓的资源，都是指进程所能使用的资源，包括了CPU 处理能力，磁盘空间，磁盘I/O，RAM使用情况，显存使用情况，网络流量等。而这些资源的当前使用状态，我们都是有办法自己获取的。&lt;br /&gt;系统监视器和proc&lt;br /&gt;&lt;br /&gt;正如大多数linuxer所知道的那样，/proc挂载了一个虚拟文件系统，专门用于列出当前系统资源情况和正在运行的进程。在这里，所有的东西都是动态的，随时可能改变的。最关键的是，/proc目录下有很多以数字命名的文件夹，这些文件夹都对应了某一个响应PID的进程，内含进程的很多信息，包括使用命令，运行环境等。还有一些不是以数字命名的文件夹，那是设备驱动和内核的情况，例如，cpuinfo这个文件就提供了系统中cpu的相关信息。&lt;br /&gt;&lt;br /&gt;当然，你可能觉得从这里面获取系统资源信息实在太麻烦了，你会抱怨，拜托，我仅仅是初学者，有没有直观的办法？sure！刚才我们说的CPU处理能力，磁盘可使用空间，内存情况，网络情况，你统统都可以从系统监视器中看到。监视器以曲线图的形式把情况呈现在你的面前，你可以根据它评估系统的运行是否良好，有没有异常的发生。&lt;br /&gt;&lt;br /&gt;screeshot-1(点击缩放)&lt;br /&gt;其它&lt;br /&gt;&lt;br /&gt;那么，监视器就是万能的？no，至少显存和磁盘 I/O的情况它就无法呈现给你。在实际使用中，可能会发生你的系统中有好几个磁盘，但某个磁盘的 I/O通道堵塞会导致系统性能下降的现象。有什么办法来确定是哪个通道在搞鬼呢？这里，iostat就可以帮助我们了。这是一个小的，评估I/O性能的软件，通过sudo apt-get install sysstat来获得它。安装完后直接输入iostat命令，就会显示：&lt;br /&gt;&lt;br /&gt;avg-cpu: %user %nice %system %iowait %steal %idle&lt;br /&gt;7.18 0.08 3.58 2.34 0.00 86.83&lt;br /&gt;&lt;br /&gt;Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn&lt;br /&gt;sda 16.63 0.19 0.16 1046 877&lt;br /&gt;sdb 0.01 0.00 0.00 0 0&lt;br /&gt;&lt;br /&gt;包括基本CPU负荷以及I/O情况。我机器上磁盘数量较少，所以结果比较少。好了，光知道这些数据是没用的，我们需要做的是根据这些数据来分析系统负荷。我们假设现在sdb设备数据量不正常，好，接下来就用mount命令来看看，是哪个文件挂载到sda下的，得出文件路径名后，用lsof来查看这个目录下打开了哪些文件，哪些进程，以及相关信息。这样，就能有的放矢得来寻找到让你磁盘I/O情况异常的东西。&lt;br /&gt;&lt;br /&gt;之后谈谈显存的情况读取。首先谈谈我们为什么要关注显存，显存的容量会直接影响你的显示情况，例如，如果你只有一块老的，256K显存的显卡，那么屏幕的显示最高也就是支持到 800×600,16位色深。如今，大部分的高端显卡都拥有至少128MB的显存，能够轻松在32位色深的情况下上到1280×1024的分辨率。更多的显存同样对游戏以及桌面的逼真度有益，因为可以由显存的一部分来保持主画面的显示，其它空余下来的显存就可以用来体现各种层面的仿真元素。我们可以通过 lspci –v 命令来显示所有PCI卡，包括显卡的存储关联情况。这个命令有什么用呢？当你遇到硬件问题，比如缺乏关键的硬件环境支持时，可以用这个命令来诊断到底是什么设备出了问题。这个命令在我这里奏效，但我不保证在所有的机器上都能奏效。在显示的情况中找VGA这一栏，可以看到显示信息如下：&lt;br /&gt;&lt;br /&gt;01:00.0 VGA compatible controller: ATI Technologies Inc RV370 [Sapphire X550 Silent] (prog-if 00 [VGA])&lt;br /&gt;Flags: bus master, fast devsel, latency 0, IRQ 16&lt;br /&gt;Memory at 20000000 (32-bit, prefetchable) [size=256M]&lt;br /&gt;I/O ports at 2000 [size=256]&lt;br /&gt;Memory at 30110000 (32-bit, non-prefetchable) [size=64K]&lt;br /&gt;Expansion ROM at 30120000 [disabled] [size=128K]&lt;br /&gt;Capabilities:&lt;br /&gt;&lt;br /&gt;从这里，我们就可以看出我的显卡是256M显存。&lt;br /&gt;实战演练&lt;br /&gt;&lt;br /&gt;在经过上面基础知识的介绍，就算是超级新手，也大概应该明白一些东西了。好，下面我们就进入实际调整的环节。同样，所有内容都是基于我的ubuntu feisty系统，如果你的不是这个系统，请仔细核对后再实践，我不对任何内容做“肯定可行”的保证。&lt;br /&gt;加快系统启动速度&lt;br /&gt;&lt;br /&gt;刚才我们已经介绍过了，每次开机启动的时候，启动脚本都放在/etc/rc*.d/目录下，这个*取决于你的运行级别。但是，并不是所有的脚本都是你目前这个系统需要的。如果把那些你不需要的启动进程都去除，那么不仅仅是系统启动速度会变快，开机后分配给你使用的资源也会增多。&lt;br /&gt;&lt;br /&gt;所以现在，我会告诉你一些常见的可禁止的启动进程。在此之前，我得提醒各位，对于那些我没有提及的进程，除非你很清楚知道自己在干什么，否则最好不要去动它们，比如gdm（Gnome桌面）或者module-init-tools（内核模块）这种，要是误操作了，系统错误可别怪我……&lt;br /&gt;&lt;br /&gt;事实上，我们可以通过系统–》管理–》服务的图形界面来做这种活，但是在这里，它并没有列出所有的服务，因此，为了对所有的启动进程都能进行自定义，我们选择sysv-rc-conf工具来进行操作。可以通过&lt;br /&gt;&lt;br /&gt;    sudo apt-get install sysv-rc-conf&lt;br /&gt;&lt;br /&gt;命令来安装它。然后以root权限打开，界面如下：&lt;br /&gt;&lt;br /&gt;sysv-rc-conf(点击缩放)&lt;br /&gt;&lt;br /&gt;第一行的一排数字表示你的系统运行级别，对应的列就是该级别对应的启动进程，具体打开和关闭启动进程的操作方式很简单，下面就有说明。&lt;br /&gt;&lt;br /&gt;好了，介绍一下常见的可以考虑去除的进程吧&lt;br /&gt;&lt;br /&gt;    * anacron — 这是一个一个自动化运行任务守护进程。你可以把它屏蔽，然后用cron来安排计划任务。&lt;br /&gt;&lt;br /&gt;    * atd and cron — 如果你根本就不会使用计划任务功能，那么可以连这个也不要。不过它占用的资源极少，不是特殊情况也没有必要禁止它。&lt;br /&gt;&lt;br /&gt;    * apmd — 这是一个电源管理方面的服务，专门用于监视那些不支持ACPI的旧系统的电池。如果你使用的笔记本比较新，或者使用的是台式机，就没有必要要它。&lt;br /&gt;&lt;br /&gt;    * acpid — 这个服务用于监视电池电量，以及那些键盘上的特殊功能键，比如屏幕亮度调整键，音量控制键，无线网卡开关等等，也可以监视台式机键盘上一些网络应用等类似快捷键。如果你使用的不是笔记本，也不需要这些快捷键，就可以禁止它。&lt;br /&gt;&lt;br /&gt;    * bluez-utiles — 提供蓝牙服务的支持，怎么操作就取决于你有没有蓝牙设备了。&lt;br /&gt;&lt;br /&gt;    * dns-clean, ppp, 和pppd-dns — 这些服务用于动态拨号连接。如果你使用的不是拨号，就可以禁止。&lt;br /&gt;&lt;br /&gt;    * hplip — 提供对HP Linux 图像和打印系统的支持。建议禁止，因为就算没有它，也可以通过lpr这些来实现打印。&lt;br /&gt;&lt;br /&gt;    * fetchmail － 接受邮件的守护程序，建议关闭。&lt;br /&gt;&lt;br /&gt;    * nvidia-kernel－ ATI显卡用户可以关闭，自己编译显卡驱动的用户也可以关闭。&lt;br /&gt;&lt;br /&gt;    * hwtools － 优化irqs的工具，不用irqs的话就可以关闭&lt;br /&gt;&lt;br /&gt;    * mdadm, mdadm-raid, and lvm — 用于支持RAID的文件系统和逻辑卷管理(lvm)。如果没有使用它们，就可以禁止。不过笔者建议在熟悉基本操作后可以自己尝试学习一些LVM相关的知识，还是挺有意义的。关不关看自己吧。&lt;br /&gt;&lt;br /&gt;    * nfs-common, nfs-kernel-server, and portmap — NFS(Network File System)是一种分布式文件系统，允许网络中的安装不同操作系统的计算机间共享文件和外设。如果你不是经常需要NFS服务，就可以先禁止它，等要使用时，再用下面的命令来启动它们：&lt;br /&gt;&lt;br /&gt;    sudo /etc/init.d/portmap start&lt;br /&gt;    sudo /etc/init.d/nfs-common start&lt;br /&gt;    sudo /etc/init.d/nfs-kernel-server start&lt;br /&gt;&lt;br /&gt;    * pcmcia and pcmciautils — 提供对笔记本上PCMCIA设备的支持。如果没有PCMCIA插槽，还要它干吗？&lt;br /&gt;&lt;br /&gt;    * powernowd and powernowd.early — 用于控制可变速CPU的服务。现在新的计算机CPU大部分都是可自动变速来节省电量了，所以只有那些很老机器的用户才建议关闭它。事实上，这部分用户已经很少很少，所以我个人建议还是保持开启。&lt;br /&gt;&lt;br /&gt;    * readahead and readahead - 一般只有内存非常小的用户，才建议关闭这个启动进程，因为它会预加载一些库，让一些程序在启动时更快，这样会消耗一些内存。如果你内存比较大，就没有必要管它。&lt;br /&gt;&lt;br /&gt;    * rsync— 用于在计算机之间同步文件的服务，极少人用到，基本都可以禁止。&lt;br /&gt;&lt;br /&gt;    * vbesave — rvices monitors the 监视Video BIOS实时配置的服务。它是ACPI的功能之一，通常是笔记本需要在屏幕显示或者外接显示（投影仪之类）之间切换时才起作用。如果你的计算机不支持 ACPI或者没有这种应用的需求，就可以禁止。&lt;br /&gt;&lt;br /&gt;调整内核参数&lt;br /&gt;查看参数&lt;br /&gt;&lt;br /&gt;不要把内核参数想象得太神秘，事实上，有很多参数是你自己就可以调整的。用下面这个命令在终端中执行试试看，结果是什么？&lt;br /&gt;&lt;br /&gt;    sudo sysctl -a | sort | more&lt;br /&gt;&lt;br /&gt;是的，显示的就是一系列内核参数。即使你不用sudo，也可以看见大多数参数设置。这些显示的参数都很好理解，比如kernel.threads- max = 16379，就表示同时运行的最大进程数是16379个。也许你会奇怪，PID的最大值不是65536么？怎么这个设置小这么多？是的，这就是我在这里介绍调整内核参数的原因。我们完全可以通过调整这个值来适应不同的系统，比如如果你的cpu频率很低，内存很小，就可以把这个值缩小一些。如果你的cpu很棒，内存很足，就可以不用管它，甚至调大也行。这完全取决于你的机器配置，和你自己的想法。事实上，在你安装ubuntu的时候，它就会自动根据可用资源来调整这个参数，所以不同机器上，这个参数可能是不同的。但是记住，机器调整的毕竟没有人调整的好，无法最大限度发挥系统的性能。&lt;br /&gt;调整参数&lt;br /&gt;&lt;br /&gt;好，我们现在已经可以看到很多内核参数了，那么，接下来的事情就是根据自己机器的情况来调整。通常有两种方法来调整参数，一种是在命令行下，通过类似命令&lt;br /&gt;&lt;br /&gt;    sudo sysctl -w kernel.threads-max=16000&lt;br /&gt;&lt;br /&gt;这样来调整。这种方法调整过的参数会立刻生效，但是不会永久生效。什么意思呢？也就是说一旦你重新启动，所有改动就会消失。那这样岂不是毫无意义么？所以还有第二种方法，就是直接修改/etc/sysctl.conf文件。这个文件本身没有任何内容，有的东西全部是注释，就等着你来修改。比如，你可以将&lt;br /&gt;&lt;br /&gt;    kernel.threads-max=16000&lt;br /&gt;&lt;br /&gt;这行命令加进去，这样，在重新启动之后，threads-max的值就会变成16000了。&lt;br /&gt;&lt;br /&gt;通常，我们应该配合这两种办法来进行内核参数调整。首先用命令行形式调整，看看并测试直观的效果，如果比较满意，再把调整写入文件中。命令行调整的好处就是，不管你怎么胡乱修改，甚至导致系统错误，没关系，只要重新启动，一切就将恢复原样。&lt;br /&gt;修改共享内存&lt;br /&gt;&lt;br /&gt;在linux下，不同的应用程序可以共享同一块虚拟内存地址，这样方便不同程序之间的通信和信息共享，通常有两种共享内存的分配方式：临时和永久。临时分配的意思就是在所有共享的应用程序都释放内存句柄，不再需要它时，内存就会被收回。而永久分配的意思就是即使没有任何应用程序使用它，这些共享内存也会继续保持，这就有利于将状态保存于其中。&lt;br /&gt;&lt;br /&gt;我们可以通过ipcs命令来查看进程间通信的状态。输入ipcs -m来浏览内存使用情况，显示结果为&lt;br /&gt;&lt;br /&gt;    —— Shared Memory Segments ——–&lt;br /&gt;    key shmid owner perms bytes nattch status&lt;br /&gt;    0×00000000 131073 windstorm 600 393216 2 dest&lt;br /&gt;    0×00000000 393218 windstorm 600 393216 2 dest&lt;br /&gt;    0×00000000 425987 windstorm 600 393216 2 dest&lt;br /&gt;    0×00000000 229380 windstorm 600 393216 2 dest&lt;br /&gt;    0×00000000 262149 windstorm 600 393216 2 dest&lt;br /&gt;    0×00000000 294918 windstorm 600 393216 2 dest&lt;br /&gt;    0×00000000 327687 windstorm 600 393216 2 dest&lt;br /&gt;    0×00000000 360456 windstorm 600 393216 2 dest&lt;br /&gt;    0×00000000 458761 windstorm 600 393216 2 dest&lt;br /&gt;    0×00000000 3964938 windstorm 600 393216 2 dest&lt;br /&gt;    0×00000000 524299 windstorm 600 393216 2 dest&lt;br /&gt;    ……..&lt;br /&gt;&lt;br /&gt;是不是有点晕了？我们可以看到一些共享内存的信息，包括共享内存ID，所有者，状态等等，但是这对于普通用户来说是不够的。你总得让我知道是谁在用吧？所以，我们应该使用下面这个命令&lt;br /&gt;&lt;br /&gt;    ipcs -m -p&lt;br /&gt;&lt;br /&gt;来看看输出结果：&lt;br /&gt;&lt;br /&gt;    —— Shared Memory Creator/Last-op ——–&lt;br /&gt;    shmid owner cpid lpid&lt;br /&gt;    131073 windstorm 5473 4790&lt;br /&gt;    393218 windstorm 5568 4790&lt;br /&gt;    425987 windstorm 5566 4790&lt;br /&gt;    229380 windstorm 5413 5513&lt;br /&gt;    262149 windstorm 5490 8277&lt;br /&gt;    294918 windstorm 5512 4790&lt;br /&gt;    327687 windstorm 5496 7300&lt;br /&gt;    360456 windstorm 5496 7300&lt;br /&gt;    ……..&lt;br /&gt;&lt;br /&gt;好了，现在我们知道这些共享内存块分别是谁创建的（cpid），谁最近一次访问（lpid）。有时候，你会发现一些被遗弃的共享内存，就可以用ipcrm -m|-q|-s shm_id来删除共享内存信息。&lt;br /&gt;&lt;br /&gt;但是通常情况下，如果所用的系统是作为数据库或者高性能网络服务器使用，我们更加关心的是如何分配更多的共享内存，而不是清除废弃的共享内存。那么首先，我们可以通过sysctl kernel | grep shm命令看看当前共享内存的分配情况。&lt;br /&gt;&lt;br /&gt;    sysctl kernel | grep shm&lt;br /&gt;&lt;br /&gt;我的机器上果如下：&lt;br /&gt;&lt;br /&gt;    kernel.shmmni = 4096&lt;br /&gt;    kernel.shmall = 2097152&lt;br /&gt;    kernel.shmmax = 33554432&lt;br /&gt;&lt;br /&gt;这是什么意思呢？这些数据表示，当前总共有33,554,432 bytes (32 MB)可用共享内存，每一个单独的程序最高能够分配到2,097,152 bytes，也就是2 MB，而最小的分配单元是4096 bytes。这些数据对于常用的应用来说完全足够了，但是如果是那种类似于数据库的高性能应用，可能你就需要考虑增大它们的数值了。修改方法？请参考“调整参数”小节。&lt;br /&gt;&lt;br /&gt;ipcs还有很多其他的查看方式，比如ipcs -m –t能够显示最近一次共享内存的访问的时间，ipcs -m –c则可以显示访问权限，请man ipcs来自行查阅更多用法。&lt;br /&gt;修改个人用户设置&lt;br /&gt;&lt;br /&gt;在内核设置层面之上，还有很多个人用户配置的参数，ulimit命令就是bash下提供的，查看对指定应用的限制值的工具。你可以通过ulimit –a命令显示当前设置：&lt;br /&gt;&lt;br /&gt;    core file size (blocks, -c) 0&lt;br /&gt;    data seg size (kbytes, -d) unlimited&lt;br /&gt;    scheduling priority (-e) 20&lt;br /&gt;    file size (blocks, -f) unlimited&lt;br /&gt;    pending signals (-i) unlimited&lt;br /&gt;    max locked memory (kbytes, -l) unlimited&lt;br /&gt;    max memory size (kbytes, -m) unlimited&lt;br /&gt;    open files (-n) 1024&lt;br /&gt;    pipe size (512 bytes, -p) 8&lt;br /&gt;    POSIX message queues (bytes, -q) unlimited&lt;br /&gt;    real-time priority (-r) 0&lt;br /&gt;    stack size (kbytes, -s) 8192&lt;br /&gt;    cpu time (seconds, -t) unlimited&lt;br /&gt;    max user processes (-u) unlimited&lt;br /&gt;    virtual memory (kbytes, -v) unlimited&lt;br /&gt;    file locks (-x) unlimited&lt;br /&gt;&lt;br /&gt;上面的信息什么意思？举个例子，&lt;br /&gt;&lt;br /&gt;    open files (-n) 1024&lt;br /&gt;&lt;br /&gt;表示一个用户shell最多可以打开1024个文件，想增加怎么办？ulimit -n num即可。&lt;br /&gt;&lt;br /&gt;    core file size (blocks, -c) 0&lt;br /&gt;&lt;br /&gt;表示core dumps功能关闭。想打开怎么办？ulimit -c num即可。&lt;br /&gt;如果你只是普通身份用户，则只能对数值进行减少的修改。如果想增加数值，需要用root权限修改。而且，一些参数的上限是和内核参数对应的，比如你可以增加打开文件句柄的数目，但数目的最大值不能超过内核参数fs.file-max设置的值（sysctl fs.file-max看看）。&lt;br /&gt;修改日志数据&lt;br /&gt;&lt;br /&gt;好吧，我知道这招有些冒险，但是确实很有作用。为了避免一些朋友在使用后出问题又无法解决，我在后面也附上了问题解决方法。&lt;br /&gt;&lt;br /&gt;我们知道，无论是Ext3还是ReiserFS，都有三种日志方式：&lt;br /&gt;1) Journal Data Writeback&lt;br /&gt;2) Journal Data Ordered&lt;br /&gt;3) Journal Data&lt;br /&gt;&lt;br /&gt;三者的不同点，简单得说就是实际数据被写入文件系统以及相关日志的时间不同。默认系统采用的是Journal Data Ordered方式。如果采用Journal Data Writeback方式，能够有效提高系统速度，只不过这是有代价的：一旦系统崩溃，在通过日志恢复后，你可能只能得到一些旧的数据，而不是最新数据。所以，在修改前，请三思，如果你是对当前工作进度的备份要求非常苛刻的人，最好不要使用这个办法。&lt;br /&gt;&lt;br /&gt;那么，接下来就介绍一些具体的修改办法，首先, 如果你是Ext3系统，需要进行以下步骤，否则可能在重新启动时出错：&lt;br /&gt;&lt;br /&gt;    sudo tune2fs -o journal_data_writeback /dev/hda1&lt;br /&gt;&lt;br /&gt;这是人工在重启之前把文件系统设置为writeback模式。用下面这个命令来确认是否得到了执行：&lt;br /&gt;&lt;br /&gt;    sudo tune2fs -l /dev/hda1&lt;br /&gt;&lt;br /&gt;千万注意，ReiserFS文件系统不用这样。&lt;br /&gt;&lt;br /&gt;然后sudo vim /etc/fstab，在你的root分区mount属性中增加&lt;br /&gt;&lt;br /&gt;data=writeback&lt;br /&gt;&lt;br /&gt;这一句，使其看起来是这样的：&lt;br /&gt;&lt;br /&gt;    /dev/hda1 / ext3 defaults,errors=remount-ro,atime,auto,rw,dev,exec,suid,nouser,data=writeback 0 1&lt;br /&gt;&lt;br /&gt;保存，然后sudo vim /boot/grub/menu.lst，在下面两行加上粗体属性：&lt;br /&gt;&lt;br /&gt;    # defoptions=quiet splash rootflags=data=writeback&lt;br /&gt;    # altoptions=(recovery mode) single rootflags=data=writeback&lt;br /&gt;&lt;br /&gt;这样的话，即使升级内核，增加的标志也会保持，不会被覆盖。最后运行sudo update-grub即可。&lt;br /&gt;&lt;br /&gt;ok，再提醒一句，这样做是比较冒险的。我知道你很有冒险心理，所以一旦重新启动出问题时，请用一下方法解决：&lt;br /&gt;将系统重新启动到恢复模式下，在命令行下输入&lt;br /&gt;&lt;br /&gt;    mount -o remount,rw /dev/sdXX/&lt;br /&gt;&lt;br /&gt;这个sdXX就是你的硬盘分区，这样就允许你修改硬盘上的fstab和menu.lst文件，将改变还原，然后在正确的系统中再去思考到底哪里出了问题。&lt;br /&gt;杂项&lt;br /&gt;&lt;br /&gt;1. 上面已经介绍，/etc/init.d/下面的都是启动脚本，默认这些脚本是按顺序启动的，实际上，如果你使用的是SATA 或SCSI，可以并行启动这些脚本程序，加速启动过程。而如果你的机器配置较老，则最好还是不要修改。修改方法是通过命令&lt;br /&gt;&lt;br /&gt;    sudo vim /etc/init.d/rc&lt;br /&gt;&lt;br /&gt;找到并修改该行:&lt;br /&gt;CONCURRENCY=none&lt;br /&gt;为:&lt;br /&gt;CONCURRENCY=shell&lt;br /&gt;&lt;br /&gt;2. 长期使用 Ubuntu 后有一种感觉，那就是在 GNOME 中启动应用程序时，速度越来越慢。在 Ubuntu 英文论坛那边看到一个技巧，可以对这个问题起到改善作用。打开 /etc/hosts 文件，可以看到类似下面的内容：&lt;br /&gt;&lt;br /&gt;    127.0.0.1 localhost&lt;br /&gt;    127.0.1.1 windstorm&lt;br /&gt;&lt;br /&gt;现在，只需在第一行的末尾加上主机名即可&lt;br /&gt;&lt;br /&gt;    127.0.0.1 localhost windstorm&lt;br /&gt;    127.0.1.1 windstorm&lt;br /&gt;&lt;br /&gt;保存后，重启系统，更改生效。&lt;br /&gt;&lt;br /&gt;3. Pango是一个着重于国际化的，用于输出和文本渲染的库，但是这个库可能导致firefox等一些程序有着过高的cpu占用资源。我们可以&lt;br /&gt;&lt;br /&gt;    sudo vim /etc/environment&lt;br /&gt;&lt;br /&gt;然后在其中添加:&lt;br /&gt;MOZ_DISABLE_PANGO=”1″&lt;br /&gt;&lt;br /&gt;这样就可以禁用Pango了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-6046842660152557850?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/6046842660152557850/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=6046842660152557850&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/6046842660152557850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/6046842660152557850'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2008/08/ubuntu.html' title='自己动手提高ubuntu系统的性能'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-1096782449597069399</id><published>2008-08-30T13:46:00.000+09:00</published><updated>2008-08-30T13:47:05.850+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Ubuntu Linux系统的启动过程</title><content type='html'>BIOS 自检&lt;br /&gt;&lt;br /&gt;启动 GRUB/LILO&lt;br /&gt;&lt;br /&gt;运行 Linux 的系统内核&lt;br /&gt;&lt;br /&gt;读取系统引导配置文件 /etc/inittab 中的信息运行系统的第一个进程 init&lt;br /&gt;&lt;br /&gt;执行系统初始化脚本 /etc/init.d/rcS&lt;br /&gt;&lt;br /&gt;根据运行级别（X）配置服务执行 /etc/init.d/rcX.d/[KS]*&lt;br /&gt;&lt;br /&gt;终止以“K”开头的服务&lt;br /&gt;&lt;br /&gt;启动以“S”开头的服务&lt;br /&gt;&lt;br /&gt;运行 getty 等待用户登录&lt;br /&gt;&lt;br /&gt;执行系统初始化脚本 /etc/init.d/rcS 时会执行 /etc/init.d/networking 启动网络配置&lt;br /&gt;&lt;br /&gt;在执行 /etc/init.d/rcX.d/ 时，若运行级别为 2~5&lt;br /&gt;&lt;br /&gt;若安装了Gnome/KDE，还会运行 gdm/kdm&lt;br /&gt;&lt;br /&gt;运行脚本 /etc/rc.local 执行本地的其他启动配置&lt;br /&gt;&lt;br /&gt;INIT 及其配置文件&lt;br /&gt;&lt;br /&gt;INIT 进程是由 Linux 内核引导的，是系统中的第一个进程，是系统其他进程的祖先进程，其进程号（PID）永远为 1。&lt;br /&gt;&lt;br /&gt;INIT 进程在运行时将读取系统引导配置文件 /etc/inittab 中的信息。这些信息包括默认的运行级别和由 INIT 启动的进程。&lt;br /&gt;&lt;br /&gt;cat /etc/inittab&lt;br /&gt;# /etc/inittab: init(8) configuration.&lt;br /&gt;# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $&lt;br /&gt;&lt;br /&gt;# The default runlevel.&lt;br /&gt;id:2:initdefault:&lt;br /&gt;&lt;br /&gt;# Boot-time system configuration/initialization script.&lt;br /&gt;# This is run first except when booting in emergency (-b) mode.&lt;br /&gt;si::sysinit:/etc/init.d/rcS&lt;br /&gt;&lt;br /&gt;# What to do in single-user mode.&lt;br /&gt;~~:S:wait:/sbin/sulogin&lt;br /&gt;&lt;br /&gt;# /etc/init.d executes the S and K scripts upon change&lt;br /&gt;# of runlevel.&lt;br /&gt;#&lt;br /&gt;# Runlevel 0 is halt.&lt;br /&gt;# Runlevel 1 is single-user.&lt;br /&gt;# Runlevels 2-5 are multi-user.&lt;br /&gt;# Runlevel 6 is reboot.&lt;br /&gt;&lt;br /&gt;l0:0:wait:/etc/init.d/rc 0&lt;br /&gt;l1:1:wait:/etc/init.d/rc 1&lt;br /&gt;l2:2:wait:/etc/init.d/rc 2&lt;br /&gt;l3:3:wait:/etc/init.d/rc 3&lt;br /&gt;l4:4:wait:/etc/init.d/rc 4&lt;br /&gt;l5:5:wait:/etc/init.d/rc 5&lt;br /&gt;l6:6:wait:/etc/init.d/rc 6&lt;br /&gt;# Normally not reached, but fallthrough in case of emergency.&lt;br /&gt;z6:6:respawn:/sbin/sulogin&lt;br /&gt;&lt;br /&gt;# What to do when CTRL-ALT-DEL is pressed.&lt;br /&gt;ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now&lt;br /&gt;&lt;br /&gt;# Action on special keypress (ALT-UpArrow).&lt;br /&gt;#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."&lt;br /&gt;&lt;br /&gt;# What to do when the power fails/returns.&lt;br /&gt;pf::powerwait:/etc/init.d/powerfail start&lt;br /&gt;pn::powerfailnow:/etc/init.d/powerfail now&lt;br /&gt;po::powerokwait:/etc/init.d/powerfail stop&lt;br /&gt;&lt;br /&gt;# /sbin/getty invocations for the runlevels.&lt;br /&gt;#&lt;br /&gt;# The "id" field MUST be the same as the last&lt;br /&gt;# characters of the device (after "tty").&lt;br /&gt;#&lt;br /&gt;# Format:&lt;br /&gt;# :::&lt;br /&gt;#&lt;br /&gt;# Note that on most Debian systems tty7 is used by the X Window System,&lt;br /&gt;# so if you want to add more getty's go ahead but skip tty7 if you run X.&lt;br /&gt;#&lt;br /&gt;1:2345:respawn:/sbin/getty 38400 tty1&lt;br /&gt;2:23:respawn:/sbin/getty 38400 tty2&lt;br /&gt;3:23:respawn:/sbin/getty 38400 tty3&lt;br /&gt;4:23:respawn:/sbin/getty 38400 tty4&lt;br /&gt;5:23:respawn:/sbin/getty 38400 tty5&lt;br /&gt;6:23:respawn:/sbin/getty 38400 tty6&lt;br /&gt;&lt;br /&gt;# Example how to put a getty on a serial line (for a terminal)&lt;br /&gt;#&lt;br /&gt;#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100&lt;br /&gt;#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100&lt;br /&gt;&lt;br /&gt;# Example how to put a getty on a modem line.&lt;br /&gt;#&lt;br /&gt;#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3&lt;br /&gt;&lt;br /&gt;以 # 开头的行为注释行&lt;br /&gt;&lt;br /&gt;每一行包括如下四个字段（每个字段用“：”间隔）：&lt;br /&gt;&lt;br /&gt;id : runlevels : action : process&lt;br /&gt;&lt;br /&gt;文件 /etc/inittab 的字段说明&lt;br /&gt;&lt;br /&gt;id&lt;br /&gt;&lt;br /&gt;该字段是各有效行的标识符。对定义 getty 的各行来说，该标识符指定 getty 运行的终端（即设备文件 /dev/tty 之后的数字字符）；对其他行来说，除了有长度限制外没有特殊要求，但该字段在整个文件中必须唯一。&lt;br /&gt;&lt;br /&gt;runlevels&lt;br /&gt;&lt;br /&gt;指定运行级别，各运行级别由单个的数字表示，可以指定多个运行级别，但不能包含任何间隔符。&lt;br /&gt;&lt;br /&gt;action&lt;br /&gt;&lt;br /&gt;指定运行状态，可以有如下的取值:&lt;br /&gt;&lt;br /&gt;initdefault — 指定启动后所进入的运行级别，process 字段将被忽略，默认值为 2&lt;br /&gt;&lt;br /&gt;sysinit — 在系统启动时执行初始化&lt;br /&gt;&lt;br /&gt;wait — 执行下一个字段指定的命令，并等待其结束再运行其他命令&lt;br /&gt;&lt;br /&gt;respawn — 当下一个字段指定的命令结束后，重新运行该命令（如控制台登录程序 getty）&lt;br /&gt;&lt;br /&gt;ctrlaltdel — 当按下Ctrl+Alt+Del组合键时执行下一个字段指定的命令&lt;br /&gt;&lt;br /&gt;powerwait — 当出现电源错误时执行下一个字段指定的命令，并等待其结束&lt;br /&gt;&lt;br /&gt;powerfailnow — 当出现电源错误时执行下一个字段指定的命令，不等待其结束&lt;br /&gt;&lt;br /&gt;powerokwait — 当电源恢复时执行下一个字段指定的命令&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-1096782449597069399?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/1096782449597069399/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=1096782449597069399&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/1096782449597069399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/1096782449597069399'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2008/08/ubuntu-linux.html' title='Ubuntu Linux系统的启动过程'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-1612091763852675633</id><published>2008-08-30T13:31:00.001+09:00</published><updated>2008-08-30T13:33:22.849+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>优化Linux启动速度</title><content type='html'>要想提速可以从这几个方面考虑&lt;br /&gt;&lt;br /&gt;1 了解linux的启动过程 然后针对自己的电脑取舍&lt;br /&gt;&lt;br /&gt;2 了解自己的计算机硬件 重新编译内核 只选择自己需要的模块&lt;br /&gt;&lt;br /&gt;3 了解x-window工作方式 优化x-window&lt;br /&gt;&lt;br /&gt;4 不要安装不需要的软件 能省就省 做到系统最小化 功能最大化&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-1612091763852675633?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/1612091763852675633/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=1612091763852675633&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/1612091763852675633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/1612091763852675633'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2008/08/linux.html' title='优化Linux启动速度'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-2771730754829078088</id><published>2008-04-24T01:48:00.001+09:00</published><updated>2008-04-24T01:52:04.411+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>命令行配置ubuntu网络</title><content type='html'>为网卡配置DHCP地址：&lt;br /&gt;如果你想配置DHCP地址，你需要编辑/etc/network/interfaces，并输入以下几行（假设你的网卡是eth0）：&lt;br /&gt;sudo vi /etc/network/interfaces&lt;br /&gt;&lt;br /&gt;# The primary network interface - use DHCP to find our address&lt;br /&gt;auto eth0&lt;br /&gt;iface eth0 inet dhcp //指定为dhcp&lt;br /&gt;&lt;br /&gt;在输入这几行后，你需要通过以下命令重新启动你的网络设备：&lt;br /&gt;sudo /etc/init.d/networking restart&lt;br /&gt;&lt;br /&gt;为网卡配置静态IP&lt;br /&gt;如果你想配置静态IP地址，你需要编辑/etc/network/interfaces，并输入以下几行（假设你的网卡是eth0）：&lt;br /&gt;sudo vi /etc/network/interfaces&lt;br /&gt;&lt;br /&gt;# The primary network interface&lt;br /&gt;auto eth0&lt;br /&gt;iface eth0 inet static //指定为static&lt;br /&gt;address 192.168.3.90 //IP地址&lt;br /&gt;gateway 192.168.3.1 //网关&lt;br /&gt;netmask 255.255.255.0 //子网掩码&lt;br /&gt;network 192.168.3.0 //这个……网络？&lt;br /&gt;broadcast 192.168.3.255 //广播&lt;br /&gt;&lt;br /&gt;在输入这几行后，你需要通过以下命令重新启动你的网络设备：&lt;br /&gt;sudo /etc/init.d/networking restart&lt;br /&gt;&lt;br /&gt;设置第二个IP地址或虚拟IP&lt;br /&gt;如果你是一个服务器管理员或者只是普通用户，有时你需要为系统指派第二个IP，那么你可以这样做，同样编辑/etc/network/interfaces文件（假设你的网卡是eth0）：&lt;br /&gt;&lt;br /&gt;sudo vi /etc/network/interfaces&lt;br /&gt;&lt;br /&gt;auto eth0:1&lt;br /&gt;iface eth0:1 inet static&lt;br /&gt;address 192.168.1.60&lt;br /&gt;netmask 255.255.255.0&lt;br /&gt;network x.x.x.x&lt;br /&gt;broadcast x.x.x.x&lt;br /&gt;gateway x.x.x.x&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;在输入这几行后，你需要通过以下命令重新启动你的网络设备：&lt;br /&gt;sudo /etc/init.d/networking restart&lt;br /&gt;&lt;br /&gt;设置Ubuntu系统的hostname&lt;br /&gt;使用以下命令格式来改系统的hostname，或者直接编辑/etc/hostname&lt;br /&gt;sudo hostname newname&lt;br /&gt;&lt;br /&gt;设置DNS&lt;br /&gt;sudo vi /etc/resolv.conf&lt;br /&gt;&lt;br /&gt;enter the following details&lt;br /&gt;&lt;br /&gt;search test.com&lt;br /&gt;nameserver 192.168.3.2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-2771730754829078088?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/2771730754829078088/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=2771730754829078088&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/2771730754829078088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/2771730754829078088'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2008/04/ubuntu.html' title='命令行配置ubuntu网络'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-2651768058444044248</id><published>2007-12-15T10:59:00.001+09:00</published><updated>2007-12-15T11:00:30.072+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>段错误不产生core文件问题的解决</title><content type='html'>检查以后发现原因是 core 文件最大尺寸（用 ulimit -c 查看）是 0，把它设置成非 0 值就可以了，如：&lt;br /&gt;ulimit -c 2048（设置 core 文件最大尺寸为 2048 blocks，1block=512bytes，因此这里设置的其实是 1MB）&lt;br /&gt;ulimit -c unlimited（不限 core 文件尺寸）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-2651768058444044248?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/2651768058444044248/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=2651768058444044248&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/2651768058444044248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/2651768058444044248'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/12/core.html' title='段错误不产生core文件问题的解决'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-7778739612774567903</id><published>2007-12-02T00:52:00.000+09:00</published><updated>2007-12-02T00:59:28.344+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>在ＵＲＸＶＴ中使用ＬＳ命令时颜色无法显示的问题</title><content type='html'>装好ＵＲＸＶＴ后，发现在执行ＬＳ命令的时候，无法用颜色区分不同类型的文件。但在ＸＴＥＲＭ中却可以。调查后发现环境变量ＴＥＲＭ被设置成了rxvt-unicode。而在/etc/DIR_COLORS文件中，没有相关的设定。加上下面一行后问题解决。&lt;br /&gt;TERM rxvt-unicode&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-7778739612774567903?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/7778739612774567903/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=7778739612774567903&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7778739612774567903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7778739612774567903'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/12/blog-post.html' title='在ＵＲＸＶＴ中使用ＬＳ命令时颜色无法显示的问题'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-839178057058745018</id><published>2007-12-01T14:51:00.000+09:00</published><updated>2007-12-02T00:40:58.318+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux常用命令</title><content type='html'>fc-list　：　可用字体列表&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-839178057058745018?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/839178057058745018/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=839178057058745018&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/839178057058745018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/839178057058745018'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/12/linux_01.html' title='Linux常用命令'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-7822701753716159700</id><published>2007-12-01T14:01:00.000+09:00</published><updated>2007-12-01T14:02:04.772+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>理解 Linux 配置文件</title><content type='html'>本文说明了 &lt;a href="javascript:;" onclick="javascript:tagshow(event, 'Linux');" target="_self"&gt;&lt;u&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt; 系统的配置文件，在多用户、多任务环境中，配置文件控制用户权限、系统&lt;a href="javascript:;" onclick="javascript:tagshow(event, '%D3%A6%D3%C3%B3%CC%D0%F2');" target="_self"&gt;&lt;u&gt;&lt;strong&gt;应用程序&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;、守护进程、服务和其它管理任务。这些任务包括管理用户帐号、分配磁盘配额、管理电子邮件和&lt;a href="javascript:;" onclick="javascript:tagshow(event, '%D0%C2%CE%C5');" target="_self"&gt;&lt;u&gt;&lt;strong&gt;新闻&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;组，以及配置内核参数。本文还根据配置文件的使用和其所影响的服务的情况对目前 Red Hat Linux 系统中的配置文件进行了分类。&lt;br /&gt;介绍&lt;br /&gt;&lt;br /&gt;每 个 Linux 程序都是一个可执行文件，它含有操作码列表，CPU 将执行这些操作码来完成特定的操作。例如，ls 命令是由 /bin/ls 文件提供的，该文件含有机器指令的列表，在屏幕上显示当前目录中文件的列表时需要使用这些机器指令。几乎每个程序的行为都可以通过修改其配置文件来按照您 的偏好或需要去定制。&lt;br /&gt;&lt;br /&gt;Linux 中有没有一个标准的配置文件格式？&lt;br /&gt;&lt;br /&gt;一句话，没有。不熟悉 Linux 的用户（一定）会感到沮丧，因为每个配置文件看起来都象是一个要迎接的新挑战。在 Linux 中，每个程序员都可以自由选择他或她喜欢的配置文件格式。可以选择的格式很多，从 /etc/shells 文件（它包含被一个换行符分开的 shell 的列表），到 Apache 的复杂的 /etc/httpd.conf 文件。&lt;br /&gt;&lt;br /&gt;什么是系统配置文件？&lt;br /&gt;&lt;br /&gt;内核 本身也可以看成是一个“程序”。为什么内核需要配置文件？内核需要了解系统中用户和组的列表，进而管理文件权限（即根据权限判定特定用户 （UNIX_USERS）是否可以打开某个文件）。注意，这些文件不是明确地由程序读取的，而是由系统库所提供的一个函数读取，并被内核使用。例如，程序 需要某个用户的（加密过的）密码时不应该打开 /etc/passwd 文件。相反，程序应该调用系统库的 getpw() 函数。这种函数也被称为系统调用。打开 /etc/passwd 文件和之后查找那个被请求的用户的密码都是由内核（通过系统库）决定的。&lt;br /&gt;&lt;br /&gt;除非另行指定，Red Hat Linux 系统中大多数配置文件都在 /etc 目录中。配置文件可以大致分为下面几类：&lt;br /&gt;&lt;br /&gt;访问文件&lt;br /&gt;&lt;br /&gt;/etc/host.conf  告诉网络域名服务器如何查找主机名。（通常是 /etc/hosts，然后就是名称服务器；可通过 netconf 对其进行更改）&lt;br /&gt;/etc/hosts  包含（本地网络中）已知主机的一个列表。如果系统的 IP 不是动态生成，就可以使用它。对于简单的主机名解析（点分表示法），在请求 DNS 或 NIS 网络名称服务器之前，/etc/hosts.conf 通常会告诉解析程序先查看这里。&lt;br /&gt;/etc/hosts.allow  请参阅 hosts_access 的联机帮助页。至少由 tcpd 读取。&lt;br /&gt;/etc/hosts.deny  请参阅 hosts_access 的联机帮助页。至少由 tcpd 读取。&lt;br /&gt;&lt;br /&gt;引导和登录／注销&lt;br /&gt;&lt;br /&gt;/etc/issue &amp;amp; /etc/issue.net  这些文件由 mingetty（和类似的程序）读取，用来向从终端（issue）或通过 telnet 会话（issue.net）连接的用户显示一个“welcome”字符串。它们包括几行声明 Red Hat 版本号、名称和内核 ID 的信息。它们由 rc.local 使用。&lt;br /&gt;/etc/redhat-release  包括一行声明 Red Hat 版本号和名称的信息。由 rc.local 使用。&lt;br /&gt;/etc/rc.d/rc  通常在所有运行级别运行，级别作为参数传送。例如，要以图形（Graphics）模式（X-Server）引导机器，请在命令行运行下面的命令： init 5 。运行级别 5 表示以图形模式引导系统。 &lt;br /&gt;/etc/rc.d/rc.local  非正式的。可以从 rc、rc.sysinit 或 /etc/inittab 调用。&lt;br /&gt;/etc/rc.d/rc.sysinit  通常是所有运行级别的第一个脚本。&lt;br /&gt;/etc/rc.d/rc/rcX.d  从 rc 运行的脚本（ X 表示 1 到 5 之间的任意数字）。这些目录是特定“运行级别”的目录。当系统启动时，它会识别要启动的运行级别，然后调用该运行级别的特定目录中存在的所有启动脚本。例 如，系统启动时通常会在引导消息之后显示“entering run-level 3”的消息；这意味着 /etc/rc.d/rc3.d/ 目录中的所有初始化脚本都将被调用。 &lt;br /&gt;&lt;br /&gt;文件系统&lt;br /&gt;&lt;br /&gt;内核提供了一个接口，用来显示一些它的数据结构，这些数据结构对于决 定诸如使用的中断、初始化的设备和内存统计信息之类的系统参数可能很有用。这个接口是作为一个独立但虚拟的文件系统提供的，称为 /proc 文件系统。很多系统实用程序都使用这个文件系统中存在的值来显示系统统计信息。例如，/proc/modules 文件列举系统中当前加载的模块。lsmod 命令读取此信息，然后将其以人们可以看懂的格式显示出来。下面表格中指定的 mtab 文件以同样的方式读取包含当前安装的文件系统的 /proc/mount 文件。&lt;br /&gt;&lt;br /&gt;/etc/mtab  这将随着 /proc/mount 文件的改变而不断改变。换句话说，文件系统被安装和卸载时，改变会立即反映到此文件中。&lt;br /&gt;/etc/fstab  列举计算机当前“可以安装”的文件系统。这非常重要，因为计算机引导时将运行 mount -a 命令，该命令负责安装 fstab 的倒数第二列中带有“1”标记的每一个文件系统。 &lt;br /&gt;/etc/mtools.conf  DOS 类型的文件系统上所有操作（创建目录、复制、格式化等等）的配置。&lt;br /&gt;&lt;br /&gt;系统管理&lt;br /&gt;&lt;br /&gt;/etc/group  包含有效的组名称和指定组中包括的用户。单一用户如果执行多个任务，可以存在于多个组中。例如，如果一个“用户”是“project 1”工程组的成员，同时也是管理员，那么在 group 文件中他的条目看起来就会是这样的： user: * : group-id : project1 &lt;br /&gt;/etc/nologin  如果有 /etc/nologin 文件存在，login(1) 将只允许 root 用户进行访问。它将对其它用户显示此文件的内容并拒绝其登录。&lt;br /&gt;etc/passwd  请参阅“man passwd”。它包含一些用户帐号信息，包括密码（如果未被 shadow 程序加密过）。&lt;br /&gt;/etc/rpmrc  rpm 命令配置。所有的 rpm 命令行选项都可以在这个文件中一起设置，这样，当任何 rpm 命令在该系统中运行时，所有的选项都会全局适用。&lt;br /&gt;/etc/securetty  包含设备名称，由 tty 行组成（每行一个名称，不包括前面的 /dev/），root 用户在这里被允许登录。&lt;br /&gt;/etc/usertty&lt;br /&gt;/etc/shadow  包含加密后的用户帐号密码信息，还可以包括密码时效信息。包括的字段有：&lt;br /&gt;登录名&lt;br /&gt;加密后的密码&lt;br /&gt;从 1970 年 1 月 1 日到密码最后一次被更改的天数&lt;br /&gt;距密码可以更改之前的天数&lt;br /&gt;距密码必须更改之前的天数&lt;br /&gt;密码到期前用户被警告的天数&lt;br /&gt;密码到期后帐户被禁用的天数&lt;br /&gt;从 1970 年 1 月 1 日到帐号被禁用的天数&lt;br /&gt;&lt;br /&gt;/etc/shells  包含系统可用的可能的“shell”的列表。&lt;br /&gt;/etc/motd  每日消息；在管理员希望向 Linux 服务器的所有用户传达某个消息时使用。&lt;br /&gt;&lt;br /&gt;联网&lt;br /&gt;&lt;br /&gt;/etc/gated.conf  gated 的配置。只能被 gated 守护进程所使用。&lt;br /&gt;/etc/gated.version  包含 gated 守护进程的版本号。&lt;br /&gt;/etc/gateway  由 routed 守护进程可选地使用。&lt;br /&gt;/etc/networks  列举从机器所连接的网络可以访问的网络名和网络地址。通过路由命令使用。允许使用网络名称。&lt;br /&gt;/etc/protocols  列举当前可用的协议。请参阅 NAG（网络管理员指南，Network Administrators Guide）和联机帮助页。 C 接口是 getprotoent。绝不能更改。&lt;br /&gt;/etc/resolv.conf  在程序请求“解析”一个 IP 地址时告诉内核应该查询哪个名称服务器。&lt;br /&gt;/etc/rpc  包含 RPC 指令／规则，这些指令／规则可以在 NFS 调用、远程文件系统安装等中使用。&lt;br /&gt;/etc/exports  要导出的文件系统（NFS）和对它的权限。&lt;br /&gt;/etc/services  将网络服务名转换为端口号／协议。由 inetd、telnet、tcpdump 和一些其它程序读取。有一些 C 访问例程。&lt;br /&gt;/etc/inetd.conf  inetd 的配置文件。请参阅 inetd 联机帮助页。包含每个网络服务的条目，inetd 必须为这些网络服务控制守护进程或其它服务。注意，服务将会运行，但在 /etc/services 中将它们注释掉了，这样即使这些服务在运行也将不可用。格式为：&lt;service_name&gt; &lt;sock_type&gt; &lt;proto&gt; &lt;flags&gt; &lt;user&gt; &lt;server_path&gt; &lt;args&gt;&lt;br /&gt;/etc/sendmail.cf  邮件程序 sendmail 的配置文件。比较隐晦，很难理解。&lt;br /&gt;/etc/sysconfig/network  指出 NETWORKING=yes 或 no。至少由 rc.sysinit 读取。&lt;br /&gt;/etc/sysconfig/network-scrīpts/if*  Red Hat 网络配置脚本。&lt;br /&gt;&lt;br /&gt;系统命令&lt;br /&gt;&lt;br /&gt;系统命令要独占地控制系统，并让一切正常工作。所有如 login（完成控制台用户身份验证阶段）或 bash（提供用户和计算机之间交互）之类的程序都是系统命令。因此，和它们有关的文件也特别重要。这一类别中有下列令用户和管理员感兴趣的文件。&lt;br /&gt;&lt;br /&gt;/etc/lilo.conf  包含系统的缺省引导命令行参数，还有启动时使用的不同映象。您在 LILO 引导提示的时候按 Tab 键就可以看到这个列表。&lt;br /&gt;/etc/logrotate.conf  维护 /var/log 目录中的日志文件。&lt;br /&gt;/etc/identd.conf  identd 是一个服务器，它按照 RFC 1413 文档中指定的方式实现 TCP/IP 提议的标准 IDENT 用户身份识别协议。identd 的操作原理是查找特定 TCP/IP 连接并返回拥有此连接的进程的用户名。作为选择，它也可以返回其它信息，而不是用户名。请参阅 identd 联机帮助页。&lt;br /&gt;/etc/ld.so.conf  “动态链接程序”（Dynamic Linker）的配置。&lt;br /&gt;/etc/inittab  按年代来讲，这是 UNIX 中第一个配置文件。在一台 UNIX 机器打开之后启动的第一个程序是 init，它知道该启动什么，这是由于 inittab 的存在。在运行级别改变时，init 读取 inittab，然后控制主进程的启动。&lt;br /&gt;/etc/termcap  一个数据库，包含所有可能的终端类型以及这些终端的性能。&lt;br /&gt;&lt;br /&gt;守护进程&lt;br /&gt;&lt;br /&gt;守护进程是一种运行在非交互模式下的程序。一般来说，守护进程任务是和联网区域有关的：它们等待连接，以便通过连接提供服务。Linux 可以使用从 Web 服务器到 ftp 服务器的很多守护进程。&lt;br /&gt;&lt;br /&gt;/etc/syslogd.conf  syslogd 守护进程的配置文件。syslogd 是一种守护进程，它负责记录（写到磁盘）从其它程序发送到系统的消息。这个服务尤其常被某些守护进程所使用，这些守护进程不会有另外的方法来发出可能有问 题存在的信号或向用户发送消息。&lt;br /&gt;/etc/httpd.conf  Web 服务器 Apache 的配置文件。这个文件一般不在 /etc 中。它可能在 /usr/local/httpd/conf/ 或 /etc/httpd/conf/ 中，但是要确定它的位置，您还需要检查特定的 Apache 安装信息。&lt;br /&gt;/etc/conf.modules or /etc/modules.conf  kerneld 的配置文件。有意思的是，kerneld 并不是“作为守护进程的”内核。它其实是一种在需要时负责“快速”加载附加内核模块的守护进程。&lt;br /&gt;&lt;br /&gt;用户程序&lt;br /&gt;&lt;br /&gt;在 Linux（和一般的 UNIX）中，有无数的“用户”程序。最常见的一种用户程序配置文件是 /etc/lynx.cfg。这是著名的文本浏览器 lynx 的配置文件。通过这个文件，您可以定义代理服务器、要使用的字符集等等。下面的代码样本展示了 lynx.cfg 文件的一部分，修改这部分代码可以改变 Linux 系统的代理服务器设置。缺省情况下，这些设置适用于在各自的 shell 中运行 lynx 的所有用户，除非某个用户通过指定 --cfg = "mylynx.cfg" 重设了缺省的配置文件。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/etc/lynx.cfg 中的代理服务器设置&lt;br /&gt;.h1 proxy&lt;br /&gt;.h2 HTTP_PROXY&lt;br /&gt;.h2 HTTPS_PROXY&lt;br /&gt;.h2 FTP_PROXY&lt;br /&gt;.h2 GOPHER_PROXY&lt;br /&gt;.h2 NEWS_PROXY&lt;br /&gt;.h2 NNTP_PROXY&lt;br /&gt;# Lynx version 2.2 and beyond supports the use of proxy servers that can act as&lt;br /&gt;# firewall gateways and caching servers. They are preferable to the older&lt;br /&gt;# gateway servers. Each protocol used by Lynx can be mapped separately using&lt;br /&gt;# PROTOCOL_proxy environment variables (see Lynx Users Guide). If you have&lt;br /&gt;# not set them externally, you can set them at run time via this configuration file.&lt;br /&gt;# They will not override external settings. The no_proxy variable can be used&lt;br /&gt;# to inhibit proxying to selected regions of the Web (see below). Note that on&lt;br /&gt;# VMS these proxy variables are set as process logicals rather than symbols, to&lt;br /&gt;# preserve lowercasing, and will outlive the Lynx image.&lt;br /&gt;#&lt;br /&gt;.ex 15&lt;br /&gt;http_proxy:http://proxy3.in.ibm.com:80/&lt;br /&gt;ftp_proxy:http://proxy3.in.ibm.com:80/&lt;br /&gt;#http_proxy:http://penguin.in.ibm.com:8080&lt;br /&gt;#ftp_proxy:http://penguin.in.ibm.com:8080/&lt;br /&gt;.h2 NO_PROXY&lt;br /&gt;# The no_proxy variable can be a comma-separated list of strings defining&lt;br /&gt;# no-proxy zones in the DNS domain name space.  If a tail substring of the&lt;br /&gt;# domain-path for a host matches one of these strings, transactions with that&lt;br /&gt;# node will not be proxied.&lt;br /&gt;.ex&lt;br /&gt;no_proxy:demiurge.in.ibm.com, demiurge&lt;br /&gt;&lt;br /&gt;更改配置文件&lt;br /&gt;&lt;br /&gt;在更改配置文件时，如果程序不是由系统管理员或内核控制的，就要确保重新启动过使用该配置的程序。普通用户通常没有启动或停止系统程序和／或守护进程的权限。&lt;br /&gt;&lt;br /&gt;内核&lt;br /&gt;&lt;br /&gt;更 改内核中的配置文件会立即影响到系统。例如，更改 passwd 文件以增加用户将立即使该用户变为可用。而且任何 Linux 系统的 /proc/sys 目录中都有一些内核可调参数。只有超级用户可以得到对所有这些文件的写访问权力；其它用户只有只读访问权力。此目录中文件的分类的方式和 Linux 内核源代码的分类方式一样。此目录中的每个文件都代表一个内核数据结构，这些数据结构可以被动态地修改，从而改变系统性能。&lt;br /&gt;&lt;br /&gt;注意：在更改其中任何文件的任何值之前，您应该确保自己全面了解该文件，以避免对系统造成不可修复的损害。&lt;br /&gt;/proc/sys/kernel/ 目录中的文件&lt;br /&gt;&lt;br /&gt;文件名  描述 &lt;br /&gt;threads-max 内核可运行的最大任务数。&lt;br /&gt;ctrl-alt-del 如果值为 1，那么顺序按下这几个键将“彻底地”重新引导系统。&lt;br /&gt;sysrq 如果值为 1，Alt-SysRq 则为激活状态。&lt;br /&gt;osrelease 显示&lt;a href="javascript:;" onclick="javascript:tagshow(event, '%B2%D9%D7%F7%CF%B5%CD%B3');" target="_self"&gt;&lt;u&gt;&lt;strong&gt;操作系统&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;的发行版版本号&lt;br /&gt;ostype 显示操作系统的类型。&lt;br /&gt;hostname 系统的主机名。&lt;br /&gt;domainname 网络域，系统是该网络域的一部分。&lt;br /&gt;modprobe 指定 modprobe 是否应该在启动时自动运行并加载必需的模块。&lt;br /&gt;&lt;br /&gt;守护进程和系统程序&lt;br /&gt;&lt;br /&gt;守 护进程是永远运行在后台的程序，它默默地执行自己的任务。常见的守护进程有 in.ftpd（ftp 服务器守护进程）、in.telnetd（telnet 服务器守护进程）和 syslogd（系统日志记录守护进程）。有些守护进程在运行时会严密监视配置文件，在配置文件改变时就会自动重新加载它。但是大多数守护进程并不会自动 重新加载配置文件。我们需要以某种方式“告诉”这些守护进程配置文件已经被发生了改变并应该重新加载。可以通过使用服务命令重新启动服务来达到这个目的 （在 Red Hat Linux 系统上）。&lt;br /&gt;&lt;br /&gt;例如，如果我们更改了网络配置，就需要发出：&lt;br /&gt;service network restart 。&lt;br /&gt;&lt;br /&gt;注意：这些服务最常见的是 /etc/rc.d/init.d/* 目录中存在的脚本，在系统被引导时由 init 启动。所以，您也可以执行如下操作来重新启动服务：&lt;br /&gt;/etc/rc.d/init.d/&lt;scrīpt-for-the-service&gt; start | stop | status&lt;br /&gt;start、stop 和 status 是这些脚本接受的输入值，用来执行操作。&lt;br /&gt;&lt;br /&gt;用户程序&lt;br /&gt;&lt;br /&gt;用 户或系统程序在每次启动时都会读取其配置文件。尽管如此，请记住，有些系统程序在计算机打开时情况不一样，它们的行为依赖于在 /etc/ 中的配置文件中读到的内容。所以，用户程序第一次启动时将从 /etc/ 目录中存在的文件读取缺省配置。然后，用户可以通过使用 rc 和 .（点）文件来定制程序，正如下面一节所示。&lt;br /&gt;用户配置文件：.（点）文件和 rc 文件&lt;br /&gt;&lt;br /&gt;我们已经看到怎样容易地配置程序。但是如 果有的人不喜欢在 /etc/ 中配置程序的方式该怎么办呢？“普通”用户不能简单地进入 /etc 然后更改配置文件；从文件系统的角度来看，配置文件的所有者是 root 用户！这就是大多数用户程序都定义两个配置文件的原因：第一个是“系统”级别的，位于 /etc/；另一个属于用户“专用”，可以在他或她的主目录中找到。&lt;br /&gt;&lt;br /&gt;例如，我在我的系统中安装了非常有用的 wget 实用程序。/etc/ 中有一个 /etc/wgetrc 文件。在我的主目录中，有一个名为 .wgetrc 的文件，它描述了我定制的配置（只有在我，也就是用户运行 wget 命令时，才会加载这个配置文件）。其它用户在他们自己的主目录（/home/other）中也可以有 .wgetrc 文件；当然，只有这些用户运行 wget 命令时，才会读取这个文件。换句话说，/etc/wgetrc 文件为 wget 提供了“缺省”值，而 /home/xxx/.wgetrc 文件列举了某个用户的“定制项”。重要的是这只是“一般规则”，并非所有情况都如此。例如，一个象 pine 一样的程序，在 /etc/ 中并没有任何文件，它只在用户主目录中有一个定制配置文件，名为 .pinerc。其它程序可能只有 /etc/ 中的缺省配置文件，而且可能不允许用户“定制”这些配置文件（/etc 目录中只有少数 config. 文件是这种情况）。&lt;br /&gt;&lt;br /&gt;通常使用的 rc 和 .（点）文件&lt;br /&gt;&lt;br /&gt;文件名  描述 &lt;br /&gt;~/.bash_login 请参考“man bash”。如果 ~/.bash_profile 不存在，bash 则将 ~/.bash_login 作为 ~/.bash_profile 处理。&lt;br /&gt;~/.bash_logout 请参考“man bash”。在退出时由 bash 登录 shell 引用。&lt;br /&gt;~/.bash_profile 由 bash 登录 shell 引用 /etc/profile 之后引用。&lt;br /&gt;~/.bash_history 先前执行的命令的列表。&lt;br /&gt;~/.bashrc 请参考“man bash”。由 bash 非登录交互式 shell 引用（没有其它文件）。除非设置了 BASH_ENV 或 ENV，非交互式 shell 不引用任何文件。&lt;br /&gt;~/.emacs 启动时由 emac 读取。&lt;br /&gt;~/.forward  如果这里包含一个电子邮件地址，那么所有发往 ~ 的所有者的邮件都会被转发到这个电子邮件地址。&lt;br /&gt;~/.fvwmrc ~/.fvwm2rc fvwm 和 fvwm2（基本的 X Window 管理器）的配置文件。&lt;br /&gt;~/.hushlogin 请参考“man login”。引起“无提示”登录（没有邮件通知、上次登录信息或者 MOD 信息）。&lt;br /&gt;~/.mail.rc 邮件程序的用户初始化文件。&lt;br /&gt;~/.ncftp/ ncftp 程序的目录；包含书签、日志、宏、首选项和跟踪信息。请参阅 man ncftp。ncftp 的目的是为因特网标准文件传输协议（Internet standard File Transfer Protocol）提供一个强大而灵活的接口。它旨在替换系统所使用的标准的 ftp 程序。&lt;br /&gt;~/.profile 请参考“man bash”。如果 ~/.bash_profile 和 ~/.bash_login 文件不存在，bash 则将 ~/.profile 作为 ~/.bash_profile 处理，并被其它继承 Bourn 的 shell 使用。&lt;br /&gt;~/.pinerc Pine 配置&lt;br /&gt;~/.muttrc Mutt 配置&lt;br /&gt;~/.exrc 这个文件可以控制 vi 的配置。&lt;br /&gt;示例：set ai sm ruler&lt;br /&gt;在此文件中写入上面一行会让 vi 设置自动缩进、匹配括号、显示行号和行-列这几个选项。 &lt;br /&gt;~/.vimrc 缺省的“Vim”配置文件。和 .exrc 一样。&lt;br /&gt;~/.gtkrc GNOME 工具包（GNOME Toolkit）。&lt;br /&gt;~/.kderc KDE 配置。&lt;br /&gt;~/.netrc ftp 缺省登录名和密码。&lt;br /&gt;~/.rhosts 由 r- 工具（如 rsh、rlogin 等等）使用。因为冒充主机很容易，所以安全性非常低。&lt;br /&gt;&lt;br /&gt;必须由用户（~/ 的所有者）或超级用户拥有。&lt;br /&gt;列出一些主机，用户可以从这些主机访问该帐号。&lt;br /&gt;如果是符号链接则被忽略。&lt;br /&gt;&lt;br /&gt;~/.rpmrc 请参阅“man rpm”。如果 /etc/rpmrc 不存在则由 rpm 读取。&lt;br /&gt;~/.signature 消息文本，将自动附加在从此帐号发出的邮件末尾。&lt;br /&gt;~/.twmrc twm（ The Window Manager）的配置文件。 &lt;br /&gt;~/.xinitrc 启动时由 X 读取（而不是由 xinit 脚本读取）。通常会启动一些程序。&lt;br /&gt;示例：exec /usr/sbin/startkde&lt;br /&gt;如果该文件中存在上面这行内容，那么在从这个帐号发出 startx 命令时，这一行就会启动“KDE 视窗管理器”（KDE Window Manager）。 &lt;br /&gt;~/.xmodmaprc 此文件被传送到 xmodmap 程序，而且可以被命名为任何文件（例如 ~/.Xmodmap 和 ~/.keymap.km）。&lt;br /&gt;~/.xserverrc 如果 xinit 可以找到要执行的 X，xinit 就会将该文件作为 X 服务器运行。&lt;br /&gt;~/News/Sent-Message-IDs gnus 的缺省邮件历史文件。&lt;br /&gt;~/.Xauthority 由 xdm 程序读和写，以处理权限。请参阅 X、xdm 和 xauth 联机帮助页。&lt;br /&gt;~/.Xdefaults, ~/.Xdefaults-hostname 在主机 hostname 的启动过程中由 X 应用程序读取。如果找不到 -hostname 文件，则查找 .Xdefaults 文件。&lt;br /&gt;~/.Xmodmap 指向 .xmodmaprc；Red Hat 有使用这个名称的 .xinitrc 文件。 &lt;br /&gt;~/.Xresources 通常是传送到 xrdb 以加载 X 资源&lt;a href="javascript:;" onclick="javascript:tagshow(event, '%CA%FD%BE%DD%BF%E2');" target="_self"&gt;&lt;u&gt;&lt;strong&gt;数据库&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;的文件的名称，旨在避免应用程序需要读取一个很长的 .Xdefaults 文件这样的情况。（有些情况曾经使用了 ~/.Xres。）&lt;br /&gt;~/mbox 用户的旧邮件。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-7822701753716159700?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/7822701753716159700/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=7822701753716159700&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7822701753716159700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7822701753716159700'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/12/linux.html' title='理解 Linux 配置文件'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-691842670366019858</id><published>2007-11-27T23:08:00.000+09:00</published><updated>2007-11-29T02:05:28.787+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>VIM(GVIM)常用命令</title><content type='html'>&lt;pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;在 文 本 中 查 找 一 个 单 词&lt;/span&gt;&lt;br /&gt;假设你在文本中看到一个单词 "TheLongFunctionName" 而你想找到下一个相同的单词。&lt;br /&gt;你可以输入 "/TheLongFunctionName"，但这要输入很多东西。而且如果输错了，Vim 是&lt;br /&gt;不可能找到你要找的单词的。&lt;br /&gt;  有一个简单的方法：把光标移到那个单词下面使用 "*" 命令。Vim 会取得光标上的&lt;br /&gt;单词并把它作为被查找的字符串。&lt;br /&gt;  "#" 命令在反向完成相同的功能。你可以在命令前加一个计数："3*" 查找光标下单&lt;br /&gt;词第三次出现的地方。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;查 找 整 个 单 词&lt;/span&gt;&lt;br /&gt;如果你输入 "/the"，你也可能找到 "there"。要找到以 "the" 结尾的单词，可以用：&lt;br /&gt;&lt;code class="example"&gt;&lt;/code&gt;&lt;code class="example"&gt;        /the\&gt;&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;"\&gt;" 是一个特殊的记号，表示只匹配单词末尾。类似地，"\&lt;" 只匹配单词的开头。 这样，要匹配一个完整的单词 "the"，只需： &lt;code class="example"&gt;&lt;/code&gt;&lt;code class="example"&gt;        /\&lt;code class="special"&gt;&lt;the\&gt;&lt;/the\&gt;&lt;/code&gt;&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;这不会匹配 "there" 或者 "soothe"。&lt;code class="note"&gt;注意&lt;/code&gt; "*" 和 "#" 命令也使用了 "词首" 和&lt;br /&gt;"词尾" 标记来匹配整个单词 (&lt;span style="color: rgb(255, 0, 0);"&gt;要部分匹配，使用 "g*" 和 "g#"&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;你可以用如下命令取得所有的标记的列表：&lt;/span&gt;&lt;br /&gt;&lt;code class="example"&gt;&lt;/code&gt;&lt;code class="example"&gt;        :marks&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;你会&lt;code class="note"&gt;注意&lt;/code&gt;到有一些特殊的标记，包括：&lt;br /&gt;      '       跳转前的光标位置&lt;br /&gt;      "       最后编辑的光标位置&lt;br /&gt;      [       最后修改的开始位置&lt;br /&gt;      ]       最后修改的结束位置&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;快 捷 键&lt;/span&gt;&lt;br /&gt;有些 "操作符－动作" 命令由于经常被使用，所以被设置为单字符命令：&lt;br /&gt;      x  表示  dl  (删除当前光标下的字符)&lt;br /&gt;      X  表示  dh  (删除光标左边的字符)&lt;br /&gt;      D  表示  d$  (删除到行尾)&lt;br /&gt;      C  表示  c$  (修改到行尾)&lt;br /&gt;      s  表示  cl  (修改一个字符)&lt;br /&gt;      S  表示  cc  (修改一整行)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;在 什 么 地 方 加 入 计 数 前 缀&lt;/span&gt;&lt;br /&gt;命令 "3dw" 和 "d3w" 都是删除 3 个单词。如果你非要寻根问底，那么："3dw" 表示删&lt;br /&gt;除一个单词 3 次，而 "d3w" 表示删除三个单词一次。这是一个没有分别的分别。实际上&lt;br /&gt;你可以放两个计数前缀，例如，"3d2w" 删除两个单词三次，共计六个单词。&lt;br /&gt;&lt;/pre&gt;&lt;h4 style="color: rgb(255, 0, 0);"&gt;&lt;/h4&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;可视模式&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;你可以用 "v" 命令启动可视模式&lt;br /&gt;如果你想对整行做操作，可以使用 "V" 命令来启动可视模式。&lt;br /&gt;如果你要处理一个矩形块内的文本，可以使用 &lt;code class="keystroke"&gt;CTRL-V&lt;/code&gt; 启动可视模式。这在处理表格时非&lt;br /&gt;常有用。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;移 动 到 另 一 端&lt;/span&gt;&lt;br /&gt;如果你在可视模式下选中了一些文字，然后你又发现你需要改变被选择的文字的另一端，&lt;br /&gt;用 "o" 命令即可 (提示："o" 表示 other end)，光标会移动到被选中文字的另一端，现&lt;br /&gt;在你可以移动光标去改变选中文字的开始点了。再按 "o" 光标还会回到另一端。&lt;br /&gt;当使用列块可视模式的时候，你会有四个角，"o" 只是把你移到对角上。而用 "O" 则能&lt;br /&gt;移到同一行的另一个角上。&lt;br /&gt;&lt;code class="note"&gt;备注&lt;/code&gt;: "o" 和 "O" 在可视模式下与在普通模式下的作用有很大的不同；在普通模式下，&lt;br /&gt;它们的作用是在光标后或前加入新的一行。&lt;br /&gt;&lt;/pre&gt;&lt;h4&gt;&lt;/h4&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;拷贝文本&lt;/span&gt;&lt;pre&gt;&lt;code class="note"&gt;注意&lt;/code&gt;："yw" 命令包括单词后面的空白字符。如果你不想要这个字符，改用 "ye" 命令。&lt;br /&gt;"yy" 命令拷贝一整行，就像 "dd" 删除一整行一样。出乎意料地是，"D" 删除到行尾而&lt;br /&gt;"Y" 却是拷贝一整行。要&lt;code class="note"&gt;注意&lt;/code&gt;这个区别！"y$" 拷贝到行尾。&lt;br /&gt;&lt;/pre&gt;&lt;h4&gt;&lt;/h4&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;使用剪贴板&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;如果你用的不是 GUI，或者你根本不喜欢用菜单，你只能用其它办法了。你还是可以用普&lt;br /&gt;通的 "y" (yank) 和 "p" (put) 命令，但在前面必须加上 "* (一个双引号加一个星&lt;br /&gt;号)。例如，要拷贝一行到剪贴板中：&lt;br /&gt;&lt;code class="example"&gt;        "*yy&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;要粘贴回来：&lt;br /&gt;&lt;code class="example"&gt;        "*p&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;这仅在支持剪贴板的 Vim 版本中才能工作。&lt;br /&gt;&lt;/pre&gt;&lt;h4&gt;&lt;/h4&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;文本对象&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;如果你在一个单词的中间而又想删掉这个单词，在你用 "dw" 前，你必须先移到这个单词&lt;br /&gt;的开始处。这里还有一个更简单的方法："daw"。&lt;span style="font-family:Georgia,serif;"&gt;&lt;br /&gt;&lt;/span&gt;"daw" 的 "d" 是删除操作符。"aw" 是一个文本对象。提示："aw" 表示 "A Word" (一个&lt;br /&gt;单词)，这样，"daw" 就是 "Delete A Word" (删除一个单词)。确切地说，该单词后的空&lt;br /&gt;格字符也被删除掉了。&lt;br /&gt;&lt;br /&gt;使用文本对象是 Vim 中执行修改的第三种方法。我们已经有 "操作符－动作" 和可视模&lt;br /&gt;式两种方法了。现在我们又有了 "操作符－文本对象"。&lt;br /&gt;  这种方法与 "操作符－动作" 很相似，但它不是操作于从当前位置到移动目标间的内&lt;br /&gt;容，而是对光标所在位置的 "文本对象" 进行操作。文本对象是作为一个整体来处理的。&lt;br /&gt;现在光标在对象中的位置无关紧要。&lt;br /&gt;&lt;br /&gt;用 "cis" 可以改变一个句子。看下面的句子：&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        Hello there.  This &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        is an example.  Just &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        some text. &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;移动到第二行的开始处。现在使用 "cis"：&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        Hello there.    Just &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        some text. &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;现在你输入新的句子 "Another line."：&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        Hello there.  Another line.  Just &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        some text. &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;"cis" 包括 "c" (change，修改) 操作符和 "is" 文本对象。这表示 "Inner Sentence"&lt;br /&gt;(内含句子)。还有一个文本对象是 "as"，区别是 "as" 包括句子后面的空白字符而 "is"&lt;br /&gt;不包括。如果你要删除一个句子，而且你还想同时删除句子后面空白字符，就用 "das"；&lt;br /&gt;如果你想保留空白字符而替换一个句子，则使用 "cis"。&lt;br /&gt;&lt;br /&gt;你还可以在可视模式下使用文本对象。这样会选中一个文本对象，而且继续留在可视模&lt;br /&gt;式，你可以继续多次执行文本对象命令。例如，先用 "v" 启动可视模式，再用 "as" 就&lt;br /&gt;可以选中一个句子。现在重复执行 "as"，就会继续选中更多的句子。最后你可以使用一&lt;br /&gt;个操作符去处理这些被选中的句子。&lt;br /&gt;&lt;br /&gt;你可以在这里找到一个详细的文本对象的列表：|&lt;a href="http://vcd.gro.clinux.org/doc/motion.html#text-objects"&gt;text-objects&lt;/a&gt;|。&lt;/pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;动作和操作符&lt;/span&gt;&lt;h4 style="color: rgb(255, 0, 0);"&gt; &lt;b class="vimtag"&gt;&lt;a name="operator"&gt;&lt;/a&gt;&lt;/b&gt;&lt;/h4&gt; 动作命令出现在操作符之后，从而使操作符作用于被该动作所跨越的文本之上。也就 是，在动作之前和之后的光标位置之间的文本。一般的，操作符用来删除或者改变文本。 下面列出所有的操作符:          |&lt;a href="http://vcd.gro.clinux.org/doc/change.html#c"&gt;c&lt;/a&gt;|     c       修改 (change)&lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#d"&gt;d&lt;/a&gt;|     d       删除 (delete)       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#y"&gt;y&lt;/a&gt;|     y       抽出 (yank) 到寄存器 (不改变文本)       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#%7E"&gt;~&lt;/a&gt;|     ~       变换大小写 (只有当 'tildeop' 置位时有效)       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#g%7E"&gt;g~&lt;/a&gt;|    g~      变换大小写       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#gu"&gt;gu&lt;/a&gt;|    gu      变为小写       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#gU"&gt;gU&lt;/a&gt;|    gU      变为大写       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#%21"&gt;!&lt;/a&gt;|     !       通过外部程序过滤       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#%20"&gt;=&lt;/a&gt;|     =       通过 'equalprg' (若为空，C-indenting) 过滤       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#gq"&gt;gq&lt;/a&gt;|    gq      文本排版       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#g?"&gt;g?&lt;/a&gt;|    g?      ROT13 编码       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#%3E"&gt;&gt;&lt;/a&gt;|     &gt;       右移       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#%3C"&gt;&lt;&lt;/a&gt;|     &lt;       左移         |&lt;a href="http://vcd.gro.clinux.org/doc/fold.html#zf"&gt;zf&lt;/a&gt;|    zf      定义折叠       &lt;br /&gt;|&lt;a href="http://vcd.gro.clinux.org/doc/map.html#g@"&gt;g@&lt;/a&gt;|    g@      调用 'operatorfunc' 选项定义的函数&lt;pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;预 定 义 标 记&lt;/span&gt;&lt;br /&gt;当你跳转到另一个文件后，有两个预定义的标记非常有用：&lt;br /&gt;&lt;code class="example"&gt;        `"&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;这个标记使你跳转到你上次离开这个文件时的位置。&lt;br /&gt;另一个标记记住你最后一次修改文件的位置：&lt;br /&gt;&lt;code class="example"&gt;        `.&lt;br /&gt;&lt;/code&gt;假设你在编辑 "one.txt"，在文件中间某个地方你用 "x" 删除一个字符，接着用 "G" 命&lt;br /&gt;令移到文件末尾，然后用 "w" 存盘。然后你又编辑了其它几个文件。你现在用 ":edit&lt;br /&gt;one.txt" 回到 "one.txt"。如果现在你用 `"，Vim 会跳转到文件的最后一行；而用 `.&lt;br /&gt;则跳转到你删除字符的地方。即使你在文件中移动过，但在你修改或者离开文件前，这两&lt;br /&gt;个标记都不会改变。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;文 件 标 记&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;在第四章，我们介绍过使用 "mx" 命令在文件中增加标记，那只在一个文件中有效。如果&lt;br /&gt;你编辑另一个文件并在那里加了标记，这些标记都是这个文件专用的。这样，每个文件都&lt;br /&gt;有一个自己的标记集，并只能在该文件中使用。&lt;br /&gt;  到此为止，我们都用小写字母的标记。实际上还可以使用大写字母标记，这种标记是&lt;br /&gt;全局的，它们可以在任何文件中使用。例如，你在编辑一个文件 "foo.txt"。在文件的中&lt;br /&gt;间 (50%) 并建立一个 J 标记 (J 表示甲)：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        50%mJ&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;现在编辑文件 "bar.txt" 并在文件的最后一行放一个标记 Y (Y 表示乙)：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        GmY&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;现在你可以使用 "`J" 命令跳回到 foo.txt 的中间。或者在另一个文件中输入 "`Y" 跳&lt;br /&gt;回到 bar.txt 的末尾。&lt;br /&gt;&lt;br /&gt;文件标记会被一直记住直到被重新定义。这样，你可以在一个文件中留下一个标记，然后&lt;br /&gt;任意做一段时间的编辑，最后用这个标记跳回去。&lt;br /&gt;  让文件标记符和对应的位置建立一些关系常常是很有用的。例如，用 H 表示头文件&lt;br /&gt;(Head File)，M 表示 Makefile 而 C 表示 C 的代码文件。&lt;br /&gt;&lt;br /&gt;要知道一个标记在什么地方，在 ":marks" 命令中加上标记名作为参数即可：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :marks M&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;你还可以带多个参数：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :marks MCP&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;别忘了你还可以 &lt;code class="keystroke"&gt;CTRL-O&lt;/code&gt; 和 &lt;code class="keystroke"&gt;CTRL-I&lt;/code&gt; 在整个跳转序列中前后跳转。&lt;/pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;用 vimdiff 显示文件差异&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;有一种特殊的启动 Vim 的方法可以用来显示两个文件的差异。让我们打开一个 "main.c" 并插入一些字符。在设置了 'backup' 选项的情况下保存这个文件，以便产生 "main.c~" 备份文件。     在命令行中输入如下命令：(不是在 Vim 中)  &lt;code class="example"&gt;        vimdiff main.c~ main.c&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt; Vim 会用垂直分割的方式打开两个文件。你只能看到你修改过的地方和上下几行的地方。&lt;pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;折 叠 栏&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;每个窗口在左边都有一个颜色略有不同的显示栏，图中标识为 "VV"。你会发现每个折叠&lt;br /&gt;在那个位置都有一个加号。把鼠标移到那里并按左键可以打开那个折起，从而让你看到里&lt;br /&gt;面的内容。&lt;br /&gt;  对于打开的折叠，折叠栏上会出现一个减号。如果你单击那个减号，折叠会被重新关&lt;br /&gt;闭。&lt;br /&gt;  当然，这只能在你有鼠标的情况下使用。如果你没有，可以用 "zo" 打开一个折叠。&lt;br /&gt;关闭使用 "zc"。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;用 Vim 做 比 较&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;启动比较模式的另一种方法从 Vim 内部开始：编辑 "main.c" 文件，然后分割窗口显示&lt;br /&gt;区别：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :edit main.c&lt;/code&gt;&lt;br /&gt;&lt;code class="example"&gt;&lt;code class="section"&gt;        :vertical diffsplit main.c&lt;/code&gt;&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;":vertical" 命令使窗口用垂直的方式分割。如果你不写这个命令，结果会变成水平分&lt;br /&gt;割。&lt;br /&gt;&lt;br /&gt;如果你有一个当前文件的补丁或者 diff 文件，你可以用第三种方法启动比较模式：先编&lt;br /&gt;辑这个文件，然后告诉 Vim 补丁文件的名称：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :edit main.c&lt;/code&gt;&lt;br /&gt;&lt;code class="example"&gt;        :vertical diffpatch main.c diff&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;警告：补丁文件中必须仅包括为一个目标文件所做的补丁，否则你可能会得到一大堆错误&lt;br /&gt;信息。还可能有些你没打算打补丁的文件也被打了补丁。&lt;br /&gt;  补丁功能只改变内存中的文件备份，不会修改你硬盘上的文件 (除非你决定写入改&lt;br /&gt;动)。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;滚 动 绑 定&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;当文件中有很多改动时，你可以用通常的方式滚动屏幕。Vim 会尽可能保持两个文件对&lt;br /&gt;齐，以便你可以并排看到文件的区别。&lt;br /&gt;  如果暂时想关闭这个特性，使用如下命令：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :set noscrollbind&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;跳 转 到 修 改 的 地 方&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;如果你通过某种方法取消了折叠功能，可能很难找到有改动的地方。使用如下命令可以跳&lt;br /&gt;转到下一个修改点：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;       ]c&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;反向跳转为：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        [c&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;加上一个计数前缀可以跳得更远。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;消 除 差 异&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;你可以把文本从一个窗口移到另一个，并以此来消除差异，或者为其中一个文件中增加几&lt;br /&gt;行。Vim 有时可能无法及时更新高亮显示。要修正这种问题，使用如下命令：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :diffupdate&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;要消除差异，你可以把一个高亮显示的块从一个窗口移动到另一个窗口。以上面的&lt;br /&gt;"main.c" 和 "main.c~" 为例，把光标移到左边的窗口，在另一个窗口中被删除的行的位&lt;br /&gt;置，执行如下命令：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :dp&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;这将把文字从左边拷到右边，从而消除两边的差异。"dp" 代表 "diff put"。&lt;br /&gt;  你也可以反过来做：把光标移到右边的窗口，移到被 "改动" 了的行上，然后执行&lt;br /&gt;如下命令：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :do&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;这把文本从左边拷到右边，从而消除差异。&lt;br /&gt;由于两个文件已经没有区别了，Vim 会把所有文字全部折叠起来。"do" 代表 "diff&lt;br /&gt;obtain"。本来用 "dg" (diff get) 会更好。可是它已经有另外的意思了 ("dgg" 删除从&lt;br /&gt;光标为止到首行的所有文本)。&lt;/pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;标签页&lt;/span&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;假设你正在编辑文件 "thisfile"。下面的命令可以建立新的标签页:&lt;br /&gt;&lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;&lt;code class="example"&gt;        :tabedit thatfile&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;这会在一个窗口中编辑文件 "thatfile"，这个窗口会占满整个 Vim 窗口。你会&lt;code class="note"&gt;注意&lt;/code&gt;到在&lt;br /&gt;顶部有一个含有两个文件名的横条:&lt;/pre&gt;&lt;pre&gt;你可以通过单击顶端的标签切换标签页。如果没有鼠标或者不想用它，可以使用 "gt" 命&lt;br /&gt;令。助记符：Goto Tab。&lt;br /&gt;&lt;br /&gt;现在，让我们通过下面的命令建立另一个标签页：&lt;br /&gt;&lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;&lt;code class="example"&gt;        :tab split&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;这会建立一个新的标签页，包含一个窗口，编辑和刚才所在窗口中的缓冲区相同的缓冲&lt;br /&gt;区：&lt;/pre&gt;&lt;pre&gt;在任何打开窗口的 Ex 命令前面，你都可以放上 ":tab"。这个窗口在新标签页中打开。&lt;br /&gt;另一个例子:&lt;br /&gt;&lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;&lt;code class="example"&gt;        :tab help gt&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;它将在新的标签页中显示关于 "gt" 的帮助。&lt;br /&gt;&lt;br /&gt;使用标签页可以完成更多的工作:&lt;br /&gt;&lt;br /&gt;- 在末尾标签后面的空白处单击鼠标&lt;br /&gt;      选择下个标签页，同 "gt"。&lt;br /&gt;&lt;br /&gt;- 在右上角的 "X" 处单击鼠标&lt;br /&gt;      关闭当前标签页，除非当前标签页中的改变没有保存。&lt;br /&gt;&lt;br /&gt;- 在标签行上双击鼠标&lt;br /&gt;      建立新标签页。&lt;br /&gt;&lt;br /&gt;- "tabonly" 命令&lt;br /&gt;      关闭除了当前标签页以外的所有标签页，除非其它标签页中的改变没有保存。&lt;br /&gt;&lt;br /&gt;关于标签页更多的信息，参见 |&lt;a href="http://vcd.gro.clinux.org/doc/tabpage.html#tab-page"&gt;tab-page&lt;/a&gt;|。&lt;/pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;反转行顺序&lt;/span&gt;&lt;h4&gt;&lt;/h4&gt; |&lt;a href="http://vcd.gro.clinux.org/doc/repeat.html#:global"&gt;:global&lt;/a&gt;| 命令可以和 |&lt;a href="http://vcd.gro.clinux.org/doc/change.html#:move"&gt;:move&lt;/a&gt;| 命令联用，将所有行移动到文件首部。结果是文件被按 行反转了次序。命令是: &lt;code class="example"&gt;&lt;/code&gt; &lt;code class="example"&gt;        :global/^/m 0&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt; 缩写: &lt;code class="example"&gt;&lt;/code&gt; &lt;code class="example"&gt;        :g/^/m 0&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt; 正则表达式 "^" 匹配行首 (即使该行是一个空行)。|&lt;a href="http://vcd.gro.clinux.org/doc/change.html#:move"&gt;:move&lt;/a&gt;| 命令将匹配的行移动到那个 神秘的第 0 行之后。这样匹配的行就成了文件中的第一行。由于 |&lt;a href="http://vcd.gro.clinux.org/doc/repeat.html#:global"&gt;:global&lt;/a&gt;| 命令不会被 改变了的行号搞混，该命令继续匹配文件中剩余的行并将它们一一变为首行。  这对一个行范围同样有效。先移动到第一行上方并做标记 't' (mt)。然后移动到范围的 最后一行并键入: &lt;code class="example"&gt;&lt;/code&gt; &lt;code class="example"&gt;        :'t+1,.g/^/m 't&lt;/code&gt;&lt;h4 style="font-weight: bold; color: rgb(255, 0, 0);"&gt;单词统计&lt;/h4&gt; 有时你要写一些有最高字数限制的文字。Vim 可以帮你计算字数。     如果你需要统计的是整个文件的字数，可以用这个命令：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;g &lt;code class="keystroke"&gt;CTRL-G&lt;/code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;不要在 "g" 后面输入一个空格，这里只是方便阅读。     它的输出是：&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;Col 1 of 0; Line 141 of 157; Word 748 of 774; Byte 4489 of 4976 &lt;/code&gt;          (&lt;code class="vim"&gt;译者注&lt;/code&gt;：中文是：&lt;br /&gt;&lt;code class="section"&gt;        第 1/0 列; 第 141/157 行; 第 748/774 个词; 第 4489/4976 个字节 &lt;/code&gt;         )&lt;br /&gt;&lt;br /&gt;你可以看到你在第几个单词 (748) 上以及文件中的单词总数 (774)。&lt;br /&gt;如果你要知道的是全文的一部分的字数，你可以移到该文本的开头，输入 "g &lt;code class="keystroke"&gt;CTRL-G&lt;/code&gt;"，&lt;br /&gt;然后移到该段文字的末尾，再输入 "g &lt;code class="keystroke"&gt;CTRL-G&lt;/code&gt;"，最后心算出结果来。&lt;br /&gt;这是一种很好的心 算练习，不过不是那么容易。比较方便的办法是使用可视模式，选中你要计算字数的文 本，然后输入 "g &lt;code class="keystroke"&gt;CTRL-G&lt;/code&gt;"，结果将是：  &lt;code class="section"&gt;        Selected 5 of 293 Lines; 70 of 1884 Words; 359 of 10928 Bytes &lt;/code&gt;          (&lt;code class="vim"&gt;译者注&lt;/code&gt;：中文是： &lt;code class="section"&gt;        选择了 5/293 行; 70/1884 个词; 359/10928 个字节 &lt;/code&gt;         )   要知道其它计算字数，行数和其它东西总数的方法，可以参见 |&lt;a href="http://vcd.gro.clinux.org/doc/tips.html#count-items"&gt;count-items&lt;/a&gt;|。&lt;br /&gt;&lt;pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;查阅 man 信息&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;编辑一个脚本文件或者 C 程序的时候，有时你会需要从 man 手册中查询某个命令或者函&lt;br /&gt;数的用法 (使用 Unix 的情况下)。让我们先用一个简单的方法：把鼠标移到对应的单词&lt;br /&gt;上然后输入：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        K&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;Vim 会在对应的单词上执行外部命令：man。如果能找到相应的手册，那个手册页就会被&lt;br /&gt;显示出来。它常常用 more 一类的程序显示页面。在手册滚动到文件末并回车，控制就会&lt;br /&gt;回到 Vim 中。&lt;br /&gt;&lt;br /&gt;这种方法的缺点是你不能同时查看手册和编辑文档。这里有一种办法可以把手册显示到一&lt;br /&gt;个 Vim 的窗口中。首先，加载 man 文件类型的外挂：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :runtime! ftplugin/man.vim&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;如果你经常用到这种方法，可以把这个命令加到你的 vimrc 文件中。现在你可以用&lt;br /&gt;":Man" 命令打开一个显示 man 手册的窗口了：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :Man csh&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;你可以在这个新的窗口中上下滚动，而手册的本文会用语法高亮的形式显示。这样，你可&lt;br /&gt;以找到需要的地方，并用 &lt;code class="keystroke"&gt;CTRL-W&lt;/code&gt; w 跳转到原来的窗口中继续工作。&lt;br /&gt;  要指定手册的章节，可以在手册名称前面指定。例如，要找第三章的 "echo"：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :Man 3 echo&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;要跳转到另一个由 "word(1)" 形式定义的手册，只要在上面敲 &lt;code class="keystroke"&gt;CTRL-]&lt;/code&gt;。无论怎样，&lt;br /&gt;":Man" 命令总使用同一个窗口。&lt;br /&gt;&lt;br /&gt;要显示当前光标下的单词的手册，这样：&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        \K&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;(如果你重定义了 &lt;code class="special"&gt;&lt;leader&gt;&lt;/leader&gt;&lt;/code&gt;，用那个字符代替上面命令的反斜杠)。&lt;br /&gt;例如，你想知道下面语句中的 "strstr()" 函数的返回值：&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        if ( strstr(input, "aap") == ) &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;可以把光标移到 "strstr" 并输入 "\K"。手册使用的窗口会显示 strstr() 的信息。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;使 用 XXD&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;一个真正的二进制编辑器用两种方式来显示文本: 二进制和十六进制格式。你可以在 Vim&lt;br /&gt;里通过转换程序 "xxd" 来达到这效果。该程序是随 Vim 一起发布的。&lt;br /&gt;  首先以二进制方式编辑这个文件:&lt;br /&gt;&lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;&lt;code class="example"&gt;        vim -b datafile&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;现在用 xxd 把这个文件转换成十六进制:&lt;br /&gt;&lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;&lt;code class="example"&gt;        :%!xxd&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;文本看起来像这样:&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        0000000: 1f8b 0808 39d7 173b 0203 7474 002b 4e49  ....9..;..tt.+NI &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        0000010: 4b2c 8660 eb9c ecac c462 eb94 345e 2e30  K,.`.....b..4^.0 &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        0000020: 373b 2731 0b22 0ca6 c1a2 d669 1035 39d9  7;'1.".....i.59. &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;现在你可以随心所欲地阅读和编辑这些文本了。 Vim 把这些信息当作普通文本来对待。&lt;br /&gt;修改了十六进制部分并不导致可显示字符部分的改变，反之亦然。&lt;br /&gt;  最后，用下面的命令把它转换回来:&lt;br /&gt;&lt;br /&gt;&lt;code class="example"&gt;        :%!xxd -r&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;只有十六进制部分的修改才会被采用。右边可显示文本部分的修改忽略不计。&lt;br /&gt;&lt;br /&gt;欲知更多详情，参见 xxd 手册。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;补 全 特 定 文 本&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;如果你知道你要找什么，那么你可以用这些命令来补全某种类型的文本:&lt;br /&gt;&lt;br /&gt;       &lt;code class="keystroke"&gt;CTRL-X&lt;/code&gt; &lt;code class="keystroke"&gt;CTRL-F&lt;/code&gt;           文件名&lt;br /&gt;       &lt;code class="keystroke"&gt;CTRL-X&lt;/code&gt; &lt;code class="keystroke"&gt;CTRL-L&lt;/code&gt;           整行&lt;br /&gt;       &lt;code class="keystroke"&gt;CTRL-X&lt;/code&gt; &lt;code class="keystroke"&gt;CTRL-D&lt;/code&gt;           宏定义 (包括包含文件里的)&lt;br /&gt;       &lt;code class="keystroke"&gt;CTRL-X&lt;/code&gt; &lt;code class="keystroke"&gt;CTRL-I&lt;/code&gt;           当前文件以及所包含的文件&lt;br /&gt;       &lt;code class="keystroke"&gt;CTRL-X&lt;/code&gt; &lt;code class="keystroke"&gt;CTRL-K&lt;/code&gt;           字典文件内的单词&lt;br /&gt;       &lt;code class="keystroke"&gt;CTRL-X&lt;/code&gt; &lt;code class="keystroke"&gt;CTRL-T&lt;/code&gt;           同义词词典文件内的单词&lt;br /&gt;       &lt;code class="keystroke"&gt;CTRL-X&lt;/code&gt; &lt;code class="keystroke"&gt;CTRL-]&lt;/code&gt;           标签&lt;br /&gt;       &lt;code class="keystroke"&gt;CTRL-X&lt;/code&gt; &lt;code class="keystroke"&gt;CTRL-V&lt;/code&gt;           Vim 命令行&lt;br /&gt;&lt;code class="keystroke"&gt;　　　　CTRL-X&lt;/code&gt; &lt;code class="keystroke"&gt;CTRL-O&lt;/code&gt;           全能补全的热键&lt;br /&gt;&lt;br /&gt;每个命令之后，&lt;code class="keystroke"&gt;CTRL-N&lt;/code&gt; 可以用来搜索下一个匹配，而 &lt;code class="keystroke"&gt;CTRL-P&lt;/code&gt; 则用于搜索前一个匹配。&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;重复一次插入&lt;/span&gt;&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;如果你按 &lt;code class="keystroke"&gt;CTRL-A&lt;/code&gt;，编辑器就把你上次在插入模式下输入的文本再输入一次。&lt;br /&gt;  比如，假定你有个文件，开头是这样的:&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        "file.h" &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        /* Main program begins */ &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;你在第一行开始处插入 "#include ":&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        #include "file.h" &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        /* Main program begins */ &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;你再用命令 "j^" 往下来到下一行的开始处。现在你开始插入一个新的 "#include" 行。&lt;br /&gt;所以你键入:&lt;br /&gt;&lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;&lt;code class="example"&gt;        i &lt;code class="keystroke"&gt;CTRL-A&lt;/code&gt;&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;结果就像下面这样:&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        #include "file.h" &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        #include /* Main program begins */ &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;"#include " 被插入是因为 &lt;code class="keystroke"&gt;CTRL-A&lt;/code&gt; 会插入上次插入过的文本。现在你键入 "main.h"&lt;br /&gt;&lt;code class="special"&gt;&lt;enter&gt;&lt;/code&gt; 以结束这一行:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        #include "file.h" &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        #include "main.h" &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        /* Main program begins */ &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code class="keystroke"&gt;CTRL-@&lt;/code&gt; 命令会完成 &lt;code class="keystroke"&gt;CTRL-A&lt;/code&gt; 的操作后退出插入模式。这是一个快速重复插入一模一样的&lt;br /&gt;文本的一个方法。&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;从另一行拷贝&lt;/span&gt;&lt;span style="font-family: monospace;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;&lt;code class="keystroke"&gt;CTRL-Y&lt;/code&gt; 命令插入光标上方的字符。当你复制前一行文本的时候，这个命令很有用。例&lt;br /&gt;如，你有这么一行 C 代码:&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        b_array[i]-&gt;s_next = a_array[i]-&gt;s_next; &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;现在你需要把这一行再键入一次，并以 "s_prev" 取代 "s_next"。换行以后，按 14 次&lt;br /&gt;&lt;code class="keystroke"&gt;CTRL-Y&lt;/code&gt;，直到光标位于 "next" 的 "n" 上:&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        b_array[i]-&gt;s_next = a_array[i]-&gt;s_next;&lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        b_array[i]-&gt;s_ &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;现在你键入 "prev":&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        b_array[i]-&gt;s_next = a_array[i]-&gt;s_next; &lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        b_array[i]-&gt;s_prev &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;继续按 &lt;code class="keystroke"&gt;CTRL-Y&lt;/code&gt; 直到下一个 "next":&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        b_array[i]-&gt;s_next = a_array[i]-&gt;s_next;&lt;/code&gt;&lt;br /&gt;&lt;code class="section"&gt;        b_array[i]-&gt;s_prev = a_array[i]-&gt;s_ &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;现在键入 "prev;" 以结束这一行。&lt;br /&gt;&lt;br /&gt;&lt;code class="keystroke"&gt;CTRL-E&lt;/code&gt; 命令操作起来跟 &lt;code class="keystroke"&gt;CTRL-Y&lt;/code&gt; 一样，只不过它插入光标下方的字符。&lt;/pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;插入一个寄存器内容&lt;/span&gt;&lt;pre&gt;&lt;pre&gt;命令 &lt;code class="keystroke"&gt;CTRL-R&lt;/code&gt; &lt;code class="special"&gt;{register}&lt;/code&gt; 插入寄存器里的内容。它的用处是让你不必键入长词。例如，&lt;br /&gt;你要输入下面这些:&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        r = VeryLongFunction(a) + VeryLongFunction(b) + VeryLongFunction(c) &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;这个函数的定义见于另一个文件。编辑那个文件并把光标移到该函数名上，然后把文件名&lt;br /&gt;摄入寄存器 v:&lt;br /&gt;&lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;&lt;code class="example"&gt;        "vyiw&lt;/code&gt; &lt;code class="example"&gt;&lt;/code&gt;&lt;br /&gt;"v 指定寄存器，"yiw" 意思是拷贝一个词，不含空格 (yank-inner-word)。现在编辑那&lt;br /&gt;个要插入一行代码的文件，先键入开头几个字符:&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        r = &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;现在用 &lt;code class="keystroke"&gt;CTRL-R&lt;/code&gt; v 来插入函数名:&lt;br /&gt;&lt;br /&gt;&lt;code class="section"&gt;        r = VeryLongFunction &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;你接下来在函数名后面键入其它必要字符，然后再用两次 &lt;code class="keystroke"&gt;CTRL-R&lt;/code&gt; v。&lt;br /&gt;  你也可以用补全功能来完成同样的工作。但当你有好几个词，其开头几个字符都一样&lt;br /&gt;的时候，寄存器就有用多了。&lt;br /&gt;&lt;br /&gt;如果寄存器存放着诸如 &lt;code class="special"&gt;&lt;bs&gt;&lt;/code&gt; 或其它特殊字符，这些字符就被解释成好像它们本来是从键&lt;br /&gt;盘键入的。如果你不要这样解释 (你确实要在文本中插入 &lt;code class="special"&gt;&lt;bs&gt;&lt;/code&gt;)，那么要命令 &lt;code class="keystroke"&gt;CTRL-R&lt;/code&gt;&lt;br /&gt;&lt;code class="keystroke"&gt;CTRL-R&lt;/code&gt; &lt;code class="special"&gt;{register}&lt;/code&gt;。&lt;/pre&gt;&lt;h4&gt;&lt;/h4&gt;&lt;/pre&gt;&lt;h4&gt;&lt;/h4&gt;&lt;h4&gt;&lt;/h4&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-691842670366019858?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/691842670366019858/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=691842670366019858&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/691842670366019858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/691842670366019858'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/vimgvim.html' title='VIM(GVIM)常用命令'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-5795475087590570653</id><published>2007-11-26T11:34:00.000+09:00</published><updated>2007-11-26T11:42:31.120+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Xming使用技巧</title><content type='html'>&lt;ol&gt;&lt;li&gt;-[no]keyhook： 缺省状态下ＷＩＮＤＯＷＳ的一些特殊键或者键的组合会被ＸＭＩＮＧ忽略掉（比如ＷＩＮ键，ＡＬＴ＋ＴＡＢ等）这个参数可以让你使用这些特殊键。&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-5795475087590570653?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/5795475087590570653/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=5795475087590570653&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5795475087590570653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5795475087590570653'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/xming.html' title='Xming使用技巧'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-5078328270656947423</id><published>2007-11-21T01:41:00.000+09:00</published><updated>2007-11-21T01:43:48.525+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>摸清Linux日志处理的来龙去脉</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span class="a14c" id="zoom"&gt;&lt;p style="text-indent: 2em;"&gt;每个使用UNIX/LINUX的人都知道日志的用处,那你是否清楚LINUX这些日志信息处理的来龙去脉呢？ &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;我们可以看到LINUX系统信息日志的途径基本有以下2种: &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;（1）dmesg查看----这个命令比较常见 &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;（2）/var/log/下的文件 &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;那下面我们就从这个2个途径着手,一步步的走下去. &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;（一） &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;首先,我们来看dmesg这个常见的命令背后隐藏的是什么!!&lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="a14c" id="zoom"&gt;&lt;p style="text-indent: 2em;"&gt;从LINUX提供的手册,我们可以得知一条最重要的信息dmesg是从kernel 的ring buffer(环缓冲区)中读取信息的. &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;（2）那什么是ring buffer呢? &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;在LINUX中,所有的系统信息(包内核信息)都会传送到ring buffer中.而内核产生的信息由printk()打印出来。系统启动时所看到的信息都是由该函数打印到屏幕中。 printk（）打出的信息往往以 ＜0＞＜2＞...这的数字表明消息的重要级别。高于一定的优先级别会打印到屏幕上， 否则只会保留在系统的缓冲区中(ring buffer)。 &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;至于dmesg具体是如何从ring buffer中读取的,大家可以看dmesg.c源代码.很短,比较容易读懂. &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;（二） &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;dmesg怎么搞的大家应该很明白了吧.至于/var/log/下的文件更是大家熟悉得不能再熟悉了! &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;（1）/var/log/..下为什么有这么多文件呢? &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;一句话解释: 是syslogd这个守护进程根据/etc/syslog.conf,将不同的服务产生的Log记录到不同的文件中.&lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;这里的/etc/syslog.conf我就不细说了,很多这方面的信息(去查吧). &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;（2）既然知道了,/var/log/..是由syslogd这个守护进程产生的.那就再顺着这条线走下去. &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;LINUX系统启动后，由/etc/init.d/sysklogd先后启动klogd,syslogd两个守护进程。 &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;其中klogd会通过syslog()系统调用或者读取proc文件系统来从系统缓冲区(ring buffer)中得到由内核printk() &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;发出的信息.而syslogd是通过klogd来读取系统内核信息. &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;我想至此,大家心理应该对log产生,读取等一系列的动作有所感觉. &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;总结 &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;（1）所有系统信息是输出到ring buffer中去的.dmesg所显示的内容也是从ring buffer中读取的. &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;（2）LINUX系统中/etc/init.d/sysklogd会启动2个守护进程:Klogd&amp;amp;&amp;amp;Syslogd &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;（3）klogd是负责读取内核信息的,有2种方式: &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;syslog()系统调用(这个函数用法比较全,大家去MAN一下看看) &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;直接的对/proc/kmsg进行读取(再这提一下,/proc/kmsg是专门输出内核信息的地方) &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;（4）Klogd的输出结果会传送给syslogd进行处理,syslogd会根据/etc/syslog.conf的配置把log &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt;信息输出到/var/log/下的不同文件中。&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-5078328270656947423?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/5078328270656947423/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=5078328270656947423&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5078328270656947423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5078328270656947423'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/linux_1263.html' title='摸清Linux日志处理的来龙去脉'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-8764910059251430255</id><published>2007-11-21T01:29:00.000+09:00</published><updated>2007-11-21T01:35:38.806+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux操作系统命令操作小知识</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span class="a14c" id="zoom"&gt;&lt;p style="text-indent: 2em;"&gt;1、单用户模式进系统 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;启动linux出现grub画面时选中linux按e键 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/ 按E键 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;在ro前面加入single &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/ &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;回车,按B键进入系统. &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;注意:freebsd下再多加一个命令 mount -a &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;2、解压文件 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;tar.bz 2 文件的解压 #tar jxvf *.tar.bz 2 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;tar.gz 文件的解压 #tar xzpf *.tar.gz &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;rpm 文件的解压 #rpm -ivh *.rpm &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;3、激活ssh服务 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;/etc/rc.d/init.d/sshd start &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;service sshd start &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;ubuntu开启ssh服务 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;studo apt-get install ssh &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;$sudo passwd root &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;4、关闭防火墙 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;/etc/rc.d/init.d/iptables stop &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;Linux防火墙的关闭和开启 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;1) 重启后生效 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;开启： chkconfig iptables on &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;关闭： chkconfig iptables off &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;2) 即时生效，重启后失效 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;开启： service iptables start &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;关闭： service iptables stop &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;在开启了防火墙时，做如下设置，开启相关端口， &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;修改/etc/sysconfig/iptables 文件，添加以下内容： &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;5、查看开放的服务 netstat –tl &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;启动自动加载的服务 ntsys v &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;6、设置网卡IP netconfig &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;查看网卡IP ifconfig &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;或者进入 /etc/sysconfig/network-scrips/目录下 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;cat ifcfg-eth0 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;FreeBSD中修改网络配置: #ee /etc/rc.conf &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;FC4的网卡IP修改 #vi /etc/sysconfig/network-scripts/ifcfg-eth0 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;己编译的网卡驱动的安装 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;#tar –zxvf e1000-6.0.54.tar.gz &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;#cd e1000-6.0.54/src &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;Make install &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;Inwmod e1000 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;#/etc/rc.d/init.d/network reload &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;#reboot &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;修改/etc/modules.conf 加一行 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;Alias eth0 e1000 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;7、重起网卡 service network restart &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;查看进程: ps aux &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;8、禁用图形界面 #vi inittab &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;将ID后面的 5改为3就可以了 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;9、加载光驱软驱 mount /mut/cdrom &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;Mount /mut/floppy &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;先用pwd查看所在目录是否为挂载点,如果是,则无法挂载 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;如果要卸载则 M mount /mnt/cdrom &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;M mount /mnt/floppy &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;10、打开redhat自带的ftp工具 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;# /sbin/service vsftpd start &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;查看安装ftp的版本及安装情况 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;# rpm –qa | grep vsftpd &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;看谁登陆了FTP,并杀死它的进程 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;Ps –xf | grep ftp 如ps –aux|grep 运行程序 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;Kill 进程号如 kill -9 进程号 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;新建一个文件如” # touch /etc/vsftpd.chroot_list &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;卸载: rpm –e packge name &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;安装 rpm –ivh *.rpm &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;卸载mysql 依次加上- -nodeps.- -(注意为了显示故中间有空隔)force它们相互依赖,不加参数无法卸载 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;Rpm –e mysql –client - -nodeps (- -force加上这个参数不行就不加) &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;Rem –e mysql &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;redhat卸载自带的mysql &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;#rpm –e perl –DBD –mySQL -2.1021-3 - -lodeps &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;#rpm –e mysql &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;11、使用mkswap命令建立swap分区再使用swapon命令启用swap分区 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;#mkswap /dev/sad7 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;#swapon /dev/sad7 &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;12、改名命令 # mv &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;删除文件 #rm &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;删除文件夹 #rm –rf &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;13、linux做禁ping &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;# vi /proc/sys/net/ip/ipv4/icmp_echo_ignore_all &lt;/p&gt; &lt;p style="text-indent: 2em;"&gt;将其值改为1为禁ping 改为0为解禁ping &lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-8764910059251430255?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/8764910059251430255/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=8764910059251430255&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8764910059251430255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8764910059251430255'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/linux_21.html' title='Linux操作系统命令操作小知识'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-4567638284371353950</id><published>2007-11-20T02:15:00.000+09:00</published><updated>2007-11-20T02:16:22.734+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>如何查看Linux系统的文件类型</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span class="a14c" id="zoom"&gt;&lt;p style="text-indent: 2em;"&gt;不同版本的Linux所支持的文件系统类型和种类都有所不同，如何知道自己使用的Linux发行版的文件系统类型呢？下面以Mandrake Linux为例，讲解如何操作。 &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt; 以超级用户权限登陆Linux，进入/Lib/modules/2.4.18-6mdk/kernel/fs目录，执行下面命令： &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt; ＃ls &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt; 注意，不同Linux发行版本的fs目录的位置可能有些不同。/Lib/modules/2.4.18-6mdk/kernel/fs中会显示当前系统所支持的文件系统种类。 &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt; 文件系统是操作系统用于明确磁盘或分区上文件的方法和数据结构，即在磁盘上组织文件的方法。文件系统是整个操作系统中重要的组成部分，是操作系统正常运行的基本条件。了解Linux文件系统对于深入学习、研究Linux是非常重要的。 &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt; Linux系统核心可以支持十多种文件系统类型：JFS、 ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。 &lt;/p&gt;  &lt;p style="text-indent: 2em;"&gt; 在Linux系统中，每个分区都是一个文件系统，都有自己的目录层次结构。Linux的最重 要特征之一就是支持多种文件系统，这样它更加灵活，并可以和许多其它种操作系统共存。Virtual File System（虚拟文件系统）使得Linux可以支持多个不同的文件系统。由于系统已将Linux文件系统的所有细节进行了转换，所以Linux核心的其 它部分及系统中运行的程序将看到统一的文件系统。Linux的虚拟文件系统允许用户同时能透明地安装许多不同的文件系统。虚拟文件系统是为Linux用户 提供快速且高效的文件访问服务而设计的。&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-4567638284371353950?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/4567638284371353950/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=4567638284371353950&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/4567638284371353950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/4567638284371353950'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/linux_8124.html' title='如何查看Linux系统的文件类型'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-9189806557830996485</id><published>2007-11-20T02:12:00.000+09:00</published><updated>2007-11-20T02:14:03.805+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>关于Linux操作系统启动的问题</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;p style="text-indent: 2em;"&gt;1、系统启动需要的文件&lt;/p&gt;                                       &lt;center&gt;&lt;ccid_nobr&gt;&lt;/ccid_nobr&gt;             &lt;table bordercolordark="#ffffff" bordercolorlight="#000000" align="center" border="1" cellpadding="2" cellspacing="0" width="400"&gt;                 &lt;tbody&gt;                     &lt;tr&gt;                         &lt;td class="code" style="font-size: 9pt;" bgcolor="#e6e6e6"&gt;                         &lt;pre&gt;&lt;ccid_code&gt;&lt;/ccid_code&gt;/boot/grub/grub.conf&lt;br /&gt;/etc/inittab /etc/rc.d/rc.sysinit /etc/rc.d/rc /etc/rc.d/rc?.d /etc/rc.d/rc.local /etc/fstab&lt;/pre&gt;                         &lt;/td&gt;                     &lt;/tr&gt;                 &lt;/tbody&gt;             &lt;/table&gt;             &lt;/center&gt;                          &lt;p style="text-indent: 2em;"&gt;grub.conf 文件错误的拯救方式： &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;grub&gt;root (hd0,0) &lt;/p&gt;                          &lt;p style="text-indent: 2em;"&gt;grub&gt; kernel /kernel2.6.18-8.el5 ro root=LABEL=/ (root=/dev/VolGroup00/LogVol00) 系统其他目录的挂载点此文件根据启动是来确定，或者看/etc/fstab文件 如：/etc /lib /dev 等 &lt;/p&gt;                          &lt;p style="text-indent: 2em;"&gt;grub&gt; initrd /initrd-2.6.18-8.el5.img （initrd-2.6.18-8.el5.img是一个gz的压缩包） &lt;/p&gt;                          &lt;p style="text-indent: 2em;"&gt;grub&gt; boot &lt;/p&gt;                          &lt;p style="text-indent: 2em;"&gt;2、解开 文件initrd-2.6.18-8.el5.img &lt;/p&gt;                          &lt;p style="text-indent: 2em;"&gt;首 先initrd-2.6.18-8.el5.img 改名为initrd-2.6.18-8.el5.gz 然后运行gunzip initrd-2.6.18-8.el5.gz 解压缩为initrd-2.6.18-8.el5，用file命令查看initrd-2.6.18-8.el5，为cpio压缩文件，用cpio -idvm &lt;&gt;                          &lt;p style="text-indent: 2em;"&gt;[root@aly cpiotest]# ll &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;total 5188 &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;drwx------ 2 root root 4096 Nov 5 20:59 bin &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;drwx------ 3 root root 4096 Nov 5 20:59 dev &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;drwx------ 3 root root 4096 Nov 5 20:59 etc &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;-rwx------ 1 root root 2431 Nov 1 19:30 init &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;-rw------- 1 root root 5267456 Nov 5 20:56 initrd-2.6.18-8.el5 &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;drwx------ 2 root root 4096 Nov 5 20:59 lib &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;drwx------ 2 root root 4096 Nov 1 19:30 proc &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;lrwxrwxrwx 1 root root 3 Nov 5 20:59 sbin -&gt; bin &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;drwx------ 2 root root 4096 Nov 1 19:30 sys &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;drwx------ 2 root root 4096 Nov 1 19:30 sysroot &lt;/p&gt;                          &lt;p style="text-indent: 2em;"&gt;3、系统引导重新安装 &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;grub-install /dev/hda 此安装一般要在linux rescue模式下运行 &lt;/p&gt;                          &lt;p style="text-indent: 2em;"&gt;4、备份磁盘主引导记录 &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;[root@aly boot]# dd if=/dev/hda of=/boot/grubbak bs=512 count=1 &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;1+0 records in &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;1+0 records out &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;512 bytes (512 B) copied, 1e-09 seconds, 512 GB/s &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;出现问题的时候可以用dd命令恢复前466个字节文件 可以用od -x 查看文件会以aa55结束。其实有用的就是前466个字节。 &lt;/p&gt;                          &lt;p style="text-indent: 2em;"&gt;5、pstree查看系统进程树，init进程是启动进程，是其他进程的父进程。 &lt;/p&gt;                          &lt;p style="text-indent: 2em;"&gt;6、ntsysv 、setup、system-config-services chkconfig &lt;/p&gt;                          &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt;             &lt;center&gt;&lt;ccid_nobr&gt;&lt;/ccid_nobr&gt;             &lt;table bordercolordark="#ffffff" bordercolorlight="#000000" align="center" border="1" cellpadding="2" cellspacing="0" width="400"&gt;                 &lt;tbody&gt;                     &lt;tr&gt;                         &lt;td class="code" style="font-size: 9pt;" bgcolor="#e6e6e6"&gt;                         &lt;pre&gt;&lt;ccid_code&gt;&lt;/ccid_code&gt;chkconfig --list |grep smartd&lt;br /&gt;&lt;br /&gt;chkconfig --list 2345 smartd on|off&lt;br /&gt;&lt;br /&gt;chkconfig --add /etc/init.d/oracle.sh&lt;/pre&gt;                         &lt;/td&gt;                     &lt;/tr&gt;                 &lt;/tbody&gt;             &lt;/table&gt;             &lt;/center&gt;             &lt;p style="text-indent: 2em;"&gt; &lt;/p&gt;             &lt;p style="text-indent: 2em;"&gt;然后加入到启动项，在设置在那个启动级别启动，然后下次启动的时候就可以启动了。&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-9189806557830996485?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/9189806557830996485/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=9189806557830996485&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/9189806557830996485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/9189806557830996485'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/linux_8404.html' title='关于Linux操作系统启动的问题'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-7280899024147786262</id><published>2007-11-20T02:10:00.001+09:00</published><updated>2007-11-20T02:10:51.337+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux用户需要知道的官方网站</title><content type='html'>&lt;span&gt;&lt;span style="font-size:100%;"&gt;1、opensuse，众多linux版本里我认为最好的，对硬件支持最佳，3CD的安装就知道对用户的支持最好。&lt;br /&gt;　　官方主页：http://www.opensuse.org/&lt;br /&gt;&lt;br /&gt;　　2、kde，个人比较喜欢的linux的桌面，基于QT的软件都是经典。&lt;br /&gt;　　官方主页：http://www.kde.org/&lt;br /&gt;&lt;br /&gt;　　3、openoffice，linux下的文字处理软件，全面兼容office。Writer、Impress、Mass、Draw、Calc、Base六个功能模块。&lt;br /&gt;　　官方主页：http://www.openoffice.org/&lt;br /&gt;&lt;br /&gt;　　4、amarok，linux最好的音乐播放器了吧，买了ipod的朋友就选它吧，对ipod支持极佳。&lt;br /&gt;　　官方主页：http://amarok.kde.org/&lt;br /&gt;&lt;br /&gt;　　5、mplayer，用过linux的好像没人没听说过它，几乎的文件格式它都支持。&lt;br /&gt;　　官方主页：http://www.mplayerhq.hu/&lt;br /&gt;&lt;br /&gt;　　6、smplayer。mplayer的最好的图形前端，下载的人次也最多。&lt;br /&gt;　　官方主页：http://smplayer.sourceforge.net/&lt;br /&gt;&lt;br /&gt;　　7、pidgin，gaim的新版，集多种聊天软件于一身的聊天软件，可惜对QQ的支持不是很好。&lt;br /&gt;　　官方主页：http://pidgin.im/&lt;br /&gt;&lt;br /&gt;　　8、eclipse，现在最流行的ide了，任何平台上都可使用，linux当然不能例外。&lt;br /&gt;　　官方主页：http://www.eclipse.org/&lt;br /&gt;&lt;br /&gt;　　9、konqueror，kde下的网页浏览器，可能很多人都没听说它，但是苹果新出的浏览器Safari确实是基于konqueror的。&lt;br /&gt;　　官方主页：http://www.konqueror.org/&lt;br /&gt;&lt;br /&gt;　　10、scim，linux下的输入法，只要你母语不是英语，不管是哪国人都需要它。&lt;br /&gt;　　官方主页：http://www.scim-im.org/&lt;br /&gt;&lt;br /&gt;　　11、xpdf，创建pdf文件用的，功能及其强大，一些在国外发表论文的教授们都知道它。&lt;br /&gt;　　官方主页：http://www.foolabs.com/xpdf/&lt;br /&gt;&lt;br /&gt;　　12、d4x，多线程下载工具。很多人都已国货迅雷为傲，其实只是简单使用了md5，国外技术那么发达为什么没有类似的软件诞生？这是因为国外的法律非常严格，一般人要下盗版电影歌曲软件都会悄悄的用p2p软件，而不是明目张胆使用http、ftp。&lt;br /&gt;　　官方主页：http://www.krasu.ru/soft/chuchelo/&lt;br /&gt;&lt;br /&gt;　　13、KTorrent，kde下的BT下载工具，个人感觉极其好用！&lt;br /&gt;　　官方主页：http://ktorrent.org/&lt;br /&gt;&lt;br /&gt;　　14、MLdonkey，linux下的电驴，如果用好它，你会发现作为linux用户是多么令人愉悦。kde下还得装个KMLdonkey 。&lt;br /&gt;　　官方主页：http://mldonkey.sourceforge.net/&lt;br /&gt;&lt;br /&gt;　　15、kcontact，kde下的日程处理软件。我需要它。&lt;br /&gt;　　官方主页：http://kontact.kde.org/korganizer/&lt;br /&gt;&lt;br /&gt;　　16、k3b，kde下的光盘烧录软件，口碑极佳。&lt;br /&gt;　　官方主页：http://k3b.plainblack.com/&lt;br /&gt;&lt;br /&gt;　　17、wine。到最后万不得已的时候才会用到它。平时坚决不用。&lt;br /&gt;　　官方主页：http://www.winehq.org/&lt;br /&gt;&lt;br /&gt;　　18、sopcast。linux下的看网上直播的软件！在IT里，许多老外知道中国是因为他们用sopcast看中国电视台的足球赛！算法感觉非常先进，即使看得人少也不会卡。&lt;br /&gt;　　官方主页：http://www.sopcast.org/&lt;br /&gt;&lt;br /&gt;　　19、dosbox。个人比较怀旧，喜欢玩一些dos老游戏，所以，它是必不可少的。&lt;br /&gt;　　官方主页：http://dosbox.sourceforge.net/&lt;br /&gt;&lt;br /&gt;　　20、virtualbox。linux下的虚拟机软件，你可以装个xp试试。&lt;br /&gt;　　官方主页：http://www.virtualbox.org/&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-7280899024147786262?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/7280899024147786262/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=7280899024147786262&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7280899024147786262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7280899024147786262'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/linux_2490.html' title='Linux用户需要知道的官方网站'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-2525405007648715306</id><published>2007-11-20T02:06:00.001+09:00</published><updated>2007-11-20T02:06:58.039+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux操作系统中的文件目录结构详细介绍</title><content type='html'>&lt;span style="font-size:100%;"&gt;目录结构及主要内容 &lt;p&gt;　　“/”根目录部分有以下子目录：&lt;/p&gt; &lt;p&gt;　　/usr 目录包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序，譬如，Netscape。&lt;/p&gt; &lt;p&gt;　　/var 目录包含在正常操作中被改变的文件：假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等。&lt;/p&gt; &lt;p&gt;　　/home 目录包含用户的文件：参数设置文件、个性化文件、文档、数据、EMAIL、缓存数据等。这个目录在系统省级时应该保留。&lt;/p&gt; &lt;p&gt;　　/proc 目录整个包含虚幻的文件。它们实际上并不存在磁盘上，也不占用任何空间。（用ls –l 可以显示它们的大小）当查看这些文件时，实际上是在访问存在内存中的信息，这些信息用于访问系统&lt;/p&gt; &lt;p&gt;　　/bin 系统启动时需要的执行文件（二进制），这些文件可以被普通用户使用。&lt;/p&gt; &lt;p&gt;　　/sbin 系统执行文件（二进制），这些文件不打算被普通用户使用。（普通用户仍然可以使用它们，但要指定目录。）&lt;/p&gt; &lt;p&gt;　　/etc 操作系统的配置文件目录。&lt;/p&gt; &lt;p&gt;　　/root 系统管理员（也叫超级用户或根用户）的Home目录。&lt;/p&gt; &lt;p&gt;　　/dev 设备文件目录。LINUX下设备被当成文件，这样一来硬件被抽象化，便于读写、网络共享以及需要临时装载到文件系统中。正常情况下，设备会有一个独立的子目 录。这些设备的内容会出现在独立的子目录下。LINUX没有所谓的驱动符。&lt;/p&gt; &lt;p&gt;　　/lib 根文件系统目录下程序和核心模块的共享库。&lt;/p&gt; &lt;p&gt;　　/boot 用于自举加载程序（LILO或GRUB）的文件。当计算机启动时（如果有多个操作系统，有可能允许你选择启动哪一个操作系统），这些文件首先被装载。这个 目录也会包含LINUX核（压缩文件vmlinuz），但LINUX核也可以存在别处，只要配置LILO并且LILO知道LINUX核在哪儿。&lt;/p&gt; &lt;p&gt;　　/opt 可选的应用程序，譬如，REDHAT 5.2下的KDE （REDHAT 6.0下，KDE放在其它的XWINDOWS应用程序中，主执行程序在/usr/bin目录下）&lt;/p&gt; &lt;p&gt;　　/tmp 临时文件。该目录会被自动清理干净。&lt;/p&gt; &lt;p&gt;　　/lost+found 在文件系统修复时恢复的文件 &lt;/p&gt; &lt;p&gt;　　“/usr”目录下比较重要的部分有：&lt;/p&gt; &lt;p&gt;　　/usr/X11R6 X-WINDOWS系统（version 11, release 6)&lt;/p&gt; &lt;p&gt;　　/usr/X11 同/usr/X11R6 （/usr/X11R6的符号连接）&lt;/p&gt; &lt;p&gt;　　/usr/X11R6/bin 大量的小X-WINDOWS应用程序（也可能是一些在其它子目录下大执行文件的符号连接）。 &lt;/p&gt; &lt;p&gt;　　/usr/doc LINUX的文档资料（在更新的系统中，这个目录移到/usr/share/doc）。&lt;/p&gt; &lt;p&gt;　　/usr/share 独立与你计算机结构的数据，譬如，字典中的词。&lt;/p&gt; &lt;p&gt;　　/usr/bin和/usr/sbin 类似与“/”根目录下对应的目录（/bin和/sbin），但不用于基本的启动（譬如，在紧急维护中）。大多数命令在这个目录下。&lt;/p&gt; &lt;p&gt;　　/usr/local 本地管理员安装的应用程序（也可能每个应用程序有单独的子目录）。在“main”安装后，这个目录可能是空的。这个目录下的内容在重安装或升级操作系统后应该存在。&lt;/p&gt; &lt;p&gt;　　/usr/local/bin 可能是用户安装的小的应用程序，和一些在/usr/local目录下大应用程序的符号连接。&lt;/p&gt; &lt;p&gt;　　/proc目录的内容：&lt;/p&gt; &lt;p&gt;　　/proc/cpuinfo 关于处理器的信息，如类型、厂家、型号和性能等。&lt;/p&gt; &lt;p&gt;　　/proc/devices 当前运行内核所配置的所有设备清单。&lt;/p&gt; &lt;p&gt;　　/proc/dma 当前正在使用的DMA通道。/proc/filesystems 当前运行内核所配置的文件系统。&lt;/p&gt; &lt;p&gt;　　/proc/interrupts 正在使用的中断，和曾经有多少个中断。&lt;/p&gt; &lt;p&gt;　　/proc/ioports 当前正在使用的I/O端口。&lt;/p&gt; &lt;p&gt;　　举例，使用下面的命令能读出系统的CPU信息。&lt;/p&gt; &lt;p&gt;　　cat /proc/cpuinfo&lt;/p&gt; &lt;p&gt;　　/bin&lt;br /&gt;　　bin是binary的缩写。这个目录沿袭了UNIX系统的结构，存放着使用者最经常使用的命令。例如cp、ls、cat，等等。 &lt;/p&gt; &lt;p&gt;　　/boot&lt;br /&gt;　　这里存放的是启动Linux时使用的一些核心文件。 &lt;/p&gt; &lt;p&gt;　　/dev&lt;br /&gt;　　dev是device（设备）的缩写。这个目录下是所有Linux的外部设备，其功能类似DOS下的.sys和Win下的.vxd。在Linux中设备和文件是用同种方法访问的。例如：/dev/hda代表第一个物理IDE硬盘。 &lt;/p&gt; &lt;p&gt;　　/etc&lt;br /&gt;　　这个目录用来存放系统管理所需要的配置文件和子目录。 &lt;/p&gt; &lt;p&gt;　　/home&lt;br /&gt;　　用户的主目录，比如说有个用户叫wang，那他的主目录就是/home/wang也可以用~wang表示。 &lt;/p&gt; &lt;p&gt;　　/lib&lt;br /&gt;　　这个目录里存放着系统最基本的动态链接共享库，其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。 &lt;/p&gt; &lt;p&gt;　　/lost+found&lt;br /&gt;　　这个目录平时是空的，当系统不正常关机后，这里就成了一些无家可归的文件的避难所。对了，有点类似于DOS下的.chk文件。 &lt;/p&gt; &lt;p&gt;　　/mnt&lt;br /&gt;　　这个目录是空的，系统提供这个目录是让用户临时挂载别的文件系统。 &lt;/p&gt; &lt;p&gt;　　/proc&lt;br /&gt;　　这个目录是一个虚拟的目录，它是系统内存的映射，我们可以通过直接访问这个目录来获取系统信息。也就是说，这个目录的内容不在硬盘上而是在内存里。 &lt;/p&gt; &lt;p&gt;　　/root&lt;br /&gt;　　系统管理员（也叫超级用户）的主目录。作为系统的拥有者，总要有些特权啊！比如单独拥有一个目录。 &lt;/p&gt; &lt;p&gt;　　/sbin&lt;br /&gt;　　s就是Super User的意思，也就是说这里存放的是系统管理员使用的管理程序。 &lt;/p&gt; &lt;p&gt;　　/tmp&lt;br /&gt;　　这个目录不用说，一定是用来存放一些临时文件的地方了。 &lt;/p&gt; &lt;p&gt;　　/usr&lt;br /&gt;　　这是最庞大的目录，我们要用到的应用程序和文件几乎都存放在这个目录下。其中包含以下子目录； &lt;/p&gt; &lt;p&gt;　　/usr/X11R6&lt;br /&gt;　　存放X-Window的目录； &lt;/p&gt; &lt;p&gt;　　/usr/bin&lt;br /&gt;　　存放着许多应用程序； &lt;/p&gt; &lt;p&gt;　　/usr/sbin&lt;br /&gt;　　给超级用户使用的一些管理程序就放在这里； &lt;/p&gt; &lt;p&gt;　　/usr/doc&lt;br /&gt;　　这是Linux文档的大本营； &lt;/p&gt; &lt;p&gt;　　/usr/include&lt;br /&gt;　　Linux下开发和编译应用程序需要的头文件，在这里查找； &lt;/p&gt; &lt;p&gt;　　/usr/lib&lt;br /&gt;　　存放一些常用的动态链接共享库和静态档案库； &lt;/p&gt; &lt;p&gt;　　/usr/local&lt;br /&gt;　　这是提供给一般用户的/usr目录，在这里安装软件最适合； &lt;/p&gt; &lt;p&gt;　　/usr/man&lt;br /&gt;　　man在Linux中是帮助的同义词，这里就是帮助文档的存放目录； &lt;/p&gt; &lt;p&gt;　　/usr/src&lt;br /&gt;　　Linux开放的源代码就存在这个目录，爱好者们别放过哦！ &lt;/p&gt; &lt;p&gt;　　/var&lt;br /&gt;　　这个目录中存放着那些不断在扩充着的东西，为了保持/usr的相对稳定，那些经常被修改的目录可以放在这个目录下，实际上许多系统管理员都是这样干的。顺带说一下系统的日志文件就在/var/log目录中。 &lt;/p&gt; &lt;p&gt;　　总结来说：&lt;/p&gt; &lt;p&gt;　　· 用户应该将文件存在/home/user_login_name目录下(及其子目录下)。&lt;/p&gt; &lt;p&gt;　　· 本地管理员大多数情况下将额外的软件安装在/usr/local目录下并符号连接在/usr/local/bin下的主执行程序。&lt;/p&gt; &lt;p&gt;　　· 系统的所有设置在/etc目录下。&lt;/p&gt; &lt;p&gt;　　· 不要修改根目录（“/”）或/usr目录下的任何内容，除非真的清楚要做什么。这些目录最好和LINUX发布时保持一致。&lt;/p&gt; &lt;p&gt;　　· 大多数工具和应用程序安装在目录：/bin, /usr/sbin, /sbin, /usr/x11/bin,/usr/local/bin。&lt;/p&gt; &lt;p&gt;　　· 所有的文件在单一的目录树下。没有所谓的“驱动符”。&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-2525405007648715306?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/2525405007648715306/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=2525405007648715306&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/2525405007648715306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/2525405007648715306'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/linux_20.html' title='Linux操作系统中的文件目录结构详细介绍'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-5861507034324674505</id><published>2007-11-18T16:32:00.000+09:00</published><updated>2007-11-18T16:33:41.307+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Vim的编码及字体问题详解</title><content type='html'>&lt;span style=""&gt;&lt;p&gt;和所有的流行文本编辑器一样，Vim 可以很好的编辑各种字符编码的文件，这当然包括UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是，和很多来自 Linux 世界的&lt;a href="http://wy186.cn/netnews/4" target="_blank"&gt;软件&lt;/a&gt;一样，这需要你自己动手设置。 &lt;/p&gt;&lt;p&gt;Vim 有四个跟字符编码方式有关的选项，encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names)，它们的意义如下: &lt;/p&gt;&lt;p&gt;* encoding: Vim 内部使用的字符编码方式，包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。默认是根据你的locale选择.用户手册上建议只在 .vimrc 中改变它的值，事实上似乎也只有在.vimrc 中改变它的值才有意义。你可以用另外一种编码来编辑和保存文件，如你的vim的encoding为utf-8,所编辑的文件采用cp936编码,vim会 自动将读入的文件转成utf-8(vim的能读懂的方式），而当你写入文件时,又会自动转回成cp936（文件的保存编码). &lt;/p&gt;&lt;p&gt;* fileencoding: Vim 中当前编辑的文件的字符编码方式，Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。 &lt;/p&gt;&lt;p&gt;* fileencodings: Vim自动探测fileencoding的顺序列表，启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式，并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将Unicode 编码方式放到这个列表的最前面，将拉丁语系编码方式 latin1 放到最后面。 &lt;/p&gt;&lt;p&gt;* termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。如果vim所在的term与vim编码相同，则无需设置。如其不然，你可以用vim的termencoding选项将自动转换成term 的编码.这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效，而对 Console 模式的Vim 而言就是 Windows 控制台的代码页，并且通常我们不需要改变它。 &lt;/p&gt;&lt;p&gt;好了，解释完了这一堆容易让新手犯糊涂的参数，我们来看看 Vim 的多字符编码方式支持是如何工作的。 &lt;/p&gt;&lt;p&gt;1. Vim 启动，根据 .vimrc 中设置的 encoding 的值来设置 buffer、菜单文本、消息文的字符编码方式。 &lt;/p&gt;&lt;p&gt;2. 读取需要编辑的文件，根据 fileencodings 中列出的字符编码方式逐一探测该文件编码方式。并设置 fileencoding 为探测到的，看起来是正确的 (注1) 字符编码方式。 &lt;/p&gt;&lt;p&gt;3. 对比 fileencoding 和 encoding 的值，若不同则调用 iconv 将文件内容转换为encoding 所描述的字符编码方式，并且把转换后的内容放到为此文件开辟的 buffer 里，此时我们就可以开始编辑这个文件了。注意，完成这一步动作需要调用外部的 iconv.dll(注2)，你需要保证这个文件存在于 $VIMRUNTIME 或者其他列在 PATH 环境变量中的目录里。 &lt;/p&gt;&lt;p&gt;4. 编辑完成后保存文件时，再次对比 fileencoding 和 encoding 的值。若不同，再次调用 iconv 将即将保存的 buffer 中的文本转换为 fileencoding 所描述的字符编码方式，并保存到指定的文件中。同样，这需要调用 iconv.dll由于 Unicode 能够包含几乎所有的语言的字符，而且 Unicode 的 UTF-8 编码方式又是非常具有性价比的编码方式 (&lt;a href="http://www.wy186.cn/free/1" target="_blank"&gt;空间&lt;/a&gt;消 耗比 UCS-2 小)，因此建议 encoding 的值设置为utf-8。这么做的另一个理由是 encoding 设置为 utf-8 时，Vim 自动探测文件的编码方式会更准确 (或许这个理由才是主要的 ;)。我们在中文 Windows 里编辑的文件，为了兼顾与其他&lt;a href="http://wy186.cn/netnews/4" target="_blank"&gt;软件&lt;/a&gt;的兼容性，文件编码还是设置为 GB2312/GBK 比较合适，因此 fileencoding 建议设置为 chinese (chinese 是个别名，在 Unix 里表示 gb2312，在 Windows 里表示cp936，也就是 GBK 的代码页)。 &lt;/p&gt;&lt;p&gt;以 下是我的 .vimrc(见附件) 中关于字符编码方式设置的内容，这个设置比较有弹性，可以根据系统中的环境变量 $LANG (当然，Windows 中的写法是 %LANG%) 的值来自动设置合适的字符编码方式。此时，推荐设置 %LANG% = zh_CN.UTF-8，可以通过后面的 Windows 注册表脚本文件来方便的做到。 &lt;/p&gt;&lt;p&gt;注1: 事实上，Vim 的探测准确度并不高，尤其是在 encoding 没有设置为 utf-8 时。因此强烈建议将 encoding 设置为 utf-8，虽然如果你想 Vim 显示中文菜单和提示消息的话这样会带来另一个小问题。 &lt;/p&gt;&lt;p&gt;注2: 在 GNU 的 FTP 上可以下载到 iconv 的 Win32 版(&lt;a href="http://mirrors.kernel.org/gnu/libiconv/libiconv-1.9.1.bin.woe32.zip"&gt;http://mirrors.kernel.org/gnu/libiconv/libiconv-1.9.1.bin.woe32.zip&lt;/a&gt;)，不推荐去GnuWin32(&lt;a href="http://gnuwin32.sourceforge.net/"&gt;http://gnuwin32.sourceforge.net/&lt;/a&gt;) 下载 libiconv，因为那个版本旧一些，并且需要自己改名 dll 文件。 &lt;/p&gt;&lt;p&gt;注3: 查看帮助 :h iconv-dynamic &lt;/p&gt;&lt;p class="code"&gt;On MS-Windows Vim can be compiled with the |+iconv/dyn| feature. This means Vim will search for the "iconv.dll" and "libiconv.dll" libraries. When neither of them can be found Vim will still work but some conversions won't be possible. &lt;/p&gt;&lt;p&gt;附1：vimrc文件 &lt;/p&gt;&lt;p class="code"&gt;" Multi-encoding setting, MUST BE IN THE BEGINNING OF .vimrc!&lt;br /&gt;    "&lt;br /&gt;    if has("multi_byte")&lt;br /&gt;      " When 'fileencodings' starts with 'ucs-bom', don't do this manually&lt;br /&gt;      "set bomb&lt;br /&gt;      set fileencodings=ucs-bom,chinese,taiwan,japan,korea,utf-8,latin1&lt;br /&gt;      " CJK environment detection and corresponding setting&lt;br /&gt;      if v:lang =~ "^zh_CN"&lt;br /&gt;        " Simplified Chinese, on Unix euc-cn, on MS-Windows cp936&lt;br /&gt;        set encoding=chinese&lt;br /&gt;        set termencoding=chinese&lt;br /&gt;        if &amp;amp;fileencoding == ''&lt;br /&gt;          set fileencoding=chinese&lt;br /&gt;        endif&lt;br /&gt;      elseif v:lang =~ "^zh_TW"&lt;br /&gt;        " Traditional Chinese, on Unix euc-tw, on MS-Windows cp950&lt;br /&gt;        set encoding=taiwan&lt;br /&gt;        set termencoding=taiwan&lt;br /&gt;        if &amp;amp;fileencoding == ''&lt;br /&gt;          set fileencoding=taiwan&lt;br /&gt;        endif&lt;br /&gt;      elseif v:lang =~ "^ja_JP"&lt;br /&gt;        " Japanese, on Unix euc-jp, on MS-Windows cp932&lt;br /&gt;        set encoding=japan&lt;br /&gt;        set termencoding=japan&lt;br /&gt;        if &amp;amp;fileencoding == ''&lt;br /&gt;          set fileencoding=japan&lt;br /&gt;        endif&lt;br /&gt;      elseif v:lang =~ "^ko"&lt;br /&gt;        " Korean on Unix euc-kr, on MS-Windows cp949&lt;br /&gt;        set encoding=korea&lt;br /&gt;        set termencoding=korea&lt;br /&gt;        if &amp;amp;fileencoding == ''&lt;br /&gt;          set fileencoding=korea&lt;br /&gt;        endif&lt;br /&gt;      endif&lt;br /&gt;       " Detect UTF-8 locale, and override CJK setting if needed&lt;br /&gt;      if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"&lt;br /&gt;        set encoding=utf-8&lt;br /&gt;      endif&lt;br /&gt;    else&lt;br /&gt;      echoerr 'Sorry, this version of (g)Vim was not compiled with "multi_byte"'&lt;br /&gt;    endif&lt;/p&gt;&lt;p&gt;附2:&lt;/p&gt;&lt;p class="code"&gt;Supported 'encoding' values are:                        *encoding-values*&lt;br /&gt;1   latin1      8-bit characters (ISO 8859-1)&lt;br /&gt;1   iso-8859-n  ISO_8859 variant (n = 2 to 15)&lt;br /&gt;1   koi8-r      Russian&lt;br /&gt;1   koi8-u      Ukrainian&lt;br /&gt;1   macroman    MacRoman (Macintosh encoding)&lt;br /&gt;1   8bit-{name} any 8-bit encoding (Vim specific name)&lt;br /&gt;1   cp437       similar to iso-8859-1&lt;br /&gt;1   cp737       similar to iso-8859-7&lt;br /&gt;1   cp775       Baltic&lt;br /&gt;1   cp850       similar to iso-8859-4&lt;br /&gt;1   cp852       similar to iso-8859-1&lt;br /&gt;1   cp855       similar to iso-8859-2&lt;br /&gt;1   cp857       similar to iso-8859-5&lt;br /&gt;1   cp860       similar to iso-8859-9&lt;br /&gt;1   cp861       similar to iso-8859-1&lt;br /&gt;1   cp862       similar to iso-8859-1&lt;br /&gt;1   cp863       similar to iso-8859-8&lt;br /&gt;1   cp865       similar to iso-8859-1&lt;br /&gt;1   cp866       similar to iso-8859-5&lt;br /&gt;1   cp869       similar to iso-8859-7&lt;br /&gt;1   cp874       Thai&lt;br /&gt;1   cp1250      Czech, Polish, etc.&lt;br /&gt;1   cp1251      Cyrillic&lt;br /&gt;1   cp1253      Greek&lt;br /&gt;1   cp1254      Turkish&lt;br /&gt;1   cp1255      Hebrew&lt;br /&gt;1   cp1256      Arabic&lt;br /&gt;1   cp1257      Baltic&lt;br /&gt;1   cp1258      Vietnamese&lt;br /&gt;1   cp{number}  MS-Windows: any installed single-byte codepage&lt;br /&gt;2   cp932       Japanese (Windows only)&lt;br /&gt;2   euc-jp      Japanese (Unix only)&lt;br /&gt;2   sjis        Japanese (Unix only)&lt;br /&gt;2   cp949       Korean (Unix and Windows)&lt;br /&gt;2   euc-kr      Korean (Unix only)&lt;br /&gt;2   cp936       simplified Chinese (Windows only)&lt;br /&gt;2   euc-cn      simplified Chinese (Unix only)&lt;br /&gt;2   cp950       traditional Chinese (on Unix alias for big5)&lt;br /&gt;2   big5        traditional Chinese (on Windows alias for cp950)&lt;br /&gt;2   euc-tw      traditional Chinese (Unix only)&lt;br /&gt;2   2byte-{name} Unix: any double-byte encoding (Vim specific name)&lt;br /&gt;2   cp{number}  MS-Windows: any installed double-byte codepage&lt;br /&gt;u   utf-8       32 bit UTF-8 encoded Unicode (ISO/IEC 10646-1)&lt;br /&gt;u   ucs-2       16 bit UCS-2 encoded Unicode (ISO/IEC 10646-1)&lt;br /&gt;u   ucs-2le     like ucs-2, little endian&lt;br /&gt;u   utf-16      ucs-2 extended with double-words for more characters&lt;br /&gt;u   utf-16le    like utf-16, little endian&lt;br /&gt;u   ucs-4       32 bit UCS-4 encoded Unicode (ISO/IEC 10646-1)&lt;br /&gt;u   ucs-4le     like ucs-4, little endian&lt;br /&gt;  The {name} can be any encoding name that your system supports.  It is passed&lt;br /&gt;to iconv() to convert between the encoding of the file and the current locale.&lt;br /&gt;For MS-Windows "cp{number}" means using codepage {number}.&lt;br /&gt;  Several aliases can be used, they are translated to one of the names above.&lt;br /&gt;An incomplete list:&lt;br /&gt;1   ansi        same as latin1 (obsolete, for backward compatibility)&lt;br /&gt;2   japan       Japanese: on Unix "euc-jp", on MS-Windows cp932&lt;br /&gt;2   korea       Korean: on Unix "euc-kr", on MS-Windows cp949&lt;br /&gt;2   prc         simplified Chinese: on Unix "euc-cn", on MS-Windows cp936&lt;br /&gt;2   chinese     same as "prc"&lt;br /&gt;2   taiwan      traditional Chinese: on Unix "euc-tw", on MS-Windows cp950&lt;br /&gt;u   utf8        same as utf-8&lt;br /&gt;u   unicode     same as ucs-2&lt;br /&gt;u   ucs2be      same as ucs-2 (big endian)&lt;br /&gt;u   ucs-2be     same as ucs-2 (big endian)&lt;br /&gt;u   ucs-4be     same as ucs-4 (big endian)&lt;br /&gt;    default     stands for the default value of 'encoding', depends on the&lt;br /&gt;                environment&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-5861507034324674505?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/5861507034324674505/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=5861507034324674505&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5861507034324674505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5861507034324674505'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/vim.html' title='Vim的编码及字体问题详解'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-5889201219959107062</id><published>2007-11-18T16:31:00.001+09:00</published><updated>2007-11-18T16:31:59.231+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>xfs中安装字体</title><content type='html'>&lt;span class="f14" id="zoom"&gt;xfs 是另一种字体服务器的选择。它已经包含在以 RedHat 为基础的  distribution 中。xfs 是基於 FreeType Font library，提供了类似於 xfstt 的功能。xfs 不只能处理  TrueType 和 Type 1 字体，也可以对付原本的 X 字体。&lt;br /&gt;安装&lt;br /&gt;&lt;br /&gt;第一步是将 TrueType 字体加入您的 linux 里。su 为超级使用者，建一个目录来存放这些字体:&lt;br /&gt;&lt;br /&gt;mkdir /usr/share/fonts/ttfonts&lt;br /&gt;&lt;br /&gt;然后将字体放入这个目录里。您可以从您的 Windows 系统中拷贝过去&lt;br /&gt;&lt;br /&gt;cp /mnt/win/path_to_fonts/*ttf /usr/share/fonts/ttfonts/&lt;br /&gt;&lt;br /&gt;或是从 Microsoft 直接下载。&lt;br /&gt;&lt;br /&gt;这些字体是自解压缩的 zip 档。您仍可在 linux 中安装&lt;br /&gt;&lt;br /&gt;unzip &lt;font.exe&gt;&lt;br /&gt;&lt;br /&gt;注意字体的文件名必须小写。一个快速又容易的转换方法是将他们拷贝到一个 DOS(FAT16) 文件系统中，然后再拷贝回来。DOS 不处理大写。另一个较像 linuxer 会用的方法是先进入到存放字体的目录下，然后键入:&lt;br /&gt;&lt;br /&gt;ls *TTF | while read f&lt;br /&gt;do&lt;br /&gt;[ -f "$f" ] &amp;amp;&amp;amp; mv -f "$f" "`echo /"$f/" | tr A-Z a-z`"&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;您在键入每一行得时候会有 "&gt;" 的提示符号，在上述每一行的最后按下 return。 注意标点符号 -- 那些 "backquotes" 很重要。当 TrueType 字体正确安装後，以超级使用者执行:&lt;br /&gt;&lt;br /&gt;ttmkfdir -o fonts.scale&lt;br /&gt;mkfontdir&lt;br /&gt;&lt;br /&gt;当您字体目录下的内容改变後，重新执行上面的命令。接下来，编辑您的 xfs 字体设定文件 /etc/X11/fs/config 在您字体表中加入您的 TrueType 字体:&lt;br /&gt;&lt;br /&gt;catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,&lt;br /&gt;/usr/X11R6/lib/X11/fonts/100dpi:unscaled,&lt;br /&gt;/usr/X11R6/lib/X11/fonts/75dpi:unscaled,&lt;br /&gt;/usr/X11R6/lib/X11/fonts/misc,&lt;br /&gt;/usr/X11R6/lib/X11/fonts/Type1,&lt;br /&gt;/usr/X11R6/lib/X11/fonts/Speedo,&lt;br /&gt;/usr/share/fonts/default/Type1,&lt;br /&gt;/usr/share/fonts/ttfonts,&lt;br /&gt;/usr/X11R6/lib/X11/fonts/100dpi,&lt;br /&gt;/usr/X11R6/lib/X11/fonts/75dpi&lt;br /&gt;&lt;br /&gt;或是您也可以用 'chkfontpath --add &lt;span&gt;' 命令来加入字体。当使用时，您或许也会想要更改您的字体的缺省点数。&lt;br /&gt;&lt;br /&gt;default-point-size = 140&lt;br /&gt;&lt;br /&gt;这让我从缺省的 12 点字变为 14 点字。有些 X 的应用程序使用这个，有些则否。接下来，确定您的 XF86Config 档中的 FontPath 是&lt;br /&gt;&lt;br /&gt;FontPath "unix/:-1"&lt;br /&gt;&lt;br /&gt;注 意 "unix/:7100" 也可以做到，但是在刚出来时无法使用。将所有的 FontPath 用 '#' 让它变成注解，反正你也不用它们了。 xfs 的 packages 应该和其它 XFree 的 packages 一起安装了。要确定它是缺省的服务，您可以使用 'ntsysv' 或是 &lt;br /&gt;&lt;br /&gt;chkconfig --add xfs&lt;br /&gt;&lt;br /&gt;现在 xfs 在您每一次开机的时候都会启动。 现在重新启动 X 来读入新的 FontPath。用下面的的方式 启动/重新启动 xfs&lt;br /&gt;&lt;br /&gt;/etc/rc.d/init.d/xfs restart&lt;br /&gt;&lt;br /&gt;现在您应该有个可以使用的字体服务器了。您可以检查那些字体有被使用&lt;br /&gt;&lt;br /&gt;xlsfonts | less&lt;br /&gt;&lt;br /&gt;或用 xfontsel 甚至更好的 gfontsel 来检查它们。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-5889201219959107062?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/5889201219959107062/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=5889201219959107062&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5889201219959107062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5889201219959107062'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/xfs.html' title='xfs中安装字体'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-3145346129272800057</id><published>2007-11-18T12:41:00.000+09:00</published><updated>2007-11-18T12:43:28.459+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>フォントをインストールする時に便利なプログラム</title><content type='html'>&lt;ul&gt;&lt;li&gt;"mkfontdir directory" は X サーバーが使用する font ディレクトリを準備します。 これはディレクトリにフォントをインストールした後に 実行する必要があります。 &lt;/li&gt;&lt;li&gt;"xset fp+ directory" は X サーバーのカレントフォントパスに directory を追加します。恒久的にディ レクトリを追加するのであれば、/etc/XF86Config ファイルの "Files" セクショ ンに "FontPath" 行を追加します。 &lt;/li&gt;&lt;li&gt;"xset fp rehash" を mkfontdir を呼びだしたあとに実行する必要があります。これはフォントパ スを現在値にリセットし、カレントフォントパスのフォントデータベースを X  サーバに再読み込みさせます。  &lt;/li&gt;&lt;li&gt;"xfontsel" で、インストールされている各種フォントのプロパティをマウスで選択して ブラウズすることができます。 &lt;/li&gt;&lt;li&gt;"xlsfonts -fn fontpattern" は fontpattern にマッチしている全てのフォントをリスト表示し、各種フォント のプロパティを表示します。"xlsfonts -ll -fn font" を実行すると、フォント プロパティ CHARSET_REGISTRY と CHARSET_ENCODING をリスト表示します。 これらのプロパティはフォントのエンコーディングを決定します。 &lt;/li&gt;&lt;li&gt;"xfd -fn font" はページ毎に font を表示します。 &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/6733890142173588113-3145346129272800057?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/3145346129272800057/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=3145346129272800057&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/3145346129272800057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/3145346129272800057'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/blog-post.html' title='フォントをインストールする時に便利なプログラム'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-7263419921393473206</id><published>2007-11-12T01:15:00.000+09:00</published><updated>2007-11-12T01:16:20.152+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>gdm の起動または再起動について（参考まで）</title><content type='html'>&lt;dl&gt;&lt;dt&gt;&lt;em&gt;すでに gdm が起動している場合&lt;/em&gt;&lt;/dt&gt;&lt;dd&gt; root 権限で、  &lt;div class="command"&gt; &lt;span style="color: Black;"&gt;# &lt;/span&gt;kill -HUP `cat /var/run/gdm.pid` &lt;/div&gt;  と実行して、gdm をリセットしてください。&lt;br /&gt;なお、`cat /var/run/gdm.pid` の前後の括弧はシングルクォートではなく、 いわゆる逆シングルクォート (106キーボードでは、Shift+@) です。ご注意ください。 &lt;/dd&gt;&lt;dt&gt;&lt;em&gt;gdm が立ち上がっていない場合&lt;/em&gt;&lt;/dt&gt;&lt;dd&gt; &lt;p&gt; root 権限で、  &lt;/p&gt;&lt;div class="command"&gt; &lt;span style="color: Black;"&gt;# &lt;/span&gt;/usr/bin/gdm &lt;/div&gt;  を実行してください。 または、 &lt;div class="command"&gt;   &lt;span style="color: Black;"&gt;# &lt;/span&gt;init 5 &lt;/div&gt;  とコマンド入力して、ランレベルを 5 にすると gdm がたちあがります。   &lt;p&gt;コンソールで GUI を起動したくない場合は、 &lt;span class="inline-path"&gt;/etc/X11/gdm/gdm.conf&lt;/span&gt; の中の、  &lt;/p&gt;&lt;div class="command"&gt; [servers]&lt;br /&gt;# These are the standard servers.  You can add as many you want here&lt;br /&gt;# and they will always be started.  Each line must start with a unique&lt;br /&gt;# number and that will be the display number of that server.  Usually just&lt;br /&gt;# the 0 server is used.&lt;br /&gt;0=Standard&lt;br /&gt;  ： &lt;/div&gt; の "0=Standard" の冒頭を、"#" でコメントアウトしたのち、gdm の起動を行ってください。&lt;/dd&gt;&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-7263419921393473206?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/7263419921393473206/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=7263419921393473206&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7263419921393473206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7263419921393473206'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/gdm.html' title='gdm の起動または再起動について（参考まで）'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-8960704356862478457</id><published>2007-11-12T00:33:00.000+09:00</published><updated>2007-11-12T01:11:51.126+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Xmingを使用してFedoraCore6に接続する方法（サーバー側の設定）</title><content type='html'>●Xディスプレイマネージャの設定（gdm）&lt;br /&gt;　　/etc/gdm/custom.conf　を以下のように修正&lt;br /&gt;　　　　[securiry]&lt;span class="modify"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;　　　　&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;AllowRemoteRoot=true&lt;span class="modify"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;（Option）&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;　　　　[xdmcp]&lt;span class="modify"&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;　　　　Enable=true&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;●gdm を再起動する&lt;span class="type"&gt;&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;span style="font-family: Georgia,serif; color: rgb(255, 0, 0);"&gt;　　#&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;gdm-restart&lt;/span&gt;　　→　gdmすでに起動している場合&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;&lt;span style="font-family: monospace; color: rgb(255, 0, 0);"&gt;&lt;span style="font-family: Georgia,serif;"&gt;　　#&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;gdm&lt;/span&gt;　　　　　　　→　ｇｄｍ起動していない場合&lt;br /&gt;&lt;br /&gt;●&lt;/span&gt;Xフォントサーバの設定（ｘｆｓ）&lt;br /&gt;　　/etc/X11/fs/config　を以下のように修正&lt;br /&gt;　　　　&lt;span style="color: rgb(255, 0, 0);" class="modify"&gt;#&lt;/span&gt;no-listen = tcp;&lt;br /&gt;&lt;br /&gt;●Xフォントサーバ再起動&lt;br /&gt;　　&lt;span style="color: rgb(255, 0, 0);"&gt;# &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);" class="type"&gt;service xfs restart&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;●ファイアウォールの設定（iptables）&lt;br /&gt;　　&lt;span class="inline-path"&gt;/etc/sysconfig/iptables　&lt;/span&gt;に以下の行を追加&lt;br /&gt;　　　　-A RH-Firewall-1-INPUT -m state --state NEW -m &lt;span style="color: rgb(255, 0, 0);"&gt;tcp&lt;/span&gt; -p &lt;span style="color: rgb(255, 0, 0);"&gt;tcp&lt;/span&gt; --dport &lt;span style="color: rgb(255, 0, 0);"&gt;7100&lt;/span&gt; -j ACCEPT&lt;br /&gt;　　　　-A RH-Firewall-1-INPUT -m state --state NEW -m &lt;span style="color: rgb(255, 0, 0);"&gt;udp&lt;/span&gt; -p &lt;span style="color: rgb(255, 0, 0);"&gt;udp&lt;/span&gt; --dport &lt;span style="color: rgb(255, 0, 0);"&gt;177&lt;/span&gt; -j ACCEPT&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);" class="type"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;　　注：１、&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);" class="type"&gt;XFS&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);" class="type"&gt;はTCPの７１００ポートを使用&lt;br /&gt;　　　　２、&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);" class="type"&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);" class="type"&gt;XDMCP&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);" class="type"&gt;はUDPの１７７ポートを使用&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;●iptables再起動&lt;span style="color: rgb(255, 0, 0);" class="type"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;　　&lt;span style="color: rgb(255, 0, 0);"&gt;# /etc/init.d/iptables restart&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;●   SELinux の設定は Permissive または Disabled とします。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-8960704356862478457?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/8960704356862478457/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=8960704356862478457&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8960704356862478457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8960704356862478457'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/xmingfedoracore6.html' title='Xmingを使用してFedoraCore6に接続する方法（サーバー側の設定）'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-3565346834851389293</id><published>2007-11-11T21:51:00.000+09:00</published><updated>2007-11-11T21:58:11.397+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>完全用Linux工作（ZT）</title><content type='html'>●Shell: bash。它结合了 csh 和 ksh 的优点，并且有 readline 功能，你可以随意绑定自己的键盘。&lt;br /&gt;●编辑器： VIM, Emacs。&lt;br /&gt;●程序开发： GCC, make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ...&lt;br /&gt;●论文，幻灯工具：LaTeX, ConTeXt&lt;br /&gt;●绘图工具：MetaPost。这个语言太强了，以至于我只用它了。你不熟悉的话可以用xfig, dia 来画一些流程图之类的图片。&lt;br /&gt;●图像处理：ImageMagick。其中的 import 程序可以屏幕抓图，convert 程序可以转换图像格式，display 可以显示图片和简单编辑(缩放，换质量，转格式，简单绘图，简单虑镜)。通常我就这么点需要。如果你要更强大的图像工具可以用 Gimp, 它几乎和Photoshop差不多。&lt;br /&gt;●自动管理工具：make。我可以用make来自动编译程序，自动编译文档，自动更新插图…… 全自动，而且不会重复劳动。&lt;br /&gt;●数值计算程序：SciLab。这个程序基本上可以代替 Matlab。&lt;br /&gt;●代数计算程序：MAXIMA。这个程序基于世界上最老的计算机代数系统之一: 由美国能源部(DOE)发行的 MIT Macsyma 系统。它是用 Common Lisp 实现的。很多现在的符号计算程序比如 Maple 都从 MAXIMA 身上学到很多东西。它现在经过 DOE 批准以GPL发行，永远是一个自由软件。&lt;br /&gt;●加密程序：GnuPG。我的 PGP 密钥就是它搞出来的。&lt;br /&gt;●打包，压缩程序。什么都有: tar, gzip, bzip2, zip, rar, ...&lt;br /&gt;●虚拟光驱程序。Linux 不需要虚拟光驱程序，直接 mount 就行了。&lt;br /&gt;●ftp 服务器：proftpd, vsftpd。proftpd 功能很强，但是我只用了最简单的一种设置。&lt;br /&gt;●WWW 服务器：apache。&lt;br /&gt;●ftp 客户程序：lftp，ncftp。它们都是文本方式操作的，但是比起图形界面的方便的多。比如 lftp 几乎具有 bash 的所有方便功能，Tab 补全，bookmark, queue, 后台下载，镜像…… Linux 也有图形界面的 ftp 客户程序，但是大多不稳定，有很多问题。这就是很多人抱怨 Linux 不如 Windows 的一个小原因。还有很多人用 Wine 模拟 Windows 的leapftp，其实 lftp 比 leapftp 好很多，你需要的只是适应一下。&lt;br /&gt;●自动下载工具： wget。它非常稳定，有一次我下载一个程序，用 IE 和 Mozilla 下载回来的文件都是坏的，最后还是 wget 可靠的传输了数据。用它甚至可以镜像整个网站，比起WebZip 这样的 Windows 程序强多了，而且不会因为你不付钱就在下载回来的网页里强制插入广告。&lt;br /&gt;●虚拟终端：rxvt, xterm, gnome-terminal, mlterm, ...&lt;br /&gt;●X server: XFree86&lt;br /&gt;●窗口管理器：FVWM。编译加入了 libstroke。&lt;br /&gt;●中文输入：XSIM。被我修改过以适应 FVWM 的需要。另外推荐你还可以用 SCIM。&lt;br /&gt;●email 处理：Mutt + Postfix + fetchmail&lt;br /&gt;●看 PDF, PS, DJVU 文件：Acrobat Reader, xpdf, GhostScript, gv, djvu工具包和netscape 插件。&lt;br /&gt;●看CAJ文档。我从来不看CAJ之类的文档，如果找不到PDF或PS，直接去图书馆借最好。&lt;br /&gt;●看网页：Mozilla, Phoenix, lynx。Mozilla-Xft 的显示效果比IE 好很多。&lt;br /&gt;●英汉字典：IBM智能词典，星际译王。&lt;br /&gt;●编辑网页：我用VIM 直接写 HTML。你如果想要图形方式的可以用其它的比如screem, BlueFish。&lt;br /&gt;●登录其它 UNIX, Linux 机器：openSSH, telnet。 我喜欢用 openSSH 把其它机器的X 程序通过 ssh 加密的隧道传到我机器上显示。&lt;br /&gt;●登录 Windows2000 server 的 display service: rdesktop，...我有一天试了一下，不错。后来就没有用过了。&lt;br /&gt;●同步程序：rsync。我用 rsync 通过 ssh 来跟某些机器同步数据，或者做自己机器上不同目录间的同步。&lt;br /&gt;●上BBS：rxvt(或任何一种终端) + telnet + chatbot(helloooo 机器人的程序)&lt;br /&gt;●QQ, ICQ: 我没有 QQ 或 ICQ。不过你可以用 Gaim, 它同时支持 QQ, ICQ 和很多其它的即时通信方式。ICQ 用户也可以用 Licq。&lt;br /&gt;●放录像：MPlayer, RealPlayer。MPlayer 太好了，直接就可以放 VCD, DVD, divx, wma, wmv ... 用 Windows 的同学都很羡慕我。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-3565346834851389293?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/3565346834851389293/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=3565346834851389293&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/3565346834851389293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/3565346834851389293'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/linux.html' title='完全用Linux工作（ZT）'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-5535047020298249648</id><published>2007-11-11T21:46:00.000+09:00</published><updated>2007-11-11T21:58:44.867+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linuxのrootのパスワードを忘れてしまった！（ZT）</title><content type='html'>解決方法：single user modeでパスワードを再設定する。（Fedora　Core　６で検証済み）&lt;br /&gt;&lt;br /&gt;以下、メモ。&lt;br /&gt;１、FedoraのGRUB画面で「e」を押して、ブートメニューの編集画面へ。&lt;br /&gt;２、kernel と書いてある行へ矢印キーで移動して「e」 を押して、その行の編集画面へ。&lt;br /&gt;３、行の最後にへsingle と書いてEnter。最後に「b」で終了。&lt;br /&gt;４、sh-3.00#というルートなプロンプトが出るので、passwd でEnterしてパスワード設定。&lt;br /&gt;５、reboot書いてEnterで再起動。&lt;br /&gt;&lt;br /&gt;簡単すぎ、、、。やはりGRUBのパスワードも設定しておくべきかも＜それを忘 れたらどうする＾＾？＜忘れるなよっ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-5535047020298249648?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/5535047020298249648/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=5535047020298249648&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5535047020298249648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/5535047020298249648'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/11/linuxroot.html' title='Linuxのrootのパスワードを忘れてしまった！（ZT）'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-6512048828913413676</id><published>2007-09-30T15:25:00.000+09:00</published><updated>2007-09-30T15:56:04.439+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JNI'/><title type='text'>在Cygwin中用gcc(g++)编译JNI的C(C++)程序的注意事项</title><content type='html'>在Cygwin中用gcc(g++)编译JNI的C(C++)程序时，由于jni_md.h头文件中有以下定义&lt;br /&gt;typedef　 __int64　 jlong;&lt;br /&gt;所以编译是通不过的。必须在编译时加上下面的参数&lt;br /&gt;g++ -D__int64='long long' 。&lt;br /&gt;这是因为在Ｗindows的Ｃ编译器中有__int64的定义，但ＧＣＣ中是没有的。&lt;br /&gt;&lt;br /&gt;另外，在链接时，要加上以下的选项&lt;br /&gt;g++ -mno-cygwin -Wl,--add-stdcall-alias&lt;br /&gt;加-mno-cygwin是为了让编译出来的ＤＬＬ不依赖于ＣＹＧＷＩＮ的ＤＬＬ。&lt;br /&gt;加-Wl,--add-stdcall-alias是为了在运行时，不出现&lt;code&gt;UnsatisfiedLinkError的错误。&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-6512048828913413676?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/6512048828913413676/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=6512048828913413676&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/6512048828913413676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/6512048828913413676'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/09/cygwingccgjnicc.html' title='在Cygwin中用gcc(g++)编译JNI的C(C++)程序的注意事项'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-3152397709562193745</id><published>2007-08-28T20:51:00.000+09:00</published><updated>2007-11-11T21:59:15.225+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>Linux快速编辑Shell命令行（ZT）</title><content type='html'>&lt;span id="zoom" class="a14c"&gt;&lt;b&gt;一、自动补齐：[Tab]&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;span id="zoom" class="a14c"&gt;&lt;b&gt;二、查找和执行历史命令：[Ctrl + r], [Ctrl + p], [Ctrl + n]&lt;/b&gt;&lt;/span&gt;&lt;span id="zoom" class="a14c"&gt;&lt;b&gt;&lt;br /&gt;三、取消本次命令输入：[Ctrl + c]&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;四、光标跳转快捷键：&lt;/b&gt;&lt;span id="zoom" class="a14c"&gt;&lt;p style="text-indent: 2em;"&gt; &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;为了方便大家记忆，加点英语助记语在后面 :) &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Ctrl + a] 跳转至命令行首 Ahead of line &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Ctrl + e] 跳转至命令行尾 End of line &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Ctrl + f] 向前跳转一个字符 jump Forward one character &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Ctrl + b] 向后跳转一个字符 jump Backward one character &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Alt + f] 向前跳转到下一个字的第一个字符 &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Alt + b] 向后跳转到下一个字的第一个字符&lt;br /&gt;&lt;b&gt;五、编辑命令的快捷键：&lt;/b&gt; &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Ctrl + w] 向后删除一个字，用来对付刚刚输入的错误字很有用 &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Ctrl + u] 从光标当前位置删除所有字符至行首 &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Ctrl + k] 从光标当前位置删除所有字符至行尾 &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Ctrl + d] 删除光标当前位置的字符 &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Ctrl + y] 粘贴最后一个被删除的字 &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;[Alt + d] 删除从光标当前位置，到当前字的结尾字符 &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-3152397709562193745?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/3152397709562193745/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=3152397709562193745&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/3152397709562193745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/3152397709562193745'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/08/linuxshell.html' title='Linux快速编辑Shell命令行（ZT）'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-8774308755640856294</id><published>2007-06-05T16:39:00.000+09:00</published><updated>2007-06-05T16:41:15.527+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SandBox'/><title type='text'>Send Mail Test</title><content type='html'>This text can be send to my gmail?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-8774308755640856294?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/8774308755640856294/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=8774308755640856294&amp;isPopup=true' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8774308755640856294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/8774308755640856294'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/06/send-mail-test.html' title='Send Mail Test'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6733890142173588113.post-7712457633272651824</id><published>2007-06-05T11:49:00.000+09:00</published><updated>2007-06-05T16:38:30.999+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SandBox'/><title type='text'>中国语言测试＆日本語テスト</title><content type='html'>&lt;ol&gt;&lt;li&gt;中国语言测试＆日本語テスト&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;中国语言测试＆日本語テスト&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;em&gt;中国语言测试＆日本語テスト&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#33cc00;"&gt;中国语言测试＆日本語テスト&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6733890142173588113-7712457633272651824?l=cityhunter14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cityhunter14.blogspot.com/feeds/7712457633272651824/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6733890142173588113&amp;postID=7712457633272651824&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7712457633272651824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6733890142173588113/posts/default/7712457633272651824'/><link rel='alternate' type='text/html' href='http://cityhunter14.blogspot.com/2007/06/blog-post.html' title='中国语言测试＆日本語テスト'/><author><name>cityhunter14</name><uri>http://www.blogger.com/profile/00685722820032513129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_1mpejEZ1VXI/TI-iULoth1I/AAAAAAAAAyI/QAdx6gKlt3E/S220/me.JPG'/></author><thr:total>0</thr:total></entry></feed>
