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