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 成为自己的好用的工具 ( 伺服器或开发软体的程式学习平台 ) 为出发点去介绍如何学习的喔!所以,不要以旧有的 Windows 角度来思考! 也不要说 『 你都只有碰过触控式设备 』 的角度来思考!加油咯!

1 从头学习 Linux 基础

其实,不论学什么系统, 『 从头学起 』 是很重要的!还记得你刚刚接触微软的 Windows 都在干什么? 还不就是由档案总管学起,然后慢慢的玩到控制台 、 玩到桌面管理, 然后还去学办公室软体,我想,你总该不会直接就跳过这一段学习的历程吧?那么 Linux 的学习其实也差不多,就是要从头慢慢的学起啦!不能够还不会走路之前就想要学飞了吧!^ _ ^!

常常有些朋友会写信来问鸟哥一些问题,不过,信件中大多数的问题都是很基础的! 例如: 『 为什么我的使用者个人网页显示我没有权限进入? 』、 『 为什么我下达一个指令时,系统告诉我找不到该指令? 』、 『 我要如何限制使用者的权限 』 等等的问题,这些问题其实都不是很难的,只要了解了 Linux 的基础之后,应该就可以很轻易的解决掉这方面的问题呢! 所以请耐心的,慢慢的,将后面的所有章节内容都看完 。 自然你就知道如何解决了!

此外,网路基础与安全也很重要,例如 TCP/IP 的基础知识,网路路由的相关概念等等 。 很多的朋友一开始问的问题就是 『 为什么我的邮件伺服器主机无法收到信件? 』 这种问题相当的困扰,因为发生的原因太多了,而朋友们常常一接触 Linux 就是希望 『 架站! 』 根本没有想到要先了解一下 Linux 的基础!这是相当伤脑筋的! 尤其近来电脑怪客 (Cracker) 相当多, ( 真奇怪,闲闲没事干的朋友还真是不少 …) ,一个不小心您的主机就被当成怪客跳板了! 甚至发生被警告的事件也层出不穷!这些都是没能好好的注意一下网路基础的原因呀!

所以,鸟哥希望大家能够更了解 Linux ,好让他可以为你做更多的事情喔! 而且这些基础知识是学习更深入的技巧的必备条件呀!因此建议:

1、计算机概论与硬体相关知识:
因为既然想要走 Linux 这门路,资讯相关的基础技能也不能没有啊! 所以先理解一下基础的硬体知识,不用一定要全懂啦!又不是真的要你去组电脑~^ _ ^, 但是至少要 『 听过 、 有概念 』 即可;

2、先从 Linux 的安装与指令学起:
没有 Linux 怎么学习 Linux 呢?所以好好的安装起一套你需要的 Linux 吧!虽然说 Linux distributions 很多, 不过基本上架构都是大同小异的,差别在于介面的亲和力与软体的选择不同罢了! 选择一套你喜欢的就好了,倒是没有哪一套特别好说~

3、Linux 作业系统的基础技能:
这些包含了 『 使用者 、 群组的概念 』、『 权限的观念 』 , 『 程序的定义 』 等等,尤其是权限的概念, 由于不同的权限设定会妨碍你的使用者的便利性,但是太过于便利又会导致入侵的可能! 所以这里需要了解一下你的系统呦!

4、务必学会 vi 文书编辑器:
Linux 的文书编辑器多到会让你数到生气!不过, vi 却是强烈建议要先学习的! 这是因为 vi 会被很多软体所呼叫,加上所有的 Unix like 系统上面都有 vi ,所以你一定要学会才好!

5、Shell 与 Shell Script 的学习:
其实鸟哥上面一直谈到的 『 文字介面 』 说穿了就是一个名为 shell 的软体啦!既然要玩文字介面,当然就是要会使用 shell 的意思 。 但是 shell 上面的资料太多了,包括 『 正规表示法 』、『 管线命令 』 与 『 资料流重导向 』 等等,真的需要了解比较好呦! 此外,为了帮助你未来的管理伺服器的便利性, shell scripts 也是挺重要的!要学要学!

6、一定要会软体管理员:
因为玩 Linux 常常会面临得要自己安装驱动程式或者是安装额外软体的时候,尤其是嵌入式设备或者是学术研究单位等 。 这个时候 Tarball/RPM/DPKG/YUM/APT 等软体管理员的安装方式的了解,对你来说就重要到不行了!

7、网路基础的建立:
如果上面你都通过了,那么网路的基础就是下一阶段要接触的咚咚,这部份包含了 『IP 概念 』『 路由概念 』 等等;

如果连网路基础都通过了,那么网站的架设对你来说,简直就是 『 太简单啦! 』
在一些基础知识上,可能的话,当然得去书店找书来读啊! 如果您想要由网路上面阅读的话,那么这里推荐一下由 Netman 大哥主笔的 Study-Area 里面的基础文章,相当的实用!

  • 电脑基础 (http://www.study-area.org/compu/compu.htm)
  • 网路基础 (http://www.study-area.org/network/network.htm)

2 选择一本易读的工具书

正所谓这: 『 好的书本带你上天堂 、 坏的书本让你穷瞎忙 …』 一本好的工具书是需要的,不论是未来作为查询之用,还是在正确的学习方法上 。 可惜的是,目前坊间的书大多强调速成的 Linux 教育,或者是强调 Linux 的网路功能, 却欠缺了大部分的 Linux 基础管理~鸟哥在这里还是要再次的强调, Linux 的学习历程并不容易, 他需要比较长的时间来适应 、 学习与熟悉,但是只要能够学会这些简单的技巧, 这些技巧却可以帮助您在各个不同的 OS 之间遨游!

您既然看到这里了,应该是已经取得了鸟哥的 Linux 私房菜 – 基础学习篇了吧! ^ _ ^ 。 希望这本书可以帮助您缩短基础学习的历程,也希望能够带给您一个有效的学习观念! 而在这本书看完之后,或许还可以参考一下 Netman 推荐的相关网路书籍:

请推荐有关网路的书: http://linux.vbird.org/linux_basic/0120howtolinux/0120howtolinux_1.php
不过,要强调的是,每个人的阅读习惯都不太一样,所以,除了大家推荐的书籍之外, 您必须要亲眼看过该本书籍,确定您可以吸收的了书上的内容,再下去购买喔!

其实鸟哥买科技类书籍比较喜欢买基础书耶,因为基础学好了,其他的部份大概找个 keyword ,再 google 一下,一大堆资料就可以让你去分析判断了! 你会说,既然如此,那基础书籍内的项目不是 google 也是一大堆?不要忘记了, 『 最开始你是要用什么关键字去 google 啊? 』 ! 所以,阅读基础书籍的重点,就是让自己能够掌握住那些 『 keyword 』 咯!加油!

3 实作再实作

要增加自己的体力,就是只有运动;要增加自己的知识,就只有读书;当然,要增加自己对于 Linux 的认识, 大概就只有实作经验了!所以,赶快找一部电脑,赶快安装一个 Linux distribution ,然后快点进入 Linux 的世界里面晃一晃! 相信对于你自己的 Linux 能力必然大有斩获!除了自己的实作经验之外,也可以参考网路上一些善心人士整理的实作经验分享喔! 例如最有名的 Study-Area(http://www.study-area.org) 等网站 。 此外,人脑不像电脑的硬碟一样,除非硬碟坏掉了或者是资料被你抹掉了, 否则储存的资料将永远而且立刻的记忆在硬碟中!在人类记忆的曲线中, 你必须要 『 不断的重复练习 』 才会将一件事情记得比较熟!同样的,学习 Linux 也一样, 如果你无法经常摸索的话,那么,抱歉的是,学了后面的, 前面的忘光光!学了等于没学,这也是为什么鸟哥当初要写 『 鸟哥的私房菜 』 这个网站的主要原因, 因为,鸟哥的忘性似乎比一般人还要好~~呵呵!所以,除了要实作之外,还得要常摸!才会熟悉 Linux 而且不会怕他呢!

鸟哥上课时,常常有学生问到: 『 老师,到底要听过你的课几次之后,才能学的会? 』 鸟哥的标准答案是: 『 你永远学不会! 』 因为你是用 『 听 』 的,没有动手做,那么永远不会知道 『 经验 』 两个字怎么写!很多时候电脑 / 网路都会有一些莫名其妙的突发状况, 没有实际碰触过,怎么可能会理解呢?所以 『 永远是不可能听会的! 』 为啥要实验?因为实验过后你才会有经验来记下来? 否则实验结果课本都有啊!不是背一背就好了,干麻实验呢?浪费钱吗? ^ _ ^

4 发生问题怎么处理啊?建议流程是这样 …

我们是 『 人 』 不是 『 神 』 ,所以在学习的过程中发生问题是很常见的啦!重点是,我们该如何处理在自身所发生的 Linux 问题呢? 在这里鸟哥的建议是这样的流程:

4.1 在自己的主机 / 网路资料库上查询 How-To 或 FAQ

其实,在 Linux 主机及网路上面已经有相当多的 FAQ 整理出来了!所以,当你发生任何问题时,除了自己检查, 或者到上述的实作网站上面查询一下是否有设定错误的问题之外,最重要的当然就是到各大 FAQ 的网站上查询咯! 以下列出一些有用的 FAQ 与 How-To 网站给您参考一下:

  • Linux 自己的文件资料: /usr/share/doc ( 在你的 Linux 系统中 )
  • The Linux Documentation Project : http://www.tldp.org/

上面比较有趣的是那个 TLDP(The Linux Documentation Project) , 他几乎列出了所有 Linux 上面可以看到的文献资料,各种 How-To 的作法等等,虽然是英文的,不过,很有参考价值!

4.2 注意讯息输出,自行解决疑难杂症

一般而言, Linux 在下达指令的过程当中,或者是 log file 里头就可以自己查得错误资讯了,举个例子来说,当你下达:

由于系统并没有 /v 这个目录,所以会在萤幕前面显示:No such file or directory

这个错误讯息够明确了吧!系统很完整的告诉您 『 查无该资料 』 ! 呵呵!所以咯,请注意,发生错误时,请先自行以萤幕前面的资讯来进行 debug( 除错 ) 的动作,然后,如果是网路服务的问题时,请到 /var/log/ 这个目录里头去查阅一下 log file( 登录档 ) ,这样可以几乎解决大部分的问题了!

4.3 搜寻过后,注意网路礼节,讨论区大胆的发言吧

一般来说,如果发生错误现象,一定会有一些讯息对吧!那么当您要请教别人之前,就得要将这些讯息整理整理, 否则网路上人家也无法告诉您解决的方法啊!这一点很重要的喔!

万一真的经过了自己的查询,却找不到相关的资讯,那么就发问吧!

不过,基本上去每一个讨论区回答问题的熟手,其实都差不多是那几个, 所以,您的问题 『 不要重复发表在各个主要的讨论区! 』 举例来说,鸟园与酷学园讨论区上的朋友重复性很高,如果您两边都发问, 可能会得到反效果,因为大家都觉得,另外一边已经回答您的问题了呢~~

4.4 Netman 大大给的建议

此外, Netman 兄提供的一些学习的基本方针,提供给大家参考:

  • 在 Windows 里面,程式有问题时,如果可能的话先将所有其它程式保存并结束,然后尝试按救命三键 (Ctrl+Alt+Delete) ,将有问题的程式 ( 不要选错了程式哦 )『 结束工作 』 ,看看能不能恢复系统 。 不要动不动就直接关机或 reset。
  • 有系统地设计档案目录,不要随便到处保存档案以至以后不知道放哪里了, 或找到档案也不知道为何物 。
  • 养成一个做记录的习惯 。 尤其是发现问题时, 把错误信息和引发状况以及解决方法记录清楚,同时最后归类及定期整理 。 别以为您还年轻,等你再弄多几年电脑了, 您将会非常庆幸您有此一习惯 。
  • 如果看在网路上看到任何好文章,可以为自己留一份 copy ,同时定好题目,归类存档 。( 鸟哥注:需要注意智慧财产权! )
  • 作为一个使用者,人要迁就机器;做为一个开发者,要机器迁就人 。
  • 学写 script 的确没设定 server 那么好玩,不过以我自己的感觉是:关键是会得 『 偷 』 , 偷了会得改,改了会得变,变则通矣 。
  • 在 Windows 里面,设定不好设备,您可以骂它;在 Linux 里面,如果设定好设备了,您得要感激它 ﹗

5 鸟哥的建议 ( 重点在 solution 的学习 )

除了上面的学习建议之外,还有其他的建议吗?确实是有的!其实, 无论作什么事情,对人类而言,两个重要的因素是造成我们学习的原动力:

  • 成就感
  • 兴趣

很多人问过我,鸟哥是怎么学习 Linux 的?由上面鸟哥的悲惨 Linux 学习之路你会发现, 原来我本人对于电脑就蛮有兴趣的,加上工作的需要,而鸟哥又从中得到了相当多的成就感, 所以咯,就一发不可收拾的爱上 Linux 咯!因此,鸟哥个人认为,学习 Linux 如果玩不出兴趣, 他对你也不是什么重要的生财工具,那么就不要再玩下去了! 因为很累人 ㄋㄟ ~而如果你真的想要玩这么一套优良的作业系统, 除了前面提到的一些建议之外,说真的,得要培养出兴趣与成就感才行! 那么如何培养出兴趣与成就感呢?可能有几个方向可以提供给你参考:

  • 建立兴趣:
    Linux 上面可以玩的东西真的太多了,你可以选择一个有趣的课题来深入的玩一玩!不论是 Shell 还是图形介面等等, 只要能够玩出兴趣,那么再怎么苦你都会不觉得喔!

  • 成就感:
    成就感是怎么来的?说实在话,就是 『 被认同 』 来的!怎么被认同呢?写心得分享啊!当你写了心得分享,并且公告在 BBS 上面,自然有朋友会到你的网页去瞧一瞧,当大家觉得你的网页内容很棒时, 哈哈!你肯定会加油继续的分享下去而无法自拔的!那就是我啦 … ^ _ ^!

就鸟哥的经验来说,你 『 学会一样东西 』 与 『 要教人家会一样东西 』 思考的纹路是不太一样的! 学会一样东西可能学一学会了就算了!但是要 『 教会 』 别人,那可就不是闹着玩的! 得要思考相当多的理论性与实务性方面的咚咚,这个时候,你所能学到的东西就更深入了! 鸟哥常常说,我这个网站对我在 Linux 的了解上面真的的帮助很大!

  • 协助回答问题:
    另一个创造成就感与满足感的方法就是 『 助人为快乐之本! 』 当你在 BBS 上面告诉一些新手,回答他们的问题,你可以获得的可能只是一句 『 谢谢!感恩呐! 』 但是那句话真的会让人很有快乐的气氛!很多的老手都是因为有这样的满足感, 才会不断的协助新来的朋友的呢!此外,回答别人问题的时候,就如同上面的说明一般, 你会更深入的去了解每个项目,哈哈!又多学会了好多东西呢!

  • 参与讨论:
    参与大家的技术讨论一直是一件提升自己能力的快速道路!因为有这些技术讨论, 你提出了意见,不论讨论的结果你的意见是对是错,对你而言,都是一次次的知识成长!这很重要喔! 目前台湾地区办活动的能力是数一数二的 Linux 社群 『 酷学园 (Study Area, SA) 』 ,每个月不定期的在北 / 中 / 南举办自由软体相关活动, 有兴趣的朋友可以看看:
    http://phorum.study-area.org/index.php/board,22.0.html

除了这些基本的初学者建议外,其实,对于未来的学习,这里建议大家要 『 眼光看远! 』 一般来说,公司行号会发生问题时, 他们绝不会只要求各位 『 单独解决一部主机的问题 』 而已,他们需要的是整体环境的总体解决 『Total Solution』。 而我们目前学习的 Linux 其实仅是在一部主机上面进行各项设定而已, 还没有到达解决整体公司所有问题的状态 。 当然啦,得要先学会 Linux 相关技巧后, 才有办法将这些技巧用之于其他的 solution 上面!

所以,大家在学习 Linux 的时候,千万不要有 『 门户之见 』 ,认为 MS 的东西就比较不好~ 否则,未来在职场上,竞争力会比人家弱的!有办法的话,多接触,不排斥任何学习的机会!都会带给自己很多的成长! 而且要谨记: 『 不同的环境下,解决问题的方法有很多种,只要行的通,就是好方法! 』

你可能感兴趣的:(Linux)