Linux系统管理初学者指南——基于CentOS 7.6

978-7-115-51344-1
作者: 曲广平
译者:
编辑: 陈聪聪

图书目录:

详情

本书以CentOS7.6作为基础环境,全面系统地介绍了Linux的系统管理和基本操作。全书共由7章内容组成,以Linux的历史与安装开始,陆续讲述了文件和目录管理、用户和权限管理、磁盘与文件系统管理、软件包管理、系统进程和服务管理以及Shell脚本编程基础。通过阅读本书,结合每章末尾的思考与练习将达到理论与实践相结合,学以致用的效果。

图书摘要

版权信息

书名:Linux系统管理初学者指南——基于CentOS 7.6

ISBN:978-7-115-51344-1

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

著    曲广平

责任编辑 陈聪聪

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


本书是一本面向零基础读者的入门图书,以CentOS 7.6为基础,从系统管理的角度对Linux操作系统进行了全面而详细的介绍。本书共分为7章,涵盖了解并安装Linux系统、文件和目录管理、用户和权限管理、磁盘和文件系统管理、软件包管理、进程和服务管理和Shell脚本编程基础等内容。

本书中介绍的都是Linux的通用知识,适用于系统运维、嵌入式、云计算、大数据和人工智能等专业领域。本书既可以作为高校的授课教材,又可作为广大Linux爱好者的自学用书,是学习Linux的入门指南。


随着开源软件在世界范围内的影响力日益扩大,作为开源界典型代表的Linux系统也得到越来越广泛的应用。目前网络中的绝大多数服务器采用了Linux操作系统,除服务器领域之外,运行在Linux平台上的各种专业应用也越来越多,例如近几年快速崛起的云计算、大数据和人工智能等专业领域,它们所采用的大多是运行在Linux系统上的开源软件。目前已逐步形成专业人士使用Linux系统、普通用户使用Windows系统的局面,这就促使更多的人去学习如何使用Linux系统。

相比Windows,Linux系统的学习曲线是比较陡峭的,这是由于Linux系统中的大多数操作是基于命令行来实现的,可以说命令行就是Linux的精髓。在学习Linux时,尤其是在刚入门的阶段,必须要下苦功去记忆常用的基本命令,并不断强化练习。对于零基础的读者,入门阶段往往是比较痛苦的,行百里者半九十,很多人就是在这个阶段放弃的。实际上,需要强化记忆的基本命令也就50个左右,当熟练掌握这些基本命令并习惯Linux系统的风格之后,就会发现它们其实不难记。试想,如果连作为基础平台的Linux系统我们都无法掌握和使用,那么还何谈学习大数据、人工智能等专业知识呢?

本书是一本面向零基础读者的入门图书。在编写的过程中,我尽量从初学者的角度组织内容。虽然本书从系统运维的角度来介绍Linux系统的使用,但同样也适用于各类以Linux 为基础平台的专业人员,因为书中所介绍的是Linux系统中基础和通用的操作。

本书采用的系统版本为CentOS 7.6。本书共分为7章。

第 1 章,了解并安装Linux系统:主要介绍 Linux 系统的发展历史和特点、如何用VMware Workstation搭建实验环境并安装CentOS系统,以及Shell命令的基本格式。

第2章,文件和目录管理:主要介绍文件路径、根目录和家目录等基本概念,文件和目录操作、文件内容操作、日期和时间、文件查找等相关命令,以及重定向、管道符、Vi编辑器的使用方法。

第3章,用户和权限管理:主要介绍用户、组、权限等基本概念,同时介绍如何设置权限,以及如何设置FACL、SET位和SBIT等特殊权限。

第4章,磁盘和文件系统管理:主要介绍磁盘分区和格式化等基本概念,以及如何挂载存储设备、配置磁盘配额、配置RAID磁盘阵列和配置LVM逻辑卷等常用操作。

第5章,软件包管理:主要介绍压缩和解压,如何配置YUM源,通过YUM方式安装软件,同时了解RPM以及源码安装。

第6章,进程和服务管理:主要介绍进程和服务的概念,帮助读者掌握进程和服务管理的常用工具,并能够配置计划任务。

第7章,Shell脚本编程基础:主要介绍Shell脚本编程的基本语法,以及正则表达式和文本处理“三剑客”等工具的使用。

我是一名职业院校的教师,从事Linux教学已有7个年头了。我认为,一名教师的价值主要应体现在以下两个方面。第一个方面,是要对所教授的内容进行取舍,保证学生能够学有所用。任何一门学科的知识都很丰富,教师必须能够针对学生的层次选取适合他们的内容,而不能事无巨细,把自己掌握的知识一一罗列出来。对于本书中所介绍的每一个知识点,我都经过了反复的斟酌和取舍,尽量避免介绍那些比较冷门、使用较少的概念和操作。第二个方面,是要讲清楚各个知识点,保证学生能够听懂会用。我的授课对象主要是高职的大二学生,绝大部分学生是第一次接触Linux,有些学生甚至连Windows系统都很陌生。因此,本书无论在内容组织还是概念讲解上,都是尽量站在初学者的角度来进行。经过多年的教学实践总结,我发现大部分学生能够掌握课程内容,很多学习优异的学生在毕业后还走上了系统运维、信息安全等专业岗位。如果您正在犯愁如何在众多的Linux专业图书中挑选一本适合初学者的入门教程,那么不妨读一读本书。

我在讲课时录制了视频教程,该教程包含了本书中的所有内容,所有的视频教程都已发布在51CTO学院。

最后,感谢51CTO学院提供了一个非常好的学习交流平台。随着5G时代的来临,在线教育必将成为未来教育行业的发展趋势。感谢人民邮电出版社的各位编辑,有了你们的大力支持和辛苦付出,本书才得以顺利出版。感谢王兆斌、于大林、华森、宋明玉、齐明辉、张旭亭等同学,帮助我校对了书稿,并指出了几处错误。当然,还要感谢每一位读者,感谢您在茫茫书海中选择了本书,衷心祝愿您能够从本书中受益,学到真正需要的知识!同时也欢迎您指出书中的不足。我的邮箱为yttitan@163.com,个人QQ为498921332,随时期待您的热心反馈!

曲广平


本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。

本书提供如下资源:

要获得以上配套资源,请在异步社区本书页面中点击,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,点击“提交勘误”,输入勘误信息,点击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。

如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。

“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。

异步社区

微信服务号


在计算机系统的应用中,Windows并不是唯一的操作系统,尤其是在服务器和开发环境等领域,Linux操作系统正得到越来越广泛的应用。在企业级应用中,Linux操作系统在稳定性、高效性和安全性等方面都具有相当优秀的表现。在生产环境中,Windows Server(微软公司推出的服务器操作系统)主要应用在局域网内部,而众多面向互联网的服务器则更多地采用Linux操作系统。

本章将介绍Linux系统的发展与特点、Linux的发行版本等内容,并通过在VMware虚拟机中安装Linux系统,介绍Linux的安装过程及其基本操作。

在学习使用Linux系统之前,如何选择一个恰当的Linux发行版本是需要解决的首要问题。

下面介绍Linux系统发展的来龙去脉,这将有助于我们更好地理解和把握Linux系统的特点,并能够深入理解“开源”的概念,最终区分Linux那些纷繁复杂的发行版本,以及理解众多类UNIX系统之间的区别和联系。

1.Multics计划

20世纪60年代,那时计算机还没有普及,只有科研院所或者高校中的少数人才有机会使用计算机。当时计算机的操作系统采用批处理方式,就是把一批任务一次性提交给计算机,然后等待处理结果,并且中途不能和计算机交互。这样计算机用户的准备作业往往就需要花费很长时间,并且在这个过程中别人也不能使用计算机,这就导致了计算机资源的浪费。

为了改变这种情况,在1965年前后,贝尔实验室(Bell)、麻省理工学院(MIT)以及通用电气(GE)联合起来准备研发一个分时多任务处理系统,简单来说,就是实现多人同时使用计算机,并把这个系统取名为Multics(多路信息计算系统)。但是由于项目太复杂,加上其他原因,项目进展缓慢。1969年,贝尔实验室觉得这个项目可能不会成功,于是就退出了。

2.UNIX系统

贝尔实验室中有一位名为Ken Thompson的工程师,他在研发Multics的时候设计了一个运行在Multics上的叫作《星际旅行》(Space Travel)的游戏。在贝尔实验室退出Multics计划后,Thompson就没有了Multics的运行环境。为了能够继续开发游戏,他花了一个月的时间,用汇编语言写出了一个小型的模仿Multics的操作系统,专门用于运行该游戏。当系统完成之后,Thompson怀着激动的心情请同事们来玩他设计的游戏。大家玩过之后纷纷表示对他的游戏不感兴趣,但是对他的系统很感兴趣。由于这个系统是在Multics的基础上开发的,因此就称它为UNIX。这个时候已经是1970年了,后来就将1970年定为UNIX元年,并且在UNIX系统中将1970年1月1日0:00作为计算机时间的起点。

后来UNIX系统就在贝尔实验室内部流行开来,并且Thompson又在1972年与同事Dennis Ritchie一起用C语言重写了UNIX系统,大幅增加了其可移植性,其后UNIX系统开始蓬勃发展。

总体来讲,UNIX操作系统具有以下几个特点。

在UNIX发展的早期,任何感兴趣的机构或个人只需向贝尔实验室支付一笔数目极小的名义上的费用就可以完全获得UNIX的使用权,这些使用者主要是一些大学和科研机构,它们在UNIX原有源代码的基础之上进行扩展和定制,以适应各自的需要。随着UNIX系统的不断发展,逐渐出现了一些商业化的UNIX版本,如美国加州大学伯克利分校开发的BSD、IBM公司开发的AIX以及HP公司推出的HP-UX等,后来贝尔实验室也收回了UNIX的版权,并推出了商业化版本System V。这些不同版本的系统之间展开了激烈的竞争,并且大多数系统至今也仍然在一些大型机或小型机上使用。虽然它们名称各异,但由于都是来自于UNIX,因而统称其为“类UNIX操作系统”。

3.MINIX系统

由于贝尔实验室收回了UNIX系统的版权,而且各个商业化版本的UNIX系统价格不菲,因此这就为荷兰阿姆斯特丹自由大学讲授“操作系统原理”课程的Andrew S. Tanenbaum教授带来了诸多不便。Tanenbaum教授在1987年仿照UNIX自行设计了一款精简版的微型UNIX系统,并将其命名为MINIX,专门用于教学。

MINIX系统是免费的,至今仍然可以从许多FTP上下载。但是它作为一款教学演示用的操作系统,功能非常简单,而Tanenbaum教授为了保持系统代码的纯洁性,拒绝了世人对MINIX功能进行扩展的要求。这限制了MINIX的发展,但同时也为别人开发其他系统提供了机会。

4.Linux系统

来自芬兰赫尔辛基大学的学生Linus Torvalds抓住了这个机会。他在MINIX系统的基础上,增加了很多功能使之完善,并于1991年将修改之后的系统发布在互联网上。任何人都可以免费下载并使用这个系统,并且Linus非常欢迎大家对这个系统进行修改和完善。这个由Linus发布的类UNIX操作系统就被称为Linux系统。

Linux系统采用市集式(Bazaar)的开发模式,任何人都可以参与其开发及修正的工作,这吸引了大量黑客和计算机发烧友通过Internet获取Linux系统,并返回自己对系统的改良或研发程序。这使得Linux的除错(Debug)及改版速度非常快,稳定性和效率更高,并且资源丰富。这也是Linux得以迅速发展并被人广为接受的主要原因。

经过几十年的发展,Linux目前已成为全球备受欢迎的操作系统之一。它不仅稳定可靠,而且还具有良好的兼容性和可移植性,其市场竞争力日渐增强。在云计算、大数据和人工智能等领域,Linux也占据着越来越重要的地位。

系统内核Kernel是Linux系统中一个非常重要的概念。所谓系统内核就是负责完成操作系统基本功能的程序。什么是操作系统基本的功能呢?想一想我们平常在用计算机时都会做些什么?无非是用QQ聊天、用Word打字、用浏览器上网、玩各种游戏……但这些都不是操作系统的功能,而是由应用软件提供的功能。系统内核是实现上述所有这些应用的前提——要想做这些事情,必须先安装操作系统。

那么,到底什么是系统内核?系统内核在计算机中具体又起到了什么作用呢?

从图1-1中可以看出,内核直接运行在计算机硬件之上,系统内核的主要作用就是替我们管理计算机中那些形形色色的硬件设备,它是所有外围程序运行的基础,也是计算机硬件跟用户之间的接口或桥梁。通过它,我们才能让CPU高效地处理各种数据;通过它,我们才能在硬盘中读写各种数据;通过它,我们才能与网络上的计算机进行通信……

图1-1 系统内核作用

具体来说,系统内核的主要作用就是负责统一管理计算机中的硬件资源、提供用户操作界面、提供应用程序的运行环境,因而它可以被认为是计算机中所有软件的核心和基础。

Linux系统中的内核程序被称为Kernel,当年Linus Torvalds在互联网上发布的程序就是Kernel,而且一直到今天,Linux Kernel仍是由Linus领导的一个小组负责开发更新的。从Linux Kernel的官方网站上可以下载已发布的每一个版本的Kernel程序。截至2019年2月,Linux Kernel的最新稳定版本是4.20.10。

Kernel作为Linux系统的核心,只能实现系统的基本功能。但作为一个操作系统,只有内核是远远不够的;对于用户而言,重点是要使用在Kernel之上运行的Web服务、FTP服务和Mail服务等应用程序,因此一个完整的Linux系统应该包括Kernel和应用程序两部分。

无论是Kernel还是Linux,其中的绝大部分应用程序具有一个共同的特点——属于一个名为GNU的计划项目,都要遵守GNU计划中的GPL或LGPL协议。

GNU是世界知名的自由软件项目,它决定了Linux系统自由、开放的属性;也正是由于它的出现,Linux系统才形成了版本众多的现状。

GNU计划是由Richard M. Stallman于1984年发起并创立的。Stallman的技术超凡,思维更是超前。他认为对于整个人类而言,知识传播的过程应该是开放的(试想一下,如果一些基本的科学定理或法则都是封闭的,都要求付费以后才能使用,那么我们的世界将会是什么样子?)。计算机软件作为人类智慧的结晶,也是知识的一种,因此它应以源代码的方式呈现,没有人可以独占。软件的开发既没有壁垒,也没有垄断,其主要目的就是满足更多的用户需求,激发更多的创新力量。GNU计划的标识如图1-2所示。

图1-2 GNU计划的标识

凡是属于GNU计划中的软件都是开放源代码的,任何人都可以自由地对其进行使用、修改或传播。而且为了保证GNU计划内的软件经传播、改写以后仍然具有“自由”的特性,该计划还专门制定了针对自由软件的授权许可协议 GPL 和 LGPL,正是这些协议为GNU计划中的软件提供了统一的使用规范。

应当这样认为,Stallman的思维在当年是很超前的,因为在那个时期有很多人就是靠卖一两款软件而白手起家的,Bill Gates是凭借DOS和Windows操作系统这两款软件坐上世界首富的宝座。但时代的发展越来越体现出Stallman这种思维的正确性,目前开源运动正以不可阻挡之势快速发展。

由于Linus是GNU计划的坚定拥护者,因此Linux系统诞生后不久便加入GNU计划。至此,我们可以简单地总结一下:Linux系统的内核Kernel和Linux系统中的绝大多数应用软件来自于GNU计划,任何人都可以自由地(也可以狭义地理解为免费地)去使用、传播它们,因此Linux系统的确切名称应该为“GNU/Linux操作系统”。

Linux的标识是一只企鹅(见图1-3)。企鹅只在南极才有,而南极洲不属于任何国家,企鹅标识也就寓意开放和自由,这也正是Linux的精髓。

图1-3 Linux的标识

之前提到过,只有内核的系统是无法使用的,作为最终用户,我们使用的其实都是运行在内核之上的各种应用程序。因此,很多公司或组织在Linux内核的基础之上添加了各种管理工具和应用软件,这就构成了一个完整的操作系统,像这样将系统内核和应用软件封装在一起的操作系统被称为Linux发行版。我们平常所接触和使用的各种Linux系统,其实都是Linux的发行版。

根据GNU的相关协议,任何公司或社团甚至是个人都可以将Linux内核和各种自由软件打包成一个完整的Linux发行版。据不完全统计,目前各种Linux发行版已超过300种,虽然每个Linux发行版都有单独的名称,但它们所采用的其实都是相同的Linux内核,只不过在不同的发行版中安装使用的应用软件有区别,从而使得不同的发行版可以适合不同的用途。但总体而言,这些Linux发行版在操作和使用上都是类似的。

下面介绍一些被广泛应用的Linux发行版本。

1.RedHat Linux

在各种Linux发行版中,较为知名的是RedHat Linux(见图1-4)。RedHat是著名的Linux厂商。RedHat Linux系列发行版具有广泛的企业用户基础,也代表着Linux操作系统的事实标准,因此大多数人学习Linux是从RedHat Linux入手的。

图1-4 RedHat Linux

早期的RedHat Linux主要面向个人用户,任何人都可以免费使用。但后来RedHat Linux逐渐发展为两个分支:Fedora项目和RedHat Enterprise Linux(RedHat Linux企业版,RHEL)。

Fedora项目是一个由RedHat公司资助并被Linux社区支持的开源项目,它仍然是免费的。Fedora主要定位于桌面用户,追求绚丽的桌面效果,使用最新的应用软件。Fedora其实是RHEL的实验版本,很多新技术都要先在Fedora上测试,如果稳定的话,再移植到RHEL上。

RHEL则专门面向企业用户,功能更加强大,性能也更优越。RHEL为很多企业所采用,但需要向RedHat付费才可以使用。需要说明的是,这个费用并不用于购买RHEL操作系统本身,而是为了得到RedHat公司的服务和技术支持,以及专门针对企业应用定制的第三方软件。当然,依据GNU的规定,RHEL系统的源代码依然是公开的。

2.CentOS

CentOS(Community Enterprise Operating System,社区企业操作系统)在业界大名鼎鼎,其应用的广泛程度甚至可能超过了RHEL。

CentOS系统是RHEL系统释放出的程序源代码经过二次编译而成的Linux系统,命令操作和服务配置方法自然与RHEL相同,只是去掉了很多RedHat收费的服务套件功能,而且还不提供任何形式的技术支持,出现问题后只能由运维人员自己解决。CentOS的版本更新也与RHEL保持同步,它相当于免费版的RHEL。

虽然CentOS使用了RHEL的源代码,但根据GNU计划的规定,CentOS的这种做法是完全合理合法的。CentOS的用户也不会遇到任何版权问题。事实上,CentOS组织已于2014年加入了RedHat,因而CentOS系统也就成为RedHat产品系列的一部分。很多人选择用CentOS作为学习和实施Linux的发行版,尤其是对于一些中小企业和个人,他们并不需要专门的商业支持服务,用CentOS以最低的成本就能开展稳定的业务,因此CentOS得到了越来越广泛的应用。图1-5所示为CentOS的标识,本书中所采用的系统是CentOS 7.6。

图1-5 CentOS的标识

3.Debian

Debian也是一个被广泛应用的Linux发行版系列。

Debian由社区组织负责开发,是一个免费版的Linux系统,遵循GNU规范。用户可以从Debian的官网下载最新版本的Debian。

Debian以稳定著称,也有很多服务器采用Debian作为操作系统,而在Debian基础之上二次开发的Ubuntu则是一个非常流行的桌面版Linux系统。另外,目前在安全界大名鼎鼎的Kali Linux,也是一个基于Debian的Linux发行版。图1-6所示为Debian和Ubuntu的标识。

图1-6 Debian和Ubuntu的标识

4.SUSE

SUSE是在欧洲比较流行的Linux发行版,它在软件国际化上做出了不少的贡献。现在SUSE已经被Novell公司收购,发展前景光明。不过与RedHat的系统相比,SUSE并不太适合初级用户使用。

SUSE也分为两个不同的版本:面向企业用户的SUSE Linux Enterprise、面向个人用户的openSUSE。

Linux系统较为广泛的应用当属网络服务器,继承了UNIX高稳定性的良好传统,Linux的网络功能特别稳定与强大。此外,由于GNU计划与Linux的GPL授权模式,很多优秀的软件得以在Linux上面发展。因此,如果需要搭建一台网络服务器,例如Web服务器、FTP服务器等,则Linux是一个不错的选择。以Linux为基础的LAMP(Linux + Apache + MySQL + PHP组合)或LNMP(Linux + Nginx + MySQL + PHP组合)就是使用极为普遍的Web服务平台。

随着技术的不断发展,Linux也被广泛用于各种嵌入式系统,如电视机顶盒、手机、路由器和防火墙等。Android(安卓)手机操作系统也使用经过定制的Linux内核。

Linux的缺点是系统操作主要依靠命令进行,这提高了Linux系统的使用门槛。虽然Linux也有像Fedora和Ubuntu这样的桌面版本,但普通用户在操作时还是有诸多不便,因此,专为个人用户设计的桌面版Linux系统使用并不广泛。

在学习使用Linux系统的过程中必然要进行大量的实验操作,这些操作离不开虚拟机软件。本书中的所有实验操作都是基于虚拟机进行的。

虚拟化及云计算是目前IT领域的热门技术,其中虚拟化技术主要是指各种虚拟机产品的应用。

目前的虚拟机产品主要分为以下两个大类。

一类称为寄居架构,这类虚拟机必须要安装在操作系统上,通过操作系统去调用计算机中的硬件资源,虚拟机本身被看作是操作系统中的一个应用软件。这种虚拟机的性能与原生架构的虚拟机产品有着天壤之别,因而主要用于教学或学习。典型产品是VMware Workstation和VirtualBOX。

另一类称为原生架构,有时也称作裸金属架构。这种类型的虚拟机产品直接安装在计算机硬件上,不需要操作系统的支持,它可以直接管理和控制计算机中的所有硬件设备,因而这类虚拟机拥有强大的性能,主要用于生产环境。典型产品就是vSphere、Citrix,以及Linux系统中自带的KVM。目前所说的虚拟化技术主要是指这类产品。

图1-7所示为这两类产品的架构。

图1-7 寄居架构和裸金属架构

绝大多数普通用户所接触的是寄居架构的虚拟机产品。其中VMware Workstation凭借其强大的性能以及对Windows和Linux系列操作系统的良好支持,得到了广泛的应用。本书中的绝大部分实验是利用VMware Workstation(以下简称VMware)来搭建环境的,所使用的软件版本为VMware Workstation 15。

1.安装VMware Workstation

VMware的安装过程比较简单,主要步骤如下。

① 运行安装程序,打开安装向导。接受许可协议之后,修改软件的安装位置。建议不要使用默认的安装路径,而是将VMware安装到C盘以外的分区,比如安装在D:\vmware文件夹中。

② 接下来输入序列号进行注册。正确注册之后,VMware Workstation的安装就完成了。

2.物理主机的硬件要求

安装完VMware之后,就可以创建和使用虚拟机了。在这之前,还必须先保证物理主机的硬件配置要达到相应的要求。

我们目前所用的操作系统分为32位和64位,它们的主要区别在于内存寻址能力。32位操作系统采用32位的二进制数为内存空间编号,在这类系统中,CPU能够寻址的最大内存空间为4GB。而64位操作系统则采用64位的二进制数为内存空间编号,内存寻址空间扩大到16EB。

CentOS 7是64位的操作系统,要想在虚拟机中安装CentOS 7,要求物理主机的CPU必须支持硬件虚拟化技术,即Intel-VT技术或AMD-V技术。AMD的CPU大多支持虚拟化技术,包括Intel的酷睿系列CPU,但一些型号较老的奔腾或赛扬系列CPU则有可能不支持虚拟化技术。

另外,在BIOS中还必须要开启相关的硬件虚拟化设置选项,这项功能在大多数情况下默认是关闭的。进入物理主机的BIOS,找到类似“Intel Virtual Technology”的设置选项,将其设为“Enabled”(启用)即可(见图1-8)。当然,如果CPU不支持硬件虚拟化,那么BIOS中也就没有这项设置。

图1-8 在BIOS中开启硬件虚拟化功能

虽然物理主机的内存大小不作为必要条件,但越大越好,一般要确保至少有4GB的物理内存。

3.创建虚拟机

准备工作完毕之后,下面就来创建一台虚拟机。注意,在VMware中创建虚拟机需要有管理员权限,建议以管理员身份运行VMware。

以下是创建虚拟机的主要步骤。

① 在VMware主窗口中单击“创建新的虚拟机”按钮,打开“新建虚拟机向导”。

② 选择“自定义”模式,对虚拟机中的硬件设备进行定制。

③ 在“安装客户机操作系统”界面中选择“稍后安装操作系统”,待创建完虚拟机之后,再单独进行系统的安装。

④ 选择操作系统的“版本(V)”为“CentOS 64位”,如图1-9所示。注意,如果物理主机不支持虚拟化技术,或者BIOS中没有启用虚拟化选项,那么在这里就无法继续操作了。

图1-9 选择安装的操作系统

⑤ 设置虚拟机名称以及虚拟机文件的存储位置,如图1-10所示。建议最好在C盘以外的专门文件夹中单独存储。

图1-10 设置虚拟机名称及虚拟机文件的存储位置

⑥ 对虚拟机的CPU和内存进行配置。

物理主机的CPU现在大多是多核的,一般只给虚拟机配置一个CPU核芯。

虚拟机内存可根据物理内存的大小灵活设置,一般建议设为1GB。

⑦ 网络类型以及I/O控制器、磁盘类型选择默认设置即可。

在“选择磁盘”界面中选择“创建新虚拟磁盘”。虚拟磁盘以扩展名为“.vmdk”的文件形式存放在物理主机中,虚拟机中的所有数据都存放在虚拟磁盘里。

然后需要指定磁盘容量,默认为20GB。这里的容量大小是允许虚拟机占用的最大空间,而并不是立即分配使用这么大的磁盘空间。磁盘文件的大小随着虚拟机中数据的增多而动态增长,但如果选中“立即分配所有磁盘空间(A)”,则会立即将这部分空间划给虚拟机使用,不建议选择该项。

另外,强烈建议选中“单个文件存储虚拟磁盘(O)”,如图1-11所示。这样会用一个单独的文件来作为磁盘文件,前提是存放磁盘文件的分区必须是NTFS分区。如果选择“虚拟磁盘拆分成多个文件(M)”,则会严重影响虚拟机的性能。

图1-11 设置虚拟磁盘

⑧ 虚拟机创建完成,可以单击“自定义硬件”按钮对虚拟机硬件做进一步调整。建议将“声卡”“打印机”等虚拟机用不到的硬件设备移除,以节省系统资源。调整后的界面如图1-12所示。

图1-12 移除虚拟机不必要的硬件设备

至此,一台新的虚拟机就创建好了。

安装系统是学习使用Linux的第一步。下面介绍如何在虚拟机中安装CentOS 7系统。

1.下载系统镜像

CentOS作为开源系统,可以很方便地获得它的系统镜像。用户可以从CentOS官网或国内的阿里云、搜狐、网易等开源镜像站下载到各种版本的CentOS。图1-13所示就是从阿里云的开源镜像站下载的“CentOS-7-x86_64-DVD-1810.iso”。在下载时,有很多不同的版本可供选择,推荐选择DVD版。该版本中包含大量的常用软件,大小约为4.5GB。

图1-13 下载镜像文件

2.系统安装过程

对于Linux初学者来说,安装Linux系统的过程可能比安装Windows要稍微复杂一些,但是只要理解了Linux系统的一些基础知识,掌握安装过程中的关键步骤,将会发现Linux操作系统的安装过程具有较大的灵活性和可定制性。

首先在创建好的虚拟机中加载CentOS 7的系统镜像文件,打开虚拟机电源,虚拟机会自动从光盘引导,出现安装界面。安装界面中提供了3个菜单。

选中任何一个菜单,均可以使用<Tab>键自定义具体的参数设置,这很适合对Linux比较熟悉的人士使用。这里选择“Install CentOS Linux 7”,并按回车键,如图1-14所示。

然后进入语言选择界面,选择“简体中文”。

接下来会进入“安装信息摘要”界面,在这里可以集中设置“日期和时间(T)”“软件选择(S)”“安装位置(D)”等信息,如图1-15所示。

图1-14 开始系统安装过程

图1-15 安装信息摘要

“软件选择(S)”默认为最小安装,这里建议单击“软件选择(S)”,然后在“基本环境”列表中选择“带GUI的服务器”,如图1-16所示。设置完成后,单击“完成”按钮即可返回“安装信息摘要”界面。

由于Linux的发行版就是“Kernel+各种应用软件”,因此在Linux的系统安装光盘中已经集成了在Linux中可能会用到的绝大部分应用软件,否则系统光盘的体积也不会这么大。当然这些应用软件我们不可能全部都安装,而应根据需要选择性地安装。对于初学者,建议选择“带GUI的服务器”,这样系统安装完成后,会进入界面比较友好的桌面环境。如果是在生产环境中使用,则可以根据具体的应用来选择要安装的软件环境,一般建议只安装所需要的基本软件包,系统中安装的软件包数目越少,系统的安全性相应也就越高。

图1-16 软件环境选择

“安装位置”用于指定将Linux安装到哪块硬盘上,这里进入该界面选择硬盘,并设置自动配置分区。需要注意的是,虽然CentOS默认采用自动配置分区方式(见图1-17),但仍然需要用户进入安装位置,然后单击“完成”按钮做一次确认动作。

图1-17 选择系统安装位置

在“网络和主机名”中,以太网接口默认是被禁用的,需要手动单击“开启”按钮;网卡设置默认为DHCP动态获取IP,如果需要手动配置网络参数,可以单击“配置”按钮,如图1-18所示。

另外,建议关闭Kdump内核转储服务。该服务提供了一种内核崩溃时的强制写入机制。当系统崩溃时,Kdump会自动记录相关信息,这有助于管理员排错。但Kdump会占用一部分系统内存,而且是以独立方式占用的,由于我们的虚拟机内存设置得比较小,因此建议关闭该服务,这并不会影响系统使用。

图1-18 设置网络和主机名

在安装信息摘要中完成设置后,单击“开始”按钮即可安装CentOS 7系统,开始安装后需要设置Root管理员密码,同时还可以添加额外的普通账户,如图1-19所示。

图1-19 开始系统安装过程

首先为root用户设置密码,由于我们只用于学习,因此这里将密码设置为“123”。注意,在生产环境中,一定要让root用户的密码足够复杂,否则系统将面临严重的安全问题。Linux系统对密码的设置要求比较严格,这里会提示密码“Too short”,同时要求单击两次“完成”按钮方可确认,如图1-20所示。

图1-20 为root用户设置密码

然后创建一个名为student的普通用户,同样也将密码设置为“123”,如图1-21所示。由于root用户的权限过大,因此Linux希望我们能使用普通用户身份登录系统并处理日常工作,在需要执行系统管理类操作时再切换到root用户。不过在学习阶段,还是建议以root用户身份登录系统,否则很多操作将无法完成。

图1-21 创建普通用户student并设置密码

系统安装完所有的软件包后,会提示重启计算机。

3.初始化并登录系统

系统重启之后,第一次启动系统时还需要对系统做一些初始化设置。

在“初始设置”界面中提示“未接受许可证”(见图1-22),单击“LICENSE INFORMATION”,然后在“许可信息”界面中勾选“我同意许可协议”即可。返回“初始设置”界面后,单击“完成配置”。

图1-22 接受许可证

接下来会出现系统登录界面,可以看到在登录界面中只有刚创建的student用户(见图1-23),如果想以root用户身份登录,那么需要单击“未列出”,然后输入用户名“root”及其密码。

图1-23 系统登录界面

在之后的“欢迎”界面中,选择系统语言为“简体中文”,键盘布局也为“简体中文”,“在线账号”的步骤可跳过,完成这些简单设置之后,出现“一切都已就绪!”的提示,单击“开始使用CentOS Linux(S)”按钮(见图1-24),之后会看到Linux系统的桌面,系统安装成功完成。

