Linux 的选择与《完全用GNU/linux工作》(转帖)

为什么用linux?这篇文章给了一个详细的阐述,可以来参考一下。

(转自:http://www.blogchinese.com/user1/110/archives/2005/291198.shtml#)

Linux 的选择。

□sinpool 发表于 2005-6-2 10:45:00

     Linux似乎一直是电脑高手的玩具,令人望而却步。可是身为学计算机专业出身的我,一直想感受她的魅力,可是,苦于没有一个好的学习方法和清晰的学习道路,经常半途而废。自从看了下面这片文章,才使我决心学好linux了。以至于到现在,我基本就是在linux下工作和学习了。对于文中的观点褒贬不一,每个人都会有自己的感受,我只是希望那些向我一样对linux感兴趣,而又不知道如何学习的朋友,也能从这片文章中得到信心和鼓励。(文中的观点属于作者)

                                                《完全用GNU/linux工作》

完全用GNU/Linux工作

作者:王垠

— 摈弃 Windows 低效率的工作方式,发掘 Linux 身上的 UNIX 气质

我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。

GNU/Linux 不是每个人都想用的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。

我不是一个狂热的自由软件份子,虽然我很喜欢自由软件。这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的。

这篇文章也不是用来比较 Linux 和 Windows 内核效率,文件系统,网络服务的。我现在是作为一个用户而不是一个开发者来说话的,我们的讨论是基于操作,应用层面的。是为了告诉大学里还不了解,或者不理解 UNIX 的科学工作者和大学生,UNIX 比 Windows 更适合用于科学研究工作,请大家理解 UNIX 的工作方式,不要用 Windows 的标准来要求 Linux,而要用一个科学工作者的标准来要求自己,用 UNIX 的思想来武装自己。

我显然是反对在大学,特别是理工科专业推广 Windows 的。我也反对在对“娃娃” 们的计算机启蒙教育中使用 Windows。因为 Windows 不论从技术上,经济上,思想风格上都是与我们培养高科技人才的目标格格不入的。Windows 的流行属于历史遗留问题,爷爷一级的人当然已经不可救药,但是我们不应该让下一代继续走上歧途。

UNIX 不是计算机专家的专利

当我建议一些非计算机专业的人用 Linux 的时候,很多人说:“UNIX 是计算机系的人用的,我们不能理解。” “UNIX 是男孩用的,我们女孩不用。”

但是其实世界上的大多数科学家和工程师几乎用的都是 UNIX 作为他们的电脑工具。就因为它简单,可靠,稳定,强大,有趣。甚至很多时候 UNIX 就是唯一的选择。

你说:“我们都会用 UNIX 的话,你们计算机专业的人还用来干什么?” 很容幸的告诉你,计算机专业的有一部分人就是专门为你们提供这样强大而方便的计算机工具的。如果他们制造的工具只有自己会用的话,那这个工具还有什么用?

理解 GNU/Linux

不要用 Windows 的标准来要求 Linux。

由于GNU/Linux这个词太长,下面如果没有特别指明,“Linux”就是指“GNU/Linux”。

在这个年代,恐怕没有人需要我来介绍 Linux 是什么了吧?如果你觉得“Linux 只不过是跟 DOS 差不多的东西”,那请问问你旁边的 Linux 用户,Linux 到底是什么?

那为什么我还要写一篇这样的文章?因为,我发现还有很多人不不理解 Linux 和 UNIX,虽然他们也在用它,但是他们有时会问:“为什么 Linux 不能像 Windows 那样 ……?”,“怎么Redhat Linux不能 mount NTFS 分区!”,“Linux 下用什么整理硬盘?”,“什么时候OpenOffice才能完全兼容Word文件啊?”,“现在还有什么Windows能干的事情Linux干不了的?”……

他们有40G的硬盘,却只为 Linux 分配了2G空间,有时还抱怨“这个东西怎么占这么多硬盘!” 似乎 Windows 该占用大部分硬盘。他们把重要的数据装在Windows的分区,似乎信不过Linux。他们总是到处寻找新奇的,好看的GUI程序,对命令行的东西一概不屑一顾。他们对 Drag&Drop,菜单配置,自动升级非常感兴趣。他们如果找到一个很像 Windows 程序的 Linux 程序,一定会很高兴的说:“哈哈!Linux 也能……了!” 如果Linux在某种测试中胜过Windows,他们会高兴得跳起来。他们没有办法用Linux解决问题的时候,甚至用 Wine来运行Windows程序。有时实在没办法,只好重起到 Windows,或者干脆省得麻烦,在 Windows 下装一个 VMWare 虚拟一个 Linux 玩。

你如果出现了上面的情况,说明你的思想受到了 Windows 的某种潜移默化的影响和误导。你没有能够从本质上理解存在于 Linux 身上的 UNIX 思想。你支持 Linux,你喜欢 Linux,你能从中感觉到快乐,这非常好。你现在只需要明白的是: Linux 从来就不是一个玩具,它是天才UNIX的后代。UNIX 是自晶体管发明以来最伟大的发明,它从诞生那一天开始就比 Windows 的设计出色。

你要体会什么叫做“设计”,一个糟糕的设计并不是到后来缝缝补补就可以变好的,而一个出色的设计,不但可以以不变应万变,而且可以影响到后来者。一个出色的设计配上一个出色的实现,那就是非常出色的发明。Linux 就是这样的一个出色的发明。Linux 并不需要追赶 Windows,也不需要打垮微软。它的最终目标是改变整个计算机世界,还人们自由,给人们乐趣和方便。

Unix 是简单的,你不需要成为一个天才也能理解这种简单。

UNIX 的设计者 Dennis Ritchie 说: “Unix is simple. It just takes a genius to understand its simplicity.” 但是我不这么认为,因为我不是一个天才,但是我却勇敢的把 Windows 完全删除掉,遇到不明白的事情的时候努力用 UNIX 的方式去解决,而不是寻求 Windows 的帮助。现在我体会到了 UNIX 的思想和好处,我可以用比 Windows 高效几倍的效率工作。因为我相信这样的信念: “Windows 能办到的事 Linux 一定能办到,而且办的更好。”

这小节开头的话应该改成:“Unix 是简单的,你不需要成为一个天才或是计算机专家。但是在这个冲斥着 Windows 错误观念的世界,你需要信念和勇气才能理解它的简单。” 我下面就告诉你一些我理解到的东西。首先,你要知道的是微软在国际科学领域是根本没有地位的。

微软的地位

微软的名声在欧洲和美国的大学里,特别是在计算机系里之坏,大家可能有所耳闻。我认识的 MIT,Stanford 的教授,贝尔实验室的专家,甚至一个欧洲小国的高中计算机老师都绝口不提微软的名字。在他们眼里,微软只是一个没有真技术,专靠在落后国家商业宣传和垄断经营的小公司。这个“小”并不是说它人少,钱少,而是说它先进技术少。

我上次和王益合作写了一个算法演示程序,那个算法是贝尔实验室一位科学家Steven Fortune很天才的发明,为了程序能够被身边大多数人使用,我们选择了 VC+MFC 作为平台。我在分析算法时还得到 Fortune 很热情的鼓励,寄给我一份资料,还多次回信耐心的给我讲解了很多细节。但是程序完成之后,我把样品发给 Fortune,他回信说:“对不起。我机器上没有 MFC。” 话说的很客气,但是我已经感觉到了他对 Windows 的不屑。然后我把 MFC 静态编译进程序再发给他,他就没有再回信了。他显然不是瞧不起我,而是确实有难处。

你能感觉到这位科学家对微软和 Windows 是什么态度了吧?不是反感,而是他心里根本没有 Windows 这个东西!微软在高科技领域没有发展,那么它怎么生存呢?到发展中国家去发展一下,他们的人民还对电脑一无所知,我说不定甚至可以打入大学的计算机系呢。我送他们软件,我捐钱盖大楼,我出钱找图灵奖获得者来演讲,让他们觉得我们都是科学家!

好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学校的选课系统是非IE不能正确浏览,论文用 Word 编辑,演示用ppt做,email 的通知附件是 doc 文件,你不用 Word 打不开,连 863 项目都用 VC 写程序了。我很久以前就看到一份报纸说,“微软为什么不严厉打击盗版?” 这篇文章说,微软非但不打击中国的盗版行为,而且有放任之趋势。放长线吊大鱼,“以后我要你们加倍的来还我!” 确实如此,它的目的快实现了。

Windows 笼罩下的中国计算机教育

说句丢脸的话,比尔盖茨很久以前是我的偶像…… //blush

在中国,比尔盖茨被很多人奉为神圣,“少年电脑天才”,甚至有的人提到他的名字就做出“抱拳对天”的姿势。很多人谈到微软的“新技术”,“高科技” 都是眉飞色舞。各种“VC编程圣经”,“深入了解 Visual C++”之类的书,在开头几页都会出现非常肉麻的字眼,“在那团团的混沌中,一个开天辟地的精灵,Windows 1.0,诞生了……”

微软的软件被这么多人盗用,那么人们是怎样使用这些盗版程序的呢?先看看电脑培训班,教的都是一些 DOS 命令,打字,Windows 基本操作,Word 文档处理,PowerPoint,高级班可能有 Excel,Access…… 参加各种微软认证考试,MCSE,MSDE 的人络绎不绝。考试辅导班都贴出了“280元,考过为止”之类的字样。考试参考资料更是昂贵,有些电脑书店整整两书架都是“Microsoft Press”的东西。我有个同学参加认证考试,每门考试都要200多元。而且你一次考不过可以再考,又要交钱。他后来还津津乐道跟我说,看我,花了 XXXX(一个四位数)元考过了微软认证,得到一张比尔盖茨亲笔签名的证书和价值6000元的 Windows XP 内部发行版。

“电脑要从娃娃抓起”,我们再来看看娃娃们学的是什么。大部分家长给孩子买了电脑之后,他们首先就会装一个盗版的 Windows,然后买来盗版的游戏开始玩。如果哪个孩子会用 Delphi 编程序,那可不得了。报社记者,电视台争相报导,说,某某学校的初中生某某,在别人都还在玩电脑游戏这种“初级阶段”的时候就已经用 Delphi 写程序了。镜头还瞄准了他显示器上面的像框中的比尔盖茨头像!

我刚进入大学计算机系时还不懂得什么是操作系统,因为我以前只用过“中华学习机”。看到新入学的同学们各个谈论的都是 “Windows 95”, “VC”…… 我简直觉得我落后了好几十年一样,整个一土人,根本跟他们答不上话。好不容易找到一个比较熟的同学问了一下:“你们天天谈论的瘟95是什么啊?”答: “win95就是一个操作系统,跟DOS是一类。”“朵死是什么?” “你连DOS都不知道是什么?别在计算机系混了。” 学校上课当然不讲 VC编程之类的东西,但是上 Pascal 的老师有一次就说:“嗨,我们学校真是落后。现在别人都用 C, C++,甚至 VC 了,我们还在讲 Pascal。不知道什么时候才能有VC课啊。你们出去也是要用VC的,只好自学了。” 于是,有些同学很多时候上课都捧着一本很重的 “Windows 编程大全”之类的书,根本没有听课。吃饭时就念念有词的跟我说,“代码的优化是无止境的”,“匈牙利命名法真是伟大的发明” …… 这就是中国很多大学计算机系的情况。

感觉到无知了?这不是偶然的,而是微软长久以来埋下的伏笔。它要让无知的大家都把它奉为神圣,它要让支持UNIX,Xwindow的人一旦说 UNIX 好,Xwindow 好的时候,都被一群人围着说教:“这个 Windows 也能做到”,“你对 Windows 有偏见”,“微软才是主流啊”,“你敢瞧不起 win2k?”,“.NET 就是世界潮流”,“微软的毕竟是新技术”,“有钱就是有技术”…… 甚至在一番论战比较后败下来还是要说:“Windows 性能差点,但是易用性强”,“Windows 是老百姓用的,要求别那么高”,“微软那么有钱,以后想超过 UNIX 还不容易吗?”……

发达国家的计算机教育

我前段时间在 USENET 发文问有关 Scheme 语言的问题时,认识了一位丹麦人。他解决了我所有的问题,并且建议我阅读一些很“深奥”的有关程序语言语法,文法的书,他告诉我很多网站可以学习 LISP,Scheme,人工智能,算法。他叫我看 Jonathan Rees 的论文 "Syntactic Closures"。他还打包给我寄过来一份 MIT 的 "How to Design Programs"。他说他在自己的 PC 机上装的是 Linux,他用 Emacs 编辑,运行 Scheme 程序。他对 Emacs 的了解和爱好真是使人惊讶。他大学本科毕业时做的毕业设计是一个 Scheme 解释器。这对于我来说是望尘末及了。

他是那么的不厌其烦,我的每一个问题他都详细的回答。我有时都觉得过于详细了,怎么这么耐心啊?我觉得他似乎是我的高中老师。他是什么样的人呢?我好奇的打听了他的情况。原来,他是丹麦一所普通高中的计算机老师。

他说他在高中里讲授程序设计和算法,计算机语言文法。他说用 Scheme,他的学生不用再为内存泄漏等程序语言本身的问题而烦恼,而专注于问题和算法本身。有利于培养学生解决问题的能力,特别是用计算机解决数学问题的能力。

天哪!为什么欧洲出现那么多数学家,几何学家?你看看别人重视的是什么!我们的计算机教育如果继续这样下去,只会沿着弯路越走越远!

微软和它的朋友们的如意算盘

下面来看看微软的收入是怎么来的。首先,Windows 98系列操作系统,一个就是 100 多美元,每次升级又是几乎同样的价钱。Windows NT 还要贵几倍,而且有用户数目限制,5个用户的,10个用户的…… 以后如果要增加用户数目还要按比例付钱。

花了如此多钱买来的操作系统就能用了吗?它竟然连压缩程序都没有提供!你装上 Windows 之后一般第一件事就是去下载一个 WinZip 吧,“只要 29 美元”。Windows 会中病毒啊,马上花 70 美元买一个 Norton AntiVirus 吧。还有黑客呢?再买一个 Norton Internet Security 好了,100 美元。系统需要优化,磁盘需要整理,买一个 Norton System Works 是你最佳的解决方案,100美元。

可是你现在还是不能干正事啊!你想要一个 Word, PowerPoint?那就买一套 Office XP 吧,一起买便宜些,$459.90。

那些程序不会用啊!那些菜单怎么设置,到底有什么功能啊?看“帮助”也学不会。买本书看看吧,我推荐 “Special Edition Using Microsoft Office XP”,不贵,$27.99。这本书里面大部分是屏幕抓图,还是买一本旧的比较划算,$17.85。

你如果只是当个秘书,上面的差不多还凑合了。可是你有更高的追求,你想成为 Windows 程序员。首先买一个 Visual Studio.NET 吧,要不然怎么编译程序。$494.95。

为了紧跟微软动向,世界潮流,不能不注册个 MSDN 什么的吧?这个贵一点,不过物有所值啊,$2,799。

嗯,你现在已经是上层阶级,白领人士了。你现在可以像这样“自由”的,“安全”的生活了:

为什么要反对使用 Windows

很多人都说不应该完全否定 Window,Windows 也有它的长处。不应该骂微软。

对。Windows 容易操作,适合普通用户。如果微软把它自己定位在 P&G,Philips 那样的地位,能够给我们的百姓提供周到的,完善的,价廉物美的服务。那我肯定是很喜欢它的。

但是从上面的种种情况说明,微软是一个野心极大的国际垄断组织!它的产品没有一个是不出问题的:Windows 不稳定,容易中病毒,而微软不为大家免费提供杀毒软件。我就是要让你们花钱买我的朋友 Symantec 的杀毒软件,谁叫你们已经上了我的贼船?这叫什么售后服务啊!

你买来微软的程序,安装的时候一般都有一个协议,说:“由于微软的程序造成你的数据损坏或丢失,微软概不负责。” 我想很多人肯定觉得这个不合理,不想按那个 "I accept"。但是你的软件买都买来了,钱都花了,现在一按 "I decline",安装程序马上就会退出。你只好被迫点击了 "I accept"!这不是不平等条约吗?

我已经目睹了好几个朋友的文档被 Microsoft Word 损坏,有的是编辑了十多天的30多页的论文,有的是费了很大工夫做出来的个人简历,那个朋友为此失去了到自己向往的 P&G 工作的机会。就在他要投简历的前一个晚上,就在那一瞬间…… 不知道他痛哭的时候有没有想起要投诉微软,可是谁叫我们用的都是盗版呢,况且你还点击了 "I accept"。

微软仗势已经占有大部分PC市场,制定不符合国际标准的“微软的标准”,以不合理的方式压制其它公司的软件,这个问题已经在美国司法部闹了很久了。他甚至在 Windows 系列操作系统中放置能够通过网络泄漏用户信息的代码,以至于 Windows 刚进入澳大利亚时被澳大利亚政府禁止使用。

有些人说:“微软毕竟开创了一个历史,造就了今天的 IT 行业。” 但是,如果没有微软,我们今天早就用上非常稳定,非常可靠,非常方便,非常“傻瓜”的软件了!微软是阻挡信息技术发展的罪魁祸首。

微软的程序的工作方式(注意,我只是说操作方式,病毒的事情另外算)确实适合于一般家庭,上上网,发发邮件,打打游戏都不错。可是微软却要把自己包装成什么 “高科技”企业,要在世界各地设置“研究院”,在大学计算机系赠送不适合用于科研的 Windows 产品,甚至出钱请图灵奖得主来中国畅谈“二十一世纪的计算”,还在大会上宣传自己的 .NET 技术。非要把别人认为自己是科学的,自己是领导世界高科技的。但是呢?它什么高科技也没有。欧洲,美国,哪一个关键部门在用微软的东西?NASA? DOE? CERN? 你仔细想一想,微软的程序对人类到底有什么重大作用?

什么是 Windows 能干而 Linux 干不了的事情?

“Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。”

有个朋友看我半年没有用 Windows,有时就会问我:“你只用 Linux,有没有发现有些 Windows 能处理的事情 Linux 干不了?”

我回答说:“Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。”

Windows 能做的有益的事情 Linux 都能做

Windows 下的某些功能确实是我们需要的,那么 Linux 的开发者们和用户也需要这种功能,他们就会去实现这种功能,而且比 Windows 的方式好得多。由于大多数科学家,工程师用的都是 Linux 或者某种商业 UNIX, 所以几乎所有商业的科学工程程序,比如 Matlab, Mathematica, AutoCAD, Candence的,Synopsys的,Avant! 的……全都是先有 UNIX 的版本(包括 Linux),然后再考虑移植给 Windows,甚至根本不移植给 Windows,因为 Windows 的机器一般没有足够的能力运行这样的程序。你不要以为只有 Windows 才有 PSpice, UNIX 的 HSpice 要好得多,而且可以运行在大型主机上。当然它们不是免费的,但是它们值那个价钱。

但是 Windows 下有些东西在 Linux 下没有很相似的,或者你找到很多类似的,但是它们每一个比起 Windows 的那个程序都要差很多,那么原因有两种可能性:

有一个完全类似的程序,但是由于它乍一看不漂亮,被你忽略了。

而其它程序虽然看起来很漂亮,但是它们是一些初学编程的人写的。现在由于 Gtk, Qt 的诞生,Linux 下开发图形界面程序极其简单,很多初中生甚至小学生都可以随手编出一些漂亮不中用的程序。如果你整天寻找这样的程序挑来挑去,永远也找不到你满意的。当然也有一流的程序用 Gtk 和 Qt,比如 GVIM 就可以用 Gtk 作为图形界面,我还知道 Synopsys 一些程序用了 Qt。

我曾经也犯过这样的错误,从外表区分一切。结果优秀的 FVWM, lftp, Mutt, wget 都被我忽略过。当我找回它们的时候,我是那么的羞愧不已,它们现在都是我的朋友 我第一次看到 FVWM 觉得它只不过是一个有很厚很难看边框的东西。可是现在,我的同学看到 FVWM 都说:“哇!真漂亮。”

有另一种完全不同的方式可以达到相同的目的,甚至更好。

很多人很关心 Open Office, Star Office, AbiWord, ... 他们多么盼望有一天某一个 Linux 程序能够完全兼容的打开一个复杂的 doc 文档。但是你永远也不可能有那一天。为什么呢?因为微软为了占有市场,必定不会让其它系统的程序能够完全兼容它的文档格式。它一定会不断变化 doc 文档的内部结构,隐藏一些秘密,让其它公司的程序打开 doc 文档时总是有某种问题,从而你必需购买 Microsoft Office 和 Windows。

你应该想一下,那么多的高智商的大学教授,科学家,学生,他们用的都是 Linux 或者其它类型的 UNIX,他们没有 Word 可用,怎么处理文档呢?这么多年没有一个像 Open Office 的程序出现,难道大家没有办法写文档吗?

显然不是这样。你看看那些高水平的学术杂志,论文,那些大学教授的网页,那些漂亮的幻灯片,它们是什么做的?原来 UNIX 用户早就有非常方便的 troff, LaTeX, SGML 等东西可以处理文档,而且它们比起 Word 都要高明的多。Word 显然被这些大拿忽略了,以至于很久以来没有人想在 Linux 下开发一个类似 Word 的程序,除非某些公司想抢微软的饭碗。

很多人留着 Windows 在硬盘上的原因无非是为了用 Word 和 PowerPoint。我见过一个教授,他的 Windows 笔记本电脑上除了 PowerPoint 什么都没有。有一天演示的时候,他指着堆乱字符说:“对不起,这是一个公式……怎么每次都是这样……” 其实有比 PowerPoint 好几百倍的东西可以制造幻灯片,你可以用最简单的方法制造世界一流效果的论文和幻灯片。你待会儿可以看看我的TeX网页,你就会知道为什么我可以完全离开 Windows。

Windows 能做的那些没用的事情 Linux 永远做不好

电脑游戏

有些人说 Linux 下不能玩 Windows 下所能得到的所有游戏。的确,Linux 下虽然也有少量的游戏,比如 Quake。但是它没有 Counter Strike, 没有 Star Craft, ……

并不是说电脑游戏不该玩,但是应该适可而止。电脑是用来处理事务,帮助你学习,解决问题的工具,而不是一个玩具!整天沉迷于电脑游戏中,而不出去感觉外面的世界,你会变得越来越冷酷,越来越缺乏人情味。你与真实的世界越来越远。

你可以在 CS 里杀人,你可以在 Tomb Raider 里探险,你甚至可以在 Tony Hawk's Pro Skaters 里滑板…… 但是 It's not real!你虽然有很高的“反恐技巧”,但是遇到歹徒的时候,你是那么的怯懦;你虽然控制 Laura 伸手敏捷,但是你打篮球的时候怎么总是被人断球?你虽然可以轻易的在 THPS 里作出一个 "360 kickflip to hangten grind to fakie",但是你踩在自己的滑板上的时候还不会 ollie!

说回来,如果你偶尔玩一下电脑游戏未尝不可。但是世界上有远比 Windows + PC 更好的游戏方式。Sony 的 PlayStation2, SEGA 的 DreamCast, Nintendo 的 N64,Namco 的街机……每一个都比 Windows 游戏精彩,每一个都有如此高的3D性能,以至于 Pentium4, Itanium + GForce4 都无法与它们比美!

Linux 的用户们都是关心解决世界的关键问题的份子,他们哪里有时间用自己的机器来玩游戏啊?他们每天用Linux 高效的做完自己的工作就到阳光下享受自然去了。要玩游戏也是玩一些类似推箱子,贪吃蛇之类的智力小游戏。所以,你知道为什么 Linux 几乎没有游戏了吧?

“整理硬盘,优化系统”

这是一个非常有意思的话题,仅次于有关“病毒”的话题。相信很多 Windows 用户都有整理硬盘的经历。在很多 Windows 用户眼里,“硬盘用久了,会出现碎片,速度会减慢,需要一个程序来整理,整理硬盘的时候不要做其它工作”,这好像是天经地义的事情。

我也曾经津津有味的看着 Norton Defrag 一点一点的把我的硬盘排序,调整,用图形的方式显示出来,然后报告:“100% 没有碎片。你的硬盘现在已经达到最佳状态。” 我现在才发觉我那时是多么的幼稚。

Linux 和 UNIX 用户似乎从来没有“整理硬盘”这种说法呢?你觉得很奇怪吗?如果你觉得很奇怪,那说明你的思想在某种程度上被微软的垃圾程序禁锢了。你需要明白,UNIX 的大型主机很多必须是一天24小时,一年365又1/4天不停运转的,要是每个星期都要整理一次硬盘,在整理的时候几乎不能干任何事情,那是绝对行不通的!

Linux 机器根本不用整理硬盘,这就是为什么没有看到过 Linux 用户整理硬盘。Linux 的文件系统是比 Windows 的 FAT, FAT32, NTFS 高明得多的文件系统,它们不但可以对文件设置权限,实施完全的保护,而且可以“越用越整齐”,“越用碎片越少”!你应该把文件大部分放在 Linux 的分区,而不是 Windows 分区,因为它比 Windows 分区可靠得多。

还有更滑稽的事情就是有很多“Norton System Doctor”,“Windows 优化大师”,“超级兔仔注册表魔法” 之类的程序存在,而且价格昂贵。似乎一个操作系统本来应该有很多问题,需要别的厂商做程序来“优化”它,而且为了得到优化,你需要付钱!这些问题 Linux 根本就没有,所以不需要什么优化。Linux 内核本身就是高度优化的。

IDE

有些人在抱怨为什么 Linux 没有一个良好的 IDE 开发环境。Linux 现在已经有一些 IDE 了,但是总是有很多问题。你是不是正在寻找,正在期望 Linux 某一天可以有一个VC那样的开发环境?你有没有发现你正在进入微软给你设下的怪圈?你为什么一定要用 IDE?你说:“IDE 开发迅速,调试方便,适合大型程序……” 那说明微软的程序在你脑子里已经比较根深蒂固,你需要好好清醒一下了,看看我来告诉你。

高明的 UNIX 程序员不用 IDE,IDE 从来就是给初级 Windows 程序员用的。

你看看大型的 UNIX 程序,包括 Linux 内核,各种网络服务程序,Xwindow 程序在内,哪一个是 IDE 搞出来的?我们实验室的 EDA 程序也没有一个是 IDE 弄的,我还知道 Candence, Synopsys,Mentor 的高性能的图形界面 EDA 程序也都不是 IDE 写的。你信不信,微软的人在写 Windows 本身的时候也根本不用 IDE。微软内部程序员最喜欢的编辑器其实是 VIM,用 VIM 的微软程序员上次向乌干达的可怜儿童捐助了1000多美元,这是值得称赞的。

有一次某杂志采访一些出名的 Linux 内核程序员,包括 Linus 在内,没有一个人用 IDE,有的人用 VIM,有的用 Emacs,只有 Linus 说“GNU Emacs is evil”,但是其实他用的是一种跟 Emacs 有同样键绑定功能的 MicroEmacs。大家都是用编辑器编辑了程序文件,然后用 make 这样的自动工具调用 gcc 编译器完成编译工作的。甚至高级的 Windows 程序员也不用 IDE,他们可以从命令行调用 cl,nmake 来编译自己的程序。虽然这样的 Windows 程序员很少,但是他们却是最了解 Windows,最高明的 Windows 程序员。

为什么 UNIX 程序员不用 IDE?明白了这个道理你就能体会到 UNIX 的设计思想了。首先,一个 IDE 集成了编辑器,编译器,汇编器,调试器,跟踪器…… 这个编辑器功能肯定比不上 VIM 或 Emacs,编译器比不上 GCC,汇编器比不上 as,调试器比不上 gdb, ddd, 跟踪器比不上 strace, ltrace, truss。你得到的是一套整合的低能的程序。如果你对调试器的功能不满意,你只好换用另外一套 IDE,但是这套 IDE 的热键,菜单,编辑器功能,按钮…… 跟原来那个有很大不同。你不得不花很多时间来熟悉新的环境,而不能保持原来的某些东西。

而在 UNIX 下就不一样了。你可以用你最喜欢的 VIM 编辑程序,你在 VIM 里可以调用 GNU make,make 可以调用 gcc, ld, ... make 的出错信息可以被 VIM 捕获,VIM 能帮你在源程序里定位。你如果喜欢 icc, 你可以让 make 用 icc 而不是 gcc。你如果觉得 gdb 跟踪变量时比较麻烦,你可以用 ddd 来显示各种数据结构之间的关系。你还可以在 Emacs 里调用 gdb,那样就可以同步显示源代码了。而且 VIM 和 Emacs 还可以编辑很多其它东西,比如信件,LaTeX 文档,HTML,配置文件…… 你不用另外找一个什么编辑器来干这些杂活了。很多程序比如 Mutt, tin 都可以在内部使用 VIM,这样就更方便了。实际上 make 在其它方面还能帮你很多忙,我的每一个比较大型的 LaTeX 文档都是用 make 维护的。

Linux 能干的高精尖的事情 Windows 都干不了

当然有很多事情是Linux/UNIX的专利了。因为 Windows 只能装在 PC 机上,好像以前也有 Alpha 可以使用 Windows NT,但是就是没见到有人用。PC 机的能力是很低的,像我们编程序处理 NP-Hard 问题的人,用 Windows 的机器显然速度不够,而且有时一个问题算上几天甚至几个星期,Windows 机器是以“死机”著称的,我们怎么能放心?

所以几乎所有科学计算程序,EDA 程序,高性能图像处理程序都不是 Windows 的。他们有时也会移植一些给 Windows,但是常常降低那些程序的能力。你比较过 Windows 版本的 Mathematica 和 Linux 的有什么区别吗?

IBM 制造的最大的并行计算机有 8000 多个处理器,Windows 不可能有能力管理这么多处理器,它用的是什么操作系统?答案是 Linux。

《泰坦尼克号》电影里的三维动画,那么细腻逼真,Windows机器能做出来吗?不行。那也是 Linux 机器做的。

民航总局用来训练地情人员的虚拟现实训练设备,Windows 当然无能为力。那都是商业的 IRIX 机器。

UNIX 是最早支持 TCP/IP 网络协议的系统。它上面有很多可以互相协作的网络服务程序,它们经过多年的使用和修订,已经达到比较完善的程度。而就在 1997年,微软的比尔盖茨还在扬言:“Internet 是没有前途的。” 微软的这个“远见卓识”大家应该都已见识,它后来加上的网络服务程序IIS 漏洞之多,让公安部都频频发出警报,大家也是见识了的。

其实你知道了,Windows 没有一样有用的事情能比 UNIX 干的更好。

Linux 干不了的有用的事情 Windows 照样干不了

当然 Linux 不是万能的。它也有不能干的事情,电脑也有干不了的事情。但是 Linux 干不了的事情,Windows 肯定也干不了。这些事情就是我们需要探索,需要努力的事情了。在你探索的过程中,Linux 必定是你的好伙伴。

不要把Linux和Xwindow掩盖起来!

不要把我们的用户当成傻瓜。

什么?你早就知道 Windows 是垃圾?噢!你怎么不早说呢!害我废话这么多。嘿嘿。

“好了。你知道 Windows 是垃圾,你现在用什么?”

“Linux + Xwindow”

“那我问你,Xwindow 是什么样的?”

“不就是跟 Windows 差不多吗?只不过 'Start' 按钮比较方,而且上面不是一个 Windows 标志,而是一个脚丫子。点击一下居然还有很漂亮的中文菜单。我喜欢!”

“你知道什么是‘根窗口’吗?”

“不知道。从来没听说过呢?”

“根窗口就是遮盖整个屏幕的那个最大的窗口。”

“哪儿有什么窗口啊!我没有看到呢?”

你发现了问题吗?这些 Linux 用户说是在用 Linux 和 Xwindow,但是他们对 Linux 和 Xwindow 几乎完全不了解。很多人用了那么久 Xwindow 都不知道根窗口是什么东西,不知道其实按钮也是窗口,不知道窗口管理器和其它程序有什么关系,大家都以为窗口上面的按钮是程序自己放上去的,不知道窗口的 “class name”,“resource name”是什么东西。他们也不知道 .Xdefaults 是用来干什么的。特别是他们很多人都不知道 Xwindow 的字体是如何命名的,什么是 fontset,有了一个新的字体也不知道怎么安装。

他们被遮在 Linux 之上的一层一层的包装迷惑了,他们等待有图形界面的工具来帮助完成一切事情,他们认为 Linux 跟 Windows 一样,只是麻烦一点。他们知道 Linux 内核很好,但是他们感觉不到 Linux 和 Xwindow 在操作层面的天生的先进性,随后不久就把 Linux 完全删除掉了。你发现没有,要用户理解 UNIX 和 Xwindow 的操作层面的先进性,才是留住用户的最好办法。如果用户体会不到操作时的方便和高效,内核再好他们也不会理会。

但是用摹仿 Windows 的作法来吸引用户,永远会失败的。因为 Linux 如果摹仿 Windows 那一套低效率的方式,那么 Linux 的这套“低效率方式”永远比不上 Windows 的那一套“低效率方式”。那么用户就会说:“这个 Linux,没有一样比的上 Windows。”

Linux 天生就是继承了 UNIX 的高效的工作方式,为什么我们要把它掩盖起来?我们为什么只告诉用户 KDE 的菜单怎么用?我们为什么不能像早期的 Xwindow 书籍那样第一节就告诉用户什么是 X server, 什么是 X client,什么是 Window Manager, 什么是根窗口。第二章就告诉用户窗口有哪些属性,什么是 classname, resource name, hint,怎样使用 .Xdefaults, xrdb ……

在这里我又不得不说一下那些 Linux 的发行公司和写书的人,他们把 Linux 和 Xwindow 包装起来,却没有从基本上告诉用户 Xwindow 的工作原理。很多书籍讲授的层次就是在 Gnome, KDE 的菜单操作的层次,靠大量抓图来占篇幅,“繁荣”Linux 书籍市场。

现在很多人已经把能够利用别人的库写出一个好看的程序作为自己编程水平的象征。在这个“图形化”,“可视化” 的年代,你如果还在用 troff, LaTeX 写文档,你还在用 VIM 自己编辑 HTML,用 Mutt 处理邮件,你还在用文本模式的 gdb 调试程序,你还在用 Xlib 写程序, 你还在用 tin 上 USENET,你还在自己写 Makefile,写机器代码,你还在玩 Clossal Cave 这样的字符模式冒险游戏,那你就是老古董。

其实这种思想是错误的。虽然你是一个坚决的 Linux 支持者,但是你的思想是 Windows 的思想。你认为图形界面,菜单,按钮就可以解决一切问题,就可以给你高效方便。你还是没能摆脱微软给你的潜移默化的东西。你其实离不开 Windows 那样的环境,你迟早会删掉自己的 Linux。

GUI vs. CLI

做一个坚定不移的“两面派”

大家看到这个标题是不是热血沸腾?两派大虾都可以围攻我了:

GUI派用户:“哇!我一看你这小子就是 CLI 的。要不然自己写什么 Makefile?用什么 Mutt?”

CLI派用户:“切~ 你还用 X!高手都不用 X。你是 GUI 那边的。”

可怜的我:“555~~ 你们都不要我~~ GUI 和 CLI 就那么水火不容吗?”

计算机界这样的门派之分还很多。很有特点的就是 CLI 和 GUI 了。CLI (Command LIne) 的狂热份子声称永远不用 X。我上次在实验室看到一个同学用一个 SecureCRT 登录到 Sun 机器,然后用一个 vanilla vi 编辑程序,我建议他启动一个 GVIM 过来显示在 Exceed 上可以有语法加亮。但是他坚决反对,说:“高手不用X。你想想,要是我在一个很慢的网络连接怎么用 X?而且好多服务器没有装 X 程序。”

但是我们实验室的网速可够快,Windows 机器都有 Exceed 啊,而且 Sun 机器有全套 X 客户程序包括 GVIM。他说他是 CLI 的坚决拥护者,但是他却在用 Windows,他后来打开了好几个 SecureCRT,每次从文本框输入地址,用户名和密码,从下拉菜单选择 "SSH2",然后点击“Connnect”。他还不断的夸SecureCRT是“网络管理员投票选出的最受欢迎的登录方式”。老天,SecureCRT 本身就是个 GUI 啊,他其实没有明白 Xwindow 的好处。

你说我是 GUI 的?我虽然很少在 console 下工作。但是我对 bash, VIM 很熟悉,我可以让 bash 按照我的键绑定方式来工作。我可以在 rxvt 里使用 Mutt 来收发 email。我的每个桌面上都常常堆放着一打不同大小的 rxvt。我用 VIM 编辑 LaTeX。我自己写 Makefile 来维护 LaTeX 文档。我有时用 mpg321 来放 mp3。我上BBS用的我自己写的 expect 脚本。 好了,CLI 派的朋友可以收我做盟友了

你说我是 CLI 的老古董?我的 FVWM 被我配置为可以“手写操作”,我只要画一个"r"就可以启动 rxvt,我只要画一个 "U" 就可以启动 GVIM,…… 我用 GVIM 语法加亮模式编辑程序,我用 Mozilla 浏览网页,…… GUI 派的现在好像认我做朋友了

好了。CLI 派的朋友,虽然我很喜欢命令行,但是我有时在屏幕上左右画一下就可以执行:

Module FvwmConsole -terminal rxvt -geometry 45x5-0+0

-bg gold -fg midnightblue

-fn "-adobe-courier-medium-r-*-*-14-*-*-*-*-*-*-*"

你是不是现在又想把我逐出师门?

GUI 派的朋友,虽然我很喜欢窗口。但是我可以在 FvwmConsole 里输入:

All (rxvt) MoveToDesk

把我所有的 rxvt 移动到我现在工作的桌面。“这家伙,怎么这么快就叛变了!”

其实何必分什么 GUI 和 CLI,UNIX 和 Xwindow 都是工业标准,它们从设计那天开始就有非常灵活的用法,各个程序,不管是 GUI 还是命令行的都可以互相协作。UNIX 和 X 是一家,何必搞的那么偏激,非此即彼?你从我上面的行为可以看出 GUI 和 CLI 的模糊界线吗?我就是坚定不移的“两面派”。

UNIX 是简单的

“我相信简单就是最好,如果太复杂,我是不能理解的。” —Seymour Cray

很多第一次用 Linux 的人会惊奇的发现,Linux 的程序居然不用“安装”就可以运行,程序拷贝到随便那个目录都可以用,而不是一定要占用你第一个分区的空间。程序的设置只是一些简简单单的文本文件。你根本不需要什么“注册表修改器” 就可以改变系统的设置。这就叫做简单,但是简单就是美。虽然这只是 UNIX 简单性的一个肤浅的认识,你已经体会到了某些东西。

但是简单并不意味着功能弱,并不意味着落后。相反,简单意味着强大,意味着生命力。

我不会再继续阐述我理解到的“UNIX 的简单”,因为这个需要自己去体会。

UNIX 是永恒的

有人说:“Plan9 会取代 UNIX,Mach 会取代 Linux 内核。”

但是你如果是一个深入体会了 UNIX 的人,你就会知道:UNIX 的思想是永恒的,不管时过境迁,Plan9 是否代替 UNIX,UNIX 的灵魂都会在 Plan9 身上现形!

我为同一个设备写过 Linux 内核和 Windows VxD 驱动程序。写 Linux 驱动程序时,我对 UNIX 设计的完美的一致性,远见性所折服。UNIX 用同样界面的 read(), write() 系统调用就可以对不同的对象:普通文件,设备文件,管道,管道文件,socket,…… 进行统一的读写操作。我跟本不需要写一个测试用的应用程序就可以对我的设备驱动进行测试,因为 cat, cp, dd, 它们也使用了同样的 read (), write(),设备和普通文件在应用程序眼里没有区别。在那个还没有 Smalltalk, 没有 C++ 的年代,UNIX 的设计者已经使用了所谓的 “面向对象方法”。对,C 语言也可以实现面向对象。

UNIX 的系统调用几十年都没有很大变化,这非但不是顽固,不进步的象征,反而是 UNIX 的远见卓识的体现!这就跟 TeX 程序几十年都不变的情况差不多。这些才是真正的永恒的 master piece! 你应该改变所有软件都必需从 0.1, 1.0, 1.1, 1.2, 2.0, ..., 3.0, 3.1, 95, 98, 2000, XP, ... 不断升级的想法。

Windows 就不同了,它在最开头只是一个 DOS 之上的图形包装而已。后来为了兼容以前的糟糕设计,不得不加上很多累赘。我写 VxD 驱动程序的时候就深有体会,Windows 95 程序对设备的操作只有用 DeviceIoControl,我不得不写了两个应用程序来对设备驱动进行测试。Windows 内核的不一致性和隐密性使我非常恼火。不过 Windows WDM 驱动程序现在也有了 ReadFile, WriteFile,…… 那说明什么?那说明 Windows 在向 UNIX 学习,或者有可能是某个 UNIX 设计人员在微软打了几天临工,顺手加了几个 UNIX 的东西进去。这样做是没有用的,Windows 从一开始就是非常糟糕的设计,它的历史的包袱太沉重了,缝缝补补有什么用?它只能永远的被 UNIX 甩在身后!

UNIX 是强大的

让聪明人干任何他们想干的事情。

UNIX 的一个特点就是非常高的灵活性,Xwindow 也具有这种灵活性。这种灵活性体现在哪里呢?

UNIX 的程序一般都有很多参数,不管你现在用的着用不着,总有人需要某些参数。它们的行为很多都可以用配置文件来改变。比如 GNU bash, 通常缺省的命令行输入方式是 Emacs 方式,但是只要我编辑一个 .inputrc 文件,就可以把它变成 vi 的输入方式,而且我还可以自己绑定键序列到某些操作。我可以用 shopt 来设置它的很多特点,比如是否进行通配符扩展,是否可以把一个变量当作一个目录来cd,是否可以自动纠正某些明显的目录名打字错误 ……

UNIX 程序设计的思想是提供给用户“机制”,而不限制用户制定“政策”。这是一个重要的尊重用户的作法。

我们再来看看 Xwindow。Xwindow 是一个出色的设计,它把显示服务器和客户程序分开。一个显示上既可以显示本机上的程序,也可以显示别的机器上的 X 程序,而它们都遵守你的窗口管理器的统一指挥,它们之间可以方便的传送剪贴版数据,各种事件 …… 比如有时我的 XFree86 上会出现四个不同机器上的 XTerm,两个不同机器上的 GVIM,…… 它们统一受本机上的 FVWM 指挥。

Xwindow 程序都具有很多很多命令行参数和 resource 参数。你可以随意的在命令行或者 .Xdefaults 文件设置所有的颜色,字体,尺寸…… 而且如果你用 xrdb 把 .Xdefaults 导入到根窗口,那么其它机器上没有经过配置的同样的程序,显示到你的机器上的时候也会遵守同样的外观规定。

Xwindow 的窗口具有 Property, 也就是一些可以自己定义的共享数据(原子)。正是因为这些 Property 的存在,使得 Xwindow 具有无比强大的生命力。X 的窗口管理器和其它客户程序之间并没有统一的协议,但是后来出现了 ICCCM(客户程序间通信规范),这个规范就是通过 property 定义的。现在又有人定义了一套“扩展的窗口协议(EWM Hints)”,使得 Xwindow 可以具有某些 Windows 的特征,比如一个工具条程序可以告诉窗口管理器:“这个屏幕下面被我占据了24个像素的空间,你最大化程序的时候不要越过这个界线。”

一个强大的窗口管理程序比如 FVWM,它收到这样的提示时,可以答应工具条程序的这个要求,也可以不答应。一切选择的权力在于谁?当然是用户了!一切窗口乖乖听话,FVWM 给予用户最大的尊重。

你想想,是不是有些 Windows 程序常常弹出一个窗口要你选择 "Yes or No"?你不点击它它就不下去。你觉不觉得你的程序在侵犯你的尊严?你是一个人,一个智慧的生物,怎能受到一个程序如此的待遇?

还有就是很多 Windows 程序把人当成傻瓜,而它是“智能程序”。比如,有一个程序就是喜欢把你的每句话第一个字母都变成大写,我不说它是谁了,你遇到的时候就知道了。如果连“一句话开头一个字母要大写”这么明显的问题都需要程序帮你纠正的话,人脑还用来干什么?况且如果你故意想要不大写的话,那就更麻烦了,我楞是没有从它那一大堆菜单里找到怎么关闭这个愚蠢的选项。

只有符号才能完全操纵计算机。

我们来说说很多初学 Linux 的用户。虽然他们在用 Linux,但是他们打心眼儿里是觉得 Windows 的工作方式好,他们希望 Linux 有一天能“像 Windows那样”。你说:“我鼠标一点,我菜单一拉,…… 就可以完成我的操作。” 但是我要告诉你:“Linux 从来没有摹仿 Windows,将来也不会。Linux 从诞生之日起,它的工作方式就比 Windows 的先进。Linux 属于能勇敢面对符号的人。只有符号才能完全操纵计算机。”

看看优秀的 UNIX 程序,XFree86, FVWM, VIM, Emacs, proftpd, Mutt, wget, tin, ... 没有一个不是用配置文件来设置选项的。为什么这些程序没有方便的菜单可以用来配置?难道它们的设计者就那么低能,连个图形配置界面也写不出来?

当然不是。因为图形界面配置方式的能力是极其有限的,而配置文件和程序语言的表达能力却是无限的。用图形界面配置这些程序的话,如果你想达到配置文件的效果,你需要成百上千的菜单,checkbox, radio button, ... 到时候你根本没办法找到你需要修改的地方了!而各个程序的配置文件的语法都有很多相似之处,一般就是一些命令,设置一些变量,参数,…… 一旦用会了一个,其它的也就容易理解了。如果你用惯了 awk, sed, Perl,你会觉得那才是真正的自动化啊。

鼠标虽然是很好的工具,但是它的表达能力是有限的。你不可能光用鼠标就让电脑完全明白你的意思,它毕竟只有3个按钮。看看我的MetaPost页你就能体会到鼠标的这一弱点。所以我们虽然很喜欢鼠标,但是却不能完全依赖它。

各个小程序的完美配合

这就是UNIX最重要的特点了,它就是UNIX设计的思想。让每个程序只具有一项专门的能力,然后让它们合作。Xwindow也继承了这种好传统。

这恐怕就是Windows和其它操作系统望尘末及的地方了。UNIX 程序设计之统一,配合之完美,真使我难以置信!shell, grep, find, awk, sed, make, Perl, Emacs, vi, tin, Mutt, ... 它们是那么的具有一致性!你一旦学会了 sed 的正则表达式,其它程序基本上都能用了。你一旦学会了 vi 和 VIM, 你会发现它的操作是那么的有规律性,似乎vi的设计者在几十年前就已经设计好了 VIM 在今天的完美而统一的操作方式!而且vi的操作还体现在 Mutt, tin 等很多程序中。你甚至可以把 bash 设置为 vi 的输入方式来输入命令行,我就是这么做的。一个程序可以调用另外一个程序来得到数据,可以把数据交给它处理后返回来,可以在自己的窗口里“嵌入”另外一个程序。

在 Windows 和其它非 UNIX 操作系统中,这种合作是非常困难的。我曾经在 Windows 下使用 Perl来进行一些自动工作。但是 Windows 的文件操作,管道是如此的不稳定,程序之间基本不能合作。你别想在 Visual Studio 窗口里面嵌入 UltraEdit 编辑器,你别想用一个 expect 脚本来控制 telnet 到水木清华BBS。

Windows 的程序都是大而全,大而杂,所有的电子邮件程序都需要自己提供编辑器,自己发送和收取邮件,自己显示邮件的附件。每一个BBS程序都提供自己的 Virtual Terminal, 自己的通讯代码。每一个 IDE 都自己提供编辑器,编译器,汇编器,调试器。人们为了使用一种新的程序,需要适应所有这些它提供的界面,而不能使用自己喜欢的编辑器的键绑定,菜单组织…… 不能 DIY!

你要知道,最高级的电脑是定做的,自己想要什么什么CPU,什么主板,多少内存,什么硬盘,键盘,鼠标,显示器都是自己选择的。最高级的滑板,自己想要什么牌子的版面,什么牌子的沙,什么桥,什么轮子,什么轴承,也都是自己选的。最高级的乒乓球拍,木板,胶皮,海绵,胶水都是可以自己选择…… 而用 Windows 程序,你得到的是大杂烩,就像你去买“品牌机”,只有那么几种配置,而且附带很多你不需要的软件和服务;就像你去买组装好的滑板,你想要大一点的轮子和窄一点的板子,但是你没有这种选择余地!Windows 程序就相当于最廉价,最次的滑板。但是它却会花你更多的钱,因为一旦一个部件坏了,或者你不喜欢了,你不能另外找一个好的换掉它,你必需重新买全套配件!

而 UNIX 和 Xwindow 就是高档的“组装货”。比如我用 Mutt 的时候,我可以用 VIM 也可以用 pico 来编辑邮件,我可以用 ImageMagick 也可以用 xv 来显示附件里的图片,我可以用 lynx 把 HTML 附件转成文本嵌入窗口中,我也可以把 HTML 附件交给 Mozilla 图形显示。我可以让 GnuPG 帮我把邮件进行数字签名和加密,我也可以用其它 PGP 程序。我想让 Postfix 而不是 sendmail 帮我发出邮件,我想让 fetchmail 帮我收邮件,转发给 postfix,然后被我自己写的Perl过滤器处理…… 这一切我都可以办到!我可以选择我最喜欢的专门的程序来完成专门的工作,然后把它们结合在一起,我也可以分别得到它们的好处。

学 UNIX 绝对不是浪费时间

有人告诉我:“你看我用 Windows 什么都不用学。而用 Linux,光是安装就花了我一个星期!”

首先,我要告诉你的是,你装 Linux 花了一个星期,不是因为 Linux 不好装,而是因为你已经习惯了 Windows,对 Linux 最初难以理解而已。你想一想你最初安装 Windows 的时候呢?你花了多少时间搞明白什么是硬盘分区?什么是盘符?什么是目录?你认为 Windows 就是那么容易可以学会的吗?虽然你觉得没花时间学,但是你以前在用别人的机器的时候已经耳濡目染,自然就了解了。而且由于你想要 Linux 和 Windows 并存于硬盘上,又增加了安装难度。而且你肯定没有得到有经验的 Linux 用户的帮助,否则他们会在 20 分种之内帮你搞定。一个星期也太夸张了

如果一开始用的就是Linux就没有这个问题。你想想如果你没有用过 windows,你肯定会很习惯 /etc, /usr, /usr/local ,... 而不是 C:, D:, E:, ... 是不是?如果你只用过 Linux,你第一次用 windows 时恐怕也会问:“/bin 目录哪里去了啊?”

最重要的是,你用惯了的UNIX工具,它们可以伴随你一生,而不会那么容易变化或消失。你可以永远不用再换另外的工具了。除非那个工具比你这个好的太多,而且可以完全模拟你现在的工具。

我们实验室一个60多岁的老师,用vi, cc, make, ...都几十年了,他以前的经验绝对没有白费,而且教会了我们一批又一批的学生。vi 伴随着 UNIX 的最初发行而诞生,直到今天还是世界上头两号编辑器之一!有些人的 FVWM 配置文件已经用了 10 多年,现在完全不经修改还可以用。

看看 Windows 的工具,你从 Borland C++ 换到 VC, 就必需适应新的环境:菜单不同了,颜色不同了,按钮不同了,帮助信息不同了,热键不同了,编译器参数,调试器功能也不同了,…… 那个时候恐怕花要花你很多时间去适应。当你刚刚适应了 VC, 你又要换成 VJ, PowerBuilder, C++Builder, ...

很多windows程序员都是这样,开头在dos下用 Turbo C, 然后是 Borland C, VC, C++ Builder, ......不断追赶微软的潮流。而且微软的SDK, MFC, .NET …… 什么都在不断变化,不断出问题,又不断的在修改…… Windows 程序员不得不买又厚又重的 Microsoft Press 的书籍,看了才一个月,又过时了。今天你才学会了写 VxD,明天你就必须用 WDM 了。你不得不注册 MSDN 才能赶上 Microsoft 的步伐。很多人说:“计算机是贵族的专业。” 这就是微软一手造成的。

这些东西才是没完没了的浪费大家的时间和金钱的。这是是浪费生命!我们为什么不使用从诞生就那么一致和完美的 UNIX?你需要理解先进工具的设计理念。UNIX 的工具就像我们用的汽车,它的离合器,油门,刹车,方向盘,后视镜,永远都在同样的位置。用惯了的话,你对你的汽车的每一个部件都会了如指掌,甚至你自己都可以修车了。这难道不好吗?

有人说:“你说我们需要了解 UNIX,难道你要开车还必须了解汽车的结构吗?” 你去问问开车的司机,哪一个不了解汽车的结构的,那他的驾照就是混来的。你难道想要傻瓜型的“微软牌汽车”吗?我们来看看:

你买的微软牌汽车最开头只有一个座位,每加一个座位你得向汽车公司付钱。车上的防撞气囊不时会冒出来,说是为了你的安全。每开100英里要大修一次,每过一年要换一次引擎。附带的,你还必须换用由微软汽车公司指定的石油公司提供的新型号的机油。你的车出了问题,但是法律规定,你不准私自拆开你的汽车来修理,你必需到微软汽车公司指定的维修点去,需要付相当多的钱才能修好一个小毛病。

最可气的是,你每换一个型号的微软牌汽车,它的刹车和离合器都在不同的位置,你需要重新去考驾驶执照。如果这辆汽车在途中刹车失灵,你受了重伤,你也不能状告微软汽车公司,因为你买来汽车之后必须签一个合同,说 “由于微软牌汽车对你和家人造成的一切死伤,微软概不负责。”

怎样完全用 GNU/Linux 工作

说了这么多 Windows 的不好。我还没有告诉你我怎么用 Linux 处理有些必要的事情。

半年以前我由于中文老是配置不好,一直是双系统,不时需要重起到 Win2k 来处理汉字。后来我找到了 miniChinput, XSIM 和 SCIM 输入法。这下可以处理汉字了。而且 VIM 和 Emacs 对汉字支持越来越好。我的大部分文本是用 VIM 编辑的,包括程序,信件,网页,LaTeX 论文,MetaPost 绘图语言。

我不用 Word 这样的程序写论文,而是用 LaTeX,因为这是世界上效果最好,最方便的论文工具,是大多数学术杂志要求的格式。幻灯都是用 ConTeXt 做的,用起来很简单,而且效果非常漂亮。你可以看看我的TeX介绍。

至于绘图,你可以用很多可视化的工具,比如 xfig,dia。但是对于我来说,任何可视化的工具都不能完成某些任务,我需要一种可以精确描述图形的语言。我找到了MetaPost。它简单又好用,而且效果是世界一流的。我的插图,如果不是图像,都是 MetaPost 画出来的。

我曾经抱怨 mozilla-mail 经常突然消失,损坏我好几封快要完成的信件。后来我发现 mozilla 的邮件处理程序确实是不稳定的,功能又弱,有经验的 UNIX 用户都不用这样的程序。Mutt 是一个非常稳定可靠的 UNIX 邮件处理程序,而且功能非常强大。

我曾经为 Gnome 和 KDE 的不稳定而烦恼。现在我找到了非常强大的 FVWM。KDE,Gnome 也能和 FVWM 一起工作。虽然 Gnome 和 KDE 总体不稳定,但是某些部件程序还不错,很多 gtk, Qt 的程序也很不错,它们很多都是可以独立于这些桌面环境运行的。

Linux 有很多强大方便的工作方式是 Windows 没有的,或者有类似的东西,但是很差劲或者用起来不方便。比如 ssh 服务,rsync,cvs,expect ……

结论

我写这么多的目的是什么?我希望喜欢 Linux 的朋友,完全清除微软和 Windows 灌输在你脑子里的谬论,别再相信它们所谓的“新技术”,别再追赶 Windows,因为追赶 Windows =倒退。马克思有一个思想很重要,“新生事物并不一定是在最近出现的。” UNIX,Xwindow, TeX 虽然都比 Windows 先出现,但是它们才是先进生产力的代表。我们要清楚的认识到什么才是真正的现代化,什么才是真正的自动化。

消除学计算机很难的幻觉,勇敢的拿起像 bash, FVWM, TeX, VIM, Emacs, Mutt …… 这样强大的程序,勇敢的面对符号。不要再埋怨“Linux 为什么不能像 Windows 那样”,不要再浪费时间试用这样那样的程序,不要再忙着升级。你需要理解 UNIX 的工作方式,因为那是大多数科学家的工作方式。Linux 可以成为你的好朋友,你需要认识它,了解它,信任它,才能完全的靠它来高效的工作。当然,在游戏机,手机,掌上电脑里,或者在用电脑来娱乐的时候,用一些 “傻瓜软件”还是不错的

我希望小学,中学的计算机老师能够提高自己的素质,在孩子们的启蒙教育中充分利用 Linux 神秘的特点,引起孩子们对数学,对符号的好奇心。诱导他们用计算机来解决世界上的有趣问题,而不要把教学的范围局限于计算机的操作和它自身的问题。

附录: 我用来处理日常事务的 Linux 程序

好了好了。我知道你发现自己应该转向 Linux,你很后悔当初为什么中了微软的邪。但是不要着急。因为这些东西本来只是工具,它们是用来完成你的主要任务的辅助而已。你以前选错了工具,这不要紧。你还是拥有你自己原来的专业技能,那才是最重要的。工具的东西只有慢慢适应转换,不能一蹴而就,否则你会感到非常没意思,甚至放弃。

如果你只想做一个像我这样的普通用户,主要目的是用 Linux 来完成自己的任务,那就可以不用系统管理员或者网络管理员的标准来要求自己,因为当一个系统和网络管理员确实很辛苦。这里我对实验室的网管同学鞠一躬,谢谢你的指点和帮助 不用把你的机器当成网络服务器,不用开放没有必要的服务,设置好 ssh, ftp 已经足够了。这样会省去了解很多没必要了解的东西的时间。不用过度考虑“安全”,因为 Linux 缺省已经很安全了。不过你有兴趣了解更多那也无妨。

下面给出一些推荐使用的可以处理一般事情的程序。至于你的专业上要用到的科学和工程软件比如 Matlab, Mathematica, Maple, HSpice, Design Compiler, …… 还有其它物理上的,化学上的,生物上的 …… 都必然有 Linux 和 UNIX 的版本。当然他们很多不是免费的,不要总是觉得什么都应该免费,自由不等于免费。它们是经过很多人辛勤劳动的产物,是可靠的程序,它们物有所值。

下面列出我常用的一些 Linux 程序。一个列表里可能有很多,那是为了方便你来选择,我列出了比较信得过的。但其实很多只有第一个是我真正在用的,我不喜欢试用程序。我不是一个合格的网络管理员,我的服务器都只设置了我自己需要的功能,那样可以省去我很多麻烦

Shell: bash。它结合了 csh 和 ksh 的优点,并且有 readline 功能,你可以随意绑定自己的键盘。

编辑器: VIM, Emacs。

程序开发: GCC, make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ...

论文,幻灯工具:LaTeX, ConTeXt

绘图工具:MetaPost。这个语言太强了,以至于我只用它了。你不熟悉的话可以用 xfig, dia 来画一些流程图之类的图片。

图像处理:ImageMagick。其中的 import 程序可以屏幕抓图,convert 程序可以转换图像格式,display 可以显示图片和简单编辑(缩放,换质量,转格式,简单绘图,简单虑镜)。通常我就这么点需要。如果你要更强大的图像工具可以用 Gimp, 它几乎和 Photoshop 差不多。

自动管理工具:make。我可以用make来自动编译程序,自动编译文档,自动更新插图…… 全自动,而且不会重复劳动。

数值计算程序:SciLab。这个程序基本上可以代替 Matlab。

代数计算程序:MAXIMA。这个程序基于世界上最老的计算机代数系统之一: 由美国能源部(DOE)发行的 MIT Macsyma 系统。它是用 Common Lisp 实现的。很多现在的符号计算程序比如 Maple 都从 MAXIMA 身上学到很多东西。它现在经过 DOE 批准以GPL 发行,永远是一个自由软件。

加密程序:GnuPG。我的 PGP 密钥就是它搞出来的。

打包,压缩程序。什么都有: tar, gzip, bzip2, zip, rar, ...

虚拟光驱程序。Linux 不需要虚拟光驱程序,直接 mount 就行了。

ftp 服务器:proftpd, vsftpd。proftpd 功能很强,但是我只用了最简单的一种设置。

WWW 服务器:apache。(我一般没有开)

ftp 客户程序:lftp,ncftp。它们都是文本方式操作的,但是比起图形界面的方便的多。比如 lftp 几乎具有 bash 的所有方便功能,Tab 补全,bookmark, queue, 后台下载,镜像…… Linux 也有图形界面的 ftp 客户程序,但是大多不稳定,有很多问题。这就是很多人抱怨 Linux 不如 Windows 的一个小原因。还有很多人用 Wine 模拟 Windows 的 leapftp,其实 lftp 比 leapftp 好很多,你需要的只是适应一下。

自动下载工具:wget。它非常稳定,有一次我下载一个程序,用 IE 和 Mozilla 下载回来的文件都是坏的,最后还是 wget 可靠的传输了数据。用它甚至可以镜像整个网站,比起 WebZip 这样的 Windows 程序强多了,而且不会因为你不付钱就在下载回来的网页里强制插入广告。

虚拟终端:rxvt, xterm, gnome-terminal, mlterm, ...

X server: XFree86

窗口管理器:FVWM。编译加入了 libstroke。

中文输入:XSIM。被我修改过以适应 FVWM 的需要。另外推荐你还可以用 SCIM。

email 处理:Mutt + Postfix + fetchmail

看 PDF, PS, DJVU 文件:Acrobat Reader, xpdf, GhostScript, gv, djvu工具包和 netscape 插件。

看CAJ文档。我从来不看CAJ之类的文档,如果找不到PDF或PS,直接去图书馆借最好。

看网页:Mozilla, Phoenix, lynx。Mozilla-Xft 的显示效果比 IE 好很多。

英汉字典:IBM智能词典,星际译王。

编辑网页:我用 VIM 直接写 HTML。你如果想要图形方式的可以用其它的比如 screem, BlueFish。

登录其它 UNIX, Linux 机器:openSSH, telnet。 我喜欢用 openSSH 把其它机器的 X 程序通过 ssh 加密的隧道传到我机器上显示。

登录 Windows2000 server 的 display service: rdesktop,...我有一天试了一下,不错。后来就没有用过了。

同步程序:rsync。我用 rsync 通过 ssh 来跟某些机器同步数据,或者做自己机器上不同目录间的同步。

上BBS:rxvt(或任何一种终端) + telnet + chatbot(helloooo 机器人的程序)

QQ, ICQ: 我没有 QQ 或 ICQ。不过你可以用 G

linux常用的文件重定向命令(转帖)

 默认  常用的文件重定向命令(转自:http://www.gd-linux.org/bbs/showthread.php?t=324)

command > filename      把标准输出重定向到一个新文件中

command >> filename      把标准输出重定向到一个文件中(追加)

command 1 > fielname      把标准输出重定向到一个文件中

command > filename 2>&1    把标准输出和标准错误一起重定向到一个文件中

command 2 > filename     把标准错误重定向到一个文件中

command 2 >> filename     把标准输出重定向到一个文件中(追加)

command >> filename 2>&1   把标准输出和标准错误一起重定向到一个文件中(追加)

command < filename >filename2   把command命令以filename文件作为标准输入,以filename2文件作为标准输出

command < filename    把command命令以filename文件作为标准输入

command << delimiter   把从标准输入中读入,直至遇到delimiter分界符

command <&m    把文件描述符m作为标准输入

command >&m    把标准输出重定向到文件描述符m中

command <&-    把关闭标准输入

关于man命令的转帖2篇

在Linux下自我学习获得各类需要的知识(http://www.linuxdiyf.com/viewarticle.php?id=4056)

作者: 恒善喜   发布日期: 2005-12-04    查看数: 324    出自: http://www.linuxdiyf.com

 

转贴:

安装好了Unix/Linux类操作系统,却不知道拿它做点什么、也不知道它能做些什么……这是大多数初这朋友的疑惑。

我认为首先要做的是学会如何在Unix/Linux下获得知识,掌握学习方法。如何真有一天你要用Linux来做点什么时觉得孤立无助,你一定要学会用man命令。

man是什么?

首先在命令行输入man man回车看一下吧。把NAME和DESCRIPTION那两段英文看完了你就明白了。man是显示Unix/Linux的在线手册的命令。

典型情况下,man是用来查看一些命令、函数或文件的帮助手册的,另外它还可以显示一些gzip压缩格式的文件。

Unix/Linux的在线手册是什么?

一般情况下Linux下所有资源都会随操作系统一起发行,包括内核源代码。而在线手册是操作系统所有资源的一本很好的使用手册。你有不懂的命令时可以man一下这个命令,写程序时有不会用的函数时可以man一下该函数,甚至你不懂某个文件时都可以man一下这个文件(当然,这个文件一般来说是系统用到的一个配置文件或某个系统服务用到的配置文件)。

man手册资源的位置

一般情况下man的资源主要位于/usr/share/man目录下面。但如果你仔细看了man man的结果,并且对man.config也感兴趣并且man man.config过后,你就会明白其位置是由MANPATH变量决定的,你可以more /etc/man.config来看有哪些地方有man内容的位置。

单个man资源内容的组成

一般来说,man内容会分为NAME、SYNOPSIS、DESCRIPTION、OPTIONS、SEE ALSO、BUGS等部分。NAME是该内容的一个简单说明(一般是一句话给个定义似的);SYNOPSIS是大致说明,对于命令来说是命令的语法,对于函数来说是函数的定义;DESCRIPTION是该内容的一个简明介绍,让你对你查的内容大致有个印象;OPTIONS是在查询命令时的命令参数的详细解释;SEE ALSO是给你一些提示,相当于介绍你一些参考内容;BUGS是指明该命令或函数存在什么BUG,提醒你防止出现。

man资源的组成

有很多朋友说man资源分为8章,我觉得这只是说了主要部分,你ls /usr/share/man看一下就知道了,有man1、man2……man7、man8这样8个目录存在呢,但除了这之外还有其它的目录啊,何况还有其它的MANPATH规定的目录呢。所以具体多少章不是固定的,但Linux下大致相同内容的会归在同一个目录下,比如man1和man2目录所在的大致是一些系统命令,而man3是编程时的一些函数的用法,man5是些配置文件手册所在的目录……同样在/usr/X11R*/man目录下也有一些目录。具体是按什么来分目录的呢?各人具体根据各目录的内容理解不同了。

man资源的使用技巧

1、如果你在MANPATH变量所设定的目录(比如/usr/share/man/man1目录)里看到一个ln.1.gz的文件,那么你就可以man ln来查看fileame到底是个什么命令了。

2、man的一般用法是man SECTION name,即在指定的章节(SECTION)里查看name命令或函数的用法。但如果你不知道某个命令或函数在哪一章,你可以man -a name这样在所有MANPATH设定的地方查看name的手册。默认情况下man是显示完第一个手册页后就会退出,如果有-a参数就会搜索所有的资源了。

3、如果你觉得在Linux下看太困难或者你英文不太好想要借助“XX词霸”或“XX快译”来帮忙,那么你可以先把man手册存成文本文件然后ftp或samba共享到windows下打开来看吧。使用这么个命令就行了:

man man | col -bfp > man.txt

把man手册生成了一个man.txt文件了,借助翻译工具来看吧

4、编写自己的man资源,如果你自己写了一个非常好的函数或命令加到系统了,比如你写了一个MyDate命令来显示你需要的格式日期,那你也可以为你的MyDate命令来写个手册。很简单,你编辑(用vi或其它任何文本编辑工具都可以)一个MyDate文件,里面是你的命令使用方法说明,然后用gzip MyDate命令把这手册压缩一下生成一个MyDate.gz,然后把这个文件copy到某个MANPATH指定的目录,比如cp MyDate.gz /usr/share/man/man2,以后你就可以man MyDate来查看你的命令使用方法了。

5、安装好一个Linux操作系统后能做什么呢?你要学系统管理?就把/usr/share/man1和/usr/share/man2目录里的所有命令都man一下吧,都掌握了你绝对是系统管理专家了!想要学C编程?man一下gcc、g++、gdb等命令。或者你ls一下各个bin目录,比如/usr/bin、/bin、/sbin等,然后依次man一下你所看到的吧。

学习Linux最大的资源在你电脑上,如果你没安装,在你的光盘上一定有。想要学内核吗?赶快去看看/usr/src/linux*目录下面的所有东西吧。

 

如果你有任何疑问,讨论问题等请点击这到红联论坛中来! 网址:http://www.linux110.com/bbs

 

【论坛浏览】  【我来说两句】  【打印】  字体 【大】 【中】 【小】 

××××××××××××××××××××××××××××××××××××××××××××××

(转自:http://www.linuxforum.net/books/smth/Unix.AIX/00000006/00000014.htm)

BBS水木清华站∶精华区

发信人: NightOwl (Owlet), 信区: Unix       

标  题:  Man Pages的一些秘密 (转载)

发信站: BBS 水木清华站 (Tue Apr 18 02:44:43 2000)

 

【 以下文字转载自 Linux 讨论区 】

【 原文由 NightOwl 所发表 】

发信人: NightOwl (Demon&Daemon), 信区: Linux

标  题:  Man Pages的一些秘密

发信站: 紫 丁 香 (Mon Apr 17 13:52:30 2000), 转信

 

                            Man Pages的一些秘密

                                   --version1.0

                            ===================

                                       NightOwl

                                      2000.4.16

                            NightOwl2000@263.net

                            ===================

       这个题目也不知道过不过时。最近刚好看到又一本书上提了一下Unix下Man的格

     式和用法,然后根据"man man"的结果和平时在BBS上看到的大虾高招,就自己总结

     了一下。希望能对那些和我以前一样对Man Pages不大明白的朋友有些启发。;-)

 

       Unix/Linux里最好的说明和帮助文档我认为就是那些在线帮助Manual Pages了,

     很多时候,碰到不大明白的命令或者是一些函数的用法的时候,我就会开个man来看

     看究竟。不过以前没有细究Man Pages里的名堂,现在才算是略知一二.下面就把我所

     知的写下来,请各位补充未完尽或错误之处。(如有建议和意见,烦用EMail告知我一

     声,谢谢!)

 

        1。Unix/Linux下Man Pages的节(section)的含义说明:

 

        Header       : 标题;

        NAME         : 对你所Man的命令/函数的功能概述;

        SYNOPSIS     : 对你所Man的命令/函数用法的简单描述;

        AVAILABILITY : 可用性说明;

        DESCRIPTION  : 对你所Man的命令/函数的详细描述;

        OPTIONS      : 该命令的所有可选项的详细说明;

        RETURN VALUE : 如果是函数,则列出函数返回值;

        ERRORS       : 如果函数调用出错.则列出所有出错的值和可能引起错误的

                       原因;

        FILES        : 该命令/函数所用到的相关系统文件;

        ENVIRONMENT  : 和该命令/函数相关的环境变量;

        NOTES        : 表示不常用的用法或者是实现的细节;

        BUGS         : 已知的错误和警告(可能附有解决办法);

        HISTORY      : 该命令/函数的历史发展;

        SEE ALSO     : 可以参照的其他的相关命令/函数

        Others....   : 和一些具体命名/函数有关的特殊节

                       比如在"man"自身的Man Pages里就有一个"CAT PAGES"节用来

 

                       描述如何保存Man Pages当前的格式.

 

    举例如下:(请在你的系统中试验以获得感性了解;-)

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    $man apropos

    apropos(1)                                             apropos(1)

    NAME

       apropos - search the whatis database for strings

    SYNOPSIS

       apropos keyword ...

    DESCRIPTION

       apropos  searches a set of database files containing short

       descriptions of system commands for keywords and  displays

       the result on the standard output.

    SEE ALSO

       whatis(1), man(1).

                           Jan 15, 1991

     废话:上面大写的词就是那些"节(section)"了.

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

    2.Unix/Linux下的Man Pages的分类:

 

     你想要通过man来得到在线帮助的主题可能会在Unix/Linux里扮演很多角色。比如

    "write"既是一个命令同时它又是一个系统调用。那么怎么样才能得到你想要得到的�

    个角色的帮助呢?原来,在Unix/Linux里,Man Pages已经按功能分好了8个类别了,

    如下表所示:

 

        ------------------------------

       | 类:   |           内容:    |

        ------------------------------

       | 1 :    | 用户命令            |

       | 2 :   | 系统调用            |

       | 3 :   | C库函数             |

       | 4 :    | 设备与网络的接口    |

       | 5 :    | 文件格式            |

       | 6 :    | 游戏和演示          |

       | 7 :    | 环境、表、Troff宏   |

       | 8 :    | 系统维护            |

        ------------------------------

     <注:本表摘自本文末所注明的参考资料一>

 

       在Unix/Linux里,可以用"man n command/fuction"来得到相关的功能说明;这

   里"n"表示你所得到的功能的类号,比如,你想得到"write"作为命令时的man page,

   就用"man 1 write"这个格式,如果你想得到的是"write"作为系统调用的man page时�

   就要用"man 2 write"了。

 

        将结果对比如下:

         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

         WRITE(1)     Linux Programmer's Manual   WRITE(1)

         NAME                                           ↑

         write - send a message to another user ← 看看这里

         SYNOPSIS

         write user [ttyname]

        ++++++++++++++++++++++++++++++++++++++++++++++++++

         WRITE(2)     Linux Programmer's Manual   WRITE(2)

         NAME                                           ↑

         write - write to a file descriptor   ← 再看看这里

         SYNOPSIS

         #include <unistd.h>

         ssize_t write(int fd, const void *buf, size_t count);

         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

     3. 和Man有关的部分常用环境变量

 

        (与Man有关的环境变量可以在/etc/man.confl里设置,也可以通过命令行参数来

     设置.)

 

     MANPATH   : 如果设置了该变量,则表示man根据MANPATH指定的路径来搜索

                 man pages;

     MANSECT   : 如果设置了该变量,则表示指定要搜索那些节(section);

     MANWIDTH  : 如果设置了该变量,则表示显示的宽度;

     MANPAGER  : 该变量是用来设置显示man page的程序.如果没有设该变量,则用

                 PAGER变量的值,如果PAGER变量也没有定义,则用默认的"/usr/bin/

                 less -is"程序来显示;

 

    4.和Man Pages有关的一些技巧

 

      Question1.如何把man显示在屏幕的内容输出到文件里以便打印出来?

      Answer1 :大家可能都试过"man n foo >foo.txt"了,也发现了用编辑器看fo.txt

  时会有很多的"N^HNA^HAM^HME^HE"之类的符号,这样的结果当然不能让人满意.那么怎

  么做呢?下面的方法来自哈工大的baggio大虾:

      "man n foo | col -b > foo.txt"。

     这样一来,输出的结果就是你希望的了。原来,man为了能按照它的显示规则显示文

  本的内容,在文本里加了一些控制字符。而col命令刚好可以用来消除控制字符的。通

  过管道把man出来的结果送到col里处理一下就可以去掉那些讨厌的控制字符了。是不是

  很方便?(感谢baggio的高招!;-)

      Question2.怎么样才能知道某个主体有几种类别呢?

      Answer2 : 这个问题也得靠一个和man相关的命令来解决--"whatis",比如你可

  以用"whatis bar" 来得到bar的所有类别。"whatis bar"可以显示与bar有关的所有

  的man page的名称和类别号。你快试试看。;-)

      Question3....(我就知道这么多,其他的等你来补充;-)

      Answer3....

 

    5.后话:

 

      本来还想把man的命令行参数也写出来,想想好像用的人的不是很多就罢了(因为

    我不用)关于man的详细的介绍当然要看man的man pages了.我想通过上面的简单的描

    述 ,你应该可以很顺手的用man来看"man"的manual page了.(呵呵,一大堆"man"),我

    就不废话了.;-).

 

      另外,  如果你有别的有关于man的操作技巧,拜托请你告诉我呀.

 

   6.参考资料:

 

   (1).  <<Pratical Unix Programming, A Guide to Concurrency,Communication,

           and Mutilthreading>> Kay A. Robbins & Steven Robbins

         中译本:<<实用Unix编程>>  机械工业出版社1999.10第一版

 

   (2).  Manual Pages' "Man" page ,ie. "man man" 😉

--

�       @@@@           @@@@

     @@@@@ @@   N   @@ @@@@@         得失随缘

   \ @@@@ @ @@  i  @@ @ @@@@ /       心无增减

      @@@  @@   g   @@  @@@

        @@@     h     @@@

      \         t         /

 

 

--

※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.118.179.51]

