如何学习Linux

 
一.为什么要学linux?

      当然最重要是爱好和兴趣!如果你这种必要学,或者根本不喜欢,请不要浪费时间,你学也学不好!

二.起步

      你应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix
      问题1:版本的选择

      北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的linux ,开发人员中用debian的最多,其次是redhat,从全球linux各应用领域市场份额来看,无疑redhat是最多的,此外还有很多出名的发行版本,不再列举。
      对于初学linux的人来说,我建议是使用redhat,原因如下:
      1)现在很多书都是以redhat为例讲的,为了与书本协调一致
      2)周围的人都用redhat,交流比较方便 
      3)redhat应用范围广,有典型性和代表性
      4)它易于使用和安装,我们没有必要把时间浪费在“装系统”上,而应集中精力学习最有用的东西。

      //注:现在觉得RH很死板,AS,ES等用在服务器上或许不错, 
      Personal desktop用mandrake,debian,suse都不错,笔者现在用Mandrake,因为她长得漂亮,如果你并不打算深入学习linux,而是有诸如适应北京市政府办公平台迁移到linux上这种需要,那么中软,红旗等中文linux是不错的选择,我强烈建议:自己亲自动手把linux装到你的硬盘上,你必须学会独立安装linux系统的技能,对于现在的版本来说,其实跟装WinXP一样简单从此现在开始,请不要以windows的工作方式来考虑问题,应该尝试挖掘linux身上的“天才unix”的气质。

      Linux入门级书籍推荐:鸟哥的Linux私房菜 基础学习篇(第三版)红帽学院官方指定教程 RedHat Linux用户基础(含光盘)

三.进阶
      掌握至少50个以上的常用命令
      理解shell管道"|",文件流重定向">"及追加">>"等 
      熟悉Gnome/KDE等X-windows桌面环境操作
      掌握.tgz.rpm.biz等软件包的常用安装方法
      学习添加外设,安装设备驱动程序(比如modem)
      熟悉Grub/Lilo引导器及简单的修复操作
      熟悉系统固有目录的名称及公用 
      学会用mount命令访问其他文件系统
      了解vi,gcc,gdb等常用编辑器,编译器,调试器
      学习linux环境下的简单组网

      建议:买一本不需要太厚的linux教材,大致可以满足要求 
      //现在的书越来越多了,还带很多图,我当时可没这么多书:)

四.高级应用

      澄清一些概念:linux的普通操作与真正的系统管理不能相提并论,后者需要很多知识,我个人认为比较重要几种linux语言
      1.英语
      即使你不学linux,我也强烈建议你学好英文[U.S.english] ,因为实质上计算机语言就是英文和字符,所谓的多国语言只是外部包装,你必须能无障碍的阅读大量的英文技术文档,在搜索引擎找到的英文网站和网页中熟练的检索,最好能有用英文直接交流的能力,摆脱了这个障碍,你的学习和理解速度就能快很多,你就有机会拉开和别人的差距。

      2.shell[sed/awk]
      shell是命令解释器,是内核与用户界面交流通道,shell写的小脚本有点类似于win下的.bat 但shell比.bat强大的多,shell不只是解释命令,更是一种编程语言,有时候几百行的c用shell几十行就能代替完成工作,因为shell的工作方式建立在系统已有的众多应用程序之上,这也是CS中的一个重要思想。此外,shell可以实现工作自动化,这个概念也比较重要sed,awk用来处理文本,历来很常用。

      3.Perl/PHP
      漂亮的脚本, CGI的首选,比ASP好,应用面很广

      4.C\C++
      C、C++是linux/unix的核心语言,系统代码都是C写的

      5.ASM
      系统底层及内核,硬件,设备驱动程序,嵌入式开发都需要 
      //走核心路线的话,才c\c++,asm最重要

      6.Java,Python,Tcl,XML

 

Linux开发,深入理解linux内核,可参考:深入理解LINUX内核(第三版),Linux程序设计(第4版)

如何: