诸位Linux爱用者肯定遇到这样的麻烦事:当您在操作Linux系统的过程中遇到一个问题,却找不相应文档,硬着头皮去论坛提问,又被一句“请先阅读《提问的智慧》”给打了回来。 http://debian.kanxue.net/2007/04/26/dwww-dhelp-hztty-zh-autoconvert/

  其实,在大部分Debian系统里已经有了很多文档可供阅读,比如HOWTO和各软件自带的说明,man和info,当然还有 GNOME/KDE的帮助文档等。尽管Debian已经是最符合FHS规范的系统,但这些文档在系统中依然是分散放置,别说是阅读,光是要找到他们都相当 不容易。

  好在早就有DD注意到这个问题,于是开发了一套Debian文档管理系统。任何一个合格的的DD在维护自己的软件包时,都会将软件中的文档资料 注册到这套doc管理系统中。在用户这一端,Debian提供了dwww和dhelp这两个文档分类查询阅读系统,可以通过浏览器来获得统一的集成阅读环 境。

  先说dhelp,这是一个超轻量级的软件,仅仅是依赖于libc6、perl-modules、libdb3、debconf这四个非常底层的软件包。安装好以后,用浏览器访问 file:///usr/share/doc/HTML/index.html ,或直接在terminal中执行 dhelp 命令,即可看到一个文档分类界面(如图Fig.1)。如果您的系统已经装有www server,也可以通过 http://localhost/doc/HTML/index.html 来访问这个页面。然后,我们就可以根据需要按分类一层一层的向下挖掘来找到所需的文档资料(仅仅是那些由DD注册过的文件)。但实际上,这个挖掘的过程依然是很不友好和方便的,很难快速准确的进行定位,有时甚至会迷失方向。因此,我在安装时使用了 apt-get install dhelp swish++ info2www man2html 。其中,swish++是一个简单的搜索引擎,后两个软件名很明显是将info和man资料即时转换成html以方便阅读。这样,一个简单的文档集成阅读系统就搭好了。

  相对于轻量级的dhelp,dwww就是重量级的老大哥了。与dhelp最大的区别就在于,dwww一定要依赖于www server,好在这年头,大家的机器性能都还不错,而Apache所占用的资源也并不多。要获得一个功能较完整的dwww系统,我的安装方法是 apt-get install dwww info2www swish++。man2html就不需要了,dwww已经内置了这个功能。安装好以后,用浏览器访问 http://localhost/dwww/ 即可,截图见Fig.2,很明显可以感觉到老大哥要比dhelp小弟专业得多。dwww不仅可以将文档按类别分层布置,也可以将所有文档集中在同一页面 中,这时咱们就可以直接在页面中使用浏览器的“Find”、“Find Next”进行简单快捷的搜索。另外,虽然dwww与dhelp一样都是使用swish++作搜索引擎,dwww的搜索能力还是要比dhelp高很多,不 但可以处理文档和标题和简介,甚至可以对文章内容进行有效的搜索。

  当然,dwww作为老大哥还有自己的一样绝活,那就是可以跟dpkg-www进行配合,在浏览器中查阅软件包的状况(界面类似于 dselect),如果开放了一定的权限,用户甚至可以在浏览器中安装和卸载软件。怎么样,这下够牛吧!跟以往一样,安装还是那条超简单命令:apt-get install dpkg-www dlocate。dlocate是用来加速dpkg搜索用的软件。安装过程中会有些简单的问题,一般来说不建议开放安装和卸载软件的权限,这实在是太危险了。安装完成后,就可以通过dwww界面下方的搜索选项对软件包进行查询喽。

  dpkg-www本身也是一个独立的软件。访问 http://localhost/cgi-bin/dpkg 您就可以见到一个熟悉的界面(见图Fig.3)。点击一下软件名,还可以看到类似于dselect界面的软件简介、依赖关系、维护人等内容(其中很多都是 可以继续点击的超链接哟,这可比dselect/synaptic/aptitude要方便多了),在这之后,还显示有这个软件包内的文件列表,如果其中 的文件是文本、HTML、info、man的话,也可以点击之,并在浏览器内直接阅读。(见图Fig.4)

  对了,谈了半天文档的管理,还要提一下文档的安装。怎么,这难道还有什么好说的?对了,Debian采用的是micro package系统,也就是说常常会把一个软件拆分成好几个软件包。就拿Qt3举个例子吧,你知道在Debian系统中Qt3被拆成了多少个包吗?答案可 能会让你非常非常吃惊,数数下面有多少吧: qt3-qtconfig libqt3c102-odbc qt3-designer libqt3c102-mt-mysql qt3-assistant qt3-apps-dev qt3-dev-tools libqt3-i18n libqt3-dev libqt3c102 libqt3c102-mysql qt3-dev-tools-embedded qt3-linguist libqt3c102-psql libqt3-mt-dev qt3-dev-tools-compat libqt3c102-mt libqt3-headers libqt3c102-mt-odbc libqt3c102-mt-psql qt3-doc libqt3-compat-headers qt3-examples。其中还不乏互相冲突的包呢。言归正传,正因为这个micro package,一个软件xxx的文档很有可能并不在xxx这个软件包中,而在另外一个叫xxx-doc的软件包中,上面的Qt3就是一个好例子,还有 grub/grub-doc也是这样。当然,具体情况还要具体分析,还请各位多看看软件包的说明。

  除了各软件自身的说明文档外,Debian系统中还有一些综合性的文档可供安装,比如HOWTO等。我在下面列举一些特别值得安装的,大家也可以看看Section: doc下的软件包名。
doc-linux-html - Linux HOWTOs and FAQs in HTML format
doc-linux-nonfree-html - Linux HOWTOs in HTML format (non-free)
doc-linux-zh-s - Linux HOWTOs and mini-HOWTOs in Simplified Chinese in HTML
debian-reference-en - Debian system administration guide, English original
debian-reference-zh-cn - Debian system administration guide, Chinese(CN) translation
debian-zh-faq-s - Debian Chinese FAQ (Chinese GB)

developers-reference - guidelines and information for Debian developers
linuxcookbook - Tips and techniques to help the busy modern computer user
lskb - Linux Security Knowledge Base Document
maint-guide - Debian New Maintainers' Guide
maint-guide-zh - Chinese (simplified) translation of Debian New Maintainers' Guide
newbiedoc - Documentation by and for newbies
sysadmin-guide - The Linux System Administrators' Guide
lg-issue??? - 自创刊以来所有的Linux Gazette(Linux公报)

  还要说说dhelp/dwww的缺点和问题。一、一旦跟www server和cgi-bin搭上了边,在阅读一些被gzip压缩过的中文文档时会出现乱码,幸好这类文件不多;二、搜索功能还是偏弱,连关键词的顺序都 有可能会极大影响到搜索结果;三、没能很好的与GNOME/KDE的帮助系统进行整合。

  另外,还要提一下,专门用于GNOME开发的帮助软件devhelp。安装方法是 apt-get install devhelp-books。这个跟dwww/dhelp无关,直接运行devhelp就好。

  怎么样,有了我介绍的这几个软件,各位是不是可以对系统中的文档“心中有数”了呢?我一直都是把dwww放在Mozilla-Firebird的工具栏里,方便我随时查阅文档(尤其是Debian Reference,感谢LYOO兄),生活已经离不开她了。 ;-)

  第二集、 简繁中文随心换 ── hztty与zh-autoconvert

  尽管GBK/GB18030已经包含了大部分繁体字符,Unicode也越来越流行,但传统的GB/Big5编码依然是绝大多数系统及软件的缺省设置。如此一来,简繁转换就变成了很多中文用户都要面对的问题。

  我把简繁转换这个任务分成了两种类型:
