[转]再谈如何学习 Linux,一线 Linux 专家学习经验谈

记得最早接触 linux 是在 2000 年,那个时候,还在上大学,一个同学从荷兰回来,带回来了一个 Linux 的拷贝版,记得版本还是 Redhat6.2。曾经为安装一个系统让我们忘记疲劳,挑灯夜战,不亦乐乎。那时 Linux 的学习资料还很少,能够学习的书籍也不多,网上 Linux 技术社区也很少,就凭着 Redhat6.2 自带的几页使用说明开始了学习 linux 的生涯。

转眼间,10 几年过去了,我也与 Linux 相伴了 10 多年,10 年间,随着虚拟化、云计算时代的来临,Linux 迅猛发展,在服务器领域已经占据半壁江山,而基于 Linux 的运维也面临新的挑战:面对越来越复杂的业务,面对越来越多样化的用户需求,不断扩展的应用需要越来越合理的模式来保障 Linux 灵活便捷、安全稳定地持续提供服务,这种模式中的保障因素就是 Linux 运维。从初期的几台服务器发展到庞大的云计算数据中心,单靠人工已经无法满足在技术、业务、管理等方面的要求,那么标准化、自动化、稳定性、可靠性等业务需求越来越被人们所重视。因此,对 Linux 的高性能、可靠性提出了更高的要求。

2009 年我完成了基于 Linux 操作系统的作品《循序渐进 Linux——基础知识、服务器搭建、系统管理、性能调优、集群应用》,此书出版后,得到了很多同行的认可,但是,此书出版已近 6 年,书中介绍的部分知识点和操作系统版本已经变得陈旧,已不能满足 Linux 以及开源技术迅速发展的需求,抱着对读者和本书负责的态度,我决定修订此书,因此也就有了这本《循序渐进 Linux(第 2 版)——基础知识、服务器搭建、系统管理、性能调优、虚拟化与集群应用》这本新书。

今天不讲深入的东西,只想将自己多年来学习 Linux 的心得与感受与大家一起分享下,希望能给爱好 Linux 的朋友们或者 Linux 的同行们一点意见和建议,一点经验心得与大家共勉!

一、Linux 在各领域发展的现状与趋势

很多新手都有一个很疑惑的问题:“Linux 我听过,但是学习 linux 系统,能在上面干什么呢,或者说 linux 系统具体能做什么”,带着这个疑问,在本书的开篇,我们先来了解下 Linux 与开源软件的关系以及 Linux 的应用领域和未来的发展趋势。

1.1 Linux 与开源软件

Linux 是一种自由和开放源代码的类 UNIX 操作系统,该操作系统的内核由林纳斯托瓦兹在 1991 年首次发布,之后,在加上用户空间的应用程序之后,就成为了 Linux 操作系统。严格来讲,Linux 只是操作系统内核本身,但通常采用“Linux 内核”来表达该意思。而 Linux 则常用来指基于 Linux 内核的完整操作系统,它包括 GUI 组件和许多其他实用工具。

GNU 通用公共许可协议(GNU General Public License,简称 GNU GPL 或 GPL),是一个广泛被使用的自由软件许可协议条款,最初由理查德斯托曼为 GNU 计划而撰写,GPL 给予了计算机程序自由软件的定义, 任何基于 GPL 软件开发衍生的产品在发布时必须采用 GPL 许可证方式,且必须公开源代码,

Linux 是自由软件和开放源代码软件发展中最著名的例子。只要遵循 GNU 通用公共许可证,任何个人和机构都可以自由地使用 Linux 的所有底层源代码,也可以自由地修改和再发布。随着 Linux 操作系统飞速发展,各种集成在 Linux 上的开源软件和实用工具也得到了应用和普及,因此,Linux 也成为了开源软件的代名词。

1.2 Linux 在服务器领域的发展

随着开源软件在世界范围内影响力日益增强,Linux 服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。此外,考虑到 Linux 的快速成长性以及国家相关政策的扶持力度,Linux 服务器产品一定能够冲击更大的服务器市场。

据权威部门统计,目前 Linux 在服务器领域已经占据 75%的市场份额,同时,Linux 在服务器市场的迅速崛起,已经引起全球 IT 产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。

1.3 Linux 在桌面领域的发展

