計(jì)算和存儲(chǔ)通過Internet將物理資源轉(zhuǎn)換成可伸縮的共享資源。盡管虛擬化不是一個(gè)新概念,但是通過服務(wù)器虛擬化共享物理系統(tǒng)使得云計(jì)算和存儲(chǔ)更加高效、伸縮性更強(qiáng)。通過云計(jì)算,用戶可以訪問大量的計(jì)算和存儲(chǔ)資源,并且不必關(guān)心它們的位置和它們是如何配置的。Linux系統(tǒng)在這個(gè)過程中扮演了重要的角色。業(yè)界一致的觀點(diǎn)就是云計(jì)算將架構(gòu)在開源軟件之上,并且大部分基礎(chǔ)應(yīng)用都將基于開源軟件。因?yàn)榇蠹叶贾,作為集中式的服?wù)平臺(tái),開放性永遠(yuǎn)是其關(guān)鍵要素之一,同時(shí)開源軟件的靈活性和可擴(kuò)展性也完全吻合云計(jì)算的發(fā)展趨勢(shì),有了Linux系統(tǒng)才能有云計(jì)算。
Linux系統(tǒng)繼承了UNIX系統(tǒng)卓越的性能,不僅功能強(qiáng)大而且可以免費(fèi)和自由使用。每個(gè)用戶都有權(quán)限修改它的源代碼,易于為自己的環(huán)境定制、向操作系統(tǒng)添加新部件、發(fā)現(xiàn)缺陷和提供補(bǔ)丁,以及檢查源代碼中的安全漏洞。又由于它具有內(nèi)核小、穩(wěn)定性高、可擴(kuò)展性好、對(duì)硬件要求低、網(wǎng)絡(luò)功能強(qiáng)大等特點(diǎn),成為全球使用數(shù)量增長最快的操作系統(tǒng),在全世界得到了廣泛應(yīng)用,特別是在大型數(shù)據(jù)庫、消息管理、Web應(yīng)用、嵌入式開發(fā)和云計(jì)算等方面。許多大公司,如百度、騰訊、阿里巴巴、京東、新浪等,對(duì)Linux系統(tǒng)專業(yè)人才的渴求與日劇增,經(jīng)常招聘懂Linux系統(tǒng)的IT工程師。從Linux系統(tǒng)的發(fā)展現(xiàn)狀及發(fā)展趨勢(shì)來看,用戶是使用Linux系統(tǒng)還是Windows系統(tǒng),主要取決于使用習(xí)慣。
重慶電子工程職業(yè)學(xué)院作為國家級(jí)示范性高等職業(yè)院校,早在2001年就根據(jù)市場(chǎng)需要開設(shè)了“Linux系統(tǒng)”課程。為更好地適應(yīng)高職“工學(xué)結(jié)合”的教學(xué)理念,本書采用“任務(wù)驅(qū)動(dòng)”的模式組織教材內(nèi)容,全書共分14章。本書融入了作者豐富的教學(xué)和實(shí)踐經(jīng)驗(yàn),講解通俗,案例豐富,并配備了詳細(xì)的操作過程及結(jié)果驗(yàn)證,力爭(zhēng)讓讀者能夠在最短的時(shí)間內(nèi)掌握Linux系統(tǒng)的基本操作與應(yīng)用技巧,快速入門與提高。
第1章,引導(dǎo)讀者了解Linux系統(tǒng)的起源、特點(diǎn)、構(gòu)成和發(fā)行版本,以及紅帽Linux系統(tǒng)認(rèn)證等相關(guān)知識(shí),掌握Linux系統(tǒng)安裝與初始化,登錄、退出等操作技能。
第2章,引導(dǎo)讀者掌握Linux字符界面使用技巧,包括獲取幫助、查看系統(tǒng)信息、使用VIM文本編輯器,以及遠(yuǎn)程連接等知識(shí)和技能。
第3章,引導(dǎo)讀者理解Linux系統(tǒng)文件和目錄的相關(guān)概念,掌握文件與目錄的基本操作。
第4章,引導(dǎo)讀者掌握Linux系統(tǒng)用戶與組的創(chuàng)建、管理、安全控制,以及用戶間通信的方法。
第5章,引導(dǎo)讀者掌握文件的歸檔、壓縮、解壓縮,以及文件特殊權(quán)限和ACL控制等相關(guān)知識(shí)和技能。
第6章,引導(dǎo)讀者掌握磁盤和文件系統(tǒng)的管理,包括光盤、U盤和硬盤的使用和格式化,以及磁盤配額的配置和管理。
第7章,引導(dǎo)讀者理解邏輯卷管理和磁盤陣列的相關(guān)概念,掌握使用邏輯卷管理實(shí)現(xiàn)動(dòng)態(tài)磁盤,以及使用磁盤陣列實(shí)現(xiàn)容錯(cuò)和性能提升的方法。
第8章,引導(dǎo)讀者掌握Linux系統(tǒng)中三種軟件包管理的方式:源碼包管理、RPM軟件包管理,以及YUM軟件倉庫的配置和使用。
第9章,引導(dǎo)讀者了解Linux系統(tǒng)任務(wù)計(jì)劃的實(shí)現(xiàn)原理,掌握計(jì)劃任務(wù)的三種實(shí)現(xiàn)方法及安全控制。
第10章,引導(dǎo)讀者了解Linux系統(tǒng)的啟動(dòng)過程,掌握Linux系統(tǒng)內(nèi)核模塊和引導(dǎo)程序GRUB2的使用與管理,以及Linux系統(tǒng)內(nèi)核升級(jí)的方法。
第11章,引導(dǎo)讀者理解Linux系統(tǒng)環(huán)境下Shell變量的類型、定義和功能,掌握Shell編程的基本方法。
第12章,引導(dǎo)讀者掌握Linux系統(tǒng)環(huán)境下C程序的開發(fā)方法,以及數(shù)據(jù)庫MariaDB/MySQL的安裝與使用。
第13章,引導(dǎo)讀者理解iptables和firewalld兩種防火墻的實(shí)現(xiàn)原理,掌握它們的配置、使用和管理方法。
第14章,引導(dǎo)讀者了解Web服務(wù)器常用軟/硬件平臺(tái)和虛擬主機(jī)實(shí)現(xiàn)原理,掌握Apache服務(wù)器的常用配置與管理。
本書由重慶電子工程職業(yè)學(xué)院李賀華和李騰擔(dān)任主編,負(fù)責(zé)統(tǒng)稿并共同完成第1~10章和第14章的編寫,第11章、12章和13章由魯先志、龔玉霞(重慶商務(wù)職業(yè)學(xué)院)、王全喜(藍(lán)盾信息安全有限公司)共同編寫。在本書編寫過程中,得到了藍(lán)盾信息安全有限公司的大力支持和幫助,并參考了書后列出的專著、教材和網(wǎng)站內(nèi)容,在此對(duì)其作者一并致以衷心感謝;如有引用內(nèi)容沒能標(biāo)出的,也在此對(duì)相關(guān)作者表示誠摯的歉意。
為了方便教師教學(xué),本書配有電子教學(xué)課件,請(qǐng)有此需要的教師登錄華信教育資源網(wǎng)(www.hxedu.com.cn)注冊(cè)后免費(fèi)下載,如有問題可在網(wǎng)站留言板留言或與電子工業(yè)出版社聯(lián)系(E-mail:hxedu@phei.com.cn)。
雖然我們精心組織,認(rèn)真編寫,但錯(cuò)誤之處在所難免;同時(shí),由于編者水平有限,書中也存在諸多不足之處,懇請(qǐng)廣大讀者給予批評(píng)和指正,以便在今后的修訂中不斷改進(jìn)。
編 者
第1章 Linux系統(tǒng)的安裝與初始化 1
1.1 任務(wù)1 認(rèn)識(shí)Linux系統(tǒng) 1
1.1.1 子任務(wù)1 了解Linux系統(tǒng)的起源與發(fā)展 1
1.1.2 子任務(wù)2 理解Linux系統(tǒng)的體系結(jié)構(gòu) 2
1.1.3 子任務(wù)3 了解紅帽Linux系統(tǒng)與認(rèn)證 4
1.2 任務(wù)2 部署虛擬環(huán)境安裝Linux系統(tǒng) 6
1.2.1 子任務(wù)1 在VMware里安裝Linux系統(tǒng) 6
1.2.2 子任務(wù)2 初始化新安裝的Linux系統(tǒng) 10
1.3 任務(wù)3 登錄、注銷與關(guān)機(jī) 13
1.3.1 子任務(wù)1 圖形界面下登錄、注銷與關(guān)機(jī) 13
1.3.2 子任務(wù)2 在圖形界面使用終端 14
1.3.3 子任務(wù)3 認(rèn)識(shí)X Window系統(tǒng) 14
1.4 思考與練習(xí) 17
第2章 Linux系統(tǒng)字符界面與幫助系統(tǒng)的使用 19
2.1 任務(wù)1 學(xué)習(xí)使用Linux系統(tǒng)字符界面 19
2.1.1 子任務(wù)1 使用命令注銷、登錄與關(guān)機(jī) 19
2.1.2 子任務(wù)2 使用虛擬終端實(shí)現(xiàn)多用戶同時(shí)登錄 21
2.1.3 子任務(wù)3 自動(dòng)進(jìn)入字符登錄界面 22
2.2 任務(wù)2 獲取Linux系統(tǒng)命令幫助 23
2.2.1 子任務(wù)1 使用help命令獲取內(nèi)部命令幫助 23
2.2.2 子任務(wù)2 使用--help選項(xiàng)獲取外部命令幫助 24
2.2.3 子任務(wù)3 使用man命令查看man手冊(cè) 24
2.2.4 子任務(wù)4 掌握Shell的使用技巧 25
2.3 任務(wù)3 系統(tǒng)信息查看與遠(yuǎn)程連接 30
2.3.1 子任務(wù)1 查看Linux系統(tǒng)信息 30
2.3.2 子任務(wù)2 遠(yuǎn)程連接Linux系統(tǒng) 36
2.4 任務(wù)4 學(xué)習(xí)使用VIM編輯器 39
2.4.1 子任務(wù)1 切換VIM工作模式 39
2.4.2 子任務(wù)2 使用VIM編輯文件 40
2.5 思考與練習(xí) 42
第3章 Linux系統(tǒng)文件和目錄的創(chuàng)建與管理 45
3.1 任務(wù)1 理解Linux系統(tǒng)文件 45
3.1.1 子任務(wù)1 了解文件的類型與目錄結(jié)構(gòu) 45
3.1.2 子任務(wù)2 掌握引用文件的方法 48
3.1.3 子任務(wù)3 了解重要系統(tǒng)的目錄功能 48
3.2 任務(wù)2 掌握文件與目錄的操作 51
3.2.1 子任務(wù)1 文件和目錄的基本操作 51
3.2.2 子任務(wù)2 顯示文本文件的內(nèi)容 59
3.2.3 子任務(wù)3 創(chuàng)建和使用鏈接文件 63
3.2.4 子任務(wù)4 文本內(nèi)容排序、比較與處理 65
3.2.5 子任務(wù)5 查找文件或字符串 71
3.3 任務(wù)3 了解和使用Linux系統(tǒng)日志文件 75
3.3.1 子任務(wù)1了解重要的日志文件 75
3.3.2 子任務(wù)2使用Linux系統(tǒng)日志文件的注意事項(xiàng) 83
3.4 思考與練習(xí) 83
第4章 Linux系統(tǒng)用戶和用戶組的創(chuàng)建與管理 86
4.1 任務(wù)1 理解Linux系統(tǒng)用戶和用戶組 86
4.1.1 子任務(wù)1 了解Linux系統(tǒng)用戶 86
4.1.2 子任務(wù)2 了解Linux系統(tǒng)用戶組 87
4.2 任務(wù)2 理解用戶和組配置文件 88
4.2.1 子任務(wù)1 了解用戶賬號(hào)文件 88
4.2.2 子任務(wù)2 了解用戶組文件 91
4.3 任務(wù)3 管理用戶賬號(hào) 92
4.3.1 子任務(wù)1 用戶賬號(hào) 92
4.3.2 子任務(wù)2 用戶組賬號(hào) 97
4.3.3 子任務(wù)3 用戶賬號(hào)安全管理 101
4.4 任務(wù)4 用戶間的通信 102
4.4.1 子任務(wù)1 發(fā)送給某個(gè)登錄用戶 103
4.4.2 子任務(wù)2 發(fā)送給所有登錄用戶 104
4.5 思考與練習(xí) 104
第5章 Linux系統(tǒng)文件歸檔/備份與權(quán)限控制 106
5.1 任務(wù)1 歸檔、壓縮與備份 106
5.1.1 子任務(wù)1 管理tar包 106
5.1.2 子任務(wù)2 使用gzip和gunzip 109
5.1.3 子任務(wù)2 使用bzip2和bunzip2 111
5.1.4 子任務(wù)3 使用zip和unzip 112
5.1.5 子任務(wù)4 文件備份與格式轉(zhuǎn)換 114
5.2 任務(wù)2 管理文件的權(quán)限和所有者 118
5.2.1 子任務(wù)1 查看文件和目錄的權(quán)限 118
5.2.2 子任務(wù)2 設(shè)置文件和目錄的基本權(quán)限 118
5.2.3 子任務(wù)3 理解權(quán)限與指令之間的關(guān)系 121
5.2.4 子任務(wù)4 設(shè)置文件和目錄的隱藏屬性 122
5.2.5 子任務(wù)5 設(shè)置文件和目錄的特殊權(quán)限 124
5.2.6 子任務(wù)6 更改文件所有者和所屬組 126
5.3 任務(wù)3 實(shí)現(xiàn)ACL控制 127
5.3.1 子任務(wù)1 了解ACL控制 127
5.3.2 子任務(wù)2 使用ACL控制 128
5.4 思考與練習(xí) 133
第6章 Linux系統(tǒng)存儲(chǔ)設(shè)備與文件系統(tǒng)的管理 135
6.1 任務(wù)1 理解Linux系統(tǒng)存儲(chǔ)設(shè)備與文件系統(tǒng) 135
6.1.1 子任務(wù)1 了解存儲(chǔ)設(shè)備的命名 135
6.1.2 子任務(wù)2 了解文件系統(tǒng)類型 137
6.2 任務(wù)2 掌握存儲(chǔ)設(shè)備的基本操作 138
6.2.1 子任務(wù)1 查詢磁盤及分區(qū)信息 138
6.2.2 子任務(wù)2 在Linux系統(tǒng)中使用光盤 139
6.2.3 子任務(wù)3 在Linux系統(tǒng)中使用U盤 141
6.2.4 子任務(wù)4 磁盤的分區(qū)及維護(hù) 143
6.3 任務(wù)3 配置與管理磁盤配額 150
6.3.1 子任務(wù)1 設(shè)置磁盤配額 150
6.3.2 子任務(wù)2 磁盤配額的其他操作 155
6.4 思考與練習(xí) 158
第7章 Linux系統(tǒng)邏輯卷管理與磁盤容錯(cuò) 160
7.1 任務(wù)1 使用邏輯卷管理器LVM 160
7.1.1 子任務(wù)1 理解邏輯卷的基本概念 160
7.1.2 子任務(wù)2 建立物理卷、卷組和邏輯卷 163
7.1.3 子任務(wù)3 查看物理卷、卷組和邏輯卷 166
7.1.4 子任務(wù)4 動(dòng)態(tài)調(diào)整卷組、邏輯卷的容量 171
7.1.5 子任務(wù)5 刪除邏輯卷、卷組和物理卷 175
7.2 任務(wù)2 使用RAID實(shí)現(xiàn)磁盤容錯(cuò) 177
7.2.1 子任務(wù)1 理解RAID的基本原理 177
7.2.2 子任務(wù)2 創(chuàng)建與掛載RAID設(shè)備 185
7.2.3 子任務(wù)3 損壞磁盤陣列和修復(fù) 188
7.3 思考與練習(xí) 191
第8章 Linux系統(tǒng)軟件包的安裝與管理 193
8.1 任務(wù)1 了解Linux系統(tǒng)軟件管理的基本知識(shí) 193
8.1.1 子任務(wù)1 了解軟件包傳統(tǒng)管理方法 193
8.1.2 子任務(wù)2 了解軟件包高級(jí)管理方法 195
8.2 任務(wù)2 使用RPM命令管理軟件包 196
8.2.1 子任務(wù)1 查詢RPM軟件包 196
8.2.2 子任務(wù)2 安裝/刪除RPM軟件包 198
8.2.3 子任務(wù)3 校驗(yàn)RPM軟件包 199
8.3 任務(wù)3 使用yum命令管理軟件包 200
8.3.1 子任務(wù)1 理解yum的配置文件 200
8.3.2 子任務(wù)2 以光驅(qū)為源創(chuàng)建yum倉庫 201
8.3.3 子任務(wù)3 使用yum命令 203
8.3.4 子任務(wù)4 解決yum報(bào)錯(cuò) 209
8.4 任務(wù)4 使用源代碼方式安裝軟件包 211
8.4.1 子任務(wù)1 安裝源碼包httpd 211
8.4.2 子任務(wù)2 優(yōu)化和啟/停httpd 214
8.5 思考與練習(xí) 215
第9章 Linux系統(tǒng)的任務(wù)計(jì)劃與管理 217
9.1 任務(wù)1 使用at實(shí)現(xiàn)任務(wù)計(jì)劃 217
9.1.1 子任務(wù)1 安裝與管理at服務(wù) 217
9.1.2 子任務(wù)2 配置與管理at作業(yè) 218
9.2 任務(wù)2 使用cron實(shí)現(xiàn)任務(wù)計(jì)劃 220
9.2.1 子任務(wù)1 利用/etc/crontab文件實(shí)現(xiàn)任務(wù)計(jì)劃 220
9.2.2 子任務(wù)2 使用crontab命令實(shí)現(xiàn)任務(wù)計(jì)劃 222
9.3 任務(wù)3 使用anacron實(shí)現(xiàn)任務(wù)計(jì)劃 224
9.3.1 子任務(wù)1 了解anacron與cron的區(qū)別與聯(lián)系 224
9.3.2 子任務(wù)2 詳解配置文件/etc/anacrontab 224
9.3.3 子任務(wù)3 使用anacron命令執(zhí)行計(jì)劃 226
9.4 思考與練習(xí) 227
第10章 Linux系統(tǒng)的引導(dǎo)與內(nèi)核管理 229
10.1 任務(wù)1 認(rèn)識(shí)GRUB及其配置文件 229
10.1.1 子任務(wù)1 了解Linux系統(tǒng)的啟動(dòng)過程 229
10.1.2 子任務(wù)2 了解GRUB2的配置文件 232
10.2 任務(wù)2 管理與使用Linux系統(tǒng)內(nèi)核模塊 234
10.2.1 子任務(wù)1 了解Linux系統(tǒng)內(nèi)核與內(nèi)核組成 234
10.2.2 子任務(wù)2 查看已經(jīng)加載的內(nèi)核模塊 235
10.2.3 子任務(wù)3 查看內(nèi)核模塊的信息 236
10.2.4 子任務(wù)4 自動(dòng)加載/卸載內(nèi)核模塊 237
10.2.5 子任務(wù)5 升級(jí)Linux系統(tǒng)內(nèi)核 238
10.3 任務(wù)3 使用與管理GRUB 2 239
10.3.1 子任務(wù)1 破解root用戶的密碼 239
10.3.2 子任務(wù)2 設(shè)置GRUB 2加密口令 241
10.4 思考與練習(xí) 242
第11章 Linux系統(tǒng)的Shell與Shell編程 244
11.1 任務(wù)1 創(chuàng)建Shell程序并執(zhí)行 244
11.1.1 子任務(wù)1 了解Shell程序的基本結(jié)構(gòu) 245
11.1.2 子任務(wù)2 簡(jiǎn)單Shell程序的創(chuàng)建與執(zhí)行 245
11.2 任務(wù)2 管理和使用Shell變量 246
11.2.1 子任務(wù)1 使用Shell的環(huán)境變量 247
11.2.2 子任務(wù)2 創(chuàng)建與修改環(huán)境變量 250
11.2.3 子任務(wù)3 用位置變量接收命令的參數(shù) 252
11.3 任務(wù)3 使用條件表達(dá)式