第2版前言
Linux是自由軟件的一片沃土,它既為那些被廣泛應(yīng)用的基礎(chǔ)軟件提供了充足的養(yǎng)分,
又使各式各樣的奇思妙想獲得了生根發(fā)芽和成長(zhǎng)的可能。不過,正因?yàn)長(zhǎng)inux軟件生態(tài)的
多樣性,當(dāng)初學(xué)者步入其中,面對(duì)林林總總的技術(shù)和工具時(shí),除了好奇之外,難免會(huì)困
惑于應(yīng)如何取舍極為分散龐雜的知識(shí)點(diǎn),并形成為己所用的知識(shí)體系。其實(shí)這也是Linux
操作系統(tǒng)實(shí)際教學(xué)面臨的重要問題。鑒于此,編者編寫并于2016年出版了本書第1版,
旨在通過足夠豐富的例子,特別是可供逐步對(duì)照操作的案例,讓學(xué)生能獨(dú)立開展訓(xùn)練。
這些案例按照教學(xué)過程精心設(shè)計(jì),學(xué)生在完成基礎(chǔ)實(shí)訓(xùn)后,便能夠根據(jù)案例中的操作步
驟指引進(jìn)行練習(xí)。而且,許多案例前后連貫且彼此呼應(yīng),能有效輔助學(xué)生構(gòu)建和鞏固其
知識(shí)體系。
本書第1版出版后曾6次重印,并在多層次的高校相關(guān)課程中被選為教材。如果說(shuō)
本書第1版試圖以案例梳理并描繪一個(gè)符合實(shí)際教學(xué)需要的Linux知識(shí)網(wǎng)絡(luò),那么第2版
則著力于強(qiáng)化學(xué)生在該網(wǎng)絡(luò)中學(xué)習(xí)的能動(dòng)性及教學(xué)雙方的互動(dòng)性。改版后本書最顯著的
變化是在每個(gè)實(shí)訓(xùn)中加入了若干思考&動(dòng)手題,并且在每個(gè)案例中都新增了檢查點(diǎn)
或拓展練習(xí)。設(shè)置這些練習(xí)題的目的是檢驗(yàn)學(xué)生能否正確理解所學(xué)知識(shí);更是希望
學(xué)生能從中領(lǐng)悟如何在學(xué)習(xí)過程中提出問題,又如何通過動(dòng)手探究問題的答案。
例如,本書第一個(gè)思考&動(dòng)手題介紹了一款制作思維導(dǎo)圖的自由軟件,以此引
導(dǎo)學(xué)生思考和理解自由軟件的概念。與大多數(shù)介紹Linux發(fā)展背景和自由軟件概念的
內(nèi)容一樣,書中闡述了自由軟件的定義及其與Linux的關(guān)系,可是這樣顯然不夠。對(duì)于初
學(xué)者來(lái)說(shuō),自由軟件(也包括Linux本身)似乎過于陌生和遙遠(yuǎn),未有親身的體驗(yàn)和具體
的印象,難免會(huì)把這些概念當(dāng)成抽象的、為完成考核要求而必須了解的知識(shí)點(diǎn)而已。
其實(shí)還可以去問:日常生活中是否有一些可供人們使用的自由軟件?希望當(dāng)學(xué)生看見本
書所有的知識(shí)結(jié)構(gòu)圖均能通過自由軟件繪制,同時(shí)在學(xué)習(xí)和生活中運(yùn)用自由軟件繪
制出自己想要的思維導(dǎo)圖,這時(shí)才能對(duì)自由軟件的概念及其價(jià)值有更為深刻的認(rèn)識(shí)。
也就是說(shuō),本次改版增設(shè)各種思考題不僅希望學(xué)生能夠通過書中問題檢驗(yàn)自身所學(xué),
更希望他們具備一定的問題意識(shí),學(xué)會(huì)通過發(fā)問探索更多未知,并且練習(xí)通過動(dòng)手實(shí)踐
獲取新知。相信當(dāng)學(xué)生能夠真正提出自己的問題并自行動(dòng)手驗(yàn)證其解答時(shí),便不再過多
地受限于Linux龐雜的知識(shí)點(diǎn),日后能自如地持續(xù)學(xué)習(xí)并應(yīng)對(duì)挑戰(zhàn)。而在課程實(shí)訓(xùn)中這些
思考的過程和結(jié)果,也將更為有機(jī)地成為學(xué)生個(gè)人知識(shí)體系的一部分,并有可能促成其
II
Linux綜合實(shí)訓(xùn)案例教程
第2版
職業(yè)能力的發(fā)展。
以上便是本書改版的基本方向,它來(lái)自于當(dāng)下教學(xué)環(huán)境發(fā)生的深刻變化。就以Linux
操作系統(tǒng)教學(xué)為例,互聯(lián)網(wǎng)和市面上已有無(wú)數(shù)相關(guān)資料和大量書籍,學(xué)生可以輕易獲得
海量乃至過載的資源。因此,教師作為知識(shí)傳播者的作用不可避免地被弱化。面對(duì)這一
時(shí)代背景,應(yīng)如何強(qiáng)化教師在實(shí)訓(xùn)課堂中引導(dǎo)思考、解答疑難和督促考核的作用,是本
次改版著力探索的現(xiàn)實(shí)問題。
筆者認(rèn)為,教材不僅需要以一種適合教學(xué)實(shí)踐的方式組織并呈現(xiàn)知識(shí),更可被視作
教師實(shí)施教學(xué)的媒介,讓教師的引導(dǎo)、解答和督促作用延伸至課內(nèi)外的每個(gè)學(xué)習(xí)情境。
這既與當(dāng)下教師角色轉(zhuǎn)換的時(shí)代背景相適應(yīng),也與基于互聯(lián)網(wǎng)技術(shù)開展教學(xué)改革的潮流
相契合。以上觀點(diǎn)最終體現(xiàn)在本次改版增設(shè)的各種思考&動(dòng)手題上。希望這次改版
不僅是內(nèi)容上的迭代更新,更是適應(yīng)教學(xué)環(huán)境轉(zhuǎn)變的一種探索,嘗試為改革傳統(tǒng)課堂教
學(xué)提供支持。
然而,長(zhǎng)期的實(shí)訓(xùn)和實(shí)驗(yàn)課教學(xué)經(jīng)歷讓筆者深知,即使借助發(fā)達(dá)的即時(shí)通信技術(shù),
教師也難以具體且細(xì)微地為每個(gè)學(xué)生講解實(shí)際操作中的問題,而且這些問題有時(shí)又是相
似或相通的。因此,本書還配有微課視頻,對(duì)所有實(shí)訓(xùn)案例及其檢查點(diǎn)拓展練習(xí)思
考&動(dòng)手題以及重要示例等進(jìn)行了詳細(xì)的講解。它們可供學(xué)生自學(xué)參考。教師可提示
學(xué)生先行對(duì)照視頻檢查操作中的錯(cuò)誤,然后再更有針對(duì)性地回答問題。
本書共有15個(gè)實(shí)訓(xùn),每個(gè)實(shí)訓(xùn)分為基礎(chǔ)實(shí)訓(xùn)和綜合實(shí)訓(xùn)兩部分,前者為后者的知識(shí)
準(zhǔn)備訓(xùn)練。教師可根據(jù)授課目標(biāo)和實(shí)際情況安排進(jìn)度和練習(xí)內(nèi)容。這里分享筆者的授課
安排,教師可根據(jù)教學(xué)實(shí)際靈活調(diào)整。每次實(shí)訓(xùn)課可分為三部分(時(shí)間分配比例按需設(shè)
置)。首先,可通過互聯(lián)網(wǎng)教學(xué)平臺(tái)(如超星學(xué)習(xí)通等)布置隨堂活動(dòng),要求學(xué)生完成
與上次教學(xué)內(nèi)容相關(guān)的某個(gè)案例練習(xí)。如果時(shí)間受限,可要求學(xué)生只完成至某個(gè)指定的
步驟。學(xué)生需上傳操作結(jié)果截圖獲取課程積分,教師可在課上或課后進(jìn)行審核。其次,
可根據(jù)書中基礎(chǔ)實(shí)訓(xùn)內(nèi)容及各示例講授本次授課的知識(shí)要點(diǎn),期間可安排一些重要示例
的練習(xí)。最后,布置本次實(shí)訓(xùn)的練習(xí)作業(yè)并做必要的引導(dǎo)和提示。作業(yè)可根據(jù)實(shí)際情況
設(shè)定任務(wù)量,可有選擇地安排完成示例練習(xí)和思考&動(dòng)手題,以及完成前面隨堂活
動(dòng)中案例練習(xí)的剩余部分及其拓展練習(xí)等。
適當(dāng)安排隨堂的案例練習(xí)有鞏固知識(shí)、平時(shí)考核和激發(fā)學(xué)生進(jìn)入課堂學(xué)習(xí)狀態(tài)等多
重目的。從實(shí)際教學(xué)情況來(lái)看,由于每個(gè)示例和案例都已被多屆學(xué)生反復(fù)驗(yàn)證和修正,
而且案例有著明確清晰的操作步驟,大部分學(xué)生能夠較為順利地在隨堂活動(dòng)中完成部分
或整個(gè)案例的練習(xí),從而可保證在課堂上有較為飽滿的訓(xùn)練量。而且,學(xué)生在隨堂活動(dòng)
中收獲課程積分,與同伴互助及請(qǐng)教老師,能強(qiáng)化其課堂學(xué)習(xí)的獲得感和參與感。
在操作系統(tǒng)版本和教學(xué)內(nèi)容選取方面,本書以VMware虛擬機(jī) Red Hat Enterprise
Linux(RHEL)8.5為實(shí)訓(xùn)平臺(tái),已充分考慮了高校實(shí)訓(xùn)課堂的實(shí)際條件,所選取的教
III
第2版前言
學(xué)內(nèi)容基本為各種Linux發(fā)行版本共有,并且最大限度與更低版本的RHEL兼容。除豐
富的微課視頻外,本書還提供了完整的教學(xué)課件(PPT、思維導(dǎo)圖文件等)以及練習(xí)所需
全部文件(配置文件、腳本代碼文件、應(yīng)用程序等)。
本書的編寫和改版離不開來(lái)自各方的支持,在此表示衷心的感謝。廣東技術(shù)師范大
學(xué)計(jì)算機(jī)科學(xué)學(xué)院的領(lǐng)導(dǎo)和老師們給予了許多幫助,特別是黃華盛老師和廖秀秀老師無(wú)
私分享了寶貴的實(shí)際教學(xué)經(jīng)驗(yàn)。軟件工程專業(yè)、物聯(lián)網(wǎng)工程專業(yè)和人工智能專業(yè)等多屆
學(xué)生對(duì)本書內(nèi)容的持續(xù)反饋和深入交流探討,讓筆者真正感受到教學(xué)相長(zhǎng)之樂趣,也是
持續(xù)修訂本書內(nèi)容的最大動(dòng)力。清華大學(xué)出版社對(duì)本書的出版給予了大力支持。最后,
感謝所有致力于自由軟件開發(fā)與傳播的志愿者的無(wú)私奉獻(xiàn)。
由于作者水平有限,書中疏漏之處在所難免,敬請(qǐng)廣大讀者批評(píng)指正。
陳智斌
2022年10月9日于廣州
目 錄
實(shí)訓(xùn)1 Linux簡(jiǎn)介與使用 1
1.1 知識(shí)結(jié)構(gòu) 1
1.2 基礎(chǔ)實(shí)訓(xùn) 2
1.2.1 Linux起源和發(fā)展的三要素 2
1.2.2 預(yù)備知識(shí) 3
1.3 綜合實(shí)訓(xùn) 8
實(shí)訓(xùn)2 初步使用shell 21
2.1 知識(shí)結(jié)構(gòu) 21
2.2 基礎(chǔ)實(shí)訓(xùn) 22
2.2.1 Linux的基本結(jié)構(gòu) 22
2.2.2 字符終端與shell命令 24
2.2.3 基本shell命令 27
2.2.4 vim編輯器 36
2.3 綜合實(shí)訓(xùn) 38
實(shí)訓(xùn)3 shell命令進(jìn)階 45
3.1 知識(shí)結(jié)構(gòu) 45
3.2 基礎(chǔ)實(shí)訓(xùn) 45
3.2.1 通配符與特殊符號(hào) 46
3.2.2 正則表達(dá)式 48
3.2.3 重定向和管道 54
3.3 綜合實(shí)訓(xùn) 57
實(shí)訓(xùn)4 shell腳本編程基礎(chǔ) 64
4.1 知識(shí)結(jié)構(gòu) 64
4.2 基礎(chǔ)實(shí)訓(xùn) 65
VIII
Linux綜合實(shí)訓(xùn)案例教程
第2版
4.2.1 shell腳本簡(jiǎn)介 65
4.2.2 創(chuàng)建和執(zhí)行shell腳本 65
4.2.3 變量的類型 68
4.2.4 變量的賦值和訪問 70
4.2.5 變量的運(yùn)算 72
4.2.6 一些特殊符號(hào) 75
4.3 綜合實(shí)訓(xùn) 77
實(shí)訓(xùn)5 shell腳本編程進(jìn)階 87
5.1 知識(shí)結(jié)構(gòu) 87
5.2 基礎(chǔ)實(shí)訓(xùn) 88
5.2.1 分支選擇結(jié)構(gòu) 88
5.2.2 循環(huán)結(jié)構(gòu) 93
5.2.3 觀察shell腳本的執(zhí)行過程 95
5.3 綜合實(shí)訓(xùn) 97
實(shí)訓(xùn)6 用戶管理 105
6.1 知識(shí)結(jié)構(gòu) 105
6.2 基礎(chǔ)實(shí)訓(xùn) 105
6.2.1 用戶管理的基本內(nèi)容 105
6.2.2 用戶賬戶管理 106
6.2.3 用戶組群管理 109
6.2.4 主要管理命令 110
6.2.5 用戶賬戶切換 117
6.3 綜合實(shí)訓(xùn) 118
實(shí)訓(xùn)7 文件管理 126
7.1 知識(shí)結(jié)構(gòu) 126
7.2 基礎(chǔ)實(shí)訓(xùn) 126
7.2.1 Linux的文件類型 126
7.2.2 文件的權(quán)限 132
7.2.3 與文件有關(guān)的應(yīng)用 136
7.3 綜合實(shí)訓(xùn) 142
IX
目 錄
實(shí)訓(xùn)8 文件系統(tǒng)管理 155
8.1 知識(shí)結(jié)構(gòu) 155
8.2 基礎(chǔ)實(shí)訓(xùn) 156
8.2.1 文件系統(tǒng)簡(jiǎn)介 156
8.2.2 文件系統(tǒng)的掛載和卸載 157
8.2.3 文件系統(tǒng)的創(chuàng)建 164
8.3 綜合實(shí)訓(xùn) 167
實(shí)訓(xùn)9 硬盤分區(qū)與配額管理 177
9.1 知識(shí)結(jié)構(gòu) 177
9.2 基礎(chǔ)實(shí)訓(xùn) 178
9.2.1 硬盤分區(qū)管理 178
9.2.2 硬盤配額管理 184
9.3 綜合實(shí)訓(xùn) 194
實(shí)訓(xùn)10 邏輯卷管理 205
10.1 知識(shí)結(jié)構(gòu) 205
10.2 基本實(shí)訓(xùn) 206
10.2.1 邏輯卷的應(yīng)用背景 206
10.2.2 基本概念 206
10.2.3 管理過程 207
10.3 綜合實(shí)訓(xùn) 219
實(shí)訓(xùn)11 進(jìn)程管理 229
11.1 知識(shí)結(jié)構(gòu) 229
11.2 基礎(chǔ)實(shí)訓(xùn) 230
11.2.1 監(jiān)視進(jìn)程 230
11.2.2 進(jìn)程與信號(hào) 236
11.2.3 調(diào)整進(jìn)程優(yōu)先級(jí) 238
11.2.4 守護(hù)進(jìn)程 240
11.3 綜合實(shí)訓(xùn) 243
實(shí)訓(xùn)12 日常維護(hù) 253
12.1 知識(shí)結(jié)構(gòu) 253
Linux綜合實(shí)訓(xùn)案例教程
第2版
12.2 基礎(chǔ)實(shí)訓(xùn) 254
12.2.1 作業(yè)管理 254
12.2.2 軟件安裝和維護(hù) 264
12.3 綜合實(shí)訓(xùn) 273
實(shí)訓(xùn)13 網(wǎng)絡(luò)配置與安全管理 283
13.1 知識(shí)結(jié)構(gòu) 283
13.2 基礎(chǔ)實(shí)訓(xùn) 284
13.2.1 網(wǎng)絡(luò)參數(shù)設(shè)置 284
13.2.2 防火墻基本配置 290
13.2.3 SELinux簡(jiǎn)介 296
13.3 綜合實(shí)訓(xùn) 304
實(shí)訓(xùn)14 DNS服務(wù)器 316
14.1 知識(shí)結(jié)構(gòu) 316
14.2 基礎(chǔ)實(shí)訓(xùn) 317
14.2.1 域名系統(tǒng)中的名稱查詢 317
14.2.2 基本配置工作 324
14.3 綜合實(shí)訓(xùn) 334
實(shí)訓(xùn)15 WWW服務(wù)器 348
15.1 知識(shí)結(jié)構(gòu) 348
15.2 基礎(chǔ)實(shí)訓(xùn) 349
15.2.1 WWW簡(jiǎn)介 349
15.2.2 基本配置工作 351
15.3 綜合實(shí)訓(xùn) 361