一、静态转换,即对文件或标准输入输出进行操作;
二、动态转换,即在以普通中文输入法时,进行即时转换,例如,用fcitx进行输入,但得到的是Big5码繁体。

  今天要讲的两个工具都是由国内的Debian维护者于广辉先生编写的软件。

  对第一种类型,咱们使用提智能转换工具zh-autoconvert,操作的命令有两个autogb/autob5。该软件能通过对常用词语的 比较来实现自动判断文件的类型,这比那些需要手动指定输入输出编码的软件要方便很多,如果文章有一定的长度(比如1000字),识别准确度将达到 100%。可以用该软件deb包中附带的几个不同编码的文本(内容是《射雕英雄传》第一章)进行一下验证。
举例说明:
zh-autoconvert是直接对stdin/stdout进行操作,最简单的使用方法就是在终端中运行autogb,然后输入简体中文,然后按Ctrl+D,标准输出上就会出现一堆乱码,实际上就是您所输入的内容的Big5繁体版,反之亦可。
如果想将一未知编码(非UTF-8)的文件转换为简体GB文档,命令是autogb < in.txt > out.txt;若要获得繁体Big5文档,则是autob5 < in.txt > out.txt

  因为UTF-8文档中可能同时包含简繁,甚至XX语字符,因此自动判断功能不太适用。
假如已知待处理的中文文档是UTF-8编码,则可以使用"-i utf8"参数,例如autogb -i utf8 < in.txt > out.txt,繁体类推。
以上只是zh-autoconvert最简单的使用方法,实际上zh-autoconvert可支持在大部分中文编码之间任意转换,包括gb, big5, hz, unicode, utf7 和 utf8。因此,在整理一些老旧文档时,也会特别有用。但如果你的文档内同时存在几种不同编码,那zh-autoconvert也帮不上你了。
在Debian mailing list上有一个很成功的应用此软件的例子。Debian中文邮件列表为了方便不同的用户,被分拆成两个版本debian-chinese-gb和 debian-chinese-big5,而为了整合资源避免重复劳动又需要这两个邮件列表之间能互通。即一封发给debian-chinese-gb的 邮件,在两个列表中都可以收到,而且不会因为编码不同而出现乱码。其实这就是将zh-autoconvert应用到邮件列表服务软件中,自动将任意一个列 表收到的邮件转成另一种编码码并存到对方列表中,是不是很简单呢?如果你已经安装了zh-autoconvert,看看软件文档,里面就有这个例子的详细 说明。(可惜咱们的Debian中文邮件列表已经停止工作大半年了,原因不明)。

  看过第一种类型的说明,大家可能会说,这软件有什么稀奇的。但第二类型就不一样了。
试想一下,如果你想在GB简体中文环境系统中登录到繁体中文IRC上去跟台湾香港的朋友实时聊天,麻烦就比较大了。例如fcitx,就只能输入GB码中文,在别人看来就全是天书了。怎么办?嘿嘿,hztty这时就可以派上用场了。
(我对字符界面的irc程序不熟,以前曾经在bitchx和irssi上成功的试验过,但很多操作都不记得了,因此在这里拿vim来代替。)
在中文终端下执行hztty -I gb2big -O big2gb vim,然后在vim中输入任意中文字符。咦?没变化嘛,别急,先存盘再说。再直接打开刚刚保存的文件,哈哈,看到一堆乱码了吧,成功!也就是说在屏幕依然显示简体的情况下,vim实际处理的已经是Big5繁体了。
是不是有点晕,去看看hztty的文档。另外,它跟zh-autoconvert一样,能即时处理的编码也相当多的。
Debian中还有个叫yiyantang(一言堂)的软件也是类似的功能,我试了一下,但没成功,不如hztty好用。

  请各位多多尝试使用不同的工具组合,说不定你还能找到更实用的功能哟。




















































http://www.cnitblog.com/xmasfox/




http://blog.csdn.net/xmasfox1




博客- xmasfox - 博客屋- 以博客为基础的交流社区




http://xiat.blogbus.com