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