前言
互联网产业的迅猛发展,促使云计算、大数据产业形成并快速发展,云计算的部署、大数据的开发绝大多数都基于开源软件的平台,Linux已经成为这些技术的基础软件。据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建。目前,Linux已开始取代UNIX成为最受青睐的云计算、大数据平台操作系统。为云计算、大数据、嵌入式开发等掌握良好的Linux基础知识已经成为重要的基础性任务,因此我们组织编写了本书。
我们在2013年出版了《Linux操作系统》一书,本书在该书的基础上主要进行了以下修改。
秉承Linux的开源思想,在开发环境的搭建上由原来的Ubuntu 12.04+VMware改为Ubuntu 16.04+ VirtualBox; 增加若干市场上常见的发行版介绍,如CentOS等; 根据大数据的应用原理增加了虚拟内存的实现机制的阐述,介绍了Ubuntu系统常用的任务管理器gnomesystemmonitor程序; 因为在云计算大数据的应用中常常会对系统的权限进行设置,对系统的安全进行配置也是程序员必备的技能之一,所以在7.4节中较为详细地介绍了Ubuntu的安全模块Apparmor,及其实现的配置。
在第9章中根据实用原则添加了一些Shell编程的综合运用的实例,比如文件的批量处理、用户的批量建立。第10章中增添了另一种网络配置的方式,并且对两种配置方式的优先性进行了描述,让读者能根据自己的需求修改网络,增加了firewalld即Ubuntu的防火墙服务的简单介绍。除了内容的增加,还对原本的LAMP平台进行了版本更新,对NFS的一些配置进行了相应的更新,让读者能够适应程序的版本更迭。在第11章对大数据和云计算所需要的一些Linux知识和基础服务的搭建进行了讲解,如SSH免密码登录,DHCP、vsftp、Tomcat等服务器的搭建。
基于上述增改,本书完善了内容,增加了学习大数据和云计算知识所需要的大部分Linux技能和基础服务。本书以简单、易掌握为主旨,节约了篇幅,同时让读者能够掌握足够的知识去探索更为广阔的大数据及云计算的世界。
本书由姜春茂任主编,姚艳雪、李志聪、段莹任副主编,周洪玉主审,参加本书编写的还有莫远明、杨翎等。本书共分为11章,其中具体的编写任务分配如下: 第1章和第10章由姚艳雪编写,第2章由李志聪编写,第3章由段莹编写,余下的章节由姜春茂编写,最后由姜春茂统编全稿。
感谢本套丛书编委会给予的支持和帮助,特别感谢周洪玉教授对本书编写的悉心指导和审核,感谢为本书的编写、出版提供支持、帮助的老师和朋友们。
由于时间仓促,书中疏漏和不足之处在所难免,敬请广大读者提出宝贵的意见和建议。
编者
2020年7月
目录
第1章Linux基础
1.1Linux概述
1.1.1Linux的诞生
1.1.2Linux的发行版本
1.1.3Linux的特点
1.1.4Linux的组成部分
1.2自由软件与开源软件
1.2.1自由软件
1.2.2GPL和BSD许可证
1.2.3OSI和OSS
1.2.4开放源代码软件在我国的发展
1.2.5自由软件与开源软件的区别
1.3Linux应用
1.3.1Linux在云计算中的应用
1.3.2Linux在嵌入式中的应用
1.3.3Linux在大数据中的应用
1.3.4Linux在物联网中的应用
1.3.5Linux的发展趋势
1.3.6Linux有关的网站
小结
习题
第2章Linux安装
2.1Linux的安装方法
2.2在安装有Windows 10的系统中安装Ubuntu 16.04
2.2.1安装前的准备
2.2.2安装需要准备的软件
2.2.3制作Ubuntu的启动U盘
2.2.4开始安装
2.2.5不需要U盘的双系统安装方式
2.3在虚拟机下安装Ubuntu
2.3.1在VirtualBox下安装Ubuntu
2.3.2关于虚拟机的一些介绍
小结
习题
实验21在虚拟机中安装Ubuntu 16.04
实验22熟悉虚拟机的使用
目录
Linux基础教程
第3章图形界面与字符界面
3.1Unity桌面环境
3.1.1Unity概述
3.1.2Unity桌面介绍
3.2GNOME桌面环境
3.2.1安装GNOME桌面环境
3.2.2GNOME3桌面环境介绍
3.3图形界面软件更新
3.3.1软件更新
3.3.2修改更新源
3.4字符界面
3.4.1终端
3.4.2Putty远程登录
3.5字符界面软件安装
3.5.1APT管理软件
3.5.2dpkg命令
小结
习题
实验31Ubuntu 16.04的Unity桌面
实验32Putty远程登录Ubuntu 16.04
第4章Linux文件管理
4.1Linux文件系统概述
4.1.1文件系统概念
4.1.2文件与目录的定义
4.1.3Linux的文件结构、类型、属性
4.2Linux文件操作命令
4.2.1显示文件内容命令
4.2.2显示目录内容及更改目录命令
4.2.3建立、删除文件命令
4.2.4建立、删除目录命令
4.2.5复制、移动命令
4.2.6压缩备份命令
4.2.7权限管理命令
4.2.8Linux文件查找命令
4.3输入/输出重定向
4.3.1标准输入/输出
4.3.2输入重定向
4.3.3输出重定向
4.4管道
小结
习题
实验41文件的显示
实验42文件和文件夹的管理
第5章Linux系统用户管理
5.1Linux用户介绍
5.1.1用户和用户组
5.1.2用户分类
5.2相关文件
5.2.1passwd文件
5.2.2shadow文件
5.2.3group文件
5.2.4gshadow文件
5.3用户管理命令
5.3.1useradd命令
5.3.2passwd命令
5.3.3usermod命令
5.3.4userdel命令
5.4用户组管理命令
5.4.1groupadd命令
5.4.2groupmod命令
5.4.3groupdel命令
5.4.4gpasswd命令
5.5su和sudo命令
5.5.1su命令
5.5.2sudo命令
小结
习题
实验51用户和组的管理
第6章磁盘管理
6.1磁盘
6.1.1硬盘的物理结构
6.1.2文件系统类型
6.1.3硬盘的分类
6.2分区命名方式
6.3常用磁盘管理命令
6.3.1添加硬盘
6.3.2查看硬盘信息
6.3.3创建硬盘分区
6.3.4为各分区创建文件系统
6.3.5挂载磁盘分区
6.3.6挂载USB
6.3.7卸载磁盘分区
6.4磁盘配额管理
6.4.1查看内核是否支持配额
6.4.2安装磁盘配额工具
6.4.3激活分区的配额功能
6.4.4建立配额数据库
6.4.5启动磁盘配额
6.4.6编辑用户磁盘配额
6.4.7设定宽限期
6.4.8其他配额功能
小结
习题
实验61在虚拟机中挂载文件系统
实验62磁盘配额的配置
第7章Linux引导及进程管理
7.1Linux引导流程
7.1.1系统引导
7.1.2Ubuntu的运行级别
7.1.3关闭系统
7.2Linux内存管理
7.2.1物理内存和虚拟内存
7.2.2虚拟内存实现机制及之间的关系
7.2.3内存的监视
7.2.4交换分区swap的使用
7.2.5清理内存空间
7.3Linux进程管理
7.3.1进程的概念
7.3.2进程与程序的关系
7.3.3常用进程管理命令
7.3.4任务计划
7.4Apparmor介绍
7.4.1Apparmor简介
7.4.2Apparmor的配置文件
7.4.3Apparmor的使用
小结
习题
实验71Linux进程管理
第8章Linux编辑器的使用
8.1文本编辑器
8.1.1Gedit编辑器
8.1.2nano编辑器
8.1.3vi编辑器
8.2vi编译器的使用
8.2.1启动vi编辑器
8.2.23种工作模式
8.2.3光标操作命令
8.2.4屏幕操作命令
8.2.5文本修改命令
8.2.6其他命令
8.3gcc编译及其调试
8.3.1gcc编译器的使用
8.3.2gcc总体选项实例
8.3.3gcc优化选项实例
8.3.4警告和出错选项实例
8.3.5gdb调试器
8.4Eclipse编辑器
8.4.1安装JDK
8.4.2配置Eclipse的C语言集成开发环境
8.4.3使用Eclipse编辑器编译实例
8.4.4在Eclipse中使用gdb调试程序
小结
习题
实验81vi编辑器的使用
实验82Linux中C程序的编辑、编译与调试
第9章Shell及其编程
9.1Shell概述
9.1.1Bourne Shell
9.1.2C Shell
9.1.3Korn Shell
9.1.4Bourne Again Shell
9.1.5查看用户Shell
9.2Shell脚本
9.2.1Shell脚本概述
9.2.2执行Shell脚本
9.3Shell脚本变量
9.3.1系统变量
9.3.2环境变量
9.3.3用户自定义变量
9.3.4变量的使用
9.3.5数字与数组的声明和使用
9.3.6Shell的输入/输出
9.3.7运算符和特殊字符
9.4Shell控制结构
9.4.1test命令
9.4.2if语句
9.4.3case语句
9.4.4while语句
9.4.5until语句
9.4.6for语句
9.4.7循环控制语句
9.5Shell函数
9.5.1函数的声明
9.5.2函数的调用
9.5.3函数的参数传递
9.5.4Shell编程的综合运用
9.6应用实例
小结
习题
第10章Linux服务器配置
10.1网络服务概述
10.2Linux系统的基本网络配置
10.2.1查看网络配置
10.2.2修改网络配置
10.2.3测试网络配置
10.2.4安装firewalld服务
10.3Samba服务器
10.3.1Samba服务器简介
10.3.2安装Samba服务器
10.3.3配置Samba服务器
10.4Linux系统下LAMP平台的搭建
10.4.1LAMP平台概述
10.4.2LAMP平台的搭建
10.5NFS网络服务
10.5.1NFS简介
10.5.2NFS工作原理
10.5.3NFS服务的安装与配置
10.5.4访问NFS服务
小结
习题
第11章集群搭建常用配置
11.1SSH的使用
11.1.1实现SSH免密登录
11.1.2基于SSH实现数据同步
11.2搭建DHCP服务
11.2.1DHCP简介
11.2.2DHCP的工作原理
11.2.3DHCP的安装与配置
11.3vsftpd服务
11.3.1vsftpd简介
11.3.2FTP的实现原理
11.3.3vsftpd的安装和配置
11.4搭建Tomcat服务器
11.4.1Tomcat简介
11.4.2安装并配置Tomcat
11.5PXE网络安装系统
11.5.1PXE简介
11.5.2PXE的实现过程
11.5.3PXE装机的配置实现
小结
习题
附录A部分习题答案
参考文献