Linux该如何学习?
Posted 人邮异步社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux该如何学习?相关的知识,希望对你有一定的参考价值。
为什么大家老是建议学习Linux最好能够先舍弃X-Window的环境呢?这是因为X-Window了不起也只是Linux内的“一个软件”而不是“Linux内核”。此外,目前开发出来的X-Window在系统的管理上还是有无法掌握的地方,举个例子来说,如果Linux本身识别不到网卡的时候,请问如何以X-Window来识别这个硬件并且驱动它呢?
还有,如果需要以Tarball(源代码安装包)的方式来安装软件并加以设置,请以X-Window来完成,这可能吗?当然可能,但是这是在考验“X-Window开发商”的技术能力,对于了解Linux架构与内核并没有多大的帮助。所以说,如果只是想要“会使用Linux”的角度来看,那么确实使用X-Window也就足够了,反正搞不定的话,花钱请专家来搞定即可,但是如果想要更深入Linux的话,那么命令行模式才是不二的学习方式。
以服务器或是嵌入式系统的应用来说,X-Window是非必备的软件,因为服务器是要提供客户端来联机的,并不是要让用户直接在这台服务器前面按键盘或鼠标来操作的,所以图形用户界面模式当然就不是这么重要了。更多的时候甚至大家会希望你不要在服务器主机上启动X-Window,这是因为X-Window通常会使用很多系统资源的缘故。
再举个例子,假如你是个软件服务的工程师,你的客户人在台北,而你人在远方的台南。某一天客户来电说他的Linux服务器出了问题,要你马上解决,请问:要您亲自上台北去修理?还是他搬机器下来让你修理?或是直接请他开个账号给你远程登录进去设置即可?理所当然,就会选择开账号给你进入设置即可,因为这是最简单而且迅速的方法。这个方法通常使用命令行模式会较为简单,使用图形用户界面模式则非常麻烦。所以,这时候就得要学学命令行模式来操作Linux比较好。
另外,在服务器的应用上,文件的安全性、人员账号的管理、软件的安装/修改/设置、日志文件的分析以及计划任务与程序的编写等,都是需要学习,而且这些东西都还未涉及服务器软件。这些东西真的很重要,所以,建议你依据下面的介绍来学习。
这里是站在要让 Linux成为自己好用的工具(服务器或开发软件的程序学习平台)为出发点去介绍如何学习的。所以,不要以旧有的MS Windows 角度来思考,也不要说“你都只有碰过触摸式设备”的角度来思考。
一 从头学习Linux基础
其实,不论学什么系统,“从头学起”很重要。还记得你刚刚接触微软的Windows都在干什么吗?还不就是由文件资源管理器学起,然后慢慢玩到控制面板、玩到桌面管理,然后还去学办公软件,我想,你总该不会直接就跳过这一段学习吧?那么Linux的学习其实也差不多,就是要从头慢慢学起。不能够还不会走路之前就想要学飞了吧!
常常有些朋友会写信来问鸟哥一些问题,不过,邮件中大多数的问题都很基础。例如:“为什么我的用户个人网页显示我没有权限进入?”、“为什么我执行一个命令的时候,系统告诉我找不到该命令?”、“我要如何限制用户的权限”等的问题,这些问题其实都不是很难,只要了解了Linux的基础之后,应该就可以很轻易地解决掉这方面的问题。所以请耐心慢慢的、将后面的所有章节内容都看完,自然你就知道如何解决。
此外,网络基础与安全也很重要,例如TCP/IP的基础知识,网络路由的相关概念等。很多的朋友一开始问的问题就是“为什么我的邮件服务器主机无法收到邮件?”这种问题相当的困扰,因为可能的原因太多,而朋友们常常一接触Linux就是希望“搭建网站”,根本没有想到要先了解一下Linux的基础,这是相当伤脑筋的问题。尤其近来计算机骇客(Cracker)相当多,一不小心您的主机就被当成骇客跳板,甚至发生被警告的事件也层出不穷。这些都是没能好好的注意一下网络基础的原因。
所以,鸟哥希望大家能够更了解Linux,好让它可以为你做更多的事情,而且这些基础知识是学习更深入的技巧的必备条件,因此建议:
1.计算机概论与硬件相关知识
因为既然想要走Linux这条路,信息技术相关的基础技能也不能没有,所以先理解一下基础的硬件知识,不用一定要全懂。又不是真的要你去组装计算机,但是至少要“听过、有概念”即可。
2.先从Linux的安装与命令学起
没有Linux怎么学习Linux?所以好好地先安装一个你需要的Linux吧!虽然说Linux发行版很多,不过基本上架构都是大同小异,差别在于界面的亲和力与软件的选择不同罢了。选择一个你喜欢的就好,倒是没有哪一个特别好这一说。
3.Linux操作系统的基础技能
这些包含了“用户、用户组的概念”、“权限的观念”、“程序的定义”等,尤其是权限的概念,由于不同的权限设置会影响你的用户的便利性,但是太过于便利又会导致入侵的可能,所以这里需要了解一下你的系统。
4.务必学会vi文本编辑器
Linux的文本编辑器多到会让你数到生气,不过,vi却是强烈建议要先学习的,这是因为vi会被很多软件所调用,加上所有的UNIX-like系统上面都有vi,所以你一定要学会才好。
5.Shell与Shell脚本的学习
其实鸟哥上面一直谈到的“命令行模式”说穿了就是一个名为Shell的软件。既然要玩命令行模式,当然就是要会使用Shell的意思。但是Shell上面的知识太多了,包括“正则表达式”、“管道命令”与“数据流重定向”等,真的需要了解比较好。此外,为了帮助你未来的管理服务器的便利性,Shell脚本也是挺重要的,要学!
6.一定要会软件管理
因为玩Linux常常会面临到要自己安装驱动程序或是安装额外软件的时候,尤其是嵌入式设备或是学术研究单位等。这个时候了解Tarball、RPM、DPKG、YUM、APT等软件管理的安装方式,对你来说就非常重要。
7.网络基础的建立
如果上面你都通过了,那么网络的基础就是下一阶段要接触的东西,这部分包含了“IP概念”、“路由概念”等。
8.如果连网络基础都通过了,那么网站的搭建对你来说,简直就是“太简单”。
在一些基础知识上,可能的话当然得去书店找书来读。如果您想要由网络上面阅读的话,那么这里推荐一下由Netman大哥主笔的Study-Area里面的基础文章,相当实用。
- 计算机基础(http://www.study-area.org/compu/compu.htm)
- 网络基础(http://www.study-area.org/network/network.htm)
二 选择一本易读的工具书
正所谓:“好的书本带你上天堂、坏的书本让你穷瞎忙。”一本好的工具书是需要的,不论是未来作为查询之用,还是在正确的学习方法上。可惜的是,目前坊间的书大多强调速成的Linux教育,或是强调Linux的网络功能,却欠缺了大部分的Linux基础管理,鸟哥在这里还是要再次强调,Linux的学习历程并不容易,它需要比较长的时间来适应、学习与熟悉,但是只要能够学会这些简单的技巧,这些技巧却可以帮助您在各个不同的操作系统之间遨游。
您既然看到这里,应该是已经取得了《鸟哥的Linux私房菜 基础学习篇》了吧!希望这本书可以帮助您缩短基础学习的历程,也希望能够带给您一个有效的学习观念。而在这本书看完之后,或许还可以参考一下Netman推荐的相关网络书籍:
- 推荐有关网络的书
http://linux.vbird.org/linux_basic/0120howtolinux/0120howtolinux_1.php
不过,要强调的是,每个人的阅读习惯都不太一样,所以,除了大家推荐的书籍之外,您必须要亲眼看过该本书籍,确定您可以吸收得了书上的内容,再去购买。
其实鸟哥买科技类书籍比较喜欢买基础书,因为基础学好了,其他的部分大概找个关键词,再去搜索引擎搜索一下,一大堆数据就可以让你去分析判断。你会说,既然如此,那基础书籍内的项目不是搜索就是一大堆?不要忘记“最开始你是要用什么关键词去搜索的?”。所以,阅读基础书籍的重点,就是让自己能够掌握住那些关键词。
三 实践再实践
要增强自己的体力,就只有运动;要增加自己的知识,就只有读书。当然,要提高自己对于Linux的认识,大概就只有实践经验了。所以,赶快找一台计算机,安装一个Linux发行版,然后快点进入Linux的世界里面晃一晃,相信对于你自己的Linux能力必然大有斩获。除了自己的实践经验之外,也可以参考网络上一些善心人士整理的实践经验分享,例如最有名的Study-Area(http://www.study-area.org)等网站。
此外,人脑不像计算机的硬盘,除非硬盘坏掉了或是数据被你抹掉,否则存储的数据将永远而且立刻记忆在硬盘中。在人类记忆的曲线中,你必须要“不断的重复练习”才会将一件事情记得比较熟。同样的,学习Linux也一样,如果你无法经常摸索的话,那么,抱歉的是学了后面的,前面的忘光光,学了等于没学,这也是为什么鸟哥当初要架设“鸟哥的私房菜”这个网站的主要原因,因为,鸟哥的忘性似乎比一般人还要大,所以,除了要实践之外,还得要常摸,才会熟悉Linux而且不会怕它。
鸟哥上课时,常常有学生问到:“老师,到底要听过你的课几次之后,才能学的会?”鸟哥的标准答案是:“你永远学不会”,因为你是用“听”的,没有动手做,那么永远不会知道“经验”两个字怎么写。很多时候计算机或网络都会有一些莫名其妙的突发情况,没有实际碰触过,怎么可能会理解?所以“永远是不可能听会的”,为啥要实验?因为实验过后你才会有经验,否则实验结果课本都有。不是背一背就好了,干嘛实验?浪费钱吗?
四 发生问题怎么处理
我们是人不是神,所以在学习的过程中发生问题很常见。重点是,我们该如何处理在自身所发生的Linux问题?在这里鸟哥的建议这样的学习流程:
1.在自己的主机/网络资料库上查询HowTo或FAQ
其实,在Linux主机及网络上面已经有相当多整理出来的FAQ。所以,当你发生任何问题的时候,除了自己检查,或到上述的实践网站上面查询一下是否有设置错误的问题之外,最重要的当然就是到各大FAQ的网站上查询。以下列出一些有用的FAQ与HowTo网站给您参考一下:
- Linux自己的文件数据:/usr/share/doc(在你的Linux系统中)
- The Linux Documentation Project:http://www.tldp.org/
上面比较有趣的是那个TLDP(The Linux Documentation Project),它几乎列出了所有Linux上面可以看到的文献数据,各种HowTo的做法等,虽然是英文,不过很有参考价值。
除了这些基本的FAQ之外,其实,还有更重要的问题查询方法,那就是利用Google帮您去查找答案。在鸟哥学习Linux的过程中,有什么奇怪的问题发生时,第一个想到的,就是去搜索引擎查找是否有相关的信息。举例来说,我想要找出Linux下面的NAT,只要在上述的搜索引擎网站内,输入Linux跟NAT,立刻就会显示一大堆资料,真的相当的优秀好用。您也可以通过搜索引擎来找鸟哥网站上的数据。
- Google:http://www.google.com
- 鸟哥网站:http://linux.vbird.org/Searching.php
2.注意信息输出,自行解决疑难杂症
一般而言,Linux在执行命令的过程当中,或是log file(日志文件)里面就可以自己查得错误信息,举个例子来说,当你执行:
[root@centos ~]# ls -l /vbird
由于系统并没有 /vbird 这个目录,所以会在屏幕前面显示:
ls: /vbird: No such file or directory
这个错误信息够明确了吧!系统很完整地告诉您“查无该数据”。所以,请注意,发生错误的时候,请先自行以屏幕前面的信息来进行 debug(除错)的操作,然后,如果是网络服务的问题时,请到/var/log/这个目录里面去查看一下log file(日志文件),这样可以几乎解决大部分的问题。
3.查找过后,注意网络礼节,讨论区大胆的发言
一般来说,如果发生错误现象,一定会有一些信息对吧!那么当您要请教别人之前,就得要将这些信息整理整理,否则网络上人家也无法告诉您解决的方法,这一点很重要。
万一经过了自己的查询,却找不到相关的信息,那么就发问吧!不过,在发问之前建议您最好先看一下“提问的智慧
http://phorum.vbird.org/viewtopic.php?t=96”这一篇讨论,然后,你可以到下面几个讨论区发问看看:
- 酷学园讨论区http://phorum.study-area.org
- 鸟哥的私房菜馆讨论区http://phorum.vbird.org
不过,基本上去每一个讨论区回答问题的熟手,都差不多是那几个,所以,您的问题“不要重复发表在各个主要的讨论区。”举例来说,鸟园与酷学园讨论区上的朋友重复性很高,如果您两边都发问,可能会得到反效果,因为大家都觉得,另外一边已经回答您的问题了。
4.Netman大大给的建议
此外,Netman兄提供的一些学习的基本方针,提供给大家参考:
- 有系统地设计文件目录,不要随便到处保存文件以至于以后不知道放哪里了,或找到文件也不知道为何物。
- 养成一个做记录的习惯。尤其是发现问题的时候,把错误信息和引发状况以及解决方法记录清楚,同时最后归类及定期整理。别以为您还年轻,等再多弄几年计算机,您将会非常庆幸有此习惯。
- 如果在网络上看到任何好文章,可以为自己留一份备份,同时定好题目,归类存盘。(鸟哥注:需要注意知识产权)。
- 作为一个用户,人要迁就机器;做为一个开发者,要机器迁就人。
- 学写脚本的确没设置服务器那么好玩,不过以我自己的感觉是:关键是会得“偷”,偷了会得改,改了会得变,变则通矣。
- 在Windows里面,设置不好设备,您可以骂它;在Linux里面,如果设置好设备,您得要感激它。
以上回答来自《鸟哥的Linux私房菜 基础学习篇》一书。
《鸟哥的Linux私房菜 基础学习篇》
这本书确实是为Linux新手所写的,里面包含了鸟哥从完全不懂Linux到现在的所有历程。因此,如果您对Linux有兴趣,那么这本书理论上应该是可以符合您的需求。由于Linux的基本功比较无聊,因此很多人在第一次接触就打退堂鼓了,非常可惜!您得要耐得住性子,要有刻苦耐劳的精神,才能够顺利地照着本书的流程阅读下去。
由于操作系统非常难,因此Linux并不好学。而且操作系统每个部分都是息息相关的,不论哪本书籍,章节的编排都很伤脑筋。建议您使用本书时,看不懂或者是很模糊的地方,可以先略过去,全部的文章都看完之后,再从头仔细地读一遍并做一遍,相信就能够豁然开朗起来。此外,“尽信书不如无书”,只读完这本书,相信您一定不可能学会Linux,但如果照着这本书里面的范例实践过,且在实作时思考每个指令动作所代表的意义,并且实际自己去学习过在线文档,那么想不会Linux都不容易啊!这么说,您应该清楚如何学习了吧?没错,实践与观察才是王道。
以上是关于Linux该如何学习?的主要内容,如果未能解决你的问题,请参考以下文章