本文是我之前发表在LAMP兄弟连所创办的《草根》杂志上的一篇文章,现发布与此,转载请注明转载自《草根》- http://gr.lampbrother.net 
前些日子有朋友问我,应该如何学习Linux,“如何学习”这类问题期很多学生也常常问我,在此我集中做一个解答,希望能给Linux初学者一些帮助。

其实不管学习哪一门技术或者语言,总有同样的一个绕不开的话题就是学习环境的搭建,俗话说“磨刀不误砍柴工”,选择一个合适的版本的Linux系统显得尤为重要,而这个问题也是大多数初学者较为头疼的一个问题,对于这个问题,我觉得:

如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大量的钱购买商业软件,不想自己定制也不想在系统上浪费太多时间,可以选择Ubuntu;如果你想深入摸索一下Linux的各个方面的知识,而且还想非常灵活的定制自己的Linux系统,那么就选择Gentoo吧,尽情享受Gentoo带来的自由快感;如果你是不熟悉Linux的用户,可以使用Mandriva,它漂亮的界面和易用的操作会让你满意;如果你需要的是一个服务器系统,而且已经厌烦了各种Linux的配置,只是想要一个比较稳定的服务器系统而已,那么建议你选择RHELCentOS,当然如果对系统稳定性要求很高的用户也可以考虑DebianFreeBSD;如果需要使用数据库高级服务和电子邮件网络应用的用户可以选择SUSE;如果特别痴迷于新技术体验和追求最新的软件版本,可以选择Fedora,它更像一个华丽的大玩具;如果爱用国货喜欢更好的中文环境支持,可以选择红旗Linux……

其实Linux虽然发行版本众多,但是系统的核心——内核却都是系出同门,所以只要学会其中一种,即可触类旁通。

好了,说完了环境,开始学习Linux之前一定要记得一点那就是:忘记Windows的思维方式。这是一种理念,也是一种必须。

思想的转变比暂时性的技术提高更重要,因为它能帮助你加快学习速度,很多人使用Linux时骨子里却都是Windows的思想,比如基本每次讲Linux安装都会有学生问我,“老师,是把Linux装在C盘?”,可见被Windows毒害之深。Windows是一个优秀的系统,它的易用性非常好,不过也正是因为易用性好,使用者往往不了解自己所做操作的原理,很多应用浮于表面。

比如,大多初学者已经习惯了使用Windows的图形界面来完成操作,可是我们在学习和日后使用Linux时基本都是在命令行模式下,这让很多初学者很头疼也很困惑。这里,最大的问题是“如何有效利用系统资源”,X Window本身相当消耗系统资源,一旦打开X Window,内存几乎被“吃光”,其他工作如何能高效运行呢?这也就是为什么在很多图书与网站中都会提到当用户架构网站的时候,不要启动图形用户界面的原因。如果我们想深入了解Linux,就必须学习命令行模式。

所以,我们在开始学习Linux之前,要尽量不被Windows的思想所束缚。这其实是一个使用习惯的问题,我常常想,如果我们第一个接触的操作系统就是Linux,之后我们再学习Windows,可能我们也会感慨“这个Windows系统为什么必须启动图形界面才能操作”,所以说到底,就是习惯问题,在几年前我在一家台资Linux公司,曾经我们尝试在台湾的小学开设Linux课程,叫“小小站长”,当时公司甚至发布了针对小学生的Linux版本,我想意义主要就在于建立习惯吧。

说完理念的问题,下面就该轮到大家所关心的学习过程中的常见问题了。

任何人学习和使用Linux或多或少一定会发生问题,现在很多人遇到问题的第一念头就是问知道的人,没错!可以快速解决问题,但被询问的高级用户或前辈常常不是很清楚这些Linux初学者要问什么,因为初学者根本无法完整地描述问题,所以别人可能也只能给你一半的答案。而Linux系统有一个非常大的好处是,当程序执行错误或系统设置错误时,通常都会显示一大段错误信息告诉你哪里出错了,你只要好好看懂这段信息,大概就知道问题出现在哪里应该如何解决了。但信息几乎都是英文的,所以初学者都没有耐心通篇阅读,而且也没记录错误信息是什么,以至于问的问题都是虎头蛇尾,让别人摸不到边际。因为笔者在此强烈建议你发生任何使用的问题时,记得好好看清楚错误信息,若看不懂,记得将这段信息传答给将为你解答的人,并好好转述你的完整操作步骤,如此他人将可详尽快速地帮你解答。