近年来,特别在国内市场,Linux 桌面操作系统的发展趋势非常迅猛。国内如中标麒麟 Linux、红旗 Linux、深度 Linux 等系统软件厂商都推出的 Linux 桌面操作系统,目前已经在政府、企业、OEM 等领域得到了广泛应用。另外 SUSE、Ubuntu 也相继推出了基于 Linux 的桌面系统,特别是 Ubuntu Linux,已经积累了大量社区用户。但是,从系统的整体功能、性能来看,Linux 桌面系统与 Windows 系列相比还有一定的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面。

1.4 Linux 在移动嵌入式领域的发展

Linux 的低成本、强大的定制功能以及良好的移植性能,使得 Linux 在嵌入式系统方面也得到广泛应用,目前 Linux 以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。在移动设备上广泛使用的 Android 操作系统就是创建在 Linux 内核之上的。目前,Android 已经成为全球最流行的智能手机操作系统,据 2015 年权威部门最新统计,Android 操作系统的全球市场份额已达 84.6%。

此外,思科在网络防火墙和路由器也使用了定制的 Linux,阿里云也开发了一套基于 Linux 的操作系统“YunOS”,可用于智能手机、平板电脑和网络电视;常见的数字视频录像机、舞台灯光控制系统等都在逐渐采用定制版本的 Linux 来实现,而这一切均归功与 Linux 与开源的力量。

1.5 Linux 在云计算/大数据领域的发展

互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源软件的平台,Linux 占据了核心优势;据 Linux 基金会的研究,86%的企业已经使用 Linux 操作系统进行云计算、大数据平台的构建,目前,Linux 已开始取代 Unix 成为最受青睐的云计算、大数据平台操作系统。

二、选择适合自己的 Linux 发行版

谈到 Linux 的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,Linux 正在变得越来越流行。面对这么多的 Linux 发行版,打算从其他系统转到 Linux 系统来的初学者可能会感到困惑,即便是忠实的 Linux 用户也没有时间和精力去挨个尝试,因此初学者在学习 Linux 之前,需要有一个明确的方向,选择一个适合自己的 Linux 系统至关重要。下面我们就分类介绍。

2.1 常见的 Linux 发行版

1.Red Hat Linux

Red Hat Linux 是 Red Hat 最早发行的个人版本的 Linux,其 1.0 版本于 1994 年 11 月 3 日发行。虽然其历史不及其他 Linux 发行版本悠久,但比起很多的 Linux 发行套件,Red Hat 的历史要悠久得多。自从 Red Hat 9.0 版本发布后,Red Hat 公司就不再开发桌面版的 Linux 发行套件,Red Hat Linux 停止了开发,而将全部力量集中在服务器版的开发上,也就是 Red Hat Enterprise Linux 版。2004 年 4 月 30 日,Red Hat 公司正式停止对 Red Hat 9.0 版本的支援,标志着 Red Hat Linux 的正式完结。原本的桌面版 Red Hat Linux 发行套件则与来自开源社区的 Fedora 进行合并,成为 Fedora Core 发行版本。

目前 Red Hat 分为两个系列:由 Red Hat 公司提供收费技术支持和更新的 Red Hat Enterprise Linux,以及由社区开发的免费的 Fedora Core。

2.Fedora Core

Fedora Core(缩写为 FC)被 Red Hat 公司定位为新技术的测试平台,许多新的技术都会在 FC 中检验。如果稳定的话 Red Hat 公司则会考虑加入到 Red Hat Enterprise Linux 中。

Fedora Core 1 发布于 2003 年年末,而 FC 的定位便是桌面用户。FC 提供了最新的软件包,同时它的版本更新周期也非常短,仅有 6 个月。由于版本更新频繁,性能和稳定性得不到保证,因此一般在服务器上不推荐采用 Fedora Core。

Fedora 对于用户而言,是一套功能完备、更新迅速的免费操作系统,因此,个人领域的应用,例如开发、体验新功能等可选择此发行版本。

3.Red Hat Enterprise Linux

Red Hat Enterprise Linux(缩写为 RHEL,Red Hat 的企业版 Linux)。Red Hat 现在主要做服务器版的 Linux 开发,在版本上注重了性能和稳定性,以及对硬件的支持。由于企业版操作系统的开发周期较长,注重性能、稳定性和服务端软件支持,因此版本更新相对较缓慢。

RHEL 的版本都是基于 Fedora。大约每六个版本的 Fedora 会有一个新版本的 RHEL 发布,因此,RHEL 大约 3 年发布一个新版本。其最新版本是 2015 年 3 月 6 日发布的 RHEL 7.1。本书就是以此版本展开讲述的。

4.Centos

