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