热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【转载】完全用Linux

半年来,Linux高效完成我所有的工作!自由软件的重要性我非常高兴能够完全使用Linux工作。虽然Linux和它的朋友们在很多方面已经超过了商业UNIX,它们在某些方面还不如某些
半年来,Linux高效完成我所有的工作!

      自由软件的重要性我非常高兴能够完全使用 Linux 工作。虽然 Linux 和它的朋友们在很多方面已经超过了商业 UNIX,它们在某些方面还不如某些商业 UNIX,但是可以预见,Linux 这样的自由软件在将来一定会一统天下。因为"自由"对于人们来说是非常重要的,越来越多的人意识到了这一点,他们志愿的投入到 Linux 程序的开发中来。很多大公司,IBM, SGI, HP...... 也都开始支持 Linux. 所以 Linux 的发展会越来越快。Linux 没有任何历史包袱,通过学习其它系统的优点,Linux 的程序会越来越完美。

      纵观历史上造成重大影响的程序,几乎都是自由开放的软件。TeX, Linux, Xwindow, Perl ... 而商业程序的命运总是在一瞬间灰飞烟灭,被人们遗忘得不留任何痕迹。看看商业的 UNIX,四分五裂,各不兼容,给用户造成很多麻烦。商业的 MACSYMA,它的公司竟然可以在一瞬间消失,让所有用户失去支持。这是我们不希望看到的。

      自由软件为什么会有如此大的威力呢?首先,你会发现,自由软件的适应性比商业软件大的多。因为只要有人需要某种有益的功能,就有人把这种功能加入到程序里。FVWM 浩如烟海的功能就是这样的结果。自由软件往往很容易跟其它系统的程序相处,它们在不同系统上的编译安装一般没有问题,因为这是由很多种系统的用户共同开发而成的,首先就考虑到了可移植性。而商业UNIX程序往往不能很容易的在不同的系统安装,甚至在开发时使用的那种系统上安装都需要花很大功夫。不提供源码直接导致了这种不方便。

      自由软件的全部或者部分能够被随意的利用,改进,再次发行。你可以修改你发现的bug或者加入你自己需要的功能,或者移植给其它系统。如果你不是一个程序员,那你可以请人来做这个工作。比如你报告一个bug,很快就有人解决这个问题,你提出一个新的想法,有些感兴趣的程序员就可以帮你实现。比如,我就曾经修改了 XSIM 的代码,改正了它在屏幕保护时状态窗口不消失的问题。我移植了 gbkfonts 的代码给 Linux 和 Solaris,我就能在这些系统生成 TeX 的中文字体。我修改了 dvipdfmx 的代码,让它可以嵌入某些通常不能嵌入的字体。用户能够自己改进程序,再次发行,这样软件的功能就会越来越强大,衍生出来的软件会使更多的人受益。商业软件没有这个优点,如果出了问题,你不能很快的得到帮助,bug 不能很快的得到修改,即使修改了bug,更新的版本很可能还得要你掏钱,谁还愿意报告bug呢?至于你想要的特殊的功能,想都不要想啦!那些软件公司根本不可能考虑你个人的需要。

      自由软件具有强大的生命力,这是由它的开放性决定的。一个自由软件,哪怕只剩一个人喜欢,他都可以自己来维护这个程序的生存,适应自己的需要。说不定以后还会有更多的人对这个程序产生兴趣。MAXIMA 就是这样一个例子。Schelter 博士由于自己的兴趣,默默无闻的维护 MAXIMA 直到他生命的最后一刻,他拯救了 MACSYMA — 世界上最优秀的计算机代数系统。