CentOS 全名为“社区企业操作系统”(Community Enterprise Operating System)。它是来自于 RHEL 依照开放源代码规定发布的源代码所编译而成,由于 RHEL 是商业产品,因此必须将所有 Red Hat 的 Logo 标识改成自己的 CentOS 标识,这就产生了 CentOS 操作系统,两者的不同在于,CentOS 并不包含封闭源代码软件。因此,CentOS 不但可以自由使用,而且还能享受 CentOS 提供的免费长期升级和更新服务。这是 CentOS 的一个很大优势。

CentOS 采取从 RHEL 的源代码包来构建,它的版本号有两个部分:一个主要版本和一个次要版本,主要和次要版本号分别对应于 RHEL 的主要版本与更新包,例如 CentOS6.5 构建在 RHEL6.0 更新的第 5 版。但是从 RHEL7.0 版本以后,CentOS 版本命名格式又稍有变化:主要版本仍然对应于 RHEL 的主要版本,次要版本以 RHEL 更新包发布日期为准,例如 RHEL7.1 对应的 CentOS 版本为 CentOS 7.1.1503,这表示 RHEL7.1 版本是 2015 年 3 月份发布的。

在 2014 年 CentOS 宣布与 Red Hat 合作,但 CentOS 将会在新的委员会下继续运作,并不受 RHEL 的影响。这个策略表明 CentOS 后续发展将有 Red Hat 作为强有力的支持。

5、SuSE Linux

SUSE 是德国最著名的 Linux 发行版,也享有很高的声誉,不过命运相当坎坷;2003 年 11 月 4 日,Novell 公司对外宣布将收购 SUSE。2004 年 1 月该收购顺利完成,Novell 同时将 SUSE 正式命名为 SUSE Linux。Novell 公司收购 SUSE,加速了 SUSE Linux 的发展,将免费 SUSE Linux 改为 openSUSE 社区项目,但在 2010 年,Attachmate 公司收购了 Novell,在被收购后,SUSE Linux 发展受阻,而就在 3 年后,SUSE 再次易主,2014 年 9 月 Attachmate 公司被上市公司 Micro Focus 收购,但幸运的是:SUSE 官方宣布开源作为 SUSE 的发展之本,仍将持续贡献开源,SUSE 仍将全力投入对 openSUSE 的支持。

虽然 SUSE 多次易主,但并不影响它的专业性,据不完全统计,SUSE Linux 现在欧洲 Linux 市场占有将近 80%的份额,大部分关键性应用都是建立在 SUSE Linux 下的。而由于 SUSE 多次易主,再加上 SUSE 在中国的营销模式问题,现在 SUSE 在中国的 Linux 市场份额并不大,但是这些并不影响 SUSE Linux 高可靠性与稳定性的事实。随着 SUSE 的发展,相信 SUSE Linux 在中国的应用会越来越多。

6、Ubuntu Linux