图1-24 系统安装完成

在虚拟机中成功安装了Linux系统之后,还需对VMware Workstation做进一步的设置,以更好地满足实验需求。

1.创建虚拟机快照

通过创建快照可以将系统的当前状态进行备份,以便随时还原。一般在进行一项有一定风险的操作之前,可以为系统创建快照。

在虚拟机菜单栏中依次单击“虚拟机”→“快照(N)”→“拍摄快照(T)…”,可以为当前状态创建一个快照。图1-25所示是以日期为名创建了一个快照,以后可以随时将虚拟机还原到快照创建时的状态。

图1-25 快照管理

2.克隆虚拟机

搭建网络实验环境一般需要多台虚拟机,如果每台虚拟机都要经过安装系统等操作之后才能使用,则过于烦琐,而且需要占用大量的磁盘空间。通过虚拟机克隆可以很好地解决这个问题,也就是说,既可以快速得到任意数量的相同配置的虚拟机,省去了系统安装的过程,又由于所有克隆的虚拟机都是在原来的虚拟机基础之上增量存储数据,因此也节省了大量的磁盘空间。

克隆操作必须在虚拟机关机的状态下进行。在Linux图形界面中,单击右上角的下拉箭头,然后单击关机图标按钮,将系统关机,如图1-26所示。

图1-26 将系统关机

选中已关闭的虚拟机,单击右键,在弹出的快捷菜单中选择“管理”→“克隆”,打开“克隆虚拟机向导”。在“克隆类型”中,“克隆方式”建议选择“创建一个链接克隆(L)”(见图1-27),这样克隆出的虚拟机将会以原有的虚拟机为基础增量存储数据,可以极大地节省磁盘空间。

图1-27 选择“克隆方式”

为克隆的虚拟机起一个名字,并指定存储位置,如图1-28所示。

图1-28 设置克隆虚拟机的名字和存储位置

这样就创建出了一台名为CentOS 1的克隆虚拟机,它与原有的虚拟机功能一模一样。需要注意的是,一定要确保原有虚拟机运行正常。如果它出现了问题,那么所有以它为基础创建的克隆虚拟机也都会出现错误。因此,建议原有的虚拟机最好不要再使用,而是将其闲置起来,之后所有的实验操作都基于克隆虚拟机进行。

3.利用虚拟硬盘文件创建虚拟机

在物理主机上的操作系统被重新安装或VMware软件被卸载之后,当我们再次用到虚拟机时,之前创建好的那些虚拟机是否可以继续使用呢?如果我们已经把那些虚拟机的磁盘文件完好地保存了下来,那么完全可以利用这些磁盘文件快速地还原虚拟机。

在VMware中选择新建虚拟机,虚拟机的创建过程与前面相同,只是要注意在“选择磁盘”的步骤中要选择“使用现有虚拟磁盘(E)”(见图1-29),并指定已有的“.vmdk”文件为虚拟机的硬盘。

图1-29 使用已有磁盘文件创建虚拟机

由于虚拟机中的所有数据都保存在“.vmdk”磁盘文件中,因此通过这种方式创建出来的虚拟机与之前的完全相同。

4.设置虚拟机的网络环境

虚拟机之间必须进行正确的网络设置,使之可以互相通信,然后才能进行各种网络实验。

打开虚拟机设置界面,选中网络适配器,可以看到虚拟机有“桥接模式(B)”“NAT模式(N)”“仅主机模式(H)”“自定义(U)”“LAN区段(L)”共5种不同的网络连接模式,每种网络模式都对应了一个虚拟网络,如图1-30所示。注意,必须要保证勾选了“设备状态”中的“已连接(C)”,否则就相当于虚拟机没有插接网线。

图1-30 网络设置模式

(1)桥接(bridged)模式

在桥接模式下,虚拟机就像是一个独立主机,与物理主机是同等地位,可以通过物理主机的网卡访问外网,外部网络中的计算机也可以访问此虚拟机。为虚拟机设置一个与物理网卡在同一网段的IP地址,则虚拟机就可以与物理主机以及局域网中的所有主机进行自由通信。桥接模式如图1-31所示。

图1-31 桥接模式

桥接模式对应的虚拟网络名称为“VMnet0”。在桥接模式下,虚拟机其实是通过物理主机的网卡进行通信的。如果物理主机有多块网卡(如一块有线网卡和一块无线网卡),那么还需注意虚拟机实际桥接到了哪块物理网卡。

在“编辑”菜单中打开“虚拟网络编辑器”,可以对VMnet0网络桥接到的物理网卡进行设置,如图1-32所示。

图1-32 设置桥接的物理网卡

(2)仅主机(host-only)模式

仅主机模式对应的是虚拟网络“VMnet1”。VMnet1是一个独立的虚拟网络,它与物理网络之间是隔离开的(见图1-33)。也就是说,所有设为仅主机模式的虚拟机之间以及虚拟机与物理主机之间可以互相通信,但是它们与外部网络中的主机无法通信。

安装了VMware之后,在物理主机中会添加两块虚拟网卡:VMnet1和VMnet8,其中VMnet1虚拟网卡对应了VMnet1虚拟网络。也就是说,如果物理主机要与仅主机模式下的虚拟机进行通信,那么需要保证虚拟机的IP地址与物理主机VMnet1网卡的IP地址在同一网段。

图1-33 仅主机模式

虚拟网络所使用的IP地址段是由系统自动分配的。为了便于统一管理,建议在“虚拟网络编辑器”中将“VMnet1”网络所使用的IP地址段设置为192.168.10.0/24,如图1-34所示。

(3)NAT(网络地址转换)模式

NAT模式对应的虚拟网络是“VMnet8”,这也是一个独立的网络。在此模式下,物理主机就像一台支持NAT功能的代理服务器,而虚拟机就像NAT的客户端一样,虚拟机可以使用物理主机的IP地址直接访问外部网络中的计算机,但是由于NAT技术(网络地址转换)的特点,外部网络中的计算机无法主动与NAT模式下的虚拟机进行通信,也就是说,只能是由虚拟机到外部网络计算机的单向通信。

图1-34 为VMnet1网络指定IP地址段

当然,物理主机与NAT模式下的虚拟机是可以互相通信的,前提是虚拟机的IP地址要与VMnet8网卡的IP地址在同一网段。同样,为了便于统一管理,建议将“VMnet8”网络所使用的IP地址段设置为192.168.80.0/24。

如果物理主机已经接入Internet,那么只需将虚拟机的网络设为NAT模式,虚拟机就可以自动接入Internet。因此,如果虚拟机需要上网,那么非常适合设置为NAT模式。

下面在VMware中克隆一台Linux虚拟机进行操作,将虚拟机命名为CentOS_01,虚拟网络采用NAT模式。

Linux系统安装完成后,默认会进入图形界面下的桌面环境。之前曾提到过,一个完整的Linux系统是由Kernel和各种应用软件组成的,Linux系统的桌面环境(称为X Window)也是由应用软件来提供的。负责提供X Window桌面环境的软件主要有两个:GNOME和KDE。CentOS以GNOME作为默认的桌面环境。

虽然图形界面提供了更为友好的操作方式,但X Window只是Linux系统中的一个应用软件,并没有集成到Linux的内核中,因此,用户可以根据需要选择是否运行图形界面。Linux作为一种服务器操作系统,在字符界面中输入各种命令,这种操作方式更加有利于自动化运维,因而在Linux系统中学习如何使用命令才是关键。尤其在服务器应用领域,很多Linux服务器甚至不需要提供显示器,对服务器的绝大部分管理维护操作是通过远程登录的方式进行的。虽然图形界面操作简单,但是需要占用更多的系统资源,不利于远程传输数据,而字符界面的效率则要高得多。因此,在学习Linux系统的过程中,要以学习字符界面中的操作为主。

Linux系统的字符界面通常称为Shell。其实Shell本来是指系统的用户界面,它为用户与系统内核进行交互操作提供了一种接口。图形界面和字符界面都属于Shell,图形界面的Shell称为GUI(Graphical User Interface),如GNOME就属于一种GUI;字符界面的Shell称为CLI(Command Line Interface)。由于Linux系统的操作以字符界面为主,因此Shell通常专指字符界面CLI。

Shell其实也是Linux系统中的一个应用程序,它将用户输入的命令解释成系统内核能理解的语言,命令执行之后再将结果以用户可以理解的方式显示出来,其功能如图1-35所示。

图1-35 Shell功能

Linux系统中负责提供Shell功能的软件有很多,如sh、Csh、Zsh和Bash等。在CentOS系统中默认使用的Shell称为Bash,这也是目前应用较为广泛的一种Shell。在本书后续的内容中所提到的Shell默认都是指Bash。

Linux是一个真正的多用户操作系统。它可以同时接受多个用户登录,而且还允许同一个用户从不同的终端进行多次登录。每个用户登录之后,都会自动启动Shell,打开命令行界面。

通常我们将一套键盘、鼠标及显示器这样的输入/输出设备称为一个终端,直接连接在计算机主机上的称为物理终端。在使用安装Windows系统的计算机时,通常只有一个物理终端和一个操作界面。Linux系统支持虚拟终端,在使用安装Linux系统的计算机时,虽然用户面对的也是一个物理终端设备,但可以在这一个物理终端上通过虚拟终端打开多个互不干扰、独立工作的界面。

Linux中提供的虚拟终端默认有6个,其中第1个是图形界面,第2~6个则是字符界面。用户可以通过<Ctrl+Alt+F1~F6>组合键在不同的虚拟终端之间进行切换,比如Linux启动之后默认进入了第1个虚拟终端中的图形界面,此时按组合键<Ctrl+Alt+F2>就进入了第2个虚拟终端,这就是一个字符界面了。在输入用户名和密码登录之后,就启动了Shell,可以输入命令对系统进行操作。需要注意的是,在Linux的字符界面下输入密码,将不会出现明文显示,这种方式进一步提高了系统的安全性。

虚拟终端的缩写为tty,在字符界面下执行“tty”命令就可以显示用户目前所在的终端编号。

[root@localhost ~]# tty
/dev/tty2

同样的,在字符界面下按组合键<Ctrl+Alt+F1>就可以返回到图形界面。在字符界面下执行“startx”命令,也可以进入图形界面。

除虚拟终端之外,还有一种启动Shell的方式称为伪终端,它的缩写为pts。例如,在图形界面中,用鼠标右键单击桌面空白处,然后选择“在终端中打开”,会弹出一个运行在图形环境中的字符界面窗口,这就是一个伪终端。在其中执行“tty”命令,发现显示的结果为“/dev/pts/0”,表示这是系统启动的第一个伪终端(伪终端的编号从0开始),如图 1-36所示。

图1-36 伪终端

另外,通过之后将要介绍的XShell之类的工具远程登录Linux系统,所打开的也是伪终端。

无论是虚拟终端还是伪终端,都为我们提供了一种启动Shell的方法,因而实际上任何一个可以输入命令的交互式接口,都可以被称为终端。相关概念在第6章中还有更详细的介绍。

启动Shell之后,首先可以看到类似于“[root@localhost ~]#”的命令提示符。

命令提示符是Linux字符界面的标志,其中的“root”表示当前登录的用户账户名;“localhost”表示本机的主机名;“~”表示用户当前所在的位置,也就是工作目录,“~”是一个特殊符号,泛指用户的家目录,root用户的家目录就是/root;最后的“#”字符表示当前登录的是管理员用户,如果登录的是普通用户,则最后的“#”字符将变为“$”。

由于在Linux系统中,用户使用某个账号登录系统后,还可以使用相应的命令将用户身份转换为其他角色,以实现不同权限的操作,因此命令提示符是用户判断当前身份状态的重要依据。例如,执行“su - student”命令,可以切换到student用户,此时就可以发现命令提示符最后的“#”变成了“$”。

[root@localhost ~]# su – student #切换到student用户
[student@localhost ~]$ #命令提示符最后的#变成了$
[student@localhost ~]$ su – root #切换回root用户
密码:
[root@localhost ~]#                      #命令提示符最后的$变成了#

一旦出现了命令提示符,就可以输入命令名称及命令所需要的参数来执行命令。如果一条命令花费了很长时间来运行,或者在屏幕上产生了大量的输出,可以按<Ctrl+C>组合键发出中断信号来中断此命令的运行。

Shell命令由命令名、选项和参数共3个部分组成,基本格式如下。

命令名 [选项] [参数]

命令名是描述命令功能的英文单词或缩写。例如,date命令用于查看系统日期和时间;ls命令是list的缩写,用于列表显示;cp命令是copy的缩写,用于复制文件。在Shell命令中,命令名必不可少,并且总是放在整个命令行的起始位置。

选项的作用是调节命令的具体功能,同一命令采用不同的选项,其功能各不相同。选项既可以有一个,也可以有多个,还可能没有。选项通常以“-”开头,当有多个选项时,可以只使用一个“-”符号,如“ls -l -a”命令与“ls -al”命令功能完全相同。部分选项以“--”开头,这些选项通常是一个单词或词组,如“ls --help”。还有少数命令的选项不需要“-”符号,如“ps aux”。

参数是命令的处理对象,通常情况下参数可以是文件、目录或用户账号等内容。

注意: 

命令名、选项和参数之间必须用空格分隔。

在Shell中,一行可以输入多条命令,命令之间用分号分隔。另外,如果在一行命令后加上“\”符号,就表示另起一行继续输入。

使用命令时需要注意,在Linux中,命令区分大小写,即同一个命令,大写和小写代表不同的含义。通过上下方向键可以找出曾执行过的历史命令。

下面介绍几个简单的关机与重启命令,以帮助读者熟悉在字符界面下的操作。

Linux中的关机和重启命令分别是poweroff和reboot。用这两个命令关闭和重启系统时,会把当前用户对系统的更改写入磁盘,但是其他用户登录系统时却无法同步更新信息,这可能会导致用户数据丢失,因而这两个命令更适合在没有其他用户登录系统时使用。

[root@localhost ~]# poweroff #关机
[root@localhost ~]# reboot #重启

除这两个命令之外,还有许多命令可以实现关机与重启的功能。例如,shutdown命令既可以用来关机又可以用来重启,而且还有很多其他的扩展功能。

例如,立即关闭系统。

[root@localhost ~]# shutdown –h now

例如,立即重启系统。

[root@localhost ~]# shutdown –r now

例如,在15min以后自动关闭系统。

[root@localhost ~]# shutdown –h +15

例如,在10min以后自动重启系统,同时将“The system will be rebooted!!”发送给已登录到本机中的各用户。

[root@localhost ~]# shutdown –r +10 'The system will be rebooted!!'

对于延时运行的关机、重启操作,必要时可以执行“shutdown –c”命令或按<Ctrl+C>组合键取消。

相比于poweroff和reboot命令,shutdown命令在关闭或重启系统之前会给所有登录用户发送警告信息,因而要更加安全。

在生产环境中,管理员一般通过网络远程登录Linux服务器并对其进行管理。要实现远程登录,需要为Linux系统设置IP地址。

执行ifconfig命令,如图1-37所示。ifconfig与Windows中的ipconfig命令类似,用于查看和配置IP地址信息。执行ifconfig命令会显示3个部分的信息,其中第一部分的ens33就是系统中的网卡名称,第二部分的lo代表回环地址127.0.0.1,第三部分的virbr0则是一个虚拟网卡。

图1-37 执行ifconfig命令查看网络配置信息

由于虚拟机的网络设置采用的是NAT模式,物理主机上VMnet8虚拟网卡的IP地址默认是192.168.80.1,因此这里需要为虚拟机指定一个相同网段的IP地址,才可实现与物理主机之间的通信。

例如,为虚拟机指定临时IP地址192.168.80.128/24。

[root@localhost ~]# ifconfig ens33 192.168.80.128/24

此时Linux虚拟机就可以与物理主机直接通信了,可以用ping命令进行测试。需要注意的是,Linux系统中的ping命令会不间断地发送数据包,需要用户通过<Ctrl+C>组合键强制终止。如果在Linux虚拟机中ping不通物理主机,可能是因为物理主机的防火墙进行了拦截,可以从物理主机ping虚拟机进行测试。

[root@localhost ~]# ping 192.168.80.1
PING 192.168.80.1 (192.168.80.1) 56(84) bytes of data.
64 bytes from 192.168.80.1: icmp_seq=1 ttl=64 time=0.250 ms
64 bytes from 192.168.80.1: icmp_seq=2 ttl=64 time=0.172 ms
64 bytes from 192.168.80.1: icmp_seq=3 ttl=64 time=0.175 ms
^C
--- 192.168.80.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.172/0.199/0.250/0.036 ms

为Linux系统设置 IP地址之后,接下来就可以进行远程登录了。远程登录以前大多采用telnet方式,但因为telnet的数据以明文方式在网络中传输,安全性不高,所以现在主要采用SSH(Secure Shell)方式,默认端口号为TCP22。

可以实现远程登录的工具有很多,比如XShell、SecureCRT和PuTTY等。本书推荐使用XShell。它是一款商业软件。在撰写本书时,最新版本为XShell 6,可以从官网下载免费的评估版本。

首先在物理主机上安装XShell,软件运行之后选择新建会话,“名称(N)”可以随意设置,比如“CentOS”,“协议(P)”选择“SSH”,在“主机(H)”中输入虚拟机的IP地址“192.168.80.128”,“端口号(O)”设置为“22”,如图1-38所示。

图1-38 用XShell远程登录Linux

单击“确定”按钮之后,会提示是否保存Linux主机的密钥,这里单击“接受并保存(S)”按钮,如图1-39所示。

图1-39 接受并保存密钥

然后输入管理员账号root以及相应的密码,就可以远程登录Linux,如图1-40所示,当然,这里只能是字符界面。以后我们的绝大多数操作是在这样的字符界面下进行。

图1-40 在XShell中成功远程登录Linux主机

在XShell的“工具”菜单中选择“配色方案”,用户可以选择自己喜欢的界面风格,如图1-41所示,本书选择“ANSI Colors on White”,界面看起来会更加清晰。另外,还可以在工具栏中对字体大小进行设置。

图1-41 选择配色方案

1.上网查询以了解BSD、GPL和Apache 术语分别是指什么。

2.Linux发行版目前主要分为哪几个阵营?简述它们各自的主要特点。

3.安装VMware Workstation,新建一台虚拟机,并安装一款Linux操作系统。

4.熟悉进入Linux字符界面的不同方式,并练习关机和重启命令的使用。

5.以root用户身份登录Linux系统字符界面,指出CentOS 7中默认使用的是什么Shell?默认的Shell命令提示符为“[root@localhost ~]#”,指出命令提示符中各部分的具体含义。


相关图书

Linux常用命令自学手册
Linux常用命令自学手册
庖丁解牛Linux操作系统分析
庖丁解牛Linux操作系统分析
Linux后端开发工程实践
Linux后端开发工程实践
轻松学Linux:从Manjaro到Arch Linux
轻松学Linux:从Manjaro到Arch Linux
Linux高性能网络详解:从DPDK、RDMA到XDP
Linux高性能网络详解:从DPDK、RDMA到XDP
跟老韩学Linux架构(基础篇)
跟老韩学Linux架构(基础篇)

相关文章

相关课程