BBS水木清华站∶精华区

Linux必学的重要命令(转帖)

(转自:http://www.linuxdiyf.com/viewarticle.php?id=1916)

Linux必学的重要命令 - 红联门户-您身边的Linux学习社区-本站新域名:www.linux110.com-Linux技术文章-Linux教程下载-电脑技术-红旗Linux - 信息资讯 - Linux技术专区 - Linux Shell

首页  信息资讯  相册影集  资源下载   信息搜索  红联Linux论坛 

 

 XML   RSS 2.0   WAP

 Linux安装  Linux Shell  Linux软件下载  基础Linux技能  Linux问题解疑  Linux管理及应用  红旗Linux5.0  RedHat教程  Linux资料下载

 服务器应用  数据库应用  Linux编程开发  Linux内核研究  UniX技术文章  Linux认证  Linux业界新闻  黑客与安全  电脑硬件

 电脑设计在线  Windows软件  Windows维护  发展创业  网文共享  分享天地  影音在线  Linux壁纸与桌面  红联工作室

您的位置: 首页 >> 信息资讯 >> Linux技术专区 >> Linux Shell >> 查看内容

 

Linux必学的重要命令

作者: ccs   发布日期: 2005-8-10    查看数: 1297    出自: http://www.linuxdiyf.com

 

tar

1. 作用

tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。

2. 格式

tar [主选项+辅选项] 文件或目录

3.主要参数

使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。

主选项:

-c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。

-r 把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。

-t 列出档案文件的内容,查看已经备份了哪些文件。

-u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。

-x 从档案文件中释放文件。

辅助选项:

-b 该选项是为磁带机设定的,其后跟一数字,用来说明区块的大小,系统预设值为20(20×512 bytes)。

-f 使用档案文件或设备,这个选项通常是必选的。

-k 保存已经存在的文件。例如把某个文件还原,在还原的过程中遇到相同的文件,不会进行覆盖。

-m 在还原文件时,把所有文件的修改时间设定为现在。

-M 创建多卷的档案文件,以便在几个磁盘中存放。

-v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。

-w 每一步都要求确认。

-z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。

3. 应用说明

tar是Tape Archive(磁带归档)的缩写,最初设计用于将文件打包到磁带上。如果下载过Linux的源代码,或许已经碰到过tar文件。tar是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。使用tar可以打包整个目录树,这使得它特别适合用于备份。归档文件可以全部还原,或者从中展开单独的文件和目录。备份可以保存到基于文件的设备或磁带设备上。文件可以在还原时重定向,以便将它们重新放到一个与最初保存它们的目录(或系统)不同的目录(或系统)。tar与文件系统无关,可以使用在ext2、ext3、JFS、Reiser和其它文件系统上。它支持各种备份介质,包括软盘、光盘写入器、可重写的光盘、JazZip、磁带、高端磁带等。Linux中以.tar结尾的文件都是用tar创建的。它的使用超出了单纯的备份,可用来把许多不同文件放到一起组成一个易于分开的文件。如果使用Linux源代码安装程序,一定使用过tar文件。这是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。tar官方网址是http://www.gnu. org/software/tar/tar.html。

请注意,不要忘了Linux是区分大小写的。例如,tar命令应该总是以小写的形式执行。命令行开关可以是大写、小写或大小写的混合。例如,-t和-T执行不同的功能。文件或目录名称可以混合使用大小写,而且就像命令和命令行开关一样是区分大小写的。

4.应用实例

tar是一个命令行的工具,没有图形界面。使用Konsole打开一个终端窗口,接下来是一个简单的备份命令(在/temp目录中创建一个back.tar的文件,/usr目录中所有内容都包含在其中。):

$tar cvf - /usr > /temp/back.tar

另外,tar命令支持前面第三讲中讲过的crontab命令,可以用crontab工具设置成基于时间的有规律地运行。例如,每晚6点把/usr目录备份到hda—第一个IDE接口的主驱动器 (总是位于第一个硬盘)中,只要将下面语句添加到root的crontab中即可:

$00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr

一般情况下,以下这些目录是需要备份的:

◆ /etc 包含所有核心配置文件,其中包括网络配置、系统名称、防火墙规则、用户、组,以及其它全局系统项。

◆ /var 包含系统守护进程(服务)所使用的信息,包括DNS配置、DHCP租期、邮件缓冲文件、HTTP服务器文件、dB2实例配置等。

◆ /home 包含所有默认用户的主目录,包括个人设置、已下载的文件和用户不希望失去的其它信息。

◆ /root 根(root)用户的主目录。

◆ /opt 是安装许多非系统文件的地方。IBM软件就安装在这里。OpenOffice、JDK和其它软件在默认情况下也安装在这里。

有些目录是可以不备份的:

◆ /proc 应该永远不要备份这个目录。它不是一个真实的文件系统,而是运行内核和环境的虚拟化视图,包括诸如/proc/kcore这样的文件,这个文件是整个运行内存的虚拟视图。备份这些文件只是在浪费资源。

◆ /dev 包含硬件设备的文件表示。如果计划还原到一个空白的系统,就可以备份/dev。然而,如果计划还原到一个已安装的Linux 系统,那么备份/dev是没有必要的。

unzip

1. 作用

unzip命令位于/usr/bin目录中,它们和MS DOS下的pkzip、pkunzip及MS Windows中的Winzip软件功能一样,将文件压缩成.zip文件,以节省硬盘空间,当需要的时候再将压缩文件用unzip命令解开。该命令使用权限是所有用户。

2. 格式

unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>]

