本書基于ubuntu 16.04-desktop操作系統(tǒng),在第1版的基礎上,根據(jù)大數(shù)據(jù)、云計算等新興技術的發(fā)展,增加了系統(tǒng)資源管理模塊,DHCP、VSFTPD、TOMCAT服務的搭建,SSH配置和PXE裝機等內容。通過本書的學習,學生可以掌握Linux系統(tǒng)的安裝、配置、管理維護等技能,對Linux系統(tǒng)有全面的了解,奠定在Linux系統(tǒng)上做進一步開發(fā)的基礎。本書適合作為大專院校理工科專業(yè)本科生的教材,也可供感興趣的讀者自學參考。
前言
互聯(lián)網(wǎng)產(chǎn)業(yè)的迅猛發(fā)展,促使云計算、大數(shù)據(jù)產(chǎn)業(yè)形成并快速發(fā)展,云計算的部署、大數(shù)據(jù)的開發(fā)絕大多數(shù)都基于開源軟件的平臺,Linux已經(jīng)成為這些技術的基礎軟件。據(jù)Linux基金會的研究,86%的企業(yè)已經(jīng)使用Linux操作系統(tǒng)進行云計算、大數(shù)據(jù)平臺的構建。目前,Linux已開始取代UNIX成為最受青睞的云計算、大數(shù)據(jù)平臺操作系統(tǒng)。為云計算、大數(shù)據(jù)、嵌入式開發(fā)等掌握良好的Linux基礎知識已經(jīng)成為重要的基礎性任務,因此我們組織編寫了本書。
我們在2013年出版了《Linux操作系統(tǒng)》一書,本書在該書的基礎上主要進行了以下修改。
秉承Linux的開源思想,在開發(fā)環(huán)境的搭建上由原來的Ubuntu 12.04+VMware改為Ubuntu 16.04+ VirtualBox; 增加若干市場上常見的發(fā)行版介紹,如CentOS等; 根據(jù)大數(shù)據(jù)的應用原理增加了虛擬內存的實現(xiàn)機制的闡述,介紹了Ubuntu系統(tǒng)常用的任務管理器gnomesystemmonitor程序; 因為在云計算大數(shù)據(jù)的應用中常常會對系統(tǒng)的權限進行設置,對系統(tǒng)的安全進行配置也是程序員必備的技能之一,所以在7.4節(jié)中較為詳細地介紹了Ubuntu的安全模塊Apparmor,及其實現(xiàn)的配置。
在第9章中根據(jù)實用原則添加了一些Shell編程的綜合運用的實例,比如文件的批量處理、用戶的批量建立。第10章中增添了另一種網(wǎng)絡配置的方式,并且對兩種配置方式的優(yōu)先性進行了描述,讓讀者能根據(jù)自己的需求修改網(wǎng)絡,增加了firewalld即Ubuntu的防火墻服務的簡單介紹。除了內容的增加,還對原本的LAMP平臺進行了版本更新,對NFS的一些配置進行了相應的更新,讓讀者能夠適應程序的版本更迭。在第11章對大數(shù)據(jù)和云計算所需要的一些Linux知識和基礎服務的搭建進行了講解,如SSH免密碼登錄,DHCP、vsftp、Tomcat等服務器的搭建。
基于上述增改,本書完善了內容,增加了學習大數(shù)據(jù)和云計算知識所需要的大部分Linux技能和基礎服務。本書以簡單、易掌握為主旨,節(jié)約了篇幅,同時讓讀者能夠掌握足夠的知識去探索更為廣闊的大數(shù)據(jù)及云計算的世界。
本書由姜春茂任主編,姚艷雪、李志聰、段瑩任副主編,周洪玉主審,參加本書編寫的還有莫遠明、楊翎等。本書共分為11章,其中具體的編寫任務分配如下: 第1章和第10章由姚艷雪編寫,第2章由李志聰編寫,第3章由段瑩編寫,余下的章節(jié)由姜春茂編寫,最后由姜春茂統(tǒng)編全稿。
感謝本套叢書編委會給予的支持和幫助,特別感謝周洪玉教授對本書編寫的悉心指導和審核,感謝為本書的編寫、出版提供支持、幫助的老師和朋友們。
由于時間倉促,書中疏漏和不足之處在所難免,敬請廣大讀者提出寶貴的意見和建議。
編者
2020年7月
姜春茂,博士,哈爾濱師范大學教授,機器人教育專家,黑龍江軟件學會常務理事,哈工大機器人(合肥)國際創(chuàng)新研究院研發(fā)副總師。已出版《人工智能基礎教程:Python篇(青少版)》等圖書。
目錄
第1章Linux基礎
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應用
1.3.1Linux在云計算中的應用
1.3.2Linux在嵌入式中的應用
1.3.3Linux在大數(shù)據(jù)中的應用
1.3.4Linux在物聯(lián)網(wǎng)中的應用
1.3.5Linux的發(fā)展趨勢
1.3.6Linux有關的網(wǎng)站
小結
習題
第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關于虛擬機的一些介紹
小結
習題
實驗21在虛擬機中安裝Ubuntu 16.04
實驗22熟悉虛擬機的使用
目錄
Linux基礎教程
第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命令
小結
習題
實驗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的文件結構、類型、屬性
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系統(tǒng)用戶管理
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文件系統(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查看內核是否支持配額
6.4.2安裝磁盤配額工具
6.4.3激活分區(qū)的配額功能
6.4.4建立配額數(shù)據(jù)庫
6.4.5啟動磁盤配額
6.4.6編輯用戶磁盤配額
6.4.7設定寬限期
6.4.8其他配額功能
小結
習題
實驗61在虛擬機中掛載文件系統(tǒng)
實驗62磁盤配額的配置
第7章Linux引導及進程管理
7.1Linux引導流程
7.1.1系統(tǒng)引導
7.1.2Ubuntu的運行級別
7.1.3關閉系統(tǒng)
7.2Linux內存管理
7.2.1物理內存和虛擬內存
7.2.2虛擬內存實現(xiàn)機制及之間的關系
7.2.3內存的監(jiān)視
7.2.4交換分區(qū)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優(yōu)化選項實例
8.3.4警告和出錯選項實例
8.3.5gdb調試器
8.4Eclipse編輯器
8.4.1安裝JDK
8.4.2配置Eclipse的C語言集成開發(fā)環(huán)境
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執(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控制結構
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ù)的調用
9.5.3函數(shù)的參數(shù)傳遞
9.5.4Shell編程的綜合運用
9.6應用實例
小結
習題
第10章Linux服務器配置
10.1網(wǎng)絡服務概述
10.2Linux系統(tǒng)的基本網(wǎng)絡配置
10.2.1查看網(wǎng)絡配置
10.2.2修改網(wǎng)絡配置
10.2.3測試網(wǎng)絡配置
10.2.4安裝firewalld服務
10.3Samba服務器
10.3.1Samba服務器簡介
10.3.2安裝Samba服務器
10.3.3配置Samba服務器
10.4Linux系統(tǒng)下LAMP平臺的搭建
10.4.1LAMP平臺概述
10.4.2LAMP平臺的搭建
10.5NFS網(wǎng)絡服務
10.5.1NFS簡介
10.5.2NFS工作原理
10.5.3NFS服務的安裝與配置
10.5.4訪問NFS服務
小結
習題
第11章集群搭建常用配置
11.1SSH的使用
11.1.1實現(xiàn)SSH免密登錄
11.1.2基于SSH實現(xiàn)數(shù)據(jù)同步
11.2搭建DHCP服務
11.2.1DHCP簡介
11.2.2DHCP的工作原理
11.2.3DHCP的安裝與配置
11.3vsftpd服務
11.3.1vsftpd簡介
11.3.2FTP的實現(xiàn)原理
11.3.3vsftpd的安裝和配置
11.4搭建Tomcat服務器
11.4.1Tomcat簡介
11.4.2安裝并配置Tomcat
11.5PXE網(wǎng)絡安裝系統(tǒng)
11.5.1PXE簡介
11.5.2PXE的實現(xiàn)過程
11.5.3PXE裝機的配置實現(xiàn)
小結
習題
附錄A部分習題答案
參考文獻