Ubuntu(中文谐音为友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,基于 Debian GNU/Linux,Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu 具有庞大的社区力量,用户可以方便地从社区获得帮助。

7、发行版总结

上面主要介绍了几种最常见的 Linux 发行版本,其实 Linux 的发行版本还有很多,比较常见的还有 Debian GNU/Linux、Mandriva、Gentoo、Slackware、Knoppix、MEPIS 和 Xandros,以及国产的红旗 Redflag、深度 deepin Linux 和中标麒麟 Linux 等,这里不再一一介绍。其实纵观 Linux 的各个发行版,Linux 发行版本无非是朝着这两个方面而来,一是服务器市场,二是桌面市场。

以 Ubuntu Linux 为代表的 Linux 发行版走的是桌面市场路线,虽然它们给用户带来很多惊喜,更新也很快,但是由于桌面市场有着 Windows 这样强劲的对手,因此 Linux 桌面发展不容乐观,目前 Ubuntu Linux 也开始向企业级服务器市场发力。

以 Red Hat 系列版本为代表的 Linux 发行版现在主要面向企业级 Linux 的服务器市场,重点开发 Linux 的企业版本,其他的(例如国产 Redflag、中标麒麟 Linux 等)都重点投入在了 Linux 服务器市场。Linux 两大发布厂商现在都走了 Linux 服务器市场的路线,可见 Linux 作为企业级服务器有着巨大的发展前途。据权威部门统计,Linux 在服务器市场的占有率每年都在持续上升。

其实很多 Linux 的应用都是针对 Linux 服务器的,本书的讲述也是主要针对 Linux 在服务器下的各种应用展开的。

2.2 初学者入门首选——Centos 系列

在了解了 Linux 几个主要发行版本后,我们就找到了为何选择 CentOS 作为初学者入门学习的理由了。

CentOS 现在拥有庞大的网络用户群体,网络 Linux 资源基本 80%都是基于 CentOS 发行版的,如果在学习过程中遇到任何问题,在网络中可以较容易地搜索到解决方案。

CentOS 系列版本可以轻松获得。可以从 CentOS 官网或者 163 开源、sohu 开源、阿里云开源站下载 CentOS 各个版本的安装介质,如果是第一次接触 Linux,那么建议先安装 Fedora Core。Fedora Core 的安装简单,对硬件支持很好,界面也很华丽,同时也可以体验 Linux 的最新功能。如果对 Linux 有一定的了解,需要深入学习,建议使用 CentOS 发行版系统。

CentOS 应用范围广,具有典型性和代表性,现在基本所有的互联网公司后台服务器都采用 CentOS 作为操作系统,可以说学会了 CentOS,不但能迅速融入企业的工作环境,还能触类旁通,其它类似的 Linux 发行版也能很快掌握。同时,现在周围学习 Linux 的用户一般也都是以 CentOS 为主的,这样交流方便,学习中出现问题,更容易得到解决。最主要的是 CentOS 的安装和使用上也是最简单的,因此基本上不会在“装系统”上浪费过多时间。

2.3 桌面平台首选——Ubuntu Linux

说到 Linux 桌面市场,Ubuntu Linux 几乎占据了桌面 Linux 的半壁江山,Ubuntu Linux 主打 Linux 桌面之最,界面美观,简洁而不失华丽,如果想在 Linux 下进行娱乐休闲,Ubuntu Linux 绝对是首选。

Ubuntu 的安装非常人性化,只需按照提示一步一步进行。Ubuntu 被誉为对硬件支持最好最全面的 Linux 发行版之一,许多在其他发行版上无法使用的,或者在默认配置时无法使用的硬件,在 Ubuntu 上都能轻松安装使用。因此用户可以像安装 Windows 一样轻松地安装 Ubuntu,尽情体验 Ubuntu Linux 带来的乐趣。

2.4 企业级应用首选——RHEL/Centos 系列

企业级的应用追求的是可靠性和稳定性,这就要求构建企业级应用的系统平台具有高可靠性和高稳定性。企业级 Linux 的发行版本就是解决的这个问题。

RHEL 与 Centos 两个 Linux 发现版本,并没有太大差别,所不同的是 RHEL 属于商业 Linux 发行版本,如果要使用 RHEL 版本,则需要购买商业授权和咨询服务,Red Hat 提供系统的技术支持并提供系统的免费升级。目前 Red Hat 官网已经不再提供可免费下载的光盘介质,如果需要试用,可通过官网下载有试用时间的评估版 Linux。而 CentOS 属于非商业发行版,可以从网上免费下载 CentOS 各个版本的安装介质,但 CentOS 并不提供商业支持,当然使用者也不用负上任何商业责任。

那么,到底是选择 CentOS 还是 RHEL 呢,这取决于你所在公司是否拥有相应的技术力量,如果是单纯的业务型企业,那么建议选购 RHEL 发行版并购买相应服务,这样可以节省企业的 IT 管理费用,并可得到专业的技术支持服务。相反,如果企业技术力量比较强大,并且有多年 Linux 使用经验的话,那么 CentOS 发行版将是最好的选择。

三、 养成良好的 Linux 操作习惯

开始 Linux 的学习之后,请不要用 Windows 的工作方式来思考问题,因为它们之间确实有很大的不同,比如它们之间的内存管理机制、进程运行机制等都有很大不同,因此抛开 Windows 的那种思维,用全新的理念尝试去挖掘 Linux 身上特有的潜质,对初学者是至关重要的。

3.1 一定要习惯命令行方式

Linux 是由命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平,命令行方式的操作永远是不会变的。Linux 命令有许多强大的功能:从简单的磁盘操作、文件存取,到进行复杂的多媒体图像和流媒体文件的制作,都离不开命令行。虽然 Linux 也有桌面系统,但是 X-window 也只是运行在命令行模式下的一个应用程序。

因此,可以说命令是学习 Linux 系统的基础,在很大程度上学习 Linux 就是学习命令,很多 Linux 高手其实都是玩儿命令很熟练的人。

也许对于刚刚从 Windows 系统进入 Linux 学习的初学者来说,立刻进入枯燥的命令学习实在太难,但是一旦学会就爱不释手。因为它的功能实在太强大了。

3.2 理论结合实践

有很多初学者都会遇到这么一个问题,自己对系统的每个命令都很熟悉,但是在系统出现故障的时候,就无从下手了,甚至不知道在什么时候用什么命令去检查系统,这是很多 Linux 新手最无奈的事情了。说到底,就是学习的理论知识没有很好地与系统实际操作相结合。

很多 Linux 知识,例如每个命令的参数含义,在书本上说得很清楚,看起来也很容易理解,但是一旦组合起来使用,却并不那么容易,没有多次的动手练习,其中的技巧是无法完全掌握的。

人类大脑不像计算机的硬盘,除非硬盘坏掉或者硬盘被格式化,否则储存的资料将永远记忆在硬盘中,而且时刻可以调用。而在人类记忆的曲线中,必须要不断地重复练习才会将一件事情记得比较牢。学习 Linux 也一样,如果无法坚持学习的话,就会学了后面的,忘记了前面的。还有些 Linux 初学者也学了很多 Linux 知识,但是由于长期不用,导致学过的东西在很短的时间内又忘记了,久而久之,失去了学习的信心。

可见,要培养自己的实战技能,只有勤于动手,肯于实践,这也是学好 Linux 的根本。

3.3 学会使用 Linux 联机帮助

各个 Linux 的发行版本的技术支持时间都较短,这对于 Linux 初学者来说往往是不够的,其实当安装了完整的 Linux 系统后其中已经包含了一个强大的帮助,只是可能你还没有发现它,或者还没有掌握使用它的技巧。例如,对于 tar 命令的使用不是很熟悉,那么只要在命令行输入“man tar”,就会得到 tar 的详细说明和用法。

主流的 Linux 发行版都自带了非常详细的帮助文档,包括使用说明和 FAQ,从系统的安装到系统的维护,再到系统安全,针对不同层次用户的详尽文档。仔细阅读文档后,60%的问题都可在这里得到解决。

3.4 学会独立思考问题,独立解决问题

遇到问题,首先想到的应该是如何自己去解决这个问题,解决方式有很多,比如看书查资料、网络搜索引擎搜索和浏览技术论坛等,通过这几种方式,90%的问题都能得到解决

独立思考并解决问题,不但锻炼了自己独立解决问题的能力,在技术上也能得到快速提高。如果通过以上方式实在解决不了的话,可以向人询问,得到答案后要思考为何这么做,然后做笔记记录解决过程。最忌讳的方式是只要遇到问题,就去问人,虽然这样可能会很快解决问题,但是长久下去遇到问题就会依赖别人,技术上也不会进步。

3.5 学习专业英语

如果想深入学习 Linux,一定要尝试去看英文文档。因为,技术性的东西写的最好的,最全面的文档都是英语写的,最先发布的高新技术也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。安装一个新的软件时先看 Readme 文档,再看 Install 文档,然后看 FAQ 文档,最后才动手安装,这样遇到问题就知道原因了。因此,学习一点专业的英语是很有必要的。

四、Linux 学习路线图

Linux 运维或管理人才是企业目前急需的技术人才之一,笔者根据 10 多年 Linux 相关工作经验,总结出了一套学习 Linux 的线路图,大家可以此线路图为依据,抓住重点,分清主次,相信一定能达到事半功倍的效果。如果读者能认真学习完并掌握本线路图所涉及的技术要点,那么也就基本掌握了企业对 Linux 运维或管理人才的基本应用需求。

Linux 学习线路图如下图所示,本线路图分为初级、中级和高级三个阶段:初级阶段主要是对 Linux 基础知识以及系统基本应用的介绍,要掌握的内容较多,如果初次接触 Linux,那么入门还是有一定难度的,Linux 注重的是命令操作,因此初级阶段以学习基础命令为主,多看书、多实践是学好命令的根本;中级阶段以服务器常见配置为主,涉及各种应用服务器的配置、网络配置、系统安全配置等几个方面。此阶段的难点在于各种服务器的搭建,对综合知识要求较高;高级阶段的重点是编程语言、集群架构两个方面,此阶段的发展方向是高级运维工程师或系统架构师,要成为系统架构师,熟练掌握一门编程语言是必须的,而 Linux 下常见的各种集群架构、分布式架构也是高级运维工程师必须要掌握的。

本文出自 “南非蚂蚁 Linux” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/1739514

Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy