第1章 认识Linux Chapter 1 本章主要学习Linux基础知识、Linux的特点和组成,以及Linux的版本。 本章的学习目标如下。 (1) Linux的简介: 了解Linux的概念、产生背景、发展历程和应用领域。 (2) Linux的特点和组成: 了解Linux的特点和组成。 (3) Linux的版本: 了解Linux的内核版本和发行版本。 1.1Linux的简介 Linux自从1991年10月发布至今,发展非常迅速,主要应用于服务器和嵌入式开发等领域。目前,主流的服务器操作系统有以下三种。 (1) UNIX: 付费系统,一般应用在中、高端服务器领域。 (2) Windows Server: 付费系统,一般应用在中、低端服务器领域。 (3) Linux: 以免费系统为主,应用范围最广,在高、中、低端服务器领域均有应用。 图1.1Linux吉祥物Tux 1.1.1Linux的概念 Linux是一个免费、多用户、多任务的操作系统,其稳定性、安全性和网络功能远胜于其他操作系统。Linux是源码完全公开的操作系统。任何人只要遵循GNU/GPL的原则,就可以自由取得、发布和修改Linux的源码。图1.1是Linux的吉祥物Tux,Linux的官方网站是https://www.linux.org/。 下面介绍常见的几个名词。 (1) 自由软件(开源软件,free software)是指用户可以不受限制地使用、复制、修改、发布软件,尊重用户的自由。与自由软件相对的是专有软件(私有软件、封闭软件,proprietary software),专有软件一般禁止反编译软件、修改软件源码、再次发布软件等。自由软件的定义与是否收费无关——自由软件不一定是免费软件。自由软件受“自由软件许可协议”保护,其发布以源码为主,二进制文件可有可无。 (2) 免费软件(freeware)是指不需要购买使用授权的软件。与免费软件相对的是商业软件(commercial software),商业软件通过收取使用授权费营利。 (3) 共享软件(shareware)是一般不开放源码的软件。商业用途(commercial use)的共享软件采用先试后买(try before you buy)的模式,为用户提供有限期(或部分功能受限)的免费试用,用以评测是否符合自己的使用需求,继而决定是否购买授权而继续使用该软件。非商业用途(noncommercial use)的共享软件多,一般通过内置广告营利。 (4) GNU(GNUs not UNIX)是一个反版权(copyleft)的概念,GNU软件可以自由地使用、复制、修改、发布,所有GNU软件可授权给任何人使用。 (5) GPL(general public license,通用公共许可证)是一个被广泛使用的自由软件许可协议,保证用户运行、学习、分享(复制)及编辑软件的自由。 1.1.2Linux的产生背景 由于UNIX的商业化导致教学不便,Andrew Tanenbaum教授开发了用于教学的类UNIX操作系统——Minix。该系统不受AT&T许可协议的约束,可以发布在Internet上免费给全世界的学生使用。芬兰大学生Linus Torvalds受Minix启发,开发了一个类Minix的操作系统,这就是Linux的雏形。 1.1.3Linux的发展历程 1991年10月5日,Linus Torvalds在新闻组comp.os.minix上发布了大约有1万行代码的Linux 0.01。 1994年3月,Linux 1.0发布,代码约有17万行,按照完全自由免费的协议发布,随后正式采用GPL协议。至此,Linux的代码开发进入良性循环。 1996年6月,Linux 2.0发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux已经进入了实用阶段,全球大约有350万人使用。 1998年1月,Red Hat高级研发实验室成立,同年Red Hat 5.0获得了InfoWorld的操作系统奖项。 2000年2月,Red Hat发布了嵌入式Linux的开发环境,Linux在嵌入式行业的潜力逐渐被发掘出来。 2003年1月,NEC宣布将在其手机中使用Linux操作系统,代表着Linux成功进军手机领域。 1.1.4Linux的应用领域 Linux的应用领域主要有4个方面: 服务器、嵌入式(移动)设备、软件开发、桌面应用。 1. 服务器 Linux的开放性和可靠性使之成为首选的服务器操作系统之一,如DHCP服务器、DNS服务器、Web服务器、FTP服务器、Email服务器等。Linux还支持多种硬件平台,易于与其他操作系统如Windows、UNIX等共存。 2. 嵌入式(移动)设备 Linux的结构具有低成本、小内核以及模块化的特点,适合用作嵌入式(移动)设备的操作系统,如Android、智能家电等。 3. 软件开发 基于Linux的开发人员可以使用C/C++、PHP/Python等开发程序。典型的开发环境LAMP(Linux+Apache+MySQL/MariaDB+PHP)在软件方面的投资成本较低,适合各种类型的企业搭建动态网站。 4. 桌面应用 Linux的图形用户界面的体验不如Windows体验好,因此其在桌面应用领域的占有率较低。 1.2Linux的特点和组成 Linux在较短的时间内取得了较快的发展,这与其自身的特点是分不开的。 1.2.1Linux的特点 1. 开放兼容 Linux的源码公开,任何人都可以在遵循规则的情况下自由修改源码,不同版本的Linux之间的兼容性高。 2. 界面多样 Linux提供了功能强大的文本界面和易于使用的图形界面,分别适用于不同需求的用户。 3. 设备独立 Linux把所有的外部设备统一当作文件来管理,只要在系统安装了设备的驱动程序,就可以像文件一样操作设备。 4. 易于移植 Linux可以方便地从一种硬件平台移植到另一种硬件平台。 1.2.2Linux的组成 Linux有4个组成部分: 内核、Shell、文件系统和应用程序。 1. 内核 Linux内核采用C语言和汇编语言编写,具有处理器和进程管理、存储管理、设备管理、文件系统管理、网络通信管理、系统初始化和系统调用等功能。 2. Shell Shell是Linux的用户界面,提供了用户与内核进行交互的接口。Shell实际上是一个命令解释器,解释由用户输入的命令并将它们送到内核去执行。Shell还可以编写脚本,与程序设计语言类似。 3. 文件系统 文件系统是文件存储在存储设备上的组织方法。Linux支持多种文件系统,如EXT2/3/4、FAT16/32、XFS和ISO 9660等。 4. 应用程序 Linux一般包括各种应用程序,如开发工具、安全性工具、系统管理工具、网络工具、办公工具等。 1.3Linux的版本 Linux的版本可分为内核版本和发行版本。 1.3.1Linux的内核版本 严格来说,Linux这个词本身只表示Linux的内核,是操作系统最基本的部分。Linux内核网站是https://www.kernel.org/。 Linux的内核版本有不同的管理方案。 (1) 早期版本有0.01、0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99及1.0。 (2) 在1.0和2.6版之间,版本格式为A.B.C,其中:  A是重大变化的内核。  B是重大修改的内核,奇数表示测试版本,偶数表示稳定版本。  C是轻微修订的内核,表示修复安全漏洞、增加新功能或驱动程序。 (3) 2.6.0之后的版本格式为A.B.C.D,其中:  A和B是无关紧要的。  C是内核版本。  D是安全补丁。 (4) 3.0版本的格式为3.A.B,其中:  A是内核版本。  B是安全补丁。 1.3.2Linux的发行版本 仅有内核的操作系统是无法使用的。一些组织和公司将Linux的内核、Shell和应用程序打包,并提供安装界面、配置设置管理工具等,构成了Linux的发行版本(distribution)。Linux的各发行版本的版本号各不相同,与内核版本的版本号相对独立。 按照打包方式划分,主流的Linux的发行版本有以下几种。 (1) 基于DPKG: Debian是一种强调使用自由软件的发行版本,支持多种硬件平台。Debian及其派生发行版本使用deb软件包格式,并使用dpkg及其前端作为包管理器。 (2) 基于RPM: Red Hat和SUSE最早使用RPM格式软件包的发行版本。这两种发行版本后来都分为商业版本和社区支持版本。 (3) Slackware: Slackware只吸收稳定版本的应用程序,缺少为发行版本定制的配置工具。 1.4本 章 小 结 Linux是一个免费、多用户、多任务的操作系统。芬兰大学生Linus Torvalds受Minix启发,开发了一个类Minix的操作系统,这就是Linux的雏形。Linux的应用领域主要有4个方面: 服务器、嵌入式(移动)设备、软件开发、桌面应用。 Linux的特点是开放兼容、界面多样、设备独立、易于移植。Linux的4个组成部分为内核、Shell、文件系统和应用程序。 Linux的版本可分为内核版本和发行版本。Linux这个词本身只表示Linux的内核,是操作系统最基本的部分。Linux的各发行版本的版本号各不相同,与内核版本的版本号相对独立。 第2章 安装Linux Chapter 2 第2章安装Linux 本章主要学习Linux的硬件要求和磁盘管理,安装Linux与初始化配置,登录、注销、重启和关闭Linux。 本章的学习目标如下。 (1) 准备安装Linux: 了解Linux的硬件要求; 掌握Linux的磁盘管理。 (2) 安装Linux与初始化配置: 掌握安装Linux与初始化配置。 (3) 登录、注销、重启和关闭Linux: 掌握登录、注销、重启和关闭Linux。 2.1准备安装Linux 安装Linux的准备工作包括了解Linux的硬件要求和磁盘分区的规划。 2.1.1Linux的硬件要求 1. 硬件要求 (1) CPU: 近五年的CPU都能达到要求。 (2) 内存: 至少需要1GB(建议2GB以上)。 (3) 硬盘: 最小化安装需要不到1GB,完全安装所有软件包需要10GB以上。 (4) DVD光驱。 2. 硬件兼容性 硬件兼容性指的是操作系统能够识别硬件并安装自带的驱动程序,或者硬件厂商开发了适配该操作系统的驱动程序。不是所有的硬件厂商都会开发适配所有操作系统的驱动程序。因此,在安装Linux之前必须确认所选硬件的兼容性,特别是最新的硬件。 2.1.2Linux的磁盘管理 1. 磁盘分区命名方案 (1) Windows的磁盘分区命名方案 Windows使用英文字母命名磁盘分区,每个磁盘分区的文件系统是独立的。文件系统为NTFS的磁盘分区可以使用装载到文件夹的方式,而无须占用英文字母。 (2) Linux的磁盘分区命名方案 Linux使用英文字母和数字的组合命名磁盘分区,格式为/dev/xxyN。  /dev: Linux中所有设备文件所在的目录名。  xx: 磁盘分区所在硬盘的类型hd(IDE硬盘)或sd(SCSI/SATA/USB硬盘)。  y: 磁盘分区所在硬盘的序号,用小写英文字母编号。  N: 同一个硬盘中的磁盘分区序号。主分区或扩展分区的序号范围为1~4,逻辑分区的序号范围从5开始,见表2.1。 表2.1磁盘分区类型和数量限制 磁盘分区类型数量限制 主分区≤ 4 扩展分区≤ 1 主分区+扩展分区≤ 4 例如, /dev/hda1表示第1块IDE硬盘的第1个主分区或者扩展分区; /dev/sdb6表示第2块SCSI/SATA/USB硬盘的第2个逻辑分区。 2. 磁盘分区挂载 挂载(mount)是指将磁盘分区关联到某一目录,通过该目录对磁盘分区进行读写。Linux中的每一个磁盘分区都必须挂载才能被读写。 Linux的目录结构可以用一棵倒挂的树来表示。根目录是树根,表示为“/”,其他目录都是根目录的子目录或者是其子目录的子目录,如图2.1所示。 图2.1Linux的目录结构 3. 磁盘分区规划 磁盘分区规划的依据是每个磁盘分区存储什么数据。 (1) 最简磁盘分区规划  /(根)分区: 建议大小为10GB或以上。  /boot(引导)分区: 存储与Linux启动有关的文件,建议大小为200MB或以上。  swap(交换)分区: 虚拟内存,建议大小为物理内存大小的1~2倍。 该磁盘分区规划的所有文件都在根分区,安全隐患大。 (2) 合理磁盘分区规划 根目录所在的磁盘分区是Linux启动时第一个载入的磁盘分区,所以启动过程中会用到的文件应该放在同一个磁盘分区中,如/dev、/etc。 读写频繁的、使用比较独立的目录建议独立为一个分区,如/home、/tmp、/var。  / 分区: 所有的目录都挂载在这个目录下面,建议大小为1GB或以上。  /boot分区: 建议大小为200MB或以上。  swap分区: 建议大小为物理内存大小的1~2倍。  /usr分区: 存储Linux的应用程序,建议大小为10GB或以上。  /var分区: 存储Linux经常变化的数据以及日志文件,建议大小为1GB或以上。  /home分区: 普通用户的主目录,存储普通用户的数据,建议大小为剩下的空间。 4. 交换分区 CPU所需的数据必须先读取到内存。内存的存取速度很快,但是容量有限。为了解决内存容量不足的问题,人们发明了虚拟内存技术,将磁盘上的一部分区域虚拟成内存,从而增加内存的总容量。 虚拟内存在Linux的实现方式有交换分区和交换文件两种,统称为交换空间。Linux使用“最近最常使用”算法,将不经常使用的数据交换到虚拟内存,经常使用的数据保留在物理内存。 2.2安装Linux与初始化设置 2.2.1Linux的安装 本节以CentOS 7为例介绍Linux的安装和初始化设置的过程,其他Linux发行版本的安装和初始化设置的过程与之类似。 步骤1: 准备安装。 首先从CentOS的网站获取CentOS 7的安装光盘镜像文件。CentOS 7一共有6个不同的版本,具体见表2.2(yymm为发布的2位年份和2位月份)。 表2.2CentOS 7的安装光盘映像文件 文件名大小说明 CentOS7x86_64DVDyymm.iso4G标准版(推荐) CentOS7x86_64Everythingyymm.iso10G完整版(包含大量的工具) CentOS7x86_64LiveGNOMEyymm.iso1GGNONE桌面免安装版 CentOS7x86_64LiveKDEyymm.iso2GKDE桌面免安装版 CentOS7x86_64Minimalyymm.iso1G最小版(只有最基本的工具) CentOS7x86_64NetInstallyymm.iso0.5G网络安装(需要联网下载,在线安装) 这里以标准版为例进行介绍。 如果在物理计算机上安装,需要将安装光盘映像文件刻录到光盘或者写入USB闪存盘,并设置计算机从光驱或者USB闪存盘引导。 如果在虚拟机上安装,只需要将安装光盘映像文件加载到虚拟机的光驱。 步骤2: 安装引导。启动计算机后,CentOS安装光盘会引导计算机并显示选择Install CentOS 7(安装CentOS 7)或者Test this media & install CentOS 7(测试本介质并安装CentOS 7)。测试目的是检测安装介质的完整性。为了稳妥起见,建议选择Test this media & install CentOS 7并按Enter键继续,如图2.2所示。 图2.2安装引导 步骤3: 开始安装进程。此步骤不需要任何操作,如图2.3和图2.4所示。 图2.3开始安装进程 图2.4测试介质 步骤4: 选择安装过程中的使用语言,并单击Continue按钮继续。 步骤5: 安装信息摘要。此界面列出安装CentOS时的有关设置信息,包括日期和时间、键盘、语言支持、安装源、软件选择、安装位置、KDUMP、网络和主机名、安全策略,如图2.5所示。 图2.5安装信息摘要 步骤6: 日期和时间。单击DATE & TIME选择区域和城市,或者直接在地图上单击选择,选择是否启用网络时间,设置日期和时间,选择12小时制或者24小时制,并单击左上角的Done按钮返回。选择启用网络时间需要指定时间服务器。 步骤7: 键盘。单击KEYBOARD LAYOUT,根据需要添加或者修改键盘布局,并单击左上角的Done按钮返回,如图2.6所示。 图2.6键盘