3. 主要参数

-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换。

-f:更新现有的文件。

-l:显示压缩文件内所包含的文件。

-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。

-t:检查压缩文件是否正确。

-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中。

-v:执行是时显示详细的信息。

-z:仅显示压缩文件的备注文字。

-a:对文本文件进行必要的字符转换。

b:不要对文本文件进行字符转换。

-C:压缩文件中的文件名称区分大小写。

-j:不处理压缩文件中原有的目录路径。

-L:将压缩文件中的全部文件名改为小写。

-M:将输出结果送到more程序处理。

-n:解压缩时不要覆盖原有的文件。

-o:不必先询问用户,unzip执行后覆盖原有文件。

-P<密码>:使用zip的密码选项。

-q:执行时不显示任何信息。

-s:将文件名中的空白字符转换为底线字符。

-V:保留VMS的文件版本信息。

-X:解压缩时同时回存文件原来的UID/GID。

[.zip文件]:指定.zip压缩文件。

[文件]:指定要处理.zip压缩文件中的哪些文件。

-d<目录>:指定文件解压缩后所要存储的目录。

-x<文件>:指定不要处理.zip压缩文件中的哪些文件。

-Z unzip:-Z等于执行zipinfo指令。在Linux中,还提供了一个叫zipinfo的工具,能够察看zip压缩文件的详细信息。unzip最新版本是5.50。

gunzip

1.作用

gunzip命令作用是解压文件,使用权限是所有用户。

2.格式

gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][文件...]

或者gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][目录]

3.主要参数

-a或--ascii:使用ASCII文字模式。

-c或--stdout或--to-stdout:把解压后的文件输出到标准输出设备。

-f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在,以及该文件是否为符号连接。

-h或--help:在线帮助。

-l或--list:列出压缩文件的相关信息。

-L或--license:显示版本与版权信息。

-n或--no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理。

-N或--name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。

-q或--quiet:不显示警告信息。

-r或--recursive:递归处理,将指定目录下的所有文件及子目录一并处理。

-S<压缩字尾字符串>或--suffix<压缩字尾字符串>:更改压缩字尾字符串。

-t或--test:测试压缩文件是否正确无误。

-v或--verbose:显示指令执行过程。

-V或--version:显示版本信息。

4.说明

gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为“.gz”。事实上,gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。gunzip最新版本是1.3.3 。

unarj

1.作用

unarj解压缩格式为.arj格式的文件,使用权限是所有用户。

2.格式

unarj [eltx][.arj压缩文件]

3.主要参数

e:解压缩.arj文件。

l:显示压缩文件内所包含的文件。

t:检查压缩文件是否正确。

x:解压缩时保留原有的路径。