在通过电子邮件或论坛等提出问题之前,做以下事情:

1)      尝试搜索互联网以找到答案(Google或百度一下)

2)      尝试阅读帮助手册或相关教材、FAQ(常见问题)文档以找到答案

3)      尝试自己检查或试验以找到答案

提问时,请先表述你已经做了上述事情,这将有助于建立你不是寄生虫与浪费别人时间的印象。准备好问题,彻底地思考,轻率的提问只能得到轻率的回答,或者压根没有。在提问时,越是表现出做过思考并在努力解决问题,你越有可能得到实际帮助。

关于如何提问,我在这里不做过多的叙述,请参加著名的社区文章《提问的智慧》,其中的详细介绍值得每一个提问者阅读。

不过笔者更建议初学者多尝试自己解决问题,询问别人获得答案固然好,但是对于知识的累积性和解决问题的能力并没有太大的帮助,笔者比较倾向于我们自己不断尝试解决问题,而不是处处必须依赖别人帮你解答的Linux懒虫。在你自己寻找答案的过程中,虽然会花很多时间,也可能会遇到挫折,到那时久而久之你会发现,常常为了找一个问题的解答,却多看了好多其他的Linux文件,久了以后经验累积就会越来越丰富,以后再发生的问题时,或许你在以前就已经看过了解决方法,这就是知识的累积。

学习Linux绝非一个速成的过程,唯有通过不断的学习、阅读文件,并不间断地的练习,这样你才有可能成为一个Linux专家。若永远培养不出自我解答的能力,你懂的Linux也将永远是皮毛。

也有些初学者可能会遇到一个很实际的问题,那就是读不懂英文或者说只能似懂非懂的读其中的一部分。那么英语底子不太好的初学者该怎么学习你呢?

每次在上Linux课程“常用命令”这一讲的时候,我都要先介绍两个英文短语,一个是“No such file or directory”,另一个是“command not found”,因为我发现初学者在学习命令时问的最多的就是这两个问题,输入的文件或目录名称错误或者命令敲错。

Linux的英文提示及英文文档非常重要,不过其实计算机英语很简单,只要熟记了计算机专业英语单词,高中毕业的同学也可以轻松的阅读英文文档。即便你的英语实在太差了,连最简单的计算机英语文档都看不懂,那么在学习Linux的同时,请赶紧学习英语,每天从背几个单词开始吧!

如果你想在Linux方面有所造诣,慢慢就会发现,写的最好的、最全面的文档都是英语写的;最先发布的技术信息也都是用英语的,即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。学习时查看的帮助文档也都是英文的;安装软件时的READMEINSTALL说明也都是英文的……所以,有足够的英文阅读能力是必要的。

对于一直是Windows用户的Linux初学者来说可能会有下列一些疑问,比方说:

1Windows下的软件可不可以在Linux中正常运行?

答:不可以,不过有一个软件叫Wine,可以模拟运行一部分程序。它的衍生版本可以运行特定的软件,比如CEDEGA,可以运行很多游戏,CSWarCraft3等都可以,但还不够完美(比如笔者就碰到了在Linux下玩魔兽因部分插件导致运行缓慢)。

2Linux系统里边能不能安装相关的杀毒软件呢?

答:虽然大多数Linux使用者没有安装杀毒软件,但是确确实实有很多杀毒软件有Linux的版本,如:Avast! Mcafee KasperskyClamAV(自由软件)等。一般而言Linux不需要杀毒软件,针对Linux的病毒很少,主要是******,注意安全设置就行了。

3Linux系统中可不可播放音乐或者看电影呢?

答:当然可以,而且Linux下的软件很早就***Windows了,ffmpeg×××库就是Linux下的,MplayerLinux中大名鼎鼎的媒体播放器,功能十分强大。RealPlayer也在很早前就推出了针对Linux的版本。

4QQ是否可以在Linux下使用呢?

答:腾讯官方已经发布了QQLinux版本,虽然功能尚且相对简单。同时我们也可以选择其他的开源解决方案,比如:evaLumaQQpidgin等等。

5)如果是编程工作者,Linux支不支持一些常规的开发环境呢?

答:可以说在Windows下可以做到的基本在Linux下也都可以做到,比如对流行的语言C/C++Java PHP等的支持,Linux做的一样好,Linux下同样有很多好用的工具,如:TotalView DebuggerEclipse Zend Studio等等。