前言
互聯(lián)網(wǎng)產(chǎn)業(yè)的迅猛發(fā)展,促使云計(jì)算、大數(shù)據(jù)產(chǎn)業(yè)形成并快速發(fā)展,云計(jì)算的部署、大數(shù)據(jù)的開(kāi)發(fā)絕大多數(shù)都基于開(kāi)源軟件的平臺(tái),Linux已經(jīng)成為這些技術(shù)的基礎(chǔ)軟件。據(jù)Linux基金會(huì)的研究,86%的企業(yè)已經(jīng)使用Linux操作系統(tǒng)進(jìn)行云計(jì)算、大數(shù)據(jù)平臺(tái)的構(gòu)建。目前,Linux已開(kāi)始取代UNIX成為最受青睞的云計(jì)算、大數(shù)據(jù)平臺(tái)操作系統(tǒng)。為云計(jì)算、大數(shù)據(jù)、嵌入式開(kāi)發(fā)等掌握良好的Linux基礎(chǔ)知識(shí)已經(jīng)成為重要的基礎(chǔ)性任務(wù),因此我們組織編寫(xiě)了本書(shū)。
我們?cè)?013年出版了《Linux操作系統(tǒng)》一書(shū),本書(shū)在該書(shū)的基礎(chǔ)上主要進(jìn)行了以下修改。
秉承Linux的開(kāi)源思想,在開(kāi)發(fā)環(huán)境的搭建上由原來(lái)的Ubuntu 12.04+VMware改為Ubuntu 16.04+ VirtualBox; 增加若干市場(chǎng)上常見(jiàn)的發(fā)行版介紹,如CentOS等; 根據(jù)大數(shù)據(jù)的應(yīng)用原理增加了虛擬內(nèi)存的實(shí)現(xiàn)機(jī)制的闡述,介紹了Ubuntu系統(tǒng)常用的任務(wù)管理器gnomesystemmonitor程序; 因?yàn)樵谠朴?jì)算大數(shù)據(jù)的應(yīng)用中常常會(huì)對(duì)系統(tǒng)的權(quán)限進(jìn)行設(shè)置,對(duì)系統(tǒng)的安全進(jìn)行配置也是程序員必備的技能之一,所以在7.4節(jié)中較為詳細(xì)地介紹了Ubuntu的安全模塊Apparmor,及其實(shí)現(xiàn)的配置。
在第9章中根據(jù)實(shí)用原則添加了一些Shell編程的綜合運(yùn)用的實(shí)例,比如文件的批量處理、用戶的批量建立。第10章中增添了另一種網(wǎng)絡(luò)配置的方式,并且對(duì)兩種配置方式的優(yōu)先性進(jìn)行了描述,讓讀者能根據(jù)自己的需求修改網(wǎng)絡(luò),增加了firewalld即Ubuntu的防火墻服務(wù)的簡(jiǎn)單介紹。除了內(nèi)容的增加,還對(duì)原本的LAMP平臺(tái)進(jìn)行了版本更新,對(duì)NFS的一些配置進(jìn)行了相應(yīng)的更新,讓讀者能夠適應(yīng)程序的版本更迭。在第11章對(duì)大數(shù)據(jù)和云計(jì)算所需要的一些Linux知識(shí)和基礎(chǔ)服務(wù)的搭建進(jìn)行了講解,如SSH免密碼登錄,DHCP、vsftp、Tomcat等服務(wù)器的搭建。
基于上述增改,本書(shū)完善了內(nèi)容,增加了學(xué)習(xí)大數(shù)據(jù)和云計(jì)算知識(shí)所需要的大部分Linux技能和基礎(chǔ)服務(wù)。本書(shū)以簡(jiǎn)單、易掌握為主旨,節(jié)約了篇幅,同時(shí)讓讀者能夠掌握足夠的知識(shí)去探索更為廣闊的大數(shù)據(jù)及云計(jì)算的世界。
本書(shū)由姜春茂任主編,姚艷雪、李志聰、段瑩任副主編,周洪玉主審,參加本書(shū)編寫(xiě)的還有莫遠(yuǎn)明、楊翎等。本書(shū)共分為11章,其中具體的編寫(xiě)任務(wù)分配如下: 第1章和第10章由姚艷雪編寫(xiě),第2章由李志聰編寫(xiě),第3章由段瑩編寫(xiě),余下的章節(jié)由姜春茂編寫(xiě),最后由姜春茂統(tǒng)編全稿。
感謝本套叢書(shū)編委會(huì)給予的支持和幫助,特別感謝周洪玉教授對(duì)本書(shū)編寫(xiě)的悉心指導(dǎo)和審核,感謝為本書(shū)的編寫(xiě)、出版提供支持、幫助的老師和朋友們。
由于時(shí)間倉(cāng)促,書(shū)中疏漏和不足之處在所難免,敬請(qǐng)廣大讀者提出寶貴的意見(jiàn)和建議。
編者
2020年7月
目錄
第1章Linux基礎(chǔ)
1.1Linux概述
1.1.1Linux的誕生
1.1.2Linux的發(fā)行版本
1.1.3Linux的特點(diǎn)
1.1.4Linux的組成部分
1.2自由軟件與開(kāi)源軟件
1.2.1自由軟件
1.2.2GPL和BSD許可證
1.2.3OSI和OSS
1.2.4開(kāi)放源代碼軟件在我國(guó)的發(fā)展
1.2.5自由軟件與開(kāi)源軟件的區(qū)別
1.3Linux應(yīng)用
1.3.1Linux在云計(jì)算中的應(yīng)用
1.3.2Linux在嵌入式中的應(yīng)用
1.3.3Linux在大數(shù)據(jù)中的應(yīng)用
1.3.4Linux在物聯(lián)網(wǎng)中的應(yīng)用
1.3.5Linux的發(fā)展趨勢(shì)
1.3.6Linux有關(guān)的網(wǎng)站
小結(jié)
習(xí)題
第2章Linux安裝
2.1Linux的安裝方法
2.2在安裝有Windows 10的系統(tǒng)中安裝Ubuntu 16.04
2.2.1安裝前的準(zhǔn)備
2.2.2安裝需要準(zhǔn)備的軟件
2.2.3制作Ubuntu的啟動(dòng)U盤(pán)
2.2.4開(kāi)始安裝
2.2.5不需要U盤(pán)的雙系統(tǒng)安裝方式
2.3在虛擬機(jī)下安裝Ubuntu
2.3.1在VirtualBox下安裝Ubuntu
2.3.2關(guān)于虛擬機(jī)的一些介紹
小結(jié)
習(xí)題
實(shí)驗(yàn)21在虛擬機(jī)中安裝Ubuntu 16.04
實(shí)驗(yàn)22熟悉虛擬機(jī)的使用
目錄
Linux基礎(chǔ)教程
第3章圖形界面與字符界面
3.1Unity桌面環(huán)境
3.1.1Unity概述
3.1.2Unity桌面介紹
3.2GNOME桌面環(huán)境
3.2.1安裝GNOME桌面環(huán)境
3.2.2GNOME3桌面環(huán)境介紹
3.3圖形界面軟件更新
3.3.1軟件更新
3.3.2修改更新源
3.4字符界面
3.4.1終端
3.4.2Putty遠(yuǎn)程登錄
3.5字符界面軟件安裝
3.5.1APT管理軟件
3.5.2dpkg命令
小結(jié)
習(xí)題
實(shí)驗(yàn)31Ubuntu 16.04的Unity桌面
實(shí)驗(yàn)32Putty遠(yuǎn)程登錄Ubuntu 16.04
第4章Linux文件管理
4.1Linux文件系統(tǒng)概述
4.1.1文件系統(tǒng)概念
4.1.2文件與目錄的定義
4.1.3Linux的文件結(jié)構(gòu)、類型、屬性
4.2Linux文件操作命令
4.2.1顯示文件內(nèi)容命令
4.2.2顯示目錄內(nèi)容及更改目錄命令
4.2.3建立、刪除文件命令
4.2.4建立、刪除目錄命令
4.2.5復(fù)制、移動(dòng)命令
4.2.6壓縮備份命令
4.2.7權(quán)限管理命令
4.2.8Linux文件查找命令
4.3輸入/輸出重定向
4.3.1標(biāo)準(zhǔn)輸入/輸出
4.3.2輸入重定向
4.3.3輸出重定向
4.4管道
小結(jié)
習(xí)題
實(shí)驗(yàn)41文件的顯示
實(shí)驗(yàn)42文件和文件夾的管理
第5章Linux系統(tǒng)用戶管理
5.1Linux用戶介紹
5.1.1用戶和用戶組
5.1.2用戶分類
5.2相關(guān)文件
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命令
小結(jié)
習(xí)題
實(shí)驗(yàn)51用戶和組的管理
第6章磁盤(pán)管理
6.1磁盤(pán)
6.1.1硬盤(pán)的物理結(jié)構(gòu)
6.1.2文件系統(tǒng)類型
6.1.3硬盤(pán)的分類
6.2分區(qū)命名方式
6.3常用磁盤(pán)管理命令
6.3.1添加硬盤(pán)
6.3.2查看硬盤(pán)信息
6.3.3創(chuàng)建硬盤(pán)分區(qū)
6.3.4為各分區(qū)創(chuàng)建文件系統(tǒng)
6.3.5掛載磁盤(pán)分區(qū)
6.3.6掛載USB
6.3.7卸載磁盤(pán)分區(qū)
6.4磁盤(pán)配額管理
6.4.1查看內(nèi)核是否支持配額
6.4.2安裝磁盤(pán)配額工具
6.4.3激活分區(qū)的配額功能
6.4.4建立配額數(shù)據(jù)庫(kù)
6.4.5啟動(dòng)磁盤(pán)配額
6.4.6編輯用戶磁盤(pán)配額
6.4.7設(shè)定寬限期
6.4.8其他配額功能
小結(jié)
習(xí)題
實(shí)驗(yàn)61在虛擬機(jī)中掛載文件系統(tǒng)
實(shí)驗(yàn)62磁盤(pán)配額的配置
第7章Linux引導(dǎo)及進(jìn)程管理
7.1Linux引導(dǎo)流程
7.1.1系統(tǒng)引導(dǎo)
7.1.2Ubuntu的運(yùn)行級(jí)別
7.1.3關(guān)閉系統(tǒng)
7.2Linux內(nèi)存管理
7.2.1物理內(nèi)存和虛擬內(nèi)存
7.2.2虛擬內(nèi)存實(shí)現(xiàn)機(jī)制及之間的關(guān)系
7.2.3內(nèi)存的監(jiān)視
7.2.4交換分區(qū)swap的使用
7.2.5清理內(nèi)存空間
7.3Linux進(jìn)程管理
7.3.1進(jìn)程的概念
7.3.2進(jìn)程與程序的關(guān)系
7.3.3常用進(jìn)程管理命令
7.3.4任務(wù)計(jì)劃
7.4Apparmor介紹
7.4.1Apparmor簡(jiǎn)介
7.4.2Apparmor的配置文件
7.4.3Apparmor的使用
小結(jié)
習(xí)題
實(shí)驗(yàn)71Linux進(jìn)程管理
第8章Linux編輯器的使用
8.1文本編輯器
8.1.1Gedit編輯器
8.1.2nano編輯器
8.1.3vi編輯器
8.2vi編譯器的使用
8.2.1啟動(dòng)vi編輯器
8.2.23種工作模式
8.2.3光標(biāo)操作命令
8.2.4屏幕操作命令
8.2.5文本修改命令
8.2.6其他命令
8.3gcc編譯及其調(diào)試
8.3.1gcc編譯器的使用
8.3.2gcc總體選項(xiàng)實(shí)例
8.3.3gcc優(yōu)化選項(xiàng)實(shí)例
8.3.4警告和出錯(cuò)選項(xiàng)實(shí)例
8.3.5gdb調(diào)試器
8.4Eclipse編輯器
8.4.1安裝JDK
8.4.2配置Eclipse的C語(yǔ)言集成開(kāi)發(fā)環(huán)境
8.4.3使用Eclipse編輯器編譯實(shí)例
8.4.4在Eclipse中使用gdb調(diào)試程序
小結(jié)
習(xí)題
實(shí)驗(yàn)81vi編輯器的使用
實(shí)驗(yàn)82Linux中C程序的編輯、編譯與調(diào)試
第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執(zhí)行Shell腳本
9.3Shell腳本變量
9.3.1系統(tǒng)變量
9.3.2環(huán)境變量
9.3.3用戶自定義變量
9.3.4變量的使用
9.3.5數(shù)字與數(shù)組的聲明和使用
9.3.6Shell的輸入/輸出
9.3.7運(yùn)算符和特殊字符
9.4Shell控制結(jié)構(gòu)
9.4.1test命令
9.4.2if語(yǔ)句
9.4.3case語(yǔ)句
9.4.4while語(yǔ)句
9.4.5until語(yǔ)句
9.4.6for語(yǔ)句
9.4.7循環(huán)控制語(yǔ)句
9.5Shell函數(shù)
9.5.1函數(shù)的聲明
9.5.2函數(shù)的調(diào)用
9.5.3函數(shù)的參數(shù)傳遞
9.5.4Shell編程的綜合運(yùn)用
9.6應(yīng)用實(shí)例
小結(jié)
習(xí)題
第10章Linux服務(wù)器配置
10.1網(wǎng)絡(luò)服務(wù)概述
10.2Linux系統(tǒng)的基本網(wǎng)絡(luò)配置
10.2.1查看網(wǎng)絡(luò)配置
10.2.2修改網(wǎng)絡(luò)配置
10.2.3測(cè)試網(wǎng)絡(luò)配置
10.2.4安裝firewalld服務(wù)
10.3Samba服務(wù)器
10.3.1Samba服務(wù)器簡(jiǎn)介
10.3.2安裝Samba服務(wù)器
10.3.3配置Samba服務(wù)器
10.4Linux系統(tǒng)下LAMP平臺(tái)的搭建
10.4.1LAMP平臺(tái)概述
10.4.2LAMP平臺(tái)的搭建
10.5NFS網(wǎng)絡(luò)服務(wù)
10.5.1NFS簡(jiǎn)介
10.5.2NFS工作原理
10.5.3NFS服務(wù)的安裝與配置
10.5.4訪問(wèn)NFS服務(wù)
小結(jié)
習(xí)題
第11章集群搭建常用配置
11.1SSH的使用
11.1.1實(shí)現(xiàn)SSH免密登錄
11.1.2基于SSH實(shí)現(xiàn)數(shù)據(jù)同步
11.2搭建DHCP服務(wù)
11.2.1DHCP簡(jiǎn)介
11.2.2DHCP的工作原理
11.2.3DHCP的安裝與配置
11.3vsftpd服務(wù)
11.3.1vsftpd簡(jiǎn)介
11.3.2FTP的實(shí)現(xiàn)原理
11.3.3vsftpd的安裝和配置
11.4搭建Tomcat服務(wù)器
11.4.1Tomcat簡(jiǎn)介
11.4.2安裝并配置Tomcat
11.5PXE網(wǎng)絡(luò)安裝系統(tǒng)
11.5.1PXE簡(jiǎn)介
11.5.2PXE的實(shí)現(xiàn)過(guò)程
11.5.3PXE裝機(jī)的配置實(shí)現(xiàn)
小結(jié)
習(xí)題
附錄A部分習(xí)題答案
參考文獻(xiàn)