4.说明

带有.arj扩展名的文件是由用于MS DOS和Windows的ARJ实用程序创建的。因为ARJ是一种不能免费获得源代码的共享件程序,所以在Linux平台上几乎不存在与其功能匹配的工具,要解压缩.arj文件,就要使用unarj实用程序。unarj比ARJ慢,能力也不如ARJ,但至少能够顺利地抽取大多数.arj文件。unarj只能将文件抽取到当前的工作目录、列出档案内容,或者测试档案。从ARJ Software的站点或携带所需Linux发行版的FTP服务器上可以下载unarj源码。另外,unarj通常是基本Linux发行版的一部分,因此可以在主要发行版本的CD-ROM上找到它。如果需要可到所有Linux发行版链接的列表下载,ARJ软件网址为http://www.arjsoft.com,ARJ的下载页面为http://www.arjsoft.com/files.htm。unarj最新版本是2.65,注意unarj选项不是以减号(-)开头的。

mtools

1.作用

mtools实际上是一个命令集合,是DOS文件系统的工具程序,它可以模拟许多DOS命令,使用起来非常方便。使用权限是所有用户。Linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。mtools的使用非常简单,如果想把软盘里所有的文件都拷贝到硬盘上,那么就可以执行以下命令:

mcopy a:*.*

也就是说,只需要在相应的DOS命令之前加上一个字母“m”,就可以完成对应的功能了。一般Linux发行版本中都有这个软件,可以使用下面命令检查一下。

rpm -qa|grep mtools

如果没有安装,也没有关系,可以从网上下载(http://mtools.linux.lu/)一个最新版本来安装。目前可供下载的最新mtools版本是3.9.9,下载链接为http://mtools.linux.lu/mtools-3.9.9-3.i386.rpm。下载后安装一下即可。

2.包括的命令

mcd 目录名:改变MS DOS下的目录。

mcopy 源文件 目标文件:在MS DOS和Unix之间复制文件。

mdel 文件名:删除MS DOS下的文件。

mdir 目录名:显示MS DOS下的目录。

mformat 驱动器号:在低级格式化的软盘上创建MS DOS文件系统。

rnlabel 驱动器号:产生MS DOS下的卷标

mmd 目录名:建立MS DOS下的目录。

mrd 目录名:删除MS DOS下的目录。

mren 源文件 目标文件:重新命名已存在的MS DOS文件。

mtype 文件名:显示MS DOS文件的内容。

请注意,这些命令和对应的MS DOS命令非常相似。在mtools命令中,“/”和“\”是可以混用的。因为文件列表的是DOS系统下的文档,对大小写并不敏感,所以“CDE”和“cde”在这里是一样的。

3.应用实例

(1)如果把软盘进行快速格式化,可以使用命令mformat:

mformat A:

mtools当初发展的目的是用来处理DOS文件系统的,所以只能用在FAT文件格式的分区上。需要注意的是,如果用mount命令来挂载了FAT16/32分区,那么就不能使用mtools的指令来处理这些分区上的文件。这是因为一旦FAT16/32分区挂到了Linux文件目录下,Linux就会将其视为文件系统本身的一部分,这时如果要对其操作就必须使用Linux本身所附带的指令集。

(2)将DOS盘上的文件htca.c复制到当前目录下,并用ls命令进行验证。

$ mcopy a:\htca.c

$ ls -l htca.c

-rw-r- -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.c

man

1.作用

man命令用来提供在线帮助,使用权限是所有用户。在Linux系统中存储着一部联机使用的手册,以供用户在终端上查找。使用man命令可以调阅其中的帮助信息,非常方便和实用。

2.格式

man 命令名称

man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S section_list] [section] name ...

1. 参数

-C config_file:指定设定文件man.conf,缺省值是/etc/man.conf。

-M path:指定了联机手册的搜寻路径, 如果没有指定则使用环境变数MANPATH的设定;如果没有使用MANPATH, 则会使用/usr/lib/man.conf内的设定;如果MANPATH是空字串,则表示使用缺省值。

-P pager:指定使用何种pager.man会优先使用此选项设定,然后是依环境变数MANPAGER设定,然后是环境变数PAGER;man缺省使用/usr/bin/less -is。

-S section_list man:所搜寻的章节列表(以冒号分隔),此选项会覆盖环境变数MANSECT的设定。

-a man:缺省情况是在显示第一个找到的手册之后,就会停止搜寻,使用此选项会强迫man继续显示所有符合name的联机手册。

-c:即使有最新的cat page,也继续对联机手册重新作排版,本选项在屏幕的行列数改变时或已排版的联机手册损坏时特别有意义。

-d:不要真的显示联机手册,只显示除错讯息。

-D:同时显示联机手册与除错讯息。

-h:显示求助讯息然后结束程式 。

-K:对所有的联机手册搜寻所指定的字串。请注意,本功能回应速度可能很慢,如果指定section(区域)会对速度有帮助。

-m system:依所指定的system名称而指定另一组的联机手册。

man:是manual(手册)的缩写。在输入命令有困难时,可以立刻得到这个文档。例如, 如果使用ps命令时遇到困难,可以输入man ps得到帮助信息,此时会显示出ps的手册页(man page)。

由于手册页man page是用less程序来看的(可以方便地使屏幕上翻和下翻), 所以在man page里可以使用less的所有选项。

less中比较重要的功能键有:

[q] 退出;

[Enter] 一行行地下翻;

[Space] 一页页地下翻;

上翻一页;

[/] 后跟一个字符串和[Enter]来查找字符串;

[n] 发现上一次查找的下一个匹配。

unencode

1.作用

unencode命令可以把一个二进制文件表编码为一个文本文件,使用权限是所有用户。

2.格式

uuencode [-hv] [源文件] 目标文件

3.主要参数

-h:列出指令使用格式(help) 。

-v:列出版本信息。

4.应用说明

uuencode指令可以将二进制文件转化成可使用电子邮件发送的ASCII编码形式。uuencode编码后的资料都以 begin开始,以end作为结束,且通常其中的每一行的开始均为“M”,中间部分是编码过的文件,编码后的文件比源文件要大一些。

uudecode

1.作用

uudecode命令用来将uuencode编码后的档案还原,uudecode只会将begin与end标记之间的编码资料还原,程序会跳过标记以外的资料。它的使用权限为所有用户。

2.格式

uuencode [-hv] [file1 ...]

3.主要参数

-h:列出指令使用格式(help)。

-v:列出版本信息。

 

如果你有任何疑问,讨论问题等请点击这到红联论坛中来! 网址:http://www.linux110.com/bbs

 

【论坛浏览】  【我来说两句】  【打印】  字体 【大】 【中】 【小】  【关闭】

 

相关评论

 

作者: ABC  发布日期: 2005-8-13

不错,顶

作者: aiwuxian23  发布日期: 2006-4-06

好东西!

 

共有评论数 2 / 每页显示数 10

 

 

 

我来说两句

 

请遵守国家法律和互联网法规。

您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。

 