自由软件有良好的社会作用。它的一切工作原理都是公开的,这体现了尊重科学,不为名利,信息公开,共同进步的良好学术风尚,这对于科学研究工作是非常重要的。它能够被随意的拷贝给需要它的人们去用,这体现了人们互相帮助的美德,一个理解自由软件思想的人会更加关爱社会,乐于助人,对于改善整个社会风气都有很大的好处。

      用 Linux 完成你在电脑上的所有工作Linux 能完成我所有的工作,但是不一定能完成你所有的工作。以下这些仅供参考。在你有信心完全使用 Linux 之前,不要删掉你的 Windows。不要说我没有警告过你哈。

      很多人在某些事情上已经离不开 Linux,但是他却没有找到可靠的 Linux 程序来完成某些其它操作系统能完成的某些简单的事情。比如很多人抱怨 Linux 下的 Mozilla mail, evolution 损坏他们刚写好要发出去的 email。 有些人认为他专业上的程序只有商业 UNIX 和 Windows 才有。比如有些人为了使用 Mathematica 而使用 Windows,他说 Linux 下没有 Mathematica 程序,商业 UNIX 又买不起。其实完全可以用 Linux 来完成这些事情。

      首先,Mozilla mail, evolution 虽然是 Linux 可以用的程序,但是由于历史太短,它们还没有稳定下来,有很多 bug。如果你需要可靠稳定,而不想费时间帮助 debug,你完全可以用 Mutt 这样的强大可靠的工具来发送你的 email。Mutt 比起 Mozilla mail, evolution 都要强大的多,但是它显然是某些"专家"才能使用的工具,普通用户还是只能用 Mozilla mail 或者 evolution。所以很感谢 Mozilla mail 和 evolution 的使用者,没有你们,这两个软件可能就不能得到用户的反馈和改进了。别怕!什么专家啊,吓你的 :) 我为你准备了一个不需要成为专家就能使用 Mutt 的入门文档,看这里。

      第二,其实有Linux 下的 Mathematica,你自己去 wolfram.com 看看吧,800 多美元就能买到。由于 Linux 性能良好,很多科学家,工程师开始使用 Linux, 所以商业的科学工程程序,比如 Matlab, Mathematica, AutoCAD, Design Compiler, HSpice ......很多都移植给了 Linux。当然它们可能不是免费的,但是它们值那个价钱(也许吧)。如果你喜欢自由软件,很多商业程序有对应的自由软件,比如你可以用 MAXIMA 来代替 Mathematica,用 octave 代替 Matlab ......而且你可能会发现它们很多时候比它们对应的商业程序好!

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

      有一个完全类似的程序,但是由于它乍一看不漂亮,被你忽略了。
用惯了 Windows 的用户最容易出现这种情况,因为 Windows 的程序看起来都是相当漂亮的。所以大部分人看到像 Mutt, FVWM 这样的程序根本就不会考虑用它们,而另外去找一些像 Windows 程序的程序来用。

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

      我曾经也犯过这样的错误,从外表区分一切。结果优秀的 FVWM, lftp, Mutt, wget 都被我忽略过。当我被别的不稳定的程序惹恼了,找回它们的时候,就像发现了新大陆 :)

      我第一次看到 FVWM 觉得它只不过是一个有很厚很难看边框的东西,可是现在,我的同学看到我的 FVWM 都说:"哇!真漂亮。" 你甚至可以让 FVWM 比 Windows XP 还漂亮。某些初次见面没有迷住你的程序,很有可能让你二见钟情,以至于伴你终生哟。这就是所谓的魅力吧 :)

      有另一种完全不同的方式可以达到相同的目的,甚至更好。很多人很关心 Open Office, Star Office, AbiWord, ... 他们多么盼望有一天某一个 Linux 程序能够完全兼容的打开一个复杂的 doc 文档。但是你不需要再等了,鼓起勇气,你今天就能得到一个比 Office 的 Word 和 PowerPoint 更好的东西。

      你看看那些高水平的学术杂志,论文,那些大学教授的网页,那些漂亮的幻灯片,它们是什么做的?原来 UNIX 用户早就有非常方便的 troff, LaTeX, SGML, XML 等东西可以处理文档,而且它们比起 Word 都要方便的多。

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

介绍一些使用 Linux 的经验

      使用配置文件定制程序行为很多人喜欢用鼠标点菜单来配置程序,可是,鼠标虽然是很好的工具,但是它的表达能力是有限的。你不可能光用鼠标就让电脑完全明白你的意思,它毕竟只有3个按钮。看看我的MetaPost页你就能体会到鼠标的这一弱点。所以我们虽然很喜欢鼠标,但是却不能完全依赖它。

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

      当然不是。因为图形界面配置方式的能力是极其有限的,而配置文件里的符号的表达能力却是无限的。用图形界面配置这些程序的话,如果你想达到配置文件的效果,你需要成百上千的菜单,checkbox, radio button, ... 到时候你根本没办法找到你需要修改的地方了!

      配置文件其实比菜单方便。你在配置文件里可以完全发挥编辑器的强大功能。你可以任意搜索到你需要的配置选项。配置文件的语法都有很多相似之处,一般就是一些命令,设置一些变量,参数,...... 一旦用会了一个,其它的也就容易理解了。

      你有没有发现有些菜单配置的程序,连IP地址都会被分开在4个文本框里,你不能一次性把外面的IP地址拷贝进去,也不能拷贝出来,也不能整体删除,多麻烦。要是以太网物理地址,那岂不是要分成6个文本框!不知道这种程序的设计者是怎么想的,竟然还有很多人模仿这种方式。

      配置文件对程序设计者有较高要求。你发现了吗,写一个使用配置文件的程序要比写一个菜单配置的程序难度大。有些程序的配置文件里,有命令,有变量,有正则表达式,...... 它们的顺序可以是任意的。你想想的设计难度有多大。而一个菜单配置的程序,所有的选项都被设计者固定下来了,你只有那么几个选择,它的设计难度要低的多。比如那种把IP地址分成4个文本框的程序,只不过是为了避免写代码去验证用户输入的IP的合法性,因为这样你就不可能输入 12344.343#2344.430 这样非法的 IP,但是这给了用户很多不方便。

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

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

      他其实不懂 Xwindow 的原理,没有明白 Xwindow 的好处,或者是他被 Gnome 和 KDE 那样不稳定的 "Xwindow" 给弄烦了。console 方式对于网络管理员可能比较方便,有时甚至是唯一的选择。但是,对于普通人,不用 Xwindow 显然是非常不方便的,想一想你连函数曲线都不能画出来!在X的xterm, rxvt下就能完成 console 的所有功能,何乐而不为?

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

      理解 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 的输入方式来输入命令行,我就是这么做的。一个程序可以调用另外一个程序来得到数据,可以把数据交给它处理后返回来,可以在自己的窗口里"嵌入"另外一个程序。

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

Linux 应用程序简介

      现在我告诉你怎样用 Linux 处理很多事情。

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

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

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

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

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

      我曾经惭愧的使用着盗版的 Mathematica,后来我发现了自由的 MAXIMA,经过一段时间的学习,我发现 MAXIMA 比 Mathematica 更严密,更方便,更自然,它是更适合处理数学问题的工具。

几点忠告不要"玩 Linux"

 

      很多人用 Linux 的时候会感觉很迷茫,该用哪个发行呢?是不是我少装了什么?怎么升级这么快啊!怎么这么不稳定!每当遇到新的软件他就想试用,每当新的版本出现,他就更新,然后用鼠标在新的菜单里选择从来没见过的程序来用用。

      其实你是为了Linux而使用Linux,而没有找到正确的理由来利用 Linux。你首先要明确用电脑的目的,你用它是为了解决你的实际问题,而不是为了学习安装操作系统,不是为了测试哪个版本好用,更不是因为你硬盘太大了,你想多占点空间。

      如果你启动了电脑之后不知道应该干什么,那么最好先不要用电脑,因为你可能有更重要的事情需要做。

不用挑剔发行版本

 

      很多人刚开始用 Linux 的时候,总是在怀疑别的发行版本是否比自己正在用的这个好,总是怀疑自己以后时候会失去支持,不得不换用别的发行。所以很多人今天是 Redhat,明天又换成了 debian, 一会儿又是 gentoo, ...... 甚至有的人在一台机器上装了两个版本的 Linux,然后比较哪一个好。

      其实你完全没有必要这样做,任何发行,只要你熟悉了,你在上面的工作方式几乎是不会受到任何影响的。你常常听说 Debian 的更新比 Redhat 快,包比 Redhat 多,但是你可以比 Debian 更新还要快,直接到你需要的程序的主站点下载源码来编译就是了。

      Debian, TurboLinux, SuSE, Redhat, Gentoo, ... 任何一个版本都是不错的。

