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