热点主题

从零开始:Linux基础教程之命令的使用

shell 编程的最好理解

一切从基础开始Linux入门命令篇

在Linux世界驰骋系列——Shell编程

两个很详细的shell 实例

Linux Shell命令集锦

shell 脚本初步,启动可执行 jar 文件

VI高级命令集锦

利用shell编程实现DOS风格的Linux命令行

Linux的命令组成

 

最新主题

用这个命令能够看到主机中的网络设备

创建(进入)带空格的目录名

三种主要的 Shell 与其分支,Shell 的功用

让Linux命令加速

菜鸟学习SHELL第一课---地址本的脚本

命令行CALL程序时传递数字参数总结

shell下十二种读文件的方法

shell历险之——引用的迷途

awk用法小结

Shell Script简介

网络资源推荐

OPEN-LAB IT教育Linux技术中心                             前往红联论坛讨论

 

广告业务 站务联系: lz@linuxdiyf.com 关于红联论坛 与本站交流! 红联论坛致力站暨站点交流

 

版权所有  2006  红联门户-您身边的Linux学习社区-本站新域名:www.linux110.com-Linux技术文章-Linux教程下载-电脑技术-红旗Linux   最佳分辨率  1024 X 768

Copyright   ©  http://www.linuxdiyf.com  All rights reserved.  Powered by supstie™ V4.0

今天,在家里把学习日记的开发环境安上了

  第二次安,有点门路了,大部分安装离开参考资料能搞定了。发现我还不会很好的使用进入linux殿堂的man命令。

  这次的安装共享了windows2000下的mysql数据目录,需要新加一个用户:dbuser@localhost.localdomain才能使学习日记运行起来。而且还需要把新安装的linux版本的数据目录里的一个localhost.localdomain.pid文件拷入原来的windows下的mysql数据目录才行。

  本来想共享windows2000下的eclipse中的学习日记工程,可是把它导入后发现WEB-INF目录名变成了小写。在操作系统文件目录窗口中看windows2000下的目录名还是大写,搞不懂了(也许是在linux中装载windows文件系统时在eclipse2.1中的形成的一个bug?这有待以后进一步验证)。只得从cvs库中重新导入才解决问题。

  mysql4.0.17的两个rpm包是不能改变安装目录的,也就是说是:not relocateable。并不能像帖子(mysql的rpm包默认安装路径问题;RPM命令手册(转帖两篇)http://www.123go.org.cn/disDiaryContentAction.do?searchDiaryID=1767&goalID=1767&naviStr=a10ac0ad0)中说的那样可以改变安装目录。

  另外,在linux下的eclipse2.1中安装那个EclipseColorer-take5_0.6.0(net.sf.colorer_0.6.0)语法高亮的插件,必须把其中的colorer目录拷入/usr/local/share才能正常使用(只拷入其中的catalog.xml文件不行),否则会报找不到catalog.xml文件的错(Error in initialization of native part of the Colorer library. This can be caused by absent net_sf_colorer.dll (libnet_sf_colorer.so) in paths of java machine. Or, colorer can't find catalog.xml file, which must be placed in '%PLUGIN_DIR%/colorer/catalog.xml' ParserFactoryException: Can't find suitable catalog.xml file. Check your program settings.)。

  colorer的readme文件:(文件名:readme)

 

  This archive contains Java Edition of the Colorer-take5 library.

  It includes Java interfaces to the Library and an experimental

  plugin for the Eclipse platform

    http://www.eclipse.org

  To install plugin into Eclipse you have to copy content

  of this directory into %ECLIPSE_HOME%/plugins directory.

  This package contains plugin's native library, compiled for

  win32 ant Linux platforms. For Linux issues, read LINUX file.

  To compile Colorer-take5 library to use with MacOSX systems,

  read MACOS file.

  If you are using Colorer with other tools/applications (and have

  your own HRC base), you can specify path to the 'catalog.xml' file

  with one of the standard locations:

    - %HOME%/.colorer5catalog (or %HOMEPATH%, %SYSTEMROOT%)

    - %COLORER5CATALOG%

    - /usr/share/colorer/catalog.xml

  In this case you can delete 'colorer' folder of the EclipseColorer

  package, and it will start to read configuration data from the global source.

  All files in this package are subject to the Mozilla Public License 1.1

  You can find detailed description and license agreement on

    http://colorer.sf.net/

  For more information see 'index.html' in the 'doc' folder of

  the Colorer Library package distribution or visit

    http://colorer.sf.net/

  Thanks for using Colorer,

    Igor Russkih <cail@nm.ru>

  其中的linux说明文件:(文件名:linux)

 

  Colorer Library is not yet fully tested on Linux systems,

  and there can be some problems.

  This version of Colorer Library comes with the native part, compilied

  with GNU GCC 3.2 c++ compiler under Mandrake Linux 9.0.

  I've tested it with Eclipse 2.1 (gtk) under jdk1.4.1 and it works fine.

  However, you can encounter some problems with library dependencies.

从下面这个文件来看,也许把eclipse安在目录:/usr/share下面就会正常也说不一定?(文件名:ColorDemo.sh)

#!/bin/bash

# Self runnable version of Colorer library JNI interface

# Uses SWT API.

# To use it, please provide full path to colorer/catalog.xml file

# in %HOME%/.colorer5catalog  file.

ECLIPSE_HOME=/usr/share/eclipse

ECLIPSE_VERSION=2.1.0

# Requires inclusion of additional jars:

ECLIPSE_TOOLKIT=gtk

#ECLIPSE_TOOLKIT=motif

OS=linux

ARCH=x86

SWT_JAR=${ECLIPSE_HOME}/plugins/org.eclipse.swt.${ECLIPSE_TOOLKIT}_${ECLIPSE_VERSION}/ws/${ECLIPSE_TOOLKIT}/swt.jar:${ECLIPSE_HOME}/plugins/org.eclipse.swt.${ECLIPSE_TOOLKIT}_${ECLIPSE_VERSION}/ws/${ECLIPSE_TOOLKIT}/swt-pi.jar

SWT_LIB=${ECLIPSE_HOME}/plugins/org.eclipse.swt.${ECLIPSE_TOOLKIT}_${ECLIPSE_VERSION}/os/${OS}/${ARCH}

env LD_LIBRARY_PATH=os/${OS}/${ARCH}:${SWT_LIB}:${LD_LIBRARY_PATH} java -classpath colorer.jar:${SWT_JAR} net.sf.colorer.swt.ColorerDemo

realplay for linux的下载地址(转)

用google搜了一下,出来这个页面,下了一个,速度还可以:https://helixcommunity.org/download.php/1589/RealPlayer-10.0.6.776-20050915.i586.rpm

http://lists.helixcommunity.org/pipermail/community-allwww-cvs/2006-March/001596.html

[Community-allwww-cvs] www/2005/downloads index.html,1.12,1.13

bobclark at helixcommunity.org bobclark at helixcommunity.org

Wed Mar 22 12:38:55 PST 2006

    * Previous message: [Community-allwww-cvs] www/2005/releases/hx1gold HX1_0_7ReleaseNotes.html, 1.1, 1.2

    * Next message: [Community-allwww-cvs] www index.html,1.75,1.76

    * Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

Update of /cvsroot/player/www/2005/downloads

In directory cvs02.internal.helixcommunity.org:/tmp/cvs-serv26243

Modified Files:

index.html

Log Message:

updated for release of 10.0.7 and 1.0.7

Index: index.html

===================================================================

RCS file: /cvsroot/player/www/2005/downloads/index.html,v

retrieving revision 1.12

retrieving revision 1.13

diff -u -d -r1.12 -r1.13

--- index.html 10 Oct 2005 21:45:57 -0000 1.12

+++ index.html 22 Mar 2006 20:38:53 -0000 1.13

@@ -37,7 +37,7 @@

     <tr style="font-weight: bold;">

       <td colspan="4" rowspan="1"

  style="vertical-align: top; width: 181px;">Helix

-Player 1.0.6 Gold</td>

+Player 1.0.7 Gold</td>

       <td style="vertical-align: top; width: 288px;"><br>

       </td>

     </tr>

@@ -45,23 +45,23 @@

       <td style="vertical-align: top;">  Linux/x86<br>

       </td>

       <td style="vertical-align: top; text-align: center;"><a

- href="https://player.helixcommunity.org/2005/releases/hx1gold/HX1_0_6ReleaseNotes.html">View</a><br>

+ href="https://player.helixcommunity.org/2005/releases/hx1gold/HX1_0_7ReleaseNotes.html">View</a><br>

       </td>

       <td style="vertical-align: top;"><a

- href="https://helixcommunity.org/download.php/1587/HelixPlayer-1.0.6.778-20050916.i586.rpm">RPM</a><br>

+ href="https://helixcommunity.org/download.php/1914/HelixPlayer-1.0.7.784-20060201.i586.rpm">RPM</a><br>

       </td>

       <td style="vertical-align: top; width: 181px;"><a

- href="https://helixcommunity.org/download.php/1586/hxplay-1.0.6.778-linux-2.2-libc6-gcc32-i586.bin">Installer</a><br>

+ href="https://helixcommunity.org/download.php/1913/hxplay-1.0.7.784-linux-2.2-libc6-gcc32-i586.bin">Installer</a><br>

       </td>

       <td style="vertical-align: top; text-align: center; width: 288px;"><a

- href="https://helixcommunity.org/download.php/1585/hxplay-1.0.6-source.tar.bz2">bz2

+ href="https://helixcommunity.org/download.php/1915/hxplay-1.0.7-source.tar.bz2">bz2

       </a><br>

       </td>

     </tr>

     <tr>

       <td colspan="4" rowspan="1"

  style="vertical-align: top; width: 181px;"><span

- style="font-weight: bold;">RealPlayer 10.0.6 Gold</span><br>

+ style="font-weight: bold;">RealPlayer 10.0.7 Gold</span><br>

       </td>

       <td style="vertical-align: top; width: 288px;"><br>

       </td>

@@ -70,16 +70,16 @@

       <td style="vertical-align: top;">  Linux/x86<br>

       </td>

       <td style="vertical-align: top; text-align: center;"><a

- href="https://player.helixcommunity.org/2005/releases/rp10gold/RP10_0_6ReleaseNotes.html">View</a><br>

+ href="https://player.helixcommunity.org/2005/releases/rp10gold/RP10_0_7ReleaseNotes.html">View</a><br>

       </td>

       <td style="vertical-align: top;"><a

- href="https://helixcommunity.org/download.php/1589/RealPlayer-10.0.6.776-20050915.i586.rpm">RPM</a><br>

+ href="https://helixcommunity.org/download.php/1917/RealPlayer-10.0.7.785-20060201.i586.rpm">RPM</a><br>

       </td>

       <td style="vertical-align: top; width: 181px;"><a

- href="https://helixcommunity.org/download.php/1590/realplay-10.0.6.776-linux-2.2-libc6-gcc32-i586.bin">Installer</a><br>

+ href="https://helixcommunity.org/download.php/1916/realplay-10.0.7.785-linux-2.2-libc6-gcc32-i586.bin">Installer</a><br>

       </td>

-      <td style="vertical-align: top; text-align: center; width: 288px;"><a

- href="https://helixcommunity.org/download.php/1591/realplay-10.0.6-source.tar.bz2">bz2</a><br>

+      <td style="vertical-align: top; text-align: center; width: 288px;"><!--<a

+ href="https://helixcommunity.org/download.php/????/realplay-10.0.7-source.tar.bz2">bz2</a>--><br>

       </td>

     </tr>

     <tr>

@@ -229,6 +229,30 @@

       </td>

     </tr>

     <tr>

+      <td>RealPlayer 10.0.6 Gold</td>

+      <td>9/29/2005</td>

+      <td><a href="https://player.helixcommunity.org/2005/releases/rp10gold/RP10_0_6ReleaseNotes.html">View</a></td>

+      <td></td>

+      <td><a href="https://helixcommunity.org/download.php/1589/RealPlayer-10.0.6.776-20050915.i586.rpm">RPM</a><br>

+      <a href="https://helixcommunity.org/download.php/1590/realplay-10.0.6.776-linux-2.2-libc6-gcc32-i586.bin">Installer</a></td>

+      <td><a href="https://helixcommunity.org/download.php/1604/realplay-10.0.6.1205-sunos-5.8-sparc-studio10.bin">Installer</a><br>

+      <small>(experimental)</small></td>

+      <td></td>

+      <td><a href="https://helixcommunity.org/download.php/1591/realplay-10.0.6-source.tar.bz2">bz2</a></td>

+    </tr>

+    <tr>

+      <td>Helix Player 1.0.6 Gold</td>

+      <td>9/29/2005</td>

+      <td><a href="https://player.helixcommunity.org/2005/releases/hx1gold/HX1_0_6ReleaseNotes.html">View</a></td>

+      <td></td>

+      <td><a href="https://helixcommunity.org/download.php/1587/HelixPlayer-1.0.6.778-20050916.i586.rpm">RPM</a> <br>

+      <a href="https://helixcommunity.org/download.php/1586/hxplay-1.0.6.778-linux-2.2-libc6-gcc32-i586.bin">Installer</a></td>

+      <td></td>

+      <td></td>

+      <td><a href="https://helixcommunity.org/download.php/1585/hxplay-1.0.6-source.tar.bz2">bz2

+      </a></td>

+    </tr>

+    <tr>

       <td>RealPlayer 10.0.5 Gold</td>

       <td>06/24/2005</td>

       <td><a

    * Previous message: [Community-allwww-cvs] www/2005/releases/hx1gold HX1_0_7ReleaseNotes.html, 1.1, 1.2

    * Next message: [Community-allwww-cvs] www index.html,1.75,1.76

    * Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

More information about the Community-allwww-cvs mailing list

Linux下的压缩/解压缩工具(转贴2篇)

    总是记不住tar命令的参数顺序,tar命令的执行讲究参数的顺序,如: tar -xfzv filename 就是错误的,执行如下:

[root@localhost tool]# tar -xfzv firefox-1.5.0.2.tar.gz

tar: zv: Cannot open: 没有那个文件或目录

tar: Error is not recoverable: exiting now

还有前面加不加"-",好像没有区别,如下两个命令是一样的不知是怎么一回事:

tar -xzvf firefox-1.5.0.2.tar.gz

和tar xzvf firefox-1.5.0.2.tar.gz

我在linux下常用的几种压缩、解压软件(实际上下面的第一篇转帖中都有):

1)压缩: tar cfvz FileName.tar.gz  DirName

  解压: tar xfvz FileName.tar.gz

2)压缩:rar a FileName.rar DirName

  解压: rar x FileName.rar

3)压缩: zip -r FileName.zip DirName (下面的转帖中少了一个参数 -r,不能压缩文件夹内的全部文件)

  解压: unzip FileName.zip

下面是我对一个包含主要是htm文件和gif等图片文件的目录的各种压缩格式的压缩率比较。

原目录的大小是8445952bytes,

命令: tar cfv /home/mdx/wisdom_compress/wisdom.tar ./wisdom 生成的打包文件wisdom.tar大小是8222729bytes,与原目录大小差不多;

命令:rar a /home/mdx/wisdom_compress/wisdom.rar ./wisdom 生成的压缩文件wisdom.rar大小为4015632bytes;

命令:zip -r /home/mdx/wisdom_compress/wisdom.zip ./wisdom 生成的压缩文件wisdom.zip大小为4272032bytes,和上面用rar软件生成的wisdom.rar大小差不多;

命令:tar cfvz ./wisdom_compress/wisdom.tar.gz wisdom 生成的打包压缩文件wisdom.tar.gz大小为2842023bytes;

命令:tar cfvj ./wisdom_compress/wisdom.tar.bz wisdom生成的打包压缩文件wisdom.tar.bz大小为2589155bytes,和上面用tar cfvz生成的wisdom.tar.gz差不多;

所以,就缺省的方式来说,tar的压缩效果在文本文件为主的目录中要好于rar和zip软件。

下面是统计的具体例子:


[mdx@localhost mdx]$ du -sb ./wisdom

8445952 ./wisdom

[mdx@localhost mdx]$ ls -la ./wisdom_compress/

总用量 24066

drwxrwxr-x    2 mdx      mdx          1024  2月 26 15:49 .

drwx------   26 mdx      mdx          5120  2月 26 11:57 ..

-rw-rw-r--    1 mdx      mdx       4015632  2月 26 15:47 wisdom.rar

-rw-rw-r--    1 mdx      mdx       8222720  2月 26 15:49 wisdom.tar

-rw-rw-r--    1 mdx      mdx       2589155  2月 26 11:09 wisdom.tar.bz

-rw-rw-r--    1 mdx      mdx       2589155  2月 26 11:22 wisdom.tar.bz2

-rw-rw-r--    1 mdx      mdx       2842023  2月 26 11:02 wisdom.tar.gz

-rw-rw-r--    1 mdx      mdx       4272032  2月 26 15:20 wisdom.zip

[mdx@localhost mdx]$

在linux的基础上重新安装windows2000不会覆盖启动菜单

  原来的经验,在win98和win2000的双系统中重新安装win98会覆盖win2000的多重启动菜单。但是在win2000和redhat linux9.0的双系统中重新安装win2000却不会覆盖原来的启动菜单。

  系统状态如下:

  两块硬盘A和B.

  原先:在A上有WIN98的启动分区(C盘)和WIN2000系统,在B上有WIN98系统。

  启动菜单为:

  WINDOWS98

  WINDOWS2000 PROFESSIONAL

  后来:在A上删除了win2000系统,换成了redhat linux9.0,由安装系统自动分的区(包括了3个分区:/boot,/,swap分区)

  启动菜单为:

  RED HAT LINUX 9.0

  DOS

 

  选择DOS,直接进入WIN98

  再后来:

  前几天因硬盘故障,格式化了B,启动分区仍是A上的(C盘),在B上安装了WIN2000.

  安装完成后,启动菜单为:

  RED HAT LINUX 9.0

  DOS

 

  选择:DOS

  菜单为:

  WINDOWS 2000 professional

  WINDOWS 98

  (当然,WINDOWS 98的菜单是不起作用的)

  也就是说,重新安装的WIN2000的启动菜单不会覆盖掉LINUX的GREP引导菜单,搞不懂了。

Linux常用下载工具推荐(转自:http://phpads.bokee.com/4591810.html

phpads的博客

最利于维护的网站目录结构- -| 回首页 | 2006年索引 | - -Linux下常用压缩格式的压缩与解压方法

Linux常用下载工具推荐

关键词: linux    下载                                         

  Windows中有很多下载工具,如耳熟能详的FlashGet,NetAnt等。随着Linux的发展,特别是桌面应用的成熟,越来越多的用户转向了Linux。面对网上丰富的下载资源,Linux用户如何下载呢?其实Linux下载和在Windows下载一样,都离不开下载工具。那Linux中又有哪些下载工具呢?本文就为大家介绍Linux中常用的下载工具。图形界面下载工具     对于Linux初学者来说,图形化下载工具无疑是最佳选择。Linux提供了很多类似Windows中FlashGet、网络蚂蚁等下载工具,下面就为大家详细介绍一下,希望大家能找到自己得力的下载工具。

  

   KGet     KGet是KDE默认的断点续传工具,通常无需安装。它界面简洁,操作方便,高效的拖拽下载功能最令人称道。比较遗憾的是它不支持代理服务器及SOCKS5代理功能。功能上虽然不如FlashGet全面和强大,但对于日常下载已经绰绰有余了,推荐初学者使用,其界面如图1所示。

  选择“主选单”→“互联网”→“KGet”或直接使用“Alt+F2”快捷键并输入“kget”命令即可运行程序,其界面如图1所示。第一次使用会弹出一个对话框,选择KGet的工作方式。可选择与Konqueror集成也可选择独立运行,不习惯使用Konqueror作浏览器的话,建议选择后者。它的使用也非常的简单,在“打开”对话框中输入下载文件的地址,KGet就可下载了。更为方便的是拖拽下载,单击“拖放目标”按钮就会出现拖放标志,只需将下载链接拖到该标志即可开始下载。KGet同网络蚂蚁一样也支持定时下载、下载完毕可设定自动断开连接或关机,具体设置方法为选择“设置”→“配置KGet”→“自动”标签页并将相应选项选中,设定具体的时间和操作便可定时下载。 Gwget     Gwget是GNOME下常用的一个图形化下载工具。它是命令行下常用下载工具Wget的GTK图形化前端,具有Wget的全部功能,如断点续传、代理下载等功能等。 1.安装 Gwget可到http://nchc.dl.sourceforge.net/sourceforge/gwget/gwget-0.93.tar.gz下载,然后在终端中使用如下命令进行安装: #tar zxvf gwget-0.93.tar.gz #cd gwget-0.93/ #./configure #make #make install 2.设置     成功安装后便可在终端中运行“gwget”命令启动Gwget。图形界面操作起来十分便捷,具体下载操作只需将下载地址复制到“文件”→“URL”中即可,单击“确定”按钮便可下载,图2便是下载中的Gwget。此外,在“编辑”→“首选项”中可设置Gwget的其他功能,如下载文件夹、限速、代理等。由于Gwget和KGet使用上大同小异,这里就不作更详细地介绍了。

  Downloader for X     Downloader For X(文中简称为D4X)是Linux下功能强大的图形化下载工具。支持HTTP与FTP协议,具有类似NetAnt和FlashGet等多线程、断点续传下载等功能。D4X还具有连接超时断点续传、记录下载日志、模拟下载、链接拖拽下载、自动复制剪贴板链接到下载地址栏中等功能。 1.下载和安装 D4X的下载地址为http://www.krasu.ru/soft/chuchelo/files/d4x-2.5.0final.tar.gz,下载后使用如下命令安装: #tar zxvf d4x-2.5.0final.tar.gz #cd d4x-2.5.0final #./configure #make #make install 成功安装后,运行“d4x”命令便可直接运行。它的界面如图3所示,和FlashGet有点相像吧。

  2.使用和设置     D4X的使用十分简单,下载文件时,只需在“添加新的下载任务”对话框中输入下载文件地址即可。如果下载地址需要用户名和密码,可在这个对话框中直接输入。如要计划下载,可在时间选项中设定下载时间。此外,在下载任务选项中,可设定一些下载的配置,如下载文件默认目录、默认线程个数、界面风格等。值得一提是代理选项,可指定默认的代理服务器和SOCKS5代理,具体设置如图4所示。

  WxDfast     WxDfast也是一个图形化的下载工具,支持多线程、断点续传等功能,最大特点是下载速度快。可在http://heanet.dl.sourceforge.net/sourceforge/dfast/wxdfast-0.2.1-src.tar.gz下载WxDfast的最新版本。然后使用如下命令进行安装: #tar jxvf wxdfast-0.2.1d.tar.bz2 #cd wxdfast-0.2.1-src #make install     在终端下运行“./wxdfast”命令便可运行程序。WxDfast界面非常简洁,其界面如图5所示。全英文界面使用起来可能不如KGet方便,好在它的操作和KGet、D4X基本相同,大家可参照学习,这里就不赘述了。

  Aria     Aria是个小巧的多线程下载工具,简单易用的界面用起来得心应手。可在http://aria.rednoah.com/download_e.html下载最新版本,然后使用如下命令进行编译安装: #./configure #make #make install 成功安装后直接运行如下命令便可运行Aria: #aria& Aria的界面如图6所示,它的操作和D4X差不多,可参照使用。

                                           命令行下载工具   

       对于喜欢命令行操作及追求高效率、高速度下载的朋友,推荐使用命令行下载工具。命令行工具不但使用方便,而且大多具有很高的下载速度及下载效率,尤其适合于大批量下载文件。下面就为大家详细介绍一下这些工具。

   Wget Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具。如果没有安装可在http://www.gnu.org/software/wget/wget.html下载最新版本,并使用如下命令编译安装: #tar zxvf wget-1.9.1.tar.gz #cd wget-1.9.1 #./configure #make #make install 它的用法很简单,Wget使用格式如下: #wget [选项] [下载地址] 1.Wget常用参数 ◆-b:后台下载,Wget默认的是把文件下载到当前目录。 ◆-O:将文件下载到指定的目录中。 ◆-P:保存文件之前先创建指定名称的目录。 ◆-t:尝试连接次数,当Wget无法与服务器建立连接时,尝试连接多少次。 ◆-c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。     除了上述常用功能,Wget还支持HTTP和FTP代理功能,编辑其配置文件“/etc/wgetrc”即可。具体方法是使用VI编辑器打开上述文件,将“http_proxy”和“ftp_proxoy”前的#去掉,然后在这两项后输入相应的代理服务器的地址,保存退出即可。此外,Wget还可下载整个网站,如下载http://man.chinaunix.net整个Man手册中心。只需输入如下命令即可: #wget -r -p -np -k http://man.chinaunix.net 其中-r参数是指使用递归下载,-p是指下载所有显示完整网页所以需要的文件,如图片等,-np是指不搜索上层目录,-k则是指将绝对链接转换为相对链接。

   Prozilla     Prozilla也是一个十分流行的命令行下载工具,支持多线程下载和断点续传功能。可到http://prozilla.genesys.ro/下载最新的1.3.7.4安装包,下载安装包后使用如下命令进行安装: #tar zxvf prozilla-1.3.7.4.tar.gz #cd prozilla-1.3.7.4 #./configure #make #make install Prozilla命令格式如下: #proz [参数] [下载地址] 常用的选项有: ◆-k=n :设置n个线程下载。不加此参数指定线程数,Prozilla默认为4线程下载。 ◆-P, --directory-prefix=DIR:指定将下载的文件保存在DIR/目录。 ◆-r, --resume:继续下载未完成的文件。如果要指定线程数下载可用如下命令: #proz -k=5 http://64.12.204.21/pub/mozilla.org/firefox/releases/1.0/linux-i686/zh-CN/firefox-1.0.installer.tar.gz 这样便以5线程进行文件的下载,并将文件保存到当前目录。和Wget一样,Prozilla也提供了续传功能,下载中断后,重新输入上述命令,就会出现提示续传,按R键就可继续下载了。

   MyGet     MyGet目标设计成一个可扩展的,拥有丰富界面的多线程下载工具,它支持HTTP、FTP、HTTPS、MMS、RTSP等协议。在http://myget.sourceforge.net/release/myget-0.1.0.tar.bz2下载其最新版本0.1.0,下载后使用如下命令安装: #tar jxvf myget-0.1.0.tar.bz2 #cd myget-0.1.0 #./configure #make #make install MyGet命令格式如下: #mytget [选项] [下载地址] 常用的选项: ◆-d [目录]:指定下载到的文件在本地存放的位置,默认当前目录。 ◆-f [文件]:指定下载文件名称。 ◆-h:帮助选项。 ◆-n [线程数]:下载线程数量,默认为4个。 ◆-x [代理服务器地址]:设置代理服务器地址,如“-x http://user:password@host:port”。 MyGet常用的形式如下: #mytget -d /root/ -n 10 http://lumaqq.linuxsir.org/download/patch/lumaqq_2004t_patch_2005.07.21.00.00.zip Linuxdown     Linuxdown是一个命令行多线程下载工具,最多可支持30线程的下载。在https://gro.clinux.org/frs/download.php/1015/linuxdown-1.0.0.tar.gz下载最新的1.1.0版本。然后使用如下命令进行编译安装: #tar zxvf linuxdown-1.1.0.tar.gz #cd dandelion/ #make #make install linuxdown格式为: #linuxdown [下载地址] [选项] [线程数]     需要注意的是下载地址和选项都需要西文引号括起来,线程数不可超过30个。一个典型的下载如下: #linuxdown "http://lumaqq.linuxsir.org/download/patch/lumaqq_2004t_patch_2005.07.21.00.00.zip" 30

  Curl     Curl也是Linux下不错的命令行下载工具,小巧、高速,唯一的缺点是不支持多线程下载。在http://curl.haxx.se/download/curl-7.14.0.tar.gz下载最新版本。下载后便可使用如下命令编译安装: #tar zxvf curl-7.14.0.tar.gz #cd curl-7.14.0/ #./configure #make #make test #make install Curl使用格式如下: #curl [选项][下载地址] Curl典型下载如下: #curl -O http://10.1.27.10/~kennycx/tools/lumaqq_2004-linux_gtk2_x86_with_jre.tar.gz     使用Curl下载一个文件并保存到当前目录。此外,Curl虽然不支持多线程下载,但它可同时下载多个文件或下载文件的某一部分,可使用如下命令实现: #curl -r 0-199 http://www.netscape.com/ 获得文件的前200 bytes。     对于常用的代理下载Curl也可轻松实现,具体操作如下: #curl -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 使用代理地址为10.1.27.10端口为1022的代理服务器下载一个文件。 #curl -U user:passwd -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 如果代理服务器需要特别的验证,则需要在user:passwd处输入合法的帐号和密码。

  Axel     Axel是命令行下的多线程下载工具,支持断点续传,速度通常情况下是Wget的几倍。可在http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=mydown&did=1697下载。下载后使用如下命令编译安装: #tar zxvf axel-1.0a.tar.gz #cd axel-1.0a/ #./configure #make #make install 基本的用法如下: #axel [选项] [下载目录] [下载地址] 一个典型下载如下: #alex -n 10 -o /home/kennycx/ http://10.1.27.10/~kennycx/tools/lumaqq_2004-linux_gtk2_x86_with_jre.tar.gz 用10线程将指定路径的文件下载到/home/kennycx/这个目录下。

     本文详细介绍了Linux中常用的下载工具,这些下载工具功能上各有千秋,使用上都比较简单,所以无论是初学者还是Linux高手总有一款适合你。

【作者: phpads】【访问统计:1】【2006年03月4日 星期六 19:04】【 加入博采】【打印】

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=4591810

博客手拉手

回复

发布人: 邮箱:

主 页:

验证码:  

评论内容:

               

2003-2004 BOKEE.COM All rights reserved

Powered by BlogDriver 2.1

安装linux不能自动分区;konqueror浏览器;fecitx五笔安装

    在家里安装linux时,从硬盘中中划了5个G来安它,如法炮制使用自动分区不成功,告诉:不能把分区划拨到主分区。。。使用手动分区解决问题。不知道是怎么一回事?

   在mozilla中不能使用ftp,但是在konqueror中可以。而且,konqueror中默认的下载工具是Kget,它可以支持断点续传。但在有的情况下,Kget下载的东西会取一个临时的名字,好像隔一定的时间后,下载的取了临时名字的文件就不在了。搞不懂是怎么一回事了?

    在新系统中按照网上的方法配置用预编译的包来安装系统(网上介绍的方法是用源码来安装的),在输入文字时马上就非法退出了,搞不懂?