不用跟 Windows 比较

 

      很多人在讨论区不断的引起 "Linux vs. Windows" 之类的讨论,甚至争的面红耳赤,这是没有必要的。因为各人的需要不同,生活的环境不同,你不可能得到一个定论。我们需要尊重别人的选择,这是你在进行任何对工具的讨论前需要提醒自己的事情。面对一些容易引起争论的东西:Word 和 TeX;Emacs 和 VIM;MAXIMA,Mathematica 和 Maple;Gnome,FVWM 和 KDE;Mutt 和 Pine ...... 一定要冷静。

      你需要关心的不是你的工具是什么,而是你用它做了什么。精通 Linux 并不说明任何问题,因为它只是一个工具而已。如果你用 Windows 能很好的完成你的任务,那你就没有必要费时间去熟悉 Linux。直到有一天你发现一项任务只有 Linux 才能完成的时候再换也不迟,因为你身边的 Linux 的爱好者一定会很乐意的帮助你。

直接从源码安装程序


      很多人放着最新的源码不用,等着有人帮他做出 rpm, deb, 才能安装。我说你为什么不用源码编译,这样版本比 rpm 高的多,有很多新功能,而没有烦人的依赖关系。可是他说:"要是我用源码编译安装,卸载的时候就不方便了,会留下很多垃圾。"

      为什么程序还没有安装你就想到卸载?难道你不知道这个程序是用来做什么的?你应该改变到处找程序来试用的作法,而应该先了解一下到底那些程序有同样的功能,听听别人的意见,看看它们各有什么长处和短处,然后挑一个最适合你的程序来用。

      从源码编译安装程序,不但比你装rpm更适合自己的机器设置,而且它们一般会装到 /usr/local 目录,这样你以后如果换硬盘重装系统,也可以把以前 /usr/local 下的程序原封不动拷贝过去用。我的 /usr/local 下有 2G 之多的程序,你想要是我有一台新机器要重新安装,然后配置,得花费多少时间?实际上我曾经通过网络把它们传到一台新机器上,然后就出去吃晚饭,回来时我就得到了另一台一摸一样的 Linux 机器。

      确实要卸载 make install 的程序怎么办呢?答案是直接删掉。别以为直接删掉程序会留下垃圾,引起"系统不稳定"。(btw: 这是谁教你的啊?呵呵。) make install 无非就是把可执行程序放在 /usr/local/bin, 把某些函数库放在 /usr/local/lib,把数据文件放在 /usr/local/share 下一个它自己的目录,你把这些东西都删掉就行了,不会留下垃圾,即使真的留下一点文件没有删掉也占不了多少空间,更不可能引起系统不稳定。UNIX 就是这么简单 :)

      但是有几个程序不建议从源码安装,它们是 Mozilla, Open Office, ... 它们编译时会占用你几个G的空间和好几个小时的时间,这种花费我觉得是不值得的,因为你不能从编译得到更多好处,不如直接安装编译好的版本。

不要盲目升级


      不知道这是心理作用还是什么,有的人看到比较大的版本号,就会很想换成那个。很多人的 Redhat 本来配置的很舒服了,可是一旦 Redhat 发行新的版本,他们就会尽快下载过来,然后选择升级安装。结果很多时候把自己原来修改得很好的配置文件给冲掉了。新的软件又带来了新的问题,比如有一次我的 rxvt 升级到 2.7.8 就跟 miniChinput 冲突了,升级到 Redhat 8.0,发现 xmms 居然缺省不能放mp3了,XFree86 的 xtt 模块在 I810 上有新的 bug,会导致 Mozilla 突然退出。

      如果你已经配置好了一切,千万别再整体升级了,这会浪费你很多很多时间的,不值得。如果需要的话,你可以只把某些部件升级,比如内核,glibc, gcc, XFree86,...

使用 UNIX 的经典程序

 

      好的程序一般都是可以很方便的在很多种 UNIX 上移植的,bash, VIM, Emacs, Mutt, FVWM, xterm, 都是这样。如果你用这些程序,你就可以在 Sun, HP, ... 等工作站上也装上,这样你在各种机型上的工作环境就几乎完全一样了!你不需要在 Sun 上面用 CDE,在PC上又换成 KDE,在它们上面都装一个 FVWM,使用相同的配置文件,就能得到一致的界面。

      这些程序大部分都是久经考验的,是经过很多人多年开发的结果。它们功能完善,各种情况都考虑周全,绝对是你的好助手。

不要配置你不需要的东西


      如果你只想做一个像我这样的普通用户,主要目的是用 Linux 来完成自己的科研任务和日常工作,那就可以不用系统管理员或者网络管理员的标准来要求自己,因为当一个系统和网络管理员确实很辛苦。普通用户学习那些不经常用到的复杂的维护系统的工具,其实是浪费时间。

      我不是一个合格的网络管理员,我的服务器都只设置了我自己需要的功能,设置好 ssh, ftp 已经足够了,那样可以省去我很多麻烦。我从来不过度考虑"安全",因为 Linux 缺省已经很安全了。我没有磁带机,就不用管 tar 的那些稀奇古怪的参数了,czf, xzf, ztf 已经可以满足我所有的需要。

不用忙着看内核源码


      除非你想研究操作系统,否则还是先把怎么使用 Linux 掌握好再说吧。我以前看了那么多内核源代码,写了驱动程序,结果最后发现我还是一只很多事情不能用 Linux 解决的菜鸟 :) 吸取我的教训吧,你应该首先掌握 shell,Xwindow 的使用和原理,它们可不比内核简单。

      处理日常事务的 Linux 程序和它们的配置下面列出我常用的一些 Linux 程序。一个列表里可能有很多,那是为了方便你来选择,我列出了比较信得过的。但其实很多只有第一个是我真正在用的,因为我不喜欢试用程序。

我建议一些简单的使用方式,一般就一句话。

Shell: bash。它结合了 csh 和 ksh 的优点,并且有 readline 功能,你可以随意绑定自己的键盘,使用 emacs 或者 vi 的方式都可以帮助你高效的输入命令行。info bash 可以得到非常详细的 bash 说明书,为了高效的使用 bash,你最好看看这个。你可以按照这个说明自己写一个 .bashrc,你还可以写一个 .inputrc 来配置 readline 库,这样其它使用 readline 的程序也可以使用同样的方法输入,非常好。
编辑器: VIM, Emacs。VIM 是 vi 的改进,建议先熟悉一下 VIM,因为很多其它程序比如 tin, Mutt, Firebird BBS 使用类似 VIM 的键绑定,VIM 的键帮定跟正则表达式很有关系,比如 "^" 和 "$"。在 UNIX 机器上,有时你被迫只能用 vi,而 vi 是 modal 的,如果先熟悉了 Windows 的编辑器会比较难以接受 VIM 的工作方式,所以你需要适应一下。
程序开发: gcc, make, ld, Scheme48, gcl, j2sdk, Perl, Python, Tcl/Tk ... 这个的配置没什么好说的,自己用什么就去看看文档吧。
文档工具:LaTeX, ConTeXt,TeXmacs。LaTeX 可以用来写论文或者简单的幻灯片,ConTeXt 可以作出非常漂亮的屏幕文档。TeXmacs 可以非常舒服的,所见即所得(WYSIWYG)的编辑文档,它比 Word,WordPro,WPS,lyx 都要 WYSIWYG,它才是真正的WYSIWYG,非常漂亮。配置方法看我的 TeX 网页。
绘图工具:MetaPost。这个语言太强了,以至于我只用它了。你不熟悉的话可以用 xfig, dia 来画一些流程图之类的图片。配置方法看我的 MetaPost 网页。
图像处理:ImageMagick。其中的 import 程序可以屏幕抓图,convert 程序可以转换图像格式,display 可以显示图片和简单编辑(缩放,换质量,转格式,简单绘图,简单虑镜)。通常我就这么点需要。如果你要更强大的图像工具可以用 Gimp, 它几乎和 Photoshop 差不多。自己man一下 import, convert 就知道怎么用了,display 显示图片后在图片上点击鼠标会有菜单,很简单的,不多说了。
自动管理工具:make。我可以用make来自动编译程序,自动编译文档,自动更新插图...... 全自动,而且不会让机器重复劳动。你看看 info make,那是一份非常详细的教你怎么写 Makefile 的文档,比任何其它书籍都好。
数值计算程序:Octave。这个程序基本上可以实现 Matlab 所有的数值计算功能,而且语法跟 Matlab 一样。
代数计算程序:MAXIMA。这个程序基于世界上最老的计算机代数系统之一: Macsyma 系统。它是用 Common Lisp 实现的。很多现在的符号计算程序比如 Maple 都从 MAXIMA 身上学到很多东西。它现在以GPL发行,永远是一个自由软件。
加密程序:GnuPG。我的 PGP 密钥就是它搞出来的。
打包,压缩程序。什么都有: tar, gzip, bzip2, zip, rar, ... 对于 tar 通常你只需要知道3种参数: zxf(解包),zcf(打包), ztf(看包里有什么文件)。其它的就不多说了。
虚拟光驱程序:Linux 不需要虚拟光驱程序,要看一个iso文件的内容,直接 mount 就行了。比如 mount -o loop mycd.iso /mnt/cdrom。要把光盘做成一个iso文件,用dd就行了,比如如果你的光驱是 /dev/hdb,那么: dd if=/dev/hdb of=mycd.iso 就可以做一个光盘镜像文件叫做 mycd.iso.
ftp 服务器:proftpd, vsftpd。proftpd 功能很强,但是我只用了最简单的一种设置。
WWW 服务器:apache。(我一般没有开)
ftp 客户程序:lftp,ncftp。它们都是文本方式操作的,但是比起图形界面的方便的多。比如 lftp 几乎具有 bash 的所有方便功能,Tab 补全,bookmark, queue, 后台下载,镜像...... Linux 也有图形界面的 ftp 客户程序,但是大多不稳定,有很多问题。这就是很多人抱怨 Linux 不如 Windows 的一个小原因。还有很多人用 Wine 模拟 Windows 的 leapftp,其实 lftp 比 leapftp 好很多,你需要的只是适应一下。它的工作方式很像 bash,所以建议你熟悉一下 bash。
自动下载工具:wget。它非常稳定,有一次我下载一个程序,用 IE 和 Mozilla 下载回来的文件都是坏的,最后还是 wget 可靠的传输了数据。用它甚至可以镜像整个网站,比起 WebZip 这样的 Windows 程序强多了,而且不会因为你不付钱就在下载回来的网页里强制插入广告。info wget 可以得到完整的使用说明。
虚拟终端:rxvt, xterm, gnome-terminal, mlterm, ... 这些配置都使用 Xwindow 程序的标准配置方法,在 .Xdefaults 里写一些东西。
X server: XFree86
窗口管理器:FVWM。编译加入了 libstroke。详细使用方法见我的FVWM网页。
中文输入:XSIM。被我修改过以适应 FVWM 的需要。另外推荐你还可以用 SCIM。
Email 处理:Mutt + sendmail(Postfix) + fetchmail。配置方法见我的 Mutt 网页。
看 PDF, PS, DJVU 文件:Acrobat Reader, xpdf, GhostScript, gv, djvu工具包和 netscape 插件。它们都是可以免费得到的。
看CAJ, 超星文档:CAJviewer 好像没有 Linux 版本,不知道为什么。如果找不到PDF,PS 或 DJVU,直接去图书馆借最好,屏幕阅读伤眼睛。
看网页:Mozilla, Phoenix, lynx。Mozilla-Xft 的显示效果比 IE 好很多。
英汉字典:IBM智能词典,星际译王。
编辑网页:我用 VIM 直接写 HTML。你如果想要图形方式的可以用其它的比如 WebSphere,screem, BlueFish,它们可以构造更复杂的网页。
登录其它 UNIX, Linux 机器:openSSH, telnet。我喜欢用 openSSH 把其它机器的 X 程序通过 ssh 加密的隧道传到我机器上显示。
登录 Windows2000 server 的 display service: rdesktop,...我有一天试了一下,不错。后来就没有用过了。
同步程序:rsync。我用 rsync 通过 ssh 来跟某些机器同步数据,或者做自己机器上不同目录间的同步。
上BBS:rxvt(或任何一种终端) + telnet + chatbot(helloooo 机器人的程序)
QQ, ICQ, MSN messenger: 我没有 QQ, ICQ 或 MSN。不过你可以用 Gaim, 它同时支持 QQ, ICQ 和很多其它的即时通信方式。ICQ 用户也可以用 Licq。
放录像:MPlayer, RealPlayer。MPlayer 太好了,直接就可以放 VCD, DVD, divx, wma, wmv ... 用 Windows 的同学都很羡慕我,说 Windows 要放这个需要大堆插件。rm 最好还是用 realplayer 放,它也是免费的。
放音乐: xmms(mp3,ogg都可以), mpg321(放mp3), ogg123(放ogg)。mpg321 不如 xmms 管理音乐文件那么方便,但是有时我还是用 mpg321 放 mp3 作为背景音乐,因为懒得开一个xmms窗口 :)
游戏:我已经很久没有玩电子游戏了。不过我觉得 KDE 的那个 ksokoban(推箱子),很好玩。大型游戏比如 Quake 也有 Linux 版本。
看 Word 文档或PPT:简单的就用 OpenOffice。偶然遇到太复杂的doc,ppt文档用OpenOffice打不开,就请人把它转为 PDF 或 PS(PostScript) 再给我,文档里没有特殊的格式干脆就用文本吧,何必那么麻烦。还好,我们系发通知都用文本,PDF,甚至图片。我觉得大家应该体谅贫穷的没有 Word 的用户,不要以为每个人都用盗版软件。PDF 和 PS 是世界通用的跨平台的文档交换格式,建议大家把 Word, PPT 转化成 PDF 或 PS 再给别人看。


推荐阅读
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • 深入解析:RKHunter与AIDE在入侵检测中的应用与优势
    本文深入探讨了RKHunter与AIDE在入侵检测领域的应用及其独特优势。通过对比分析,详细阐述了这两种工具在系统完整性验证、恶意软件检测及日志文件监控等方面的技术特点和实际效果,为安全管理人员提供了有效的防护策略建议。 ... [详细]
  • 探索 PHP 8.0 的重大更新:轻松获取年度月份数据
    PHP 8.0 引入了多项重要更新,包括增强的类型系统、全新的 JIT 编译器以及联合类型等特性。这些改进不仅提升了性能,还简化了开发流程。本文将重点介绍如何利用 PHP 8.0 的新功能轻松获取年度和月份数据,为开发者提供更高效、更简洁的解决方案。 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 利用Redis HyperLogLog高效统计微博日活跃和月活跃用户数
    本文探讨了如何利用Redis的HyperLogLog数据结构高效地统计微博平台的日活跃用户(DAU)和月活跃用户(MAU)数量。通过HyperLogLog的高精度和低内存消耗特性,可以实现对大规模用户数据的实时统计与分析,为平台运营提供有力的数据支持。 ... [详细]
  • 在操作系统中,阻塞状态与挂起状态有着显著的区别。阻塞状态通常是指进程因等待某一事件(如I/O操作完成)而暂时停止执行,而挂起状态则是指进程被系统暂时移出内存,以释放资源或降低系统负载。此外,本文还深入分析了`sleep()`函数的实现机制,探讨了其在不同操作系统中的具体实现方式及其对进程调度的影响。通过这些分析,读者可以更好地理解操作系统如何管理进程的不同状态以及`sleep()`函数在其中的作用。 ... [详细]
  • 在Linux系统中,MySQL的用户权限管理是运维人员必须掌握的关键技能之一。本文详细介绍了MySQL用户和权限管理的相关概念,包括MySQL用户的概念及其与VSFTPD虚拟用户的相似性,以及密码管理的重要性。此外,还深入探讨了如何通过命令行工具和配置文件进行用户权限的设置和调整,确保系统的安全性和稳定性。 ... [详细]
  • 深入RTOS实践,面对原子操作提问竟感困惑
    在实时操作系统(RTOS)的实践中,尽管已经积累了丰富的经验,但在面对原子操作的具体问题时,仍感到困惑。本文将深入探讨RTOS中的原子操作机制,分析其在多任务环境下的重要性和实现方式,并结合实际案例解析常见的问题及解决方案,帮助读者更好地理解和应用这一关键技术。 ... [详细]
  • Docker网络基础探讨了如何通过高效的技术手段实现跨主机容器间的顺畅通信与访问。本文深入分析了Docker网络架构,特别是其在多主机环境下的应用,为Go语言开发者提供了宝贵的实践指导和理论支持。 ... [详细]
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
  • 黄聪:MySQL主从复制配置,实现高效读写分离
    大型网站为应对高并发访问,不仅需要在前端实现分布式负载均衡,还需在数据业务和访问层采取有效措施。采用传统的数据结构已无法满足需求,通过配置MySQL主从复制,可实现高效的读写分离,显著提升系统性能和稳定性。 ... [详细]
  • MacOS双系统安装指南:十分钟速成,轻松省下数百元! ... [详细]
  • 综合实训 201521440015
    Chinesepeople’publicsecurityuniversity网络对抗技术实验报告实验五综合渗透学生姓名常泽远年级15区队4指导教师高见信息技术与网络安全学院2018 ... [详细]
author-avatar
手机用户2602879695
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有