细说Linux基础知识(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-16 12:15:33

点击下载

作者:兄弟连教育

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

细说Linux基础知识

细说Linux基础知识试读:

前言

这是一本迟到的书。

此前,本书的主要作者沈超老师和我录制了一套Linux的视频教程,承蒙读者错爱,居然成了互联网上的爆款,好评如潮。两个老男人讲技术课程会有这么多人看,大大出乎我的意料。很多朋友希望我们出书,这事儿就被提上了日程。

都是我的错,拖延惹的祸!这本书迟迟没有面世,在沈超老师的催促下,近日终于得以出版。在此,对期待已久的诸位朋友道一声抱歉。

2001年,我在自学UNIX的时候,跑遍了北京的图书大厦,才买到两本书,它们帮我打开了第一份工作的大门。

2003年,北京市政府软件采购选择了Linux,自此我开始接触Linux。相比UNIX的死板与固执,Linux应用的简便、软件的丰富、社区的活跃深深地吸引了我。后来,我有幸加入一家Linux公司,参与了当时信息产业部的Linux命题,出版了Ubuntu Linux的书籍……甚至和朋友一起创办了一家公司——LAMP兄弟连(L for Linux)。

这么多年过去了,我依然保留着那两本UNIX教材。希望这本图书也可以带你走进Linux的世界,这也是沈超老师和我出版此书的初衷。

本书是沈超老师和我十多年工作经验的总结,我们试图通过通俗易懂的方式、由浅入深的讲解,给予每位Linux初学者帮助。读者也可以关注本书官方微信公众号“细说Linux”,获取免费视频教程,辅助学习。

如果你想参加面授课程,则可以了解一下兄弟连教育,这是沈超老师和我所在的培训学校,成立于2007年,目前在全国各地有20余所分校,开设有Linux、Java、PHP、Python、UI、HTML5、网络营销等众多课程。

如果你不害怕我们长得太“婉约”,那就来兄弟连,可以与沈超老师和我面对面交流。

感谢参与本书编写工作的张兴科、郇涛、陈琢、刘川、汪洋。

最后,感谢我多年的朋友李冰编辑。

Enjoy Linux!李明2018年4月23日第1章知其然而后知其所以然:Linux系统简介学前导读好的开始是成功的一半。学习Linux的第一个问题是搞明白Linux是什么,了解其来龙去脉、前世今生,知道其发展趋势、应用前景,弄清楚为什么学习它,以及如何掌握它和使用它,知其然更要知其所以然。本章致力于让读者对Linux有一个宏观的认识,总览其整体,后续章节再依次讲解Linux的每一部分的知识点。工欲善其事,必先利其器。建议学习Linux的朋友不要忽视本章。很多人看技术类图书都不喜欢或不重视第1章,甚至直接跳过去,觉得大多是介绍性的内容,陈词滥调、形式化,且没什么技术含量。建议读者还是认真阅读本书第1章内容,一方面,更多地了解Linux相关知识对后续阅读本书助益良多,避免后续学习时盲人摸象;另一方面,本书第1章与其他书籍有所不同,它结合了作者的学习和工作经历,给出了很多指导,可供读者参考。本章内容1.1 什么是操作系统1.2 从UNIX到Linux1.3 详细了解Linux1.4 学习Linux的建议1.1什么是操作系统

要讲明白Linux是什么,首先得说说什么是操作系统。

计算机系统是指按用户的要求,接收和存储信息、自动进行数据处理并输出结果信息的系统,它由硬件子系统(计算机系统赖以工作的实体,包括显示屏、键盘、鼠标、硬盘等)和软件子系统(保证计算机系统按用户指定的要求协调工作,如Windows操作系统、Office办公软件等)组成。

而操作系统(Operating System,OS)是软件子系统的一部分,是硬件基础上的第一层软件,是硬件与其他软件的接口,就好似吃饭的桌子,有了桌子才能摆放碟子、碗、筷子、勺子等。它控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序,例如:(1)文件系统。提供计算机存储信息的结构,信息存储在文件中,文件主要存储在计算机的内部硬盘里,在目录的分层结构中组织文件。文件系统为操作系统提供了组织管理数据的方式。(2)设备驱动程序。提供连接计算机的每个硬件设备的接口,设备驱动器使程序能够写入设备,而不需要了解执行每个硬件的细节。简单来说,就是让你能吃到鸡蛋,但不用养一只鸡。(3)用户接口。操作系统需要为用户提供一种运行程序和访问文件系统的方法。如常用的Windows图形界面,可以理解为一种用户与操作系统交互的方式;智能手机的Android或iOS系统,也是一种操作系统的交互方式。(4)系统服务程序。当计算机启动时,会自启动许多系统服务程序,执行安装文件系统、启动网络服务、运行预定任务等操作。

目前流行的服务器和PC端操作系统有Linux、Windows、UNIX等。

作为一本应用类的技术指导书,本节不对操作系统的类型和功能等理论性知识进行过多探讨,只是让读者明白操作系统也是软件,只不过它是底层的软件,位于计算机硬件和应用程序软件之间,提供最基本的计算功能,而Linux和Windows都是操作系统的一种。1.2从UNIX到Linux

UNIX与Linux之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX诞生于20世纪60年代末,Windows诞生于20世纪80年代中期,Linux诞生于20世纪90年代初,可以说UNIX是操作系统中的“老大哥”。1.2.1 UNIX的坎坷历史

UNIX操作系统由肯·汤普森(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)发明。它的部分技术来源可追溯到从1965年开始的Multics工程计划,该计划由贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。

说明:分时操作系统使一台计算机可以同时为多个用户服务,连接计算机的终端用户交互式发出命令,操作系统采用时间片轮转的方式处理用户的服务请求并在终端上显示结果(操作系统将CPU的时间划分成若干个片段,称为时间片)。操作系统以时间片为单位,轮流为每个终端用户服务,每次服务一个时间片。

可惜,由于Multics工程计划所追求的目标太庞大、太复杂,以至于它的开发人员都不知道要做成什么样子,最终以失败收场。

以肯·汤普森为首的贝尔实验室研究人员吸取了Multics工程计划失败的经验教训,于1969年实现了一种分时操作系统的雏形,1970年该系统正式取名为UNIX。想一下英文中的前缀Multi和Uni,就明白了UNIX的隐意。Multi是大的意思,大而且繁;而Uni是小的意思,小而且巧。这是UNIX开发者的设计初衷,这个理念一直影响至今。

有意思的是,肯·汤普森当年开发UNIX的初衷是运行他编写的一款计算机游戏Space Travel,这款游戏模拟太阳系天体运动,由玩家驾驶飞船,观赏景色并尝试在各种行星和月亮上登陆。他先后在多个系统上试验,但运行效果不甚理想,于是决定自己开发一个操作系统,就这样,UNIX诞生了。

自1970年后,UNIX系统在贝尔实验室内部的程序员之间逐渐流行起来。1971—1972年,肯·汤普森的同事丹尼斯·里奇发明了传说中的C语言,这是一种适合编写系统软件的高级语言,它的诞生是UNIX系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中,汇编语言不再是主宰。到了1973年,UNIX系统的绝大部分源代码都用C语言进行了重写,这为提高UNIX系统的可移植性打下了基础(之前操作系统多采用汇编语言,对硬件依赖性强),也为提高系统软件的开发效率创造了条件。可以说,UNIX系统与C语言是一对孪生兄弟,具有密不可分的关系。

20世纪70年代初,计算机界还有一项伟大的发明——TCP/IP协议,这是当年美国国防部接手ARPAnet后所开发的网络协议。美国国防部把TCP/IP协议与UNIX系统、C语言捆绑在一起,由AT&T发行给美国各个大学非商业的许可证,这为UNIX系统、C语言、TCP/IP协议的发展拉开了序幕,它们分别在操作系统、编程语言、网络协议这三个领域影响至今。肯·汤普森和丹尼斯·里奇因在计算机领域做出的杰出贡献,于1983年获得了计算机科学的最高奖——图灵奖。

左图为肯·汤普森与丹尼斯·里奇的合影,天才都是不修边幅的……

随后出现了各种版本的UNIX系统,目前常见的有Sun Solaris、FreeBSD、IBM AIX、HP-UX等。

我们重点介绍一下Solaris,它是UNIX系统的一个重要分支。Solaris除可以运行在SPARC CPU平台上外,还可以运行在x86 CPU平台上。在服务器市场上,Sun的硬件平台具有高可用性和高可靠性,是市场上处于支配地位的UNIX系统。对于难以接触到Sun SPARC架构计算机的用户来说,可以通过使用Solaris x86来体验世界知名大厂的商业UNIX风采。当然,Solaris x86也可以用于实际生产应用的服务器,在遵守Sun的有关许可条款的情况下,Solaris x86可以免费用于学习研究或商业应用。

FreeBSD源于美国加利福尼亚大学伯克利分校开发的UNIX版本,它由来自世界各地的志愿者开发和维护,为不同架构的计算机系统提供了不同程度的支持。FreeBSD在BSD许可协议下发布,允许任何人在保留版权和许可协议信息的前提下随意使用和发行,并不限制将FreeBSD的代码在另一个协议下发行,因此商业公司可以自由地将FreeBSD代码融入它们的产品中。苹果公司的OS X就是基于FreeBSD的操作系统。

FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的不错选择;但其对硬件的支持没有Linux完备,所以并不适合作为桌面系统。

其他UNIX版本因应用范围相对有限,在此不做过多介绍。1.2.2 Linux的那些往事

Linux内核最初是由李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版UNIX操作系统Minix太难用了,于是决定自己开发一个操作系统。第一个版本于1991年9月发布,当时仅有10 000行代码。

李纳斯·托瓦兹没有保留Linux源代码的版权,公开了代码,并邀请他人一起完善Linux。与Windows及其他有专利权的操作系统不同,Linux开放源代码,任何人都可以免费使用它。

据估计,现在只有2%的Linux核心代码是由李纳斯·托瓦兹自己编写的,虽然他仍然拥有Linux内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的Linux,笔者更倾向于说是由李纳斯·托瓦兹和后来陆续加入的众多Linux爱好者共同开发完成的。

李纳斯·托瓦兹无疑是这个世界上最伟大的程序员之一,何况,他还搞出了全世界最大的程序员交友社区GitHub(开源代码库及版本控制系统)。

关于Linux Logo的由来是一个很有意思的话题,它是一只企鹅。

为什么选择企鹅,而不是选择狮子、老虎或者小白兔?有人说因为李纳斯·托瓦兹是芬兰人,所以选择企鹅;有人说因为其他动物图案都被用光了,李纳斯·托瓦兹只好选择企鹅。

笔者更愿意相信以下说法:

企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家,任何国家都无权将南极洲纳入其版图。Linux选择企鹅图案作为Logo,其含义是:开放源代码的Linux为全人类共同所有,任何公司无权将其私有。1.2.3 UNIX与Linux的亲密关系

二者的关系,不是大哥和小弟,“UNIX是Linux的父亲”这个说法更恰当。之所以要介绍它们的关系,是因为要告诉读者,在学习的时候,其实Linux与UNIX有很多的共通之处,简单地说,如果你已经熟练掌握了Linux,那么再上手使用UNIX会非常容易。

二者也有两个大的区别:其一,UNIX系统大多是与硬件配套的,也就是说,大多数UNIX系统如AIX、HP-UX等是无法安装在x86服务器和个人计算机上的,而Linux则可以运行在多种硬件平台上;其二,UNIX是商业软件,而Linux是开源软件,是免费、公开源代码的。

Linux受到广大计算机爱好者的喜爱,主要原因有两个:一是它属于开源软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿使用,无约束地继续传播;二是它具有UNIX的全部功能,任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从Linux中获益。

开源软件是不同于商业软件的一种模式,从字面上理解,就是开放源代码,大家不用担心里面会搞什么猫腻,这会带来软件的革新和安全。

另外,开源其实并不等同于免费,而是一种新的软件盈利模式。目前很多软件都是开源软件,对计算机行业与互联网影响深远。

开源软件本身的模式、概念比较晦涩,本书旨在指导读者应用Linux,大家简要理解即可。

近年来,Linux已经青出于蓝而胜于蓝,以超常的速度发展,从一个丑小鸭变成了一个拥有庞大用户群的真正优秀的、值得信赖的操作系统。历史的车轮让Linux成为UNIX最优秀的传承者。1.2.4 UNIX/Linux系统结构

UNIX/Linux系统可以粗糙地抽象为3个层次(所谓粗糙,就是不够细致、精准,但是便于初学者抓住重点理解),如图1-1所示。底层是UNIX/Linux操作系统,一般称之为系统内核(Kernel);中间层是Shell层,即命令解释层;高层则是应用层。图1-1 UNIX/Linux系统结构层次概要1.内核层

内核层是UNIX/Linux系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。2.Shell层

Shell层是与用户直接交互的界面。用户可以在提示符下输入命令行,由Shell解释执行并输出相应结果或者有关信息,所以我们也把Shell称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。3.应用层

应用层提供基于X Window协议的图形环境。X Window协议定义了一个系统所必须具备的功能(就如同TCP/IP是一个协议,定义软件所应具备的功能),任何系统能满足此协议及符合X协会其他的规范,便可称为X Window。

现在大多数的UNIX系统上(包括Solaris、HP-UX、AIX等)都可以运行CDE(Common Desktop Environment,通用桌面环境,是运行于UNIX的商业桌面环境)的用户界面;而在Linux上广泛应用的有Gnome(见图1-2)、KDE等。图1-2 Gnome图形界面

X Window与微软的Windows图形环境有很大的区别:UNIX/Linux系统与X Window没有必然捆绑的关系,也就是说,UNIX/Linux可以安装X Window,也可以不安装;而微软的Windows图形环境与内核捆绑密切。UNIX/Linux系统不依赖图形环境,依然可以通过命令行完成100%的功能,而且因为不使用图形环境还会节省大量的系统资源。

作为服务器部署,绝大多数Linux并不安装或并不启用图形环境,本书的讲解也基本上为Linux命令行下的操作。1.3详细了解Linux

接下来我们介绍一下Linux系统的优缺点、应用领域和发行版本。1.3.1 天使与魔鬼

Linux不可比拟的优势如下。1.大量的可用软件及免费软件

Linux系统上有着大量的可用软件,且绝大多数是免费的,比如声名赫赫的Apache、Samba、PHP、MySQL等,构建成本低廉,是Linux被众多企业青睐的原因之一。当然,这和Linux出色的性能是分不开的,否则,节约成本就没有任何意义。

但不可否认的是,Linux在办公应用和游戏娱乐方面的软件相比Windows系统还很匮乏,所以,即便明哥和超哥打游戏、看影片用的也是Windows,至于Linux,就把它用在擅长的服务器领域吧。2.良好的可移植性及灵活性

Linux系统有良好的可移植性,它几乎支持所有的CPU平台,这使得它便于裁剪和定制。我们可以把Linux放在U盘、光盘等存储介质中,也可以在嵌入式领域广泛应用。

如果读者希望不进行安装就体验Linux系统,则可以在网上下载一个Live DVD版的Linux镜像,刻成光盘放入光驱或者用虚拟机软件直接载入镜像文件,设置CMOS/BIOS为光盘启动,系统就会自动载入光盘文件,启动进入Linux系统。3.优良的稳定性和安全性

著名的黑客埃里克·雷蒙德(Eric S.Raymond)有一句名言:“足够多的眼睛,就可让所有问题浮现。”举个例子,假如明哥在演讲,台下人山人海,明哥中午吃饭不小心,有几个饭粒粘在衣领上了,分分钟就会被大家发现,因为看的人太多了;如果台下就稀稀落落两三个人且离得很远,那就算明哥衣领上有一大块油渍也不会被发现。Linux开放源代码,将所有代码放在网上,全世界的程序员都看得到,有什么缺陷和漏洞,很快就会被发现,从而成就了它的稳定性和安全性。

提到Linux的安全性,我们可以做一个实验:在一台计算机上,在安装了Windows系统后不安装杀毒软件联网一个月,看看会有什么情况;同样,在安装了Linux系统后不安装杀毒软件联网一个月,我们比较一下,大家就明白了什么是Linux的安全性。Windows系统不安装杀毒软件,相信大家都知道会有什么下场吧……4.支持几乎所有的网络协议及开发语言

经常有初学的朋友问我,Linux是不是对TCP/IP协议支持不好、是不是Java开发环境不灵之类的问题。前面在UNIX发展史中已经介绍了,UNIX系统是与C语言、TCP/IP协议一同发展起来的,而Linux是UNIX的一种,C语言又衍生出了现今主流的语言PHP、Java、C++等,而哪一个网络协议与TCP/IP无关呢?所以,Linux对网络协议和开发语言的支持都很好。

Linux的优点在此不一一列举,只说明这几点供读者参考。诚然,Linux不可能没有缺点,如桌面应用还有待完善、Linux的标准统一还需要推广、开源软件的盈利模式与发展还有待考验等,不过,瑕不掩瑜。1.3.2 Linux的应用领域

Linux似乎在我们平时的生活中很少看到,那么它应用在哪些领域呢?其实,在生活中随时随地都有Linux为我们服务着……1.网站服务器

用事实说话!访问国际知名的Netcraft网站“http://www.netcraft.com”,在“What's that site running?”的地址栏内输入想了解信息的网站地址,单击箭头图标即可搜索到相关信息,如图1-3所示。图1-3 Netcraft

在搜索结果中会看到网站的操作系统信息。例如,搜索兄弟连网站“www.itxdl.cn”,可以看到OS显示为Linux。

Netcraft可以理解为一个基于Web页面的扫描器,至于扫描,就好像小偷踩点。小偷在偷东西之前拿一堆小广告的宣传单,每天在想要盗窃的户门上插小广告,连续一周,之后去观察,哪家门上7张广告怎么插上的还怎么放在那儿,就要倒霉了,一直没人;哪家门上两张,地下三张,剩下的两张不知道哪儿去了,尽量不下手,不确定什么时候有人;哪家门上和地下都很干净,打死都不能下手,保不齐门一撬开,四个彪形大汉正在打麻将呢!这门技术对窃贼来说叫作踩点,网站扫描和小偷踩点的道理类似……

所以黑客攻击别人电脑的第一个步骤也叫踩点,我们做网络的安全扫描检测与此原理相同,只不过不是发小广告观察结果,而是向对方电脑发数据包,根据返回的应答数据包分析对方电脑的信息。

验证一下哪些大型网站在使用Linux。

大家常用的购物网站淘宝用的就是Linux,如图1-4所示。搜索结果中的OS项会显示“unknown”,可能是由于安装了防火墙或代理,无法准确地获取信息。图1-4 淘宝Netcraft搜索截图

为了节省篇幅,其他网站不一一截图,读者如果有兴趣可以搜索一下。世界知名的网站google.com、qq.com、新浪、网易等,无一例外地应用着Linux。就连你输入microsoft.com,会发现微软的下载站等也在使用Linux。

为什么这么多大型网站会采用Linux而不使用UNIX或Windows?其中一个重要的原因就是使用Linux成本较低,而UNIX和Windows都是商业软件;另一个更重要的原因是出于安全和性能方面的考虑。2.电影工业

1998年,超哥看了一部电影《泰坦尼克号》,那些看起来真实、恐怖的豪华巨轮与冰山相撞最终沉没的场面要归功于Linux,归功于电影特技效果公司里终日处理数据的100多台Linux服务器。

在过去,SGI图形工作站支配了整个电影产业,20世纪90年代的影片《侏罗纪公园》中生动的恐龙正是从SGI上孕育出来的,SGI的操作系统Irix就是UNIX的一种。当时所有动画制作公司都得看SGI的脸色。然而,从1997年开始,Linux开始全面占领好莱坞,娱乐业巨擘迪士尼宣布全面采用Linux,宣告了SGI时代的没落,Linux时代走向辉煌。

好莱坞精明的电影人热情地拥抱Linux,其中的原因不言而喻。首先,Linux作为开源软件,可以节省大量成本;其次,Linux具有商业软件不具备的功能定制化特点,各家电影厂商都可依据自己的制片需要铺设相关平台。到现在为止,使用Linux制作的好莱坞大片已经有几百部。3.嵌入式应用

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可定制,适用于各种应用场合,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统及用户的应用程序4部分组成,用于实现对其他设备的控制、监视或管理等。嵌入式系统几乎涵盖了生活中的所有电器设备,如手机、平板电脑、电视机顶盒、游戏机、智能电视、汽车、数码相机、自动售货机、工业自动化仪表与医疗仪器等。

不得不提的是安卓系统(Android)。安卓是基于Linux的开源系统,主要适用于便携设备,如智能手机和平板电脑等,是Google公司为移动终端打造的真正开放和完整的移动软件。在如今的智能手机操作系统市场上,安卓系统的占有率已然是傲视群雄。

从安卓手机到智能机器人,从大型网站到美国太空站,Linux都已涉足其中。Linux的发展震动了整个科技界,动摇了微软一贯以来的霸权,并且为科技界贡献了一种软件制造的新方式。

Top500(www.top500.org)是评定全球500台最快的超算系统性能榜单,连续多届,在世界上500台超级计算机里,超过9成为Linux系统!如果你还关在家里面,认为全世界都是Windows,则无异于坐井观天。世界那么大,出去看看吧!1.3.3 Linux的发行版本

新手往往会被Linux众多的发行版本搞得一头雾水,我们首先来解释一下这个问题。

从技术上来说,李纳斯·托瓦兹开发的Linux只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,但一个内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将Linux内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了Linux的发行版本。

在Linux内核的发展过程中,各种Linux发行版本起了巨大的作用,正是它们推动了Linux的应用,从而让更多的人开始关注Linux。因此,把Red Hat、Ubuntu、SUSE等直接说成Linux其实是不确切的,它们是Linux的发行版本,更确切地说,应该叫作“以Linux为核心的操作系统软件包”。Linux的各个发行版本使用的是同一个Linux内核,因此在内核层不存在什么兼容性问题,每个版本有不一样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。

Linux的发行版本可以大体分为两类:一类是商业公司维护的发行版本;另一类是社区组织维护的发行版本。前者以著名的Red Hat为代表,后者以Debian为代表。很难说大量Linux版本中哪一款更好,每个版本都有自己的特点。下面为大家介绍4款我国国内应用较多的Linux发行版本。1.Red Hat Linux

Red Hat(红帽公司)创建于1993年,是目前世界上资深的Linux厂商,也是最获认可的Linux品牌。

Red Hat公司的产品主要包括RHEL(Red Hat Enterprise Linux,收费版本)和CentOS(RHEL的社区克隆版本,免费版本)、Fedora Core(由Red Hat桌面版发展而来,免费版本)。Red Hat是在我国国内使用人群最多的Linux版本,资料丰富,如果你有什么不明白的地方,则容易找到人来请教,而且大多数Linux教程是以Red Hat为例来讲解的(包括本书)。

本书以我国国内互联网公司常用的Linux发行版本CentOS为例讲解,它是基于Red Hat Enterprise Linux源代码重新编译、去除Red Hat商标的产物,各种操作使用和付费版本没有区别,且完全免费。缺点是不向用户提供技术支持,也不负任何商业责任。有实力的公司可以选择付费版本。

Red Hat官方网站:http://www.redhat.com。

CentOS官方网站:http://www.centos.org。2.Ubuntu Linux

Ubuntu基于知名的Debian Linux发展而来,界面友好,容易上手,对硬件的支持非常全面,是目前最适合做桌面系统的Linux发行版本,而且Ubuntu的所有发行版本都免费提供。

Ubuntu的创始人Mark Shuttleworth是一个非常具有传奇色彩的人物。他在大学毕业后创建了一家安全咨询公司,1999年以5.75亿美元被收购,他由此一跃成为南非最年轻有为的本土富翁。作为一名狂热的天文爱好者,Mark Shuttleworth于2002年自费乘坐俄罗斯联盟号飞船,在国际空间站中度过了8天的时光。之后,Mark Shuttleworth创立了Ubuntu社区,2005年7月1日建立了Ubuntu基金会,并为该基金会投资1000万美元。他说,太空的所见正是他创立Ubuntu的精神之所在。如今,他最热衷的事情就是到处为自由开源的Ubuntu进行宣传和演讲。

Ubuntu官方网站:http://www.ubuntu.com。3.SuSE Linux

SuSE Linux以Slackware Linux为基础,原来是德国的SuSE Linux AG公司发布的Linux版本,1994年发行了第一版,早期只有商业版本,2004年被Novell公司收购后,成立了OpenSUSE社区,推出了自己的社区版本OpenSUSE。

SuSE Linux在欧洲较为流行,在我国国内也有较多应用。值得一提的是,它吸取了Red Hat Linux的很多特质。

SuSE Linux可以非常方便地实现与Windows的交互,硬件检测非常优秀,拥有界面友好的安装过程、图形管理工具,对于终端用户和管理员来说使用非常方便。

SuSE官方网站:https://www.suse.com。

OpenSUSE官方网站:http://www.opensuse.org。4.Gentoo Linux

Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。Gentoo是所有Linux发行版本里安装最复杂的,到目前为止仍采用源码包编译安装操作系统。不过,它是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。

自从Gentoo 1.0面世后,它就像一场风暴,给Linux世界带来了巨大的惊喜,同时也吸引了大量的用户和开发者投入Gentoo Linux的怀抱。

有人这样评价Gentoo:快速、设计干净而有弹性,它的出名是因为其高度的自定制性——它是一个基于源代码的发行版。尽管安装时可以选择预先编译好的软件包,但是大部分使用Gentoo的用户都选择自己手动编译。这也是为什么Gentoo适合比较有Linux使用经验的老手使用。但要注意的是,由于编译软件需要消耗大量的时间,所以,如果你所有的软件都由自己编译,并安装KDE桌面系统等比较大的软件包,则可能需要花费很长时间。

Gentoo官方网站:http://www.gentoo.org。

Linux的发行版本众多,在此不逐一介绍,下面给选择Linux发行版本犯愁的朋友一点建议:

如果你需要的是一个服务器系统,而且已经厌烦了各种Linux的配置,只是想要一个比较稳定的服务器系统,那么建议你选择CentOS或RHEL;如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大价钱购买商业软件,不想自己定制,也不想在系统上浪费太多时间,则可以选择Ubuntu;如果你想深入摸索一下Linux各个方面的知识,而且还想非常灵活地定制自己的Linux系统,那就选择Gentoo吧,尽情享受Gentoo带来的自由快感;如果你对系统稳定性要求很高,则可以考虑FreeBSD;如果你需要使用数据库高级服务和电子邮件网络应用,则可以选择SuSE……

以上纯属个人化建议,非官方指导意见。其实Linux的发行版本众多,但是系统的核心——内核却系出同门,所以只要学会使用其中一种,即可触类旁通。1.4学习Linux的建议

本节旨在介绍对于初学者如何学习Linux的建议。如果你已经确定对Linux产生了兴趣,那么接下来我们介绍一下学习Linux的方法。1.如何去学习

学习大多类似庖丁解牛,对事物的认识一般都是由浅入深、由表及里的过程,循序才能渐进。学习Linux同样要有一定的顺序和方法,当然这也是你购买本书学习的意义。如果你是初学者,那么建议按照本书的顺序阅读,不要跳跃,欲速则不达,揠苗也不见得能助长。

另外,强烈建议做好读书笔记,边看边记,边练习边思考,“学而不思则罔,思而不学则殆”,比勤奋更重要的是思考的能力,不要傻学、死学。养成看书的好习惯,学习类的图书如果没能看成自己知识的积累,就是白读。一本书,可能看一遍是不够的,多次阅读,反复实践,才能印象深刻。超哥曾翻烂8本《恋爱宝典》,但是从没向任何人表白,结果不言自明。实践是检验真理的唯一标准,实践出真知!

方法有了,贵在坚持。制定好自己的学习目标,设定奖惩,确定详细的时间进度表,开始行动!保持热情,坚定目标,做好计划,希望你不会让本书变成你书桌上的收藏品,变成那种买了以后翻了一两年都没翻完最后被扔掉的废纸,而是成为一本可能会改变你职场命运的技术指导书,那将是我们最大的荣幸。2.碰到问题怎么办

任何人学习和使用Linux或多或少会遇到问题,很多人遇到问题的第一个念头就是问人。没错!这可以快速解决问题。但是我们建议你,先尝试自己解决问题,询问别人获得答案固然好,但是对于知识的积累和提升解决问题的能力并没有帮助,不要做依赖别人帮助的懒虫。在寻找答案的过程中,虽然会花费很多时间,也可能会遇到挫折,但久而久之你会发现,也许为了找一个问题的解答,你了解了Linux很多相关的知识,经验也越来越丰富。记住,你不可能永远有人问,也不可能永远有人愿意回答你。

Linux系统的一个非常大的好处是,当命令执行错误或系统设置错误时,通常会清楚地显示错误信息,告诉你哪里出错了,只要认真观察报错信息,大概就知道问题出现在哪里、应该如何解决了;有的操作步骤复杂,出现状况时,回头检查一下,是不是前面步骤的命令敲错或配置文件改错;Linux的帮助文档是很好的工具,命令的选项、配置文件的设置都可以从这里找到答案;我们在提问前,一定要先在网络上寻找答案,借用一句广告语“百度一下,你就知道”,没有人愿意回答网上一搜就可以找到答案的问题。

提问时,确认你已经做了上述事情,这有助于树立你不是寄生虫与浪费别人时间的形象。轻率的提问只能得到轻率的回答,或者压根儿没人理你。

有的被询问者常常不是很清楚初学者要问什么,因为初学者没有完整、清楚地描述问题。在求助他人时,说明要做什么、做了什么,列出完整的操作步骤、错误信息或错误截图,描述清晰,让别人能看懂你的问题,否则超哥就算变成超人也帮不了你。

在请教问题时,要注意礼貌。很多年轻人,多了一点理所应当,少了一些礼貌用语,你自然会感到世态炎凉,技术圈子没有人性,毕竟人家不回答你是本分,回答你是人情。

另外,千万不要问那种令人头疼的问题,如Linux怎么备份、Linux权限有哪些、xx服务怎么配置、oo脚本帮写一个……你问饺子皮为什么这么擀会破,我可以告诉你;你问怎么包饺子,这就是你找碴儿了,先在网上找找,人生苦短,快用百度,然后照猫画虎时哪个步骤有问题你再问……

提问,也是一种智慧。3.英文读不懂怎么办

每次在教授Linux课程的第一天,明哥都要给学生介绍两个英文短语,一个是“No such file or directory”,另一个是“command not found”。初学者在学习命令时问得最多的就是这两个问题:输入的文件或目录名称错误、命令没有被发现(命令敲错了)。

能看懂Linux的英文提示及英文文档非常重要。其实计算机英语很简单,只要熟记了计算机专业英语单词,高中毕业的英文水平就可以轻松阅读英文文档了。即便你的英文水平实在太差了,连最简单的计算机英文文档都看不懂,那么在学习Linux的同时学学英语,每天从背一定量的单词开始吧!明哥给兄弟连学员的建议是每天背30个在电脑上看到的不认识的单词,30个单词不需要你会读、会写、会念,看到单词知道意思即可,一般3~5个月,常见的计算机英语都能看懂。4.忘记Windows的思维方式

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

大多数初学者已经习惯了使用Windows的图形界面来完成操作,可是我们在学习和日后使用Linux时基本上在命令行模式下,这让很多初学者很头疼也很困惑。这里的问题是“如何有效利用系统资源”,X Window本身相当消耗系统资源,这也就是在架设Linux服务器时不启动图形界面的原因。如果你想深入了解Linux,就必须学习命令行操作。

所以,我们在开始学习Linux之前,要不被Windows的思想所束缚。这其实是一个使用习惯的问题,笔者常常想,如果我们第一个接触的操作系统就是Linux,那么之后我们再学习Windows,可能我们也会感慨“这个系统为什么必须启动图形界面才能操作”,说到底,是一个习惯问题吧。

学无止境,不仅是学到的知识,还有学习的意识和方法。兄弟连有一句话,与诸位共勉:“让学习成为一种习惯。”本章小结

通过本章的学习,了解UNIX与Linux的发展历史及关系、Linux的主要应用领域、Linux内核与Linux发行版本的区别及主流的发行版本、Linux系统的优缺点;了解操作系统的概念、X Window图形环境的特点、开源软件的特性;建立对Linux系统粗略和整体的认识,知道学习Linux时要注意的问题。测试题不定项选择题

1.UNIX与Linux类似以下哪种关系?

A.明哥和超哥

B.大头爸爸和小头儿子

C.许仙和白娘子

D.岳飞和宋高宗赵构

2.关于UNIX诞生的故事,以下哪种说法是不正确的?

A.肯·汤普森因为想更快地打游戏而开发了UNIX

B.丹尼斯·里奇如果没开发出C语言,UNIX可能就一无是处

C.没有UNIX就不会有Linux

D.当年贝尔实验室如果属于微软,那么UNIX一定会更牛

3.以下哪项不是操作系统?

A.CentOS Linux

B.Windows 10

C.Google Android

D.Microsoft Office

4.谁开发了Linux?

A.尼古拉斯·沈超

B.迈克尔·杰克逊

C.科比·布莱恩特

D.李纳斯·托瓦兹

5.以下关于Linux为什么用企鹅做Logo最离谱的解释有哪些?

A.李纳斯·托瓦兹十分仰慕马化腾

B.李纳斯·托瓦兹喜欢像企鹅一样走路的美女

C.企鹅……貌似很好吃的样子

D.李纳斯·托瓦兹的小名叫豆豆

6.如果以人体器官来比喻Linux内核,哪项最恰当?

A.眼睛和耳朵

B.胳膊和大腿

C.心脏和大脑

D.左肾和右肾

7.以下哪个系统可以安装在明哥的笔记本电脑上?

A.Solaris

B.Ubuntu Linux

C.HP-UX

D.IBM AIX

8.以下关于Linux的说法错误的是哪项?

A.Linux可以不安装图形环境

B.Linux不花钱也可以使用

C.Linux有一个版本叫Green Hat Linux

D.Linux都是小公司和普通程序员在用

9.Netcraft这个神奇的网站能做什么?

A.扫描到目标网站是否为不健康站点

B.扫描到目标网站的Web Server信息

C.扫描到目标网站的OS信息

D.扫描到目标网站管理员的微信号

10.本书为什么写一小节学习Linux的建议?

A.明哥和超哥喜欢装大尾巴狼

B.明哥和超哥在蒙江湖小白呢

C.明哥和超哥真心把学习Linux的经验倾囊相授

D.明哥和超哥吃饱了……

11.兄弟连的口号是什么?

A.大家好,才是真的好

B.没有蛀牙

C.让学习成为一种习惯

D.谁用谁知道第2章不识庐山真面目,只缘身在此山中:Linux系统安装学前导读“要想知道梨子的味道就要先尝尝它”,学习Linux的第一个问题是搭建学习环境,以便开始本书的学习过程。很多新手对Linux望而生畏,皆因对Linux安装的恐惧,害怕Windows系统被破坏,害怕硬盘数据丢失……这些变成了新手的噩梦。本章将介绍如何搭建虚拟机的Linux环境、各种安装Linux的方法以及远程管理工具的使用。本书以Red Hat公司的社区版Linux——CentOS 6.x为例讲解。虽然Linux版本众多,但主要分为两个流派:Red Hat与Debian。二者最大的区别主要是软件包管理方式。不同版本的Linux在安装及使用方面大同小异,不过建议初学者使用我们示例的Linux版本,更加便于学习。本章是我们万里长征的第一步。自本章开始,请大家边学、边练、边思考、边总结,光看不练假把式,实践才能出真知。本章内容2.1 虚拟机软件VMware应用2.2 Linux光盘安装及设置2.3 Linux U盘安装2.4 Linux无人值守安装2.5 dd命令复制安装Linux2.6 远程管理工具2.1虚拟机软件VMware应用

明哥第一次使用的虚拟机软件是Virtual PC,至今印象深刻。此前明哥一直很傻、很天真地认为,介绍操作系统安装的截图都是作者用照相机对着屏幕咔嚓咔嚓拍下来的……直到明哥遇到了虚拟机软件,“金风玉露一相逢”啊……

本节介绍的虚拟机软件是VMware,简单来说,VMware可以使你在一台计算机上同时运行多个操作系统(如Windows、Linux、FreeBSD同时运行)。在计算机上直接安装多个操作系统,同一个时刻只能运行一个操作系统,切换需重启才可以;而Vmware可以同时运行多个操作系统,可以像Windows应用程序一样来回切换。虚拟机系统可以如同真实安装的系统一样操作,甚至可以在一台计算机上将几个虚拟机系统连接为一个局域网或连接到互联网。

在虚拟机系统中,每一台虚拟产生的计算机都被称为“虚拟机”,而用来存储所有虚拟机的计算机则被称为“宿主机”。例如,你的计算机的Windows即宿主机,而VMware安装的Linux则为虚拟机。

使用虚拟机软件VMware还有以下两点好处。1.减少因安装Linux系统而导致的数据丢失

明哥和超哥听说过太多的新手,无知者无畏地尝试安装Linux系统,从而导致原有的Windows系统被破坏,甚至硬盘数据丢失。使用VMware则不需要担心这个问题,在虚拟机系统上所做的任何操作,包括划分硬盘分区、删除或修改数据等,都是在虚拟硬盘中进行的,无论怎么折腾,最坏的结局不过就是重装虚拟机的系统而已。

明哥去大学里办讲座,不是第一次就在几百人面前侃侃而谈、面不改色的,此前都要悄悄地在家里反复练习,准备好了才敢上阵。初学Linux也是一样的,千万不要在公司的服务器上做实验;而在虚拟机中则百无禁忌,可以大胆练习、随意尝试。2.可以方便地体验各种系统进行学习或测试

在同一台计算机上,可以通过VMware安装多个操作系统,明哥的计算机上就通过VMware安装了CentOS、Windows、Solaris、Ubuntu等操作系统,方便体验各种不同的操作系统,测试操作系统平台迁移等也非常方便。

如果你只有一台计算机,那么学习Linux无法做一些需要多台主机的网络实验。有了VMware就可以解决这个问题,用虚拟机和宿主机进行网络通信、文件共享,和真实的网络操作一样!在硬件配置较高的情况下,还可以同时启动两三个甚至更多个虚拟机系统,进行虚拟机系统之间网络应用方面的实验。更多的惊喜是,如果你想玩玩Linux的RAID或LVM等需要多块硬盘的服务,或者想体验一下双CPU的设置、想试试在Linux下添加双网卡,则通过VMware添加虚拟硬件都可以实现。

VMware官方网站:http://www.vmware.com。

推荐使用版本:VMware Workstation Pro或VMware Workstation Player。其中,Player版本推荐个人用户使用,非商业用途,是免费的。其他的VMware产品在此不做过多介绍。

扫码关注细说Linux微信公众号,发送暗号“centos”,可以获取VMware Workstation Player及CentOS系统镜像、其他教学工具的下载地址。

使用VMware虚拟机软件的计算机硬件配置要达到要求,否则虚拟机运行速度会很慢,甚至不能运行。理论上,配置越高越好。现在主流的计算机配置都可以达到运行VMware的要求,千万不要用多年珍藏的老古董来运行VMware,你会发现耐心并不是你的美德。再者,VMware只是工具,没必要追求最新版本,能用即可。

VMware 支持多种平台,可以安装在Windows、Linux等操作系统上,初学者大多使用Windows系统,可下载VMware Workstation for Windows版本。如果是对英文有恐惧的读者则可以使用汉化版本。VMware软件的安装非常简单,与其他Windows软件类似,不做详细讲解。图2-1 安装类型

唯一值得一提的是在安装过程中应选择何种安装类型,有典型安装和自定义安装两种如图2-1所示,建议初学者选择典型安装。

VMware安装好后,启动,进入主界面,如图2-2所示,我们依次进行新虚拟机设置。图2-2 VMware主界面

单击“创建新的虚拟机”按钮,进入“欢迎使用新建虚拟机向导”选择配置对话框,一为“典型(推荐)”配置,一为“自定义(高级)”配置,建议新手选择“典型(推荐)”,如图2-3所示。

单击“下一步”按钮进入“安装客户机操作系统”界面,这里选择“稍后安装操作系统”。如果选择“安装程序光盘”或“安装程序光盘映像文件(iso)”,那么VMware会帮助用户自动安装一个最小化的Linux操作系统,安装过程完全不用用户参与。这样做的好处是安装简单,适合初学者;坏处是完全不能干预安装过程,包括系统分区过程等,就失去了学习的意义,所以选择“稍后安装操作系统”,如图2-4所示。图2-3 选择配置图2-4 安装客户机操作系统

单击“下一步”按钮,进入“选择客户机操作系统”界面,选择“Linux”,然后在“版本”下拉列表框中选择要安装的对应的Linux版本,这里选择“CentOS”,如图2-5所示。

单击“下一步”按钮,进入“命名虚拟机”界面,给虚拟机起一个名字,如“CentOS 6.3”或“PlayBoy”之类的,然后单击“浏览”按钮,选择虚拟机系统安装文件的保存位置,如图2-6所示。图2-5 选择客户机操作系统图2-6 命名虚拟机

单击“下一步”按钮,进入“指定磁盘容量”界面。默认虚拟的硬盘大小为20GB(虚拟出来的硬盘会以文件形式存放在虚拟机系统安装目录中)。虚拟硬盘的空间可以根据需要调整大小,但不用担心其占用的空间,因为实际占用的空间还是以安装的系统大小而非此处划分的硬盘大小为依据的。比如你设定了硬盘容量为20GB,但是安装Linux只用了4GB,那么实际上只会在你的Windows分区中占用4GB的空间,占用空间会随着虚拟机系统使用的空间增加而增加,如图2-7所示。

接下来进入“已准备好创建虚拟机”界面,确认虚拟机设置,不需改动则单击“完成”按钮,开始创建虚拟机,如图2-8所示。图2-7 指定磁盘容量图2-8 已准备好创建虚拟机

我们可以略做调整,单击“自定义硬件”按钮进入硬件调整界面。为了让虚拟机中的系统运行速度快一点,我们可以选择“内存”调整虚拟机内存大小,但是建议虚拟机内存不要超过宿主机内存的一半。CentOS 6.x最少需要628MB及以上内存分配,否则会开启简易安装过程,如图2-9所示。

选择“新CD/DVD(IDE)”可以选择光驱配置。如果选择“使用物理驱动器”,则虚拟机会使用宿主机的物理光驱;如果选择“使用ISO映像文件”,则可以直接加载ISO映像文件,单击“浏览”按钮找到ISO映像文件位置即可,如图2-10所示。图2-9 定制硬件图2-10 光盘配置

选择“网络适配器”,将进入VMware新手设置中最难以理解的部分:设置网络类型,如图2-11所示。此设置较复杂,不过网络适配器配置在虚拟机系统安装完成后还可以再行修改。图2-11 网络适配器配置

VMware提供的网络连接有5种,分别是“桥接模式”“NAT模式”“仅主机模式”“自定义”和“LAN区段”。

●桥接模式:相当于虚拟机的网卡和宿主机的物理网卡均连接到虚拟机软件所提供的VMnet0虚拟交换机上,因此虚拟机和宿主机是平等的,相当于一个网络中的两台计算机。这种设置既可以保证虚拟机和宿主机通信,也可以和局域网内的其他主机通信,还可以连接Internet,是限制最少的连接方式,推荐新手使用。

●NAT模式:相当于虚拟机的网卡和宿主机的虚拟网卡VMnet8连接到虚拟机软件所提供的VMnet8虚拟交换机上,因此本机是通过VMnet8虚拟网卡通信的。在这种网络结构中,VMware为虚拟机提供了一个虚拟的NAT服务器和一个虚拟的DHCP服务器,虚拟机利用这两个服务器可以连接到Internet。所以,在正常情况下,虚拟机系统只要设定自动获取IP地址,就能既和宿主机通信,又能连接到Internet了。但是这种设置不能连接局域网内的其他主机。

●仅主机模式:宿主机和虚拟机通信使用的是VMware 的虚拟网卡VMnet1,但是这种连接没有NAT服务器为虚拟机提供路由功能,所以仅主机网络只能连接宿主机,不能连接局域网,也不能连接Internet网络。

●自定义网络:可以手工选择使用哪块虚拟机网卡。如果选择Vmnet1,就相当于桥接网络;如果选择VMnet8,就相当于NAT网络。

●LAN区段:这是新版VMware新增的功能,类似于交换机中的VLAN(虚拟局域网),可以在多台虚拟机中划分不同的虚拟网络。

以上对于VMware网络的描述,读者看完了可能会有点困惑。简单总结一下:在VMware安装好后,会生成两个虚拟网卡——VMnet1和VMnet8(在Windows系统的“网络连接”中可以查看到),如图2-12所示。图2-12 虚拟网卡

其中常用设置为:一种情况是需要宿主机的Windows和虚拟机的Linux能够进行网络连接,使用“桥接模式”(桥接时,Linux也可以访问互联网,只是虚拟机需要配置和宿主机Windows同样的联网环境);另一种情况是需要宿主机的Windows和虚拟机的Linux能够进行网络连接,同时虚拟机的Linux可以通过宿主机的Windows连入互联网,使用“NAT模式”。

单击“完成”按钮,搞定!可看到如图2-13所示的虚拟机操作界面。当然,这只是一台新建的虚拟机,还没有安装任何操作系统。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载