+ All Categories
Home > Documents > A Design of Practice Learning System for Linux...

A Design of Practice Learning System for Linux...

Date post: 14-Oct-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
Linux 設計 A Design of Practice Learning System for Linux Administrator 103 6 6
Transcript
Page 1: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

朝陽科技大學

資訊工程系

碩士論文

Linux 實機操作測驗與評分系統設計

A Design of Practice Learning System forLinux Administrator

指導教授:王德譽 博士

研究生 :謝帛勳

中華民國 103 年 6 月 6 日

Page 2: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

朝陽科技大學資訊工程系Department of Computer Science and

Information EngineeringChaoyang University of Technology

碩士論文Thesis for the Degree of Master

Linux 實機操作測驗與評分系統設計

A Design of Practice Learning System for LinuxAdministrator

指導教授 :王德譽 博士 (De-Yu Wang, Ph.D.)

研 究 生 :謝帛勳 (Po-Hsun Hsieh)

中華民國 103 年 6 月 6 日June 6, 2014

Page 3: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

Linux 實機操作測驗與評分系統設計

學生:謝帛勳 指導教授: 王德譽 博士

朝陽科技大學資訊工程系

摘 要

由於資訊科技的普及,現今考試的方式除了筆試外,多數的測驗會藉由資訊系統的輔

助來進行。最常使用的方式是線上測驗,測驗題型含括選擇題、是非題、填充題,計

算題. . .等。雖可大量減化筆試作業,但對於某些需要實機操作的訓練,如 Linux 的

實機操作成果評估,線上測驗顯然無法達到很好的效果。 為更真實反應學生的實機

練習成果,本研究自行設計 Linux 系統,伺服器可提供用戶端的測驗環境安裝及測驗

結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境( Preboot eXecution

Environment, PXE ) 來安裝,可大量簡化測驗環境的安裝,安裝測驗題目隨機選取,

每位學生的題目不會完全相同,以避免學生死記題型或作弊。 本研究更於伺服器端以

程式化腳本( Shell Scripts )設計評分系統,可逐一登入學生的系統,檢查學生實機作答

情況並記錄結果,可以即時評分並檢查出學生作答錯誤原因,供學生改正參考用,因

此不但可以加強學生實機操作能力,亦可導正學生學習態度與方式。

關鍵詞:實機操作、程式化腳本、預啟動執行環境。

i

Page 4: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

A Design of Practice Learning System for Linux Administrator

Student: Po-Hsun Hsieh Advisor: De-Yu Wang, Ph.D.

Submitted to Department of Computer Science and InformationEngineering

College of InformaticsChaoyang University of Technology

ABSTRACT

Due to the popularity of information technology, in addition to the written exam the

way, most of the tests will be assisted information systems to carry out. The most

commonly is online test, tests kinds of questions encompasses multiple choice, true or

false question, fill in the blanks, the math question and so on. Can greatly simplify the

written work, but some require practice training, such as practice assessment of Linux,

online test apparently unable to achieve good results. To better reflect the results of the

students practice, this study is self-design Linux system, the server provides the client

test environment to install and test score results, the client can use the network boot

mode, which is Preboot eXecution Environment to installation, can greatly simplify the

installation of test environment, install the test question were randomly selected, every

student question will not be exactly the same, in order to avoid the kinds of questions

the students to memorize or cheating. This study is more on the server side to Shell

scripts designed scoring system, login one by one student systems, check the students

practice case to answer and record the results, real time scores and check out the student

answered the wrong reasons for students to correct reference, so not only can enhance

students ability of practice, also correcting students learning attitude and style.

Keywords: Practice learning system, Shell scripts, PXE.

ii

Page 5: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

誌誌誌 謝謝謝

帛勳在研究所學習的這段期間,首先最感謝我的指導教授王德譽博士,在研究領域方

面給予我細心的指導與教學,讓我學習到自大學以來從未接觸過的領域,而在未來的

方面指引我前進的方向。其次,要感謝廖珗洲主任與導師謝政勳教授及資訊工程系師

長,在課程上提供許多方面的教導,也傳授職場上的應對方式;再者,研究室和碩士

班的學長、學弟和同學們,謝謝你們的支持與鼓勵,讓我在學期間能心無旁騖的努力

學習。

研究總是條孤獨的路,但每當閱讀到研究學者們所造就出的作品,我就知道我並

不孤單,感謝所有在學術領域上的先進們。在朝陽科技大學資訊工程系,這樣一個優

秀的師資陣容和設備完善的研究環境下,無疑是培育學子的一片沃土,也因此使我能

夠順利的完成碩士學位。

對於本論文的完成,除了王德譽教授的指導之外,也非常感謝口試委員許振銘教

授與陳宏達教授給予的寶貴建議與指教,使得本論文能夠更加完善。最後,感謝我的

家人們,在求學期間給予了最大的支持與幫助,讓我能專心一致的研究,也感謝每位

曾經幫助過我的師長與親朋好友們,謝謝你們。我會帶著我所學的知識和實務能力,

繼續努力不懈的往前邁進以回饋社會。

iii

Page 6: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

目目目 錄錄錄

中文摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i

英文摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii

誌謝 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

目錄 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv

表目錄 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi

圖目錄 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

程式目錄 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii

一、前言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

二、系統環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1 環境建立 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Kickstart 檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3 KVM 虛擬機 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.4 Shell script 程式語言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.5 題目設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

三、系統實作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.1 PXE 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2 PXE 安裝 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3 shell 腳本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

四、結果展示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

五、結論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

iv

Page 7: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

參考文獻 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

自傳 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

v

Page 8: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

表表表 目目目 錄錄錄

2.1 系統安裝方法之優缺點 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 虛擬機 Kvm 和 Xen 比較 . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

vi

Page 9: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖圖圖 目目目 錄錄錄

2.1 HTML 執行結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1 分割磁區建立 swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2 開始安裝程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3 安裝套件中 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.1 IP 為 189 的用戶端實際操作更改 IP 與 Hostname . . . . . . . . . . . . . 26

4.2 IP 為 189 的用戶端實際操作第一題 . . . . . . . . . . . . . . . . . . . . . . 27

4.3 IP 為 189 的用戶端實際操作第二題 . . . . . . . . . . . . . . . . . . . . . . 28

4.4 IP 為 189 的用戶端實際操作第三題 . . . . . . . . . . . . . . . . . . . . . . 29

4.5 IP 為 189 的用戶端實際操作第四題 . . . . . . . . . . . . . . . . . . . . . . 30

4.6 IP 為 189 的用戶端實際操作第五題 . . . . . . . . . . . . . . . . . . . . . . 31

4.7 IP 為 128 的用戶端實際操作第一題 . . . . . . . . . . . . . . . . . . . . . . 32

4.8 IP 為 128 的用戶端實際操作第二題 . . . . . . . . . . . . . . . . . . . . . . 33

4.9 IP 為 128 的用戶端實際操作第三題 . . . . . . . . . . . . . . . . . . . . . . 34

4.10 IP 為 128 的用戶端實際操作第四題 . . . . . . . . . . . . . . . . . . . . . . 35

4.11 IP 為 128 的用戶端實際操作第五題 . . . . . . . . . . . . . . . . . . . . . . 36

4.12 結果的回傳 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.13 伺服器端評分結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

vii

Page 10: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

程程程 式式式 目目目 錄錄錄

2.1 基本 Kickstart 檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 編輯 Kickstart 檔並安裝虛擬機 . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3 Shell script 範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4 Shell script 範例執行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5 HTML 程式範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1 安裝伺服器服務 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2 DHCP 設定檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.3 TFTP 設定檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.4 PXE 開機設定檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.5 PXE 網路設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.6 啟動服務及開機啟動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.7 關閉以及啟動服務 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.8 隨機亂數題目之 shell 腳本 . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.9 將隨機亂數題目傳到用戶端之 shell 腳本 . . . . . . . . . . . . . . . . . . . 18

3.10 將隨機亂數出的題目新增至評分的 shell 腳本 . . . . . . . . . . . . . . . . 19

3.11 傳送評分用的 shell 腳本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.12 測驗虛擬機的題目-第一題之 shell 腳本 . . . . . . . . . . . . . . . . . . . . 20

3.13 測驗虛擬機的題目-第二題之 shell 腳本 . . . . . . . . . . . . . . . . . . . . 21

3.14 測驗虛擬機的題目-第三題之 shell 腳本 . . . . . . . . . . . . . . . . . . . . 21

3.15 測驗虛擬機的題目-第四題之 shell 腳本 . . . . . . . . . . . . . . . . . . . . 21

viii

Page 11: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

3.16 測驗虛擬機的題目-第五題之 shell 腳本 . . . . . . . . . . . . . . . . . . . . 22

3.17 測驗虛擬機的題目-第六題之 shell 腳本 . . . . . . . . . . . . . . . . . . . . 22

3.18 測驗虛擬機的題目-第七題之 shell 腳本 . . . . . . . . . . . . . . . . . . . . 22

3.19 測驗虛擬機的題目-第八題之 shell 腳本 . . . . . . . . . . . . . . . . . . . . 23

3.20 測驗虛擬機的題目-第九題之 shell 腳本 . . . . . . . . . . . . . . . . . . . . 23

3.21 測驗虛擬機的題目-第十題之 shell 腳本 . . . . . . . . . . . . . . . . . . . . 24

3.22 比對輸出結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.23 測驗虛擬機的題目-總和之 shell 腳本 . . . . . . . . . . . . . . . . . . . . . 24

4.1 模擬考之正確訊息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.2 模擬考之錯誤訊息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.3 模擬考之結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

ix

Page 12: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

第第第 一一一 章章章 前前前言言言

由於現今的資訊科技迅速發展,對於學校的教育受到了極大的影響,為了要使學生們

更能夠將資訊科技融合到教學裡,以便提升學生們對教學的興趣。現在的教學不再是

單單的白紙上的書寫和電腦的簡單操作,它已經漸漸的能夠利用電腦來配合練習和考

試等等眾多電腦教學的運用。

網際網路技術興起之後,數位學習( e-Learning ) [1,2]是學生們應用數位媒介學習

的過程,然而學生們與教學者不再受限於固定時間、地點限制的傳統式面對面授課教

學,反而可以隨時隨地透過網路進行互動教學,學生們可以依自己的學習環境及彈性

的調整自己的學習進度;而教學者也可視學生的情況調整其教學進度,充分發揮有如

一對一教學的實體效果。而現今較多樣化的數位媒介包括網際網路、企業網路、電

腦、衛星廣播、互動式電視及光碟等。它應用的範圍包括網路化學習、電腦化學習、

虛擬教室及數位合作。數位學習的類型大致上可分為三個類型,分別為同步學習、非

同步學習和混合式學習。

同步學習指教學者與學生們一起在指定的時間內線上學習,利用如虛擬教室、視

訊會議、網頁出版、串流媒體( Streaming Video )等互動工具。而優點為可以解決地理

上限制,缺點是在時間上沒有彈性;非同步學習較具彈性,學生們可依自己需求,在

任何時間、任何地點線上學習,但相對的互動性較差如討論區或 E-Mail 等;混合式學

習則透過多樣化的授課方式,兼備同步和非同步學習之特性,如講師授課、光碟片或

線上課程,藉由實體及線上課程的交互方式來進行強化及延伸學生的學習效果。

學習科技的應用領域,主要有兩種學派:電腦輔助教學[ CAI( Computer-assisted

Instruction )或 CBI( Computer-based Instruction )] [3]與智慧型引導系統( Intelligent

Tutoring System, ITS ) [4]。電腦輔助教學以開發循序式教材為主,需要使用編輯的系

統來製作課程教材,使學習順序固定且一致,必須在專屬的軟硬體系統下才能使用,

雖會造成課程難以拆分成小課題,但是在課程設計或使用上較為單純簡便,可以作為

市場的主流。智慧型引導系統則希望能運用在教學方法與認知學習上的專業知識,動

態的調整學生們特定的目標、偏好與需求,來調整學習的內容。

傳統的考試方式大多為筆試,而筆試指以文字表達、符號劃記或電腦作答等方

式,測驗學生們的知識能力及有關事項。就國家考試方式大體上以筆試為主 [5]。筆

1

Page 13: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

試雖然能增加學生們的基礎,但大多還是無法達到針對實務能力上的練習和測驗,而

筆試的題型不外乎為選擇題、是非題、填充題與問答題居多,但由於題庫的題目數固

定,會讓部份學生得以猜題,失去測驗的公平性 [6]。這樣只能增加學生們知識的基

礎,以至於無法讓學生們能有在實務技術上的能力提升。

以前的英語能力考試都是以讀與寫為主要,但要實際的運用配合聽、說、讀、寫

才能有效的達成。而談到英文聽力教學,首先得明白以理解為目的而聽( listening for

comprehension )和以習得為目的而聽( listening for acquisition )這兩者的差別。而理解

是聽力的基礎,如果沒有基本理解,即使努力練習,也不會有任何的學習進展。學生

們可以觀察別人表達方式的特殊之處來增進語言能力的基礎,換言之,學生已經有一

定的流暢度,但如果要更上層樓,仍舊必須持續觀察、聆聽與自己不同的表達方式並

且不斷地練習,這就是以習得為目的而聽,靠的是學生們觀察細節的能力,而其目的

是為增進字彙能力和重建文法架構 [7]。由此可知,為了能讓學生們更有效的運用,從

而增加了口試與聽力測驗。

電腦輔助測驗是將傳統的考試工具及考題轉移到電腦之中,讓學生藉由電腦螢幕

閱讀考題、利用鍵盤或滑鼠來移動游標並點選答案。答題的過程之中,電腦輔助測驗

在程式的設計之上,通常允許學生重複複查、修正答案 [8],而現今社會也為了響應環

保政策,因此開始減少紙張的消耗,而改用實機的方式來替代筆試做練習與測驗,雖

然在題數上不再受到限制,但還是只能增加知識的基礎。然而為了有效地提升學生們

實務能力,開始利用軟硬體的配備來幫助之方法,換言之,就是讓學生實機操作系統

如撰寫腳本或程式設計等方式,在練習的部分能幫助學生們使其實務能力可以加活用

及熟練,至於測驗的部分旨在針對學生們是否能有效的運用其實務能力。以 Linux 的

練習架設網站來說,如用選擇題的方式進行只能簡單的選擇該執行什麼指令,或者以

僥倖的態度幸運猜中答案,這樣皆無法達到實際的效果,而若讓學生們實機的操作系

統,可以使學生對架設網站有更加深刻的印象,也可以知道學生們的問題所在,並針

對他們的問題加以解決。

因此,本研究主要是讓用戶端以實際操作的方式來練習或測驗 Linux 系統相關

之題目,而伺服器端以 Linux 為系統,用戶端則是利用預啟動執行環境( Preboot

eXecution Environment, PXE ) [9]安裝成基礎的 Linux 系統環境,為了避免用戶端在

操作上的不當,而要求用戶端使用虛擬機來實際操作。題目是由伺服器端以簡易的

HTML 設計以及利用隨機出題的方式,從伺服器端的分別傳送給用戶端,而這些題目

2

Page 14: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

供人練習與測驗。檢測與評分的方式是以 Shell script [10]來撰寫,伺服器端是用來檢測

評分用戶端的所進行的題目,將用戶端所進行的題目一一的檢測是否正確或錯誤,最

後把評分結果顯示出來並回傳到伺服器做紀錄。

3

Page 15: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

第第第 二二二 章章章 系系系統統統環環環境境境

在 Unix-like OS [11,12] 中包含很多種不同的作業系統,如 Linux、BSD 及 Mac OSX

等,它們的微核心或設計理念都很類似 Unix ,有著權限控管、穩定度高及支援多人

多工的特點,故非常適合當作伺服器的作業系統。而 Linux 是一套自由、開放、而且

免費的作業系統,由於開放源碼( Open Source )的特點,可以任意的修改 Linux 及控

制整個系統基本服務的核心程式( Kernel ),從最底層的核心以至於上層的應用程式(

Application )都可以依照自己的需求來做修改。

Linux 有許多各式各樣的 Linux 發行版,這些發行版各有特色,但不管那種套件,

shell 指令與腳本撰寫皆無太大的不同 [13]。而 Linux 的 Shell script 文字介面指令功能

強大,它是利用 shell 的功能來撰寫的一個程式,這個程式是使用純文字檔,將一些

shell 的語法與指令寫在裡面,搭配正規表示法、管線命令與資料流重導向等功能,來

達到我們所想要的處理目的。只要撰寫腳本就可以處理很多字串,好讓工作自動化的

完成,而且遠端操作亦相當快速方便。

本系統是以 Linux 為系統,利用預啟動執行環境( Preboot eXecution Environment,

PXE )配合 Kickstart 檔 [14],依照設置的 kickstart 檔將用戶端安裝成基本的 Linux 系

統環境。而用戶端需使用 KVM 虛擬機( Kernel-based Virtual Machine ) [15]來實際操

作練習與測驗題目。題目方面,使用簡易的 HTML 設計 [16],將 Linux 系統相關的基

本操作製成題目,讓用戶端可以練習或測驗。而在檢測評分方面,以 shell script 來撰

寫,待用戶端完成題目後由伺服器端來做評分結果。 以下就分節介紹本系統的環境與

建立。

2.1 環環環境境境建建建立立立

現在的 Linux 發行版本 [17]種類相當的繁多,這些都可以從 Linux 檔案伺服器內 [18]自

由的下載使用並安裝。目前系統的安裝方法大致可分為光碟( CD-ROM )、預啟動執行

環境( Preboot eXecution Environment, PXE )、隨身碟( USB )三種方式,這三種方式

都需要從 Linux 檔案伺服器內下載 .iso 檔並以它們各自的方法來安裝,而 CD-ROM 也

可製作成 Live CD,它們各有優缺點如表2.1。本系統主要是以撰寫 shell script 的方式

4

Page 16: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

來進行自定題目的檢測評分,而每個 Linux 發行版都是使用 shell script 來撰寫,所以

並沒有要求是以何種發行版來當作作業系統。

以 CD-ROM 方式安裝,只需要從 Linux 檔案伺服器內下載並燒入成光碟就可安裝

使用;以 Live CD 方式的話,這方法不需要安裝就可以直接用光碟開機啟動;以 PXE

方式來安裝,需要先下載 .iso 檔並安裝來當作伺服器,再利用 PXE 方式安裝到多台

用戶端上, PXE 是讓電腦設備通過網卡獨立地使用數據設備(如硬碟)或者安裝作業

系統。它是一種透過網際網路來載入系統的服務,基本運行的原理是將伺服器端和用

戶端的電腦設備利用網路來相互的連結,以此達到資料與數據之間的傳遞,而絕大部

分, PXE 大多是來拿安裝作業系統,因可減少安裝環境所耗費的時間;而以 USB 方

式安裝,需要下載 .iso 檔並安裝到 USB ,這方法安裝後直接使用 USB 開機啟動。

本系統設計環境 CentOS 6 [19]為例,先從 Linux 檔案伺服器下載要安裝的發行版

映像檔 .iso 燒成光碟,以此光碟開機並依安裝指示完成安裝,並將它當作伺服器,再

利用 PXE 和 kickstart 檔案將其他電腦設備安裝設置為用戶端,而用戶端們的桌面會

有題目連結可以觀看題目,題目會由伺服器端隨機的選題後分別傳送給用戶端,用戶

端需要使用 KVM 虛擬機來實機操作及撰寫 shell script ,以避免操作不當使整個作業

系統損壞。最後伺服器端會自動處理題目的正確與錯誤,利用撰寫腳本來確認這些題

目是否正確還是錯誤並做紀錄。

表 2.1: 系統安裝方法之優缺點

安 裝方法

優點 缺點

CD-ROM

適合初學者學習和攜帶方便

燒入失敗造成光碟的浪費以及無法修改光碟

PXE 可以同時安裝多台用戶端 需要網路才能安裝USB 安裝後可直接使用 USB

開機啟動而不用燒入到光碟,修改系統時可以直接修改即可以及方便攜帶

容量較一般硬碟小和建議使用 USB 3.0讀寫速度較快

LiveCD

不需要安裝也可直接用光碟開機啟動,關掉後可回復到原來系統

無法修改光碟內的資料

5

Page 17: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

2.2 Kickstart 檔檔檔

從 Linux 檔案伺服器內下載並安裝 Linux 作業系統後,而在每次進行安裝時都會產生

一個 Kickstart 的檔案,它是被儲存在 /root/anaconda-ks.cfg 中,可以利用這個檔案

來重複進行安裝,或者是修改此檔來做其他系統,在這裡是利用程式 2.1來安裝設定用

戶端。

設定 kickstart 檔案大致上可分為三個部分,分別為安裝前的各個設定、要安裝的

各種套件和安裝完成後各個使用者想要的設定。由第 4 行開始安裝,而第 5 行是在設

定用什麼方式安裝如光碟( cdrom )、硬碟( harddrive )或者網路,從第 6 行至第 15 行

則是在設定系統的語系、鍵盤格式、網路設定、 root 密碼、防火牆設定、設定身份驗

證、 selinux 設定、所在區域的時區以及開機管理程式的安裝與設定等,最後安裝完成

後以 reboot 重新啟動。從第 21 行至第 28 行是設定分割磁區的部分,第 21 與第 22 行

是用來初始化尚未分割的分割表和清除所有硬碟的分割表,而第 23 行至 28 行在這裡

是假設的值,可由使用者自行修改及設定分割區 [20–22]。

第 30 行開始為要安裝的套件,第 31 行至第 38 行在這裡簡略的列出基本套件,

這裡可以由使用者自行的需求做增加或刪除的修改。第 41 行開始為安裝後要進行的動

作,在這裡主要目的是將題目的連結檔傳送到各個用戶端的桌面。

再利用 vim來修改 Kickstart檔案成 KVM虛擬機所需要的設定後,利用程式 2.2來

安裝虛擬機。使用 virt-install 來安裝虛擬機;而 accelerate 表示使用加速功能;

name 為虛擬機的名字; ram 為分配虛擬機記憶體的大小( MB ); disk path 表示虛擬

機安裝映像檔的路徑; size 為映像檔案的大小( GB ); extra 提供額外的核心命令的參

數; ks 指 Kickstart 檔案的位置; location 表示安裝的來源位置。

2.3 KVM 虛虛虛擬擬擬機機機

虛擬機器 [23]就是在一部實體主機上面虛擬架設出多個類似於實體主機的環境,而且每

部架設出來的環境都是獨立的,除了原本的主機之外,其他的主機都可以獨立開機、

關機和操作等。由於個人電腦的能力在近年來突飛猛進,它的速度與效能都相當的

好,所以利用一部實體主機來進行虛擬機器的架設,並適當分配不同的服務及任務,

6

Page 18: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�# Kickstart file automatically generated by anaconda.

2

#version=RHEL64 install

cdrom6 lang en_US.UTF-8

keyboard us8 network --device=eth0 --mtu=1500 --bootproto=dhcp --hostname=test

rootpw --iscrypted $6$1T62zwtQkEIC4Qqm$BNBv0rMTFe3ciT6nex6qY77RzNFaTl.61T2o8GGbPSS1ovhfGXUW0TGm1JTg1eR8v/P/eKOUvkJmxkQk5ckKd/

10 firewall --service=sshauthconfig --enableshadow --passalgo=sha512 --enablefingerprint

12 selinux --permissivetimezone --utc Asia/Taipei

14 bootloader --location=mbr --driveorder=vda --append="crashkernel=auto"reboot

16

# The following is the partition information you requested18 # Note that any partitions you deleted are not expressed

# here so unless you clear all partitions first, this is20 # not guaranteed to work

zerombr yes22 clearpart --all

part / --fstype=ext4 --size=5000 --ondisk=vda --asprimary24 part /home --fstype=ext4 --grow --ondisk=vda --asprimary

part /usr --fstype=ext4 --size=10000 --ondisk=vda26 part /var --fstype=ext4 --size=20000 --ondisk=vda

part /tmp --fstype=ext4 --size=1000 --ondisk=vda28 part swap --fstype=swap --size=1000

30 %packagesvim

32 gccmake

34 kernel-develvsftpd

36 lftphttpd

38 tftp%end

40

%post42 useradd test123

echo "123123" | passwd --stdin test12344 cp -f /var/ftp/pub/test_exercise.desktop /home/test123/Desktop

%end� �程式 2.1: 基本 Kickstart 檔

7

Page 19: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�$virt-install --accelerate --name kvm --ram 1024 --disk path=/var/lib/

libvirt/images/kvm.img,size=1.4,bus=virtio --extra "ks=ftp://deyu.wang/pub/kvm-ks.cfg" --location /var/ftp/pub/centos6/kvm/� �

程式 2.2: 編輯 Kickstart 檔並安裝虛擬機

將有助於節約能源、管理和服務追蹤的簡化。

KVM 虛擬機是開放原始碼軟體,也是 Linux Kernel 的一個虛擬化基礎設施,它還

能在不改變 linux 或 windows 鏡像的情況下同時運行多個虛擬機,並為每個虛擬機配

置個性化硬體環境(如網卡、硬碟等)。使用虛擬機的好處有眾多個,可以做多用途的平

台建立多種系統的環境,還可以避免花時間的重建作業系統,但要安裝 KVM 虛擬機

需要先確認 CPU 是否有支援。

現今有許多的虛擬設備,其中以 Linux 系統來說, KVM 和 Xen 都是開放原始碼

和免費的虛擬化技術。雖然虛擬技術 Xen 比 Kvm 沒落許多,但還是各有優缺點,如

表2.2是在比較 KVM 和 XEN 之間的優缺點。這兩個虛擬機都深深依賴著 Linux ,但

是 Xen 在早期是不受 Linux Kernel 的支援,要實現 hypervisor (或稱 Virtual Machine

Monitor, VMM ) [24]功能,而 Information Technology( IT )管理員需要把開放原始碼

Xen 作為 Kernel 的補丁來安裝,但是安裝後不能對 Kernel 做升級,否則會破壞 Xen

的功能。

而 Xen 這個成熟的平台在可用資源、可管理性、性能等方面的優勢,在快速發展

的 KVM面前也略顯暗淡。隨著時間的推移,虛擬化技術的後來者 KVM將會超越 Xen

,成為擁有開放原始碼上主要的虛擬化市場 [25]。

表 2.2: 虛擬機 Kvm 和 Xen 比較

虛 擬機

優點 缺點

Kvm 可以安裝多個跨平台的虛擬機,並同時運作。結構小、代碼量少、高安全性、高性能、高擴展

資源損失較 多,如要執行Windows系統,需要全虛擬化技術

Xen 效能損耗少、遷徒和備份方便和可半虛擬化和全虛擬化

只能安裝統一內核同一版本的系統,而更新版本時,需要重新編譯

8

Page 20: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�#!/bin/bash

2 echo Hello world!!� �程式 2.3: Shell script 範例

2.4 Shell script 程程程式式式語語語言言言

Shell script [26,27]是一個類似於早期 DOS 年代中的批次檔( .bat )之直譯式的語言,簡

單的說, Shell Script 就是將一堆 shell 中的指令放在一個文字檔中來執行, Shell 可

讓使用者下命令執行想要的工作,所以它必須具備解析命令( Parsing command )的能

力,這也就是被稱為命令直譯器( Command Interpreter )的原因。而主要用途就是用來

協助使用者在 UNIX/Linux 環境上,能更自動化的方式來執行想要執行的指令。而在

執行腳本時 shell 會一行行的執行,若前面的命令未完成,後面的指令就不會執行。

在 Linux 系統中有許多不同的 shell 可以使用,而每個 Shell 的特性及用法都有些

許的不同,但大致上可將概括為兩類,分別為 bourne shell ( sh )系列和 c shell ( csh )系

列,而其他的 Shell 都是從這兩類衍生出來或與其相容的。在 bourne shell 系列的 Shell

有 sh 、 bash ( Bourne Again Shell )、 zsh ( Z Shell ); c shell 系列的 Shell 有 csh 、

tcsh ,其他知名的 Shell 則有 Korn Shell ( ksh ), ksh 結合了 bourne shell 和 c shell 的

長處並加入了獨有的功能, bash 也是身兼兩派之長並且功能更強。

以 vim 撰寫腳本 vim hello.sh 如程式 2.3 ,其中除第 1 行 #!/bin/bash 宣告此

腳本使用命令/bin/bash 執行外,其餘的 # 都為註解並不會執行;而第 2 行的 echo

為列出一個字串。執行腳本的方法大致上有三種如程式 2.4,其中第 1 行和第 2 行

指令可以直接的執行,而若以腳本內部宣告命令直接執行的話,需要第 6 行的指令

來增加該腳本可執行的權限,這樣才可以執行第 3 行的指令,不然會出現如第 4 行

Permission denied。需要特別注意的是 shell執行一個命令時,會到環境變數 $PATH指

定的目錄搜尋是否有此可執行檔,若目前工作目錄不在搜尋範圍內,直接下指令也無

法執行。因此,必須如第 5 行直接以絕對路徑指出要執行的腳本。

9

Page 21: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�$bash hello.sh

2 $sh hello.sh$./hello.sh

4 bash: ./hello.sh: Permission denied$sh /home/dywang/hello.sh

6 $chmod +x hello.sh� �程式 2.4: Shell script 範例執行

�<html>

2 <head><title>test</title></head><body>

4 <h1>測試測試</h1><hr size="1" align="left" noshade width="100%" color="000000">

6 <ul><li><font color="ff0000"><b>Hello</b></font> word !!<p>

8 </ul></body>

10 </html>� �程式 2.5: HTML 程式範例

2.5 題題題目目目設設設計計計

本系統題目設計的目是在提升學生們對 Linux 系統的相關了解以及 Shell 腳本的基礎

練習,從增加使用者、目錄的權限、尋找檔案、時間的設定、打包和壓縮、基本的架

站和對硬碟的了解,到基礎的 Shell 腳本練習都旨在測驗學生們是否對 Linux 系統有

基本的認識及了解。這些題目可以從用戶端觀看,而它被設計成以隨機出題的方式

進行,讓每個用戶端所看到的題目都不盡相同,其主要的設計是以超文件標示語言(

HyperText Markup Language, HTML ) [28]的方式來撰寫,以簡易的方式把題目完整的

呈現出來。而 HTML 是為網頁建立和其它可在網頁瀏覽器中也看到的訊息設計的一種

標示語言,它也被用來結構化訊息如標題、段落和列表等,也可以用在一定程度上描

述文件的外觀和語意。

HTML 有一個固定格式,瀏覽器才可以辨識及分析,而基本格式如程式 2.5,而結

果展示如圖 2.1所示。其中第 4 行為標題文字;第 5 行旨在加一條水平線來區分標題文

字和顯示的內容,而 size 為控制線的寬度、 align 為讓線靠左( left )/靠右( right )/中

間( center )、 width 為線的長度;第 6 行是讓顯示內容的開頭變成清單的方式;第 7

行為主要的顯示內容,還可以改變字的顏色及大小或者粗體還是細體。

10

Page 22: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 2.1: HTML 執行結果

11

Page 23: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

第第第 三三三 章章章 系系系統統統實實實作作作

本章節主要是在介紹整個系統的實作,以 PXE 、 KVM 虛擬機、 Shell 腳本的每個設

定、使用以及操作與撰寫的方式將整個系統完整的一一呈現。

3.1 PXE 設設設定定定

要使用 PXE 伺服器前必須要先具備三個服務 DHCP 、 TFTP 、 xinetd,如沒有其中

一個服務則需要使用 yum 或 rpm 來安裝如程式 3.1,之後再一一地做編輯。 DHCP

設定檔 /etc/dhcp/dhcpd.conf 主要編輯網路 IP 之相關設定如程式 3.2, TFTP 設定檔

/etc/xinetd.d/tftp 主要修改 disable 為 no 如程式 3.3,還需要建立 PXE 開機設定檔

如程式 3.4,在這假設網路 IP 如程式 3.5,這必須要與 DHCP 設定檔和 PXE 開機設定

檔一致,最後再啟動服務和設定開機啟動如程式 3.6,就可以使用 PXE 將其他電腦安

裝成用戶端練習與測驗的系統。

DHCP設定檔的第 7行是用來指定動態 DNS ( Dynamic DNS, ddns )的更新類型,

而設定成 none 是指不需要這個功能,在設定檔中有些參數需使用 option 去做宣告,

所以第 8 行宣告一個空間為 PXE ,而從第 12 行至 20 行產生 Class PXE 來提供 pxe

client 適當的訊息,設定 dhcp client 的識別碼( identifier )為 PXEClient ,還可以允許

自定義的選項和指定 boot loader 與 tftp server 的名稱。

第 10 行使用 subnet 及 netmask 來宣告子網路提供服務,從第 24 行開始在設定參

數有 IP 、 Gateway 、 Netmask 、網域名稱、 DNS server 還有租約期限的設定,而如

租約期限到期時可以繼續租,但為了防止過量可設定最大租約期限。第 31 行至 41 行

在指定允許分配不同的 IP 範圍及設定與不允許的範圍。最後需要有 kickstart 檔案的

位置,才能開始將其他電腦設備安裝成用戶端們練習與測驗的 Linux 系統。

�$yum install dhcpd

2 $yum install vsftpd$yum install tftp-server� �

程式 3.1: 安裝伺服器服務

12

Page 24: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�1 #

# DHCP Server Configuration file.3 # see /usr/share/doc/dhcp*/dhcpd.conf.sample

# see ’man 5 dhcpd.conf’5 #

7 ddns-update-style none; #不更新 DDNS 的設定option space PXE; #宣告 PXE

9

subnet 192.168.111.0 netmask 255.255.255.0 { #設定子網域 網段(subnet)11

class "PXE" {13 match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"

;option vendor-encapsulated-options 01:04:00:00:00:00:ff;

15 option boot-size 0x1;filename "pxelinux.0";

17 option tftp-server-name "deyu.wang";option vendor-class-identifier "PXEClient";

19 vendor-option-space PXE;}

21

23 # The following lines are standard all of the time.

option routers 192.168.111.254; #路由器25 option subnet-mask 255.255.255.0; #Netmask

option domain-name "deyu.wang"; #網域名稱27 option domain-name-servers 168.95.1.1,139.175.10.20; #DNS

server

default-lease-time 21600; #定義整體租約期限,為六小時以秒計算29 max-lease-time 43200; #定義整體租約的最大期限,為十二小時

31 # Assign IPs 101-200 to PXE clientspool {

33 allow members of "PXE"; #允許分配default-lease-time 120; #租約期限為兩分鐘

35 max-lease-time 180; #租約的最大期限為三分鐘range 192.168.111.101 192.168.111.200; #分配範圍IP

37 }pool {

39 deny members of "PXE"; #不允許range 192.168.111.1 192.168.111.70;

41 }

43 # The following lines are examples of kickstart directives.# filename "/kickstart/workstation.cfg";

45 next-server 192.168.111.254;filename "ftp://192.168.111.254/pub/centos6/add/crt-ks.cfg";

47 # filename "ftp://192.168.111.254/pub/centos6/add/dyw-ks.cfg";}� �

程式 3.2: DHCP 設定檔

13

Page 25: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�# default: off

2 # description: The tftp server serves files using the trivial filetransfer \

# protocol. The tftp protocol is often used to boot diskless \4 # workstations, download configuration files to network-aware printers,

\# and to start the installation process for some operating systems.

6 service tftp{

8 disable = nosocket_type = dgram

10 protocol = udpwait = yes

12 user = rootserver = /usr/sbin/in.tftpd

14 server_args = -s /var/ftp/pub/centos6/isolinux/per_source = 11

16 cps = 100 2flags = IPv4

18 }� �程式 3.3: TFTP 設定檔

�label crt

2 menu label Install ^Certification USB systemmenu default

4 kernel vmlinuzappend vga=normal load_ramdisk=1 initrd=initrd.img network \

6 ks=ftp://192.168.111.254/pub/centos6/add/crt-ks.cfg \repo=ftp://192.168.111.254/pub/centos6/ noipv6� �

程式 3.4: PXE 開機設定檔

�1 IPADDR=192.168.111.254

NETMASK=255.255.255.03 GATEWAY=192.168.111.1

DNS=192.168.111.70� �程式 3.5: PXE 網路設定

�$/etc/init.d/dhcpd restart

2 $/etc/init.d/xinetd restart$chkconfig dhcpd on

4 $chkconfig xinetd on$chkconfig tftp on� �

程式 3.6: 啟動服務及開機啟動

14

Page 26: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

3.2 PXE 安安安裝裝裝

在 PXE 安裝前需要先啟動各個服務和關閉防火牆與 selinux 服務如程式 3.7,才能開始

安裝成用戶端所要的系統環境。首先每台要當用戶端的電腦必須先要從 BIOS 來選擇

網路開機的選項,因安裝前需要利用區域網路搜尋後並連到伺服器端,而伺服器端就

會依照 PXE 設定檔的需求來安裝系統,然後就會開始自動的安裝系統環境。�1 $/etc/init.d/iptables stop

$/etc/init.d/dnsmasq stop

3 $/etc/init.d/libvirtd stop

$setenforce 0

5 $/etc/init.d/dhcpd restart

$/etc/init.d/xinetd restart� �程式 3.7: 關閉以及啟動服務

首先它會先尋找伺服器端的 Kickstart 檔後,就開始依照 Kickstart 檔的內容來自

動的設定語系、鍵盤、滑鼠、網路、密碼、地區等設定,再建立分割磁區並格式化如

圖 3.1,接著就會開始安裝程序如圖 3.2,之後會依照 Kickstart 檔的設定來選擇安裝使

用者所需要的套件如圖 3.3,結束後便會自動的重新啟動,安裝完後會在依照 Kickstart

檔的後續設定,將題目的連結檔傳送到各個用戶端的桌面,好讓使用者們可以方便的

練習與測驗。

3.3 shell 腳腳腳本本本

首先腳本主要分為兩個部分,第一個是先從題庫中隨機出題後,再將題目傳到用戶端

之腳本;第二個是將檢測評分的腳本傳到用戶端後開始評分之腳本。隨機亂數出題的

腳本如程式 3.8,它會先從題庫中的題目隨機產生五題出來後,再將這五個題目傳送至

用戶端如程式 3.9,用戶端就可以直接點擊桌面的題目就可觀看。

再來將隨機選出的五個題目數新增至評分的 shell 腳本中如程式 3.10,為了讓評分

用的腳本可以知道用戶端的題目,之後就把評分用的腳本傳送到用戶端。而評分題目

的腳本是在評分用戶端上的虛擬機所練習或測驗的腳本。

在傳送評分用的腳本時如程式 3.11的第 4 行由 read 來作互動的指令讓 root 的密

碼做手動輸入,而要評分用戶端的 IP 也是要手動輸入,需要加在執行評分腳本時的後

15

Page 27: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 3.1: 分割磁區建立 swap

圖 3.2: 開始安裝程序

16

Page 28: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 3.3: 安裝套件中

面如 sh 評分的腳本名稱.sh 用戶端們的IP ,第 5 至第 6 行是將評分的腳本由伺服器端

傳送到用戶端的虛擬機,第 7 行則是執行評分的腳本,而第 8 行至第 9 行則是將結果

回傳回來。

評分的腳本每一題都是用一個 function 來區分如第一題程式 3.12,第 2 行至第 10

行是將要做評分的地方暫存到各個變數中,再執行第 11 行它會執行 sh1 這個 function

, sh1 它是用來比對暫存到的變數是否跟題目所規定是一致的,兩者相比較一樣的話

會輸出 echo "答案: 正確" 並在結果的正確題數加 1 ;反之,會輸出 echo "答案: 錯誤"

並在結果的錯誤題數加 1 。

而評分題目第三題如程式 3.14,第 2 行和第 3 行如果執行正確的話,會把輸出

正確的訊息丟棄,而錯誤的訊息會累加到 /tmp/num ,這樣方便之後做檢查;第 4 行

echo $? > /tmp/a 是指前一個指令正確輸出的話就輸出 0 ;錯誤的話就會輸出非 0 的

數並暫存到 /tmp/a 之後來比對變數,如果比對數值相同的話會在正確題數加 1 ,反

之,不一樣的話會在錯誤的題數上加 1 如程式 3.22。在最後會總和所檢測的題數如程

式 3.23,第 7 行會執行 sum 這個 function 將結果顯示在螢幕上並輸出累加到 /tmp/num

17

Page 29: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�function random1(){

2 touch aaawhile [ ‘sort aaa | uniq | wc -l‘ != 5 ]

4 doecho ‘expr $RANDOM % 10 + 1‘ >> aaa

6 donesort -nr aaa | uniq > random

8 rm -f aaa}� �

程式 3.8: 隨機亂數題目之 shell 腳本

�1 for ip in $@

do

3 read -p "輸入密碼: " -s passwdecho "";

5 echo "程式執行中,請稍候~";random1

7 a=‘sed -n ’1,5p’ random‘

9 for i in $ado

11 sed -i ’7a <a href="ex’"$i"’.html">第一題</a><p>’ /var/ftp/pub/html/home_random.html

sshpass -p $passwd ssh -q -o StrictHostKeyChecking=no [email protected].$ip "mkdir /var/ftp/pub/exercise 2>/dev/null"

13 sshpass -p $passwd scp -q -o StrictHostKeyChecking=no /var/ftp/pub/html/home_random.html [email protected].$ip:/var/ftp/pub/exercise

sshpass -p $passwd scp -q -o StrictHostKeyChecking=no /var/ftp/pub/html/ex"$i".html [email protected].$ip:/var/ftp/pub/exercise

15 echo $i >> diff_exercise_$ipdone

17 sed -i ’8,12d’ /var/ftp/pub/html/home_random.htmlsshpass -p $passwd ssh -q -o StrictHostKeyChecking=no [email protected].$ip "

sed -i ’8s/一/一/g’ /var/ftp/pub/exercise/home_random.html"19 sshpass -p $passwd ssh -q -o StrictHostKeyChecking=no [email protected].$ip "

sed -i ’9s/一/二/g’ /var/ftp/pub/exercise/home_random.html"sshpass -p $passwd ssh -q -o StrictHostKeyChecking=no [email protected].$ip "

sed -i ’10s/一/三/g’ /var/ftp/pub/exercise/home_random.html"21 sshpass -p $passwd ssh -q -o StrictHostKeyChecking=no [email protected].$ip "

sed -i ’11s/一/四/g’ /var/ftp/pub/exercise/home_random.html"sshpass -p $passwd ssh -q -o StrictHostKeyChecking=no [email protected].$ip "

sed -i ’12s/一/五/g’ /var/ftp/pub/exercise/home_random.html"23 rm -rf random

25 echo "執行完畢,換下一位。";echo " ";

27 done� �程式 3.9: 將隨機亂數題目傳到用戶端之 shell 腳本

18

Page 30: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�1 a=‘cat diff_exercise_$ip‘

for ex in $a3 do

if [ $ex == 1 ]; then

5 sed -i ’166a echo "第題:"; ex1’ scripts_html.shelif [ $ex == 2 ]; then

7 sed -i ’166a echo "第題:"; ex2’ scripts_html.shelif [ $ex == 3 ]; then

9 sed -i ’166a echo "第題:"; ex3; test1’ scripts_html.shelif [ $ex == 4 ]; then

11 sed -i ’166a echo "第題:"; ex4’ scripts_html.shelif [ $ex == 5 ]; then

13 sed -i ’166a echo "第題:"; ex5’ scripts_html.shelif [ $ex == 6 ]; then

15 sed -i ’166a echo "第題:"; ex6; test1’ scripts_html.shelif [ $ex == 7 ]; then

17 sed -i ’166a echo "第題:"; ex7; test1’ scripts_html.shelif [ $ex == 8 ]; then

19 sed -i ’166a echo "第題:"; ex8’ scripts_html.shelif [ $ex == 9 ]; then

21 sed -i ’166a echo "第題:"; ex9’ scripts_html.shelif [ $ex == 10 ]; then

23 sed -i ’166a echo "第題:"; ex10’ scripts_html.shfi

25 done

27 sed -i ’167 s/第題/第一題/g’ scripts_html.sh

sed -i ’168 s/第題/第二題/g’ scripts_html.sh

29 sed -i ’169 s/第題/第三題/g’ scripts_html.sh

sed -i ’170 s/第題/第四題/g’ scripts_html.sh

31 sed -i ’171 s/第題/第五題/g’ scripts_html.sh� �程式 3.10: 將隨機亂數出的題目新增至評分的 shell 腳本

19

Page 31: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�1 echo IP: $@

for ip in $@3 do

read -p "輸入密碼:" -s passwd5 sshpass -p $passwd scp -q -o StrictHostKeyChecking=no /home/dywang/Desktop

/scripts/scripts_html.sh [email protected].$ip:/rootsshpass -p $passwd ssh -q -o StrictHostKeyChecking=no [email protected].$ip "

sshpass -p 123123 scp -o StrictHostKeyChecking=no /root/[email protected]:/root "

7 sshpass -p $passwd ssh -q -o StrictHostKeyChecking=no [email protected].$ip "sshpass -p 123123 ssh -o StrictHostKeyChecking=no [email protected] scripts_html.sh "

sshpass -p $passwd ssh -q -o StrictHostKeyChecking=no [email protected].$ip "sshpass -p 123123 scp -o StrictHostKeyChecking=no [email protected]:/tmp/num /root"

9 sshpass -p $passwd scp -q -o StrictHostKeyChecking=no [email protected].$ip:/root/num /root/num$ip

sshpass -p $passwd ssh -q -o StrictHostKeyChecking=no [email protected].$ip "sshpass -p 123123 ssh -o StrictHostKeyChecking=no [email protected]’rm -f {scripts_html.sh,/tmp/num}’"

11 sshpass -p $passwd ssh -q -o StrictHostKeyChecking=no [email protected].$ip "rm -f {/root/scripts_html.sh,/root/num}"� �

程式 3.11: 傳送評分用的 shell 腳本

�1 function ex1(){

a=$(cat /etc/group | grep cyutcsiem415 | awk ’BEGIN {FS=":"} {print $3}’)3 b=$(cat /etc/passwd | grep mianmian | awk ’BEGIN {FS=":"} {print $5}’)

c=$(cat /etc/passwd | grep node | awk ’BEGIN {FS=":"} {print $4}’)5 d=$(cat /etc/passwd | grep tob | awk ’BEGIN {FS=":"} {print $7}’)

e=$(cat /etc/passwd | grep yoyoming | awk ’BEGIN {FS=":"} {print $3}’)7 for user in mianmian node tob yoyoming

do9 f=$(cat /etc/shadow | grep $user | awk ’BEGIN {FS=":"} {print $8}’)

done11 sh1

}13 function sh1(){

if [[ $a -ne 52 ]] || [ "$b" != "csiem415" ] || [ "$c" -ne 52 ] || [ "$d"!= "/sbin/nologin" ] || [[ $e -ne 10027 ]] || [[ $f -ne 16436 ]]; then

15 echo "答案: 錯誤"j=$(($j+1))

17 else

echo "答案: 正確"19 i=$(($i+1))

fi21 rm -f ?

}� �程式 3.12: 測驗虛擬機的題目-第一題之 shell 腳本

20

Page 32: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�function ex2(){

2 a=$(ls -ld /csiem415/ | awk ’BEGIN {FS=" "} {print $4}’)b=$(ls -ld /csiem415/ | awk ’BEGIN {FS=" "} {print $1}’)

4 cd /c=$(getfacl csiem415/aaa | grep tob | awk ’BEGIN {FS=":"} {print $3}’)

6 d=$(getfacl csiem415/aaa | grep yoyoming | awk ’BEGIN {FS=":"} {print $3}’)

cd8 e=$(ls -ld /csiem415/bbb | awk ’BEGIN {FS=" "} {print $4}’)

sh210 }

function sh2(){12 if [ "$a" != "cyutcsiem415" ] || [ "$b" != "drwxr-x---." ] || [ "$c" != "r

-x" ] || [ "$d" != "-w-" ] || [ "$e" != "cyutcsiem415" ]; then

echo "答案: 錯誤"14 j=$(($j+1))

else

16 echo "答案: 正確"i=$(($i+1))

18 firm -f ?

20 }� �程式 3.13: 測驗虛擬機的題目-第二題之 shell 腳本

�function ex3(){

2 ls -la /csiem415/ccc/ 1>/dev/null 2>>/tmp/numcat /csiem415/ddd 1>/dev/null 2>>/tmp/num

4 echo $? > /tmp/a}� �

程式 3.14: 測驗虛擬機的題目-第三題之 shell 腳本

�1 function ex4(){

a=$(crontab -l -u mianmian)3 sh4

}5 function sh4(){

if [ "$a" != "" ] || [ "$a" != "0 0 * * * /usr/sbin/ntpdate deyu.wang" ]&& [ "$a" == "" ]; then

7 echo "答案: 錯誤"j=$(($j+1))

9 else

echo "答案: 正確"11 i=$(($i+1))

fi13 rm -f ?

}� �程式 3.15: 測驗虛擬機的題目-第四題之 shell 腳本

21

Page 33: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�function ex5(){

2 a=$(tar -tvf csiem415.tar | awk ’BEGIN {FS=" "} {print $6}’)sh5

4 }function sh5(){

6 if [ "$a" != "" ] || [ "$a" != "root/ root/anaconda-ks.cfg root/rhcekvm.shroot/.cshrc root/install.log root/.tcshrc root/install.log.syslog root/.bash_profile root/.bash_history root/.viminfo root/.bash_logout root/.bashrc kvm.html

" ] && [ "$a" == "" ]; then

8 echo "答案: 錯誤"j=$(($j+1))

10 else

echo "答案: 正確"12 i=$(($i+1))

fi14 rm -f ?

}� �程式 3.16: 測驗虛擬機的題目-第五題之 shell 腳本

�1 function ex6(){

man httpd > /root/httpd3 diff /root/httpd /var/www/html/httpd 1>/dev/null 2>>/tmp/num

echo $? > /tmp/a5 }� �

程式 3.17: 測驗虛擬機的題目-第六題之 shell 腳本

�1 function ex7(){

man vsftpd > /root/vsftpd3 diff /root/vsftpd /var/ftp/pub/vsftpd 1>/dev/null 2>>/tmp/num

echo $? > /tmp/a5 }� �

程式 3.18: 測驗虛擬機的題目-第七題之 shell 腳本

22

Page 34: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�1 function ex8(){

a=$(df | grep vda5 | awk ’{print $2}’)3 sh8

}5 function sh8(){

if [ "$a" != "" ] || [[ $a -lt 5000 ]] || [[ $a -gt 15000 ]] && [ "$a" =="" ]; then

7 echo "答案: 錯誤"j=$(($j+1))

9 else

echo "答案: 正確"11 i=$(($i+1))

fi13 rm -f ?

}� �程式 3.19: 測驗虛擬機的題目-第八題之 shell 腳本

�function ex9(){

2 a=$(sh test_for.sh)sh9

4 }function sh9(){

6 if [ "$a" != "" ] || [[ $a -ne 304152 ]] && [ "$a" == "" ]; then

echo "答案: 錯誤"8 j=$(($j+1))

else

10 echo "答案: 正確"i=$(($i+1))

12 firm -f ?

14 }� �程式 3.20: 測驗虛擬機的題目-第九題之 shell 腳本

23

Page 35: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�function ex10(){

2 a=$(sh test_case.sh 1)b=$(sh test_case.sh 2)

4 c=$(sh test_case.sh 3)d=$(sh test_case.sh *)

6 sh10}

8 function sh10(){

if [ "$a" == "您好" ] || [ "$b" == "早安" ] || [ "$c" == "謝謝" ] || [ "$d" == "請輸入 1~3" ] ; then

10 echo "答案: 正確"i=$(($i+1))

12 else

echo "答案: 錯誤"14 j=$(($j+1))

fi16 rm -f ?

}� �程式 3.21: 測驗虛擬機的題目-第十題之 shell 腳本

�1 function test(){

cat /tmp/a3 }

function test1(){5 if [ ‘test‘ == "0" ]; then

echo "答案: 正確"7 i=$(($i+1))

else

9 echo "答案: 錯誤"j=$(($j+1))

11 fi}� �

程式 3.22: 比對輸出結果

�function sum(){

2

echo ""4 echo ""

echo "正確:"$i ";錯誤: "$j6 echo ""

8 }

10 sum | tee -a /tmp/numrm -f {/tmp/a,/root/vsftpd,/root/httpd,/root/scripts_html.sh}� �

程式 3.23: 測驗虛擬機的題目-總和之 shell 腳本

24

Page 36: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

第第第 四四四 章章章 結結結果果果展展展示示示

系統由伺服器端安裝完後,用戶端們就可以開始使用虛擬機來練習或測驗,在練習方

面伺服器端會從題庫中隨機的選出五題後再傳給用戶端們,而需要先從伺服器端輸入

用戶端們的 IP 如執行 sh random.sh IP1 IP2 ,再輸入他們的密碼才能將題目傳送到他

們的電腦,在這裡給用戶端練習用的題目總共有 10 題,測驗用的題目共有 19 題。 IP

為 189 和 128 的用戶端開始練習題目,依題目要求先更改虛擬機的 IP 和 Hostname 如

圖 4.1,接著便開始作答。

[root@deyu scripts]# sh random.sh 189 128

輸入密碼:

程式執行中,請稍候~

執行完畢,換下一位。

輸入密碼:

程式執行中,請稍候~

執行完畢,換下一位。

[root@deyu scripts]#

IP 為 189 的第一題是建立使用者,題目要求要建立群組與使用者並使用參數來設

定如圖 4.2;第二題是設定權限,將檔案目錄設定權限,讓使用者可以讀取或寫入如

圖 4.3;第三題是對硬碟的了解,依題目要求新增一個磁區,將它格式化後再掛載到目

錄,最後在讓它開機時可以自動掛載如圖 4.4;第四題是撰寫一個腳本,利用 for 迴圈

來計算如圖 4.5;第五題是撰寫一個腳本,依題目要求的方式利用 case 判斷式來撰寫如

圖 4.6。

IP 為 128 的第一題是是建立使用者,題目要求要建立群組與使用者並使用參數來

設定如圖 4.7;第二題是設定權限,將檔案目錄設定權限,讓使用者可以讀取或寫入如

圖 4.8;第三題是打包與壓縮,將目錄打包後再加入要求的檔案到壓縮檔裡如圖 4.9;

第四題是對 ftp 的了解,依題目要求將 ftp 安裝起來,用 man 觀看它相關的指令以及

參數後再做導向如圖 4.10;第五題是撰寫一個腳本,利用 for 迴圈來計算如圖 4.11。

當用戶端們練習完後開始做評分,而要先由伺服器端輸入欲評分用戶端們的 IP 和

25

Page 37: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.1: IP 為 189 的用戶端實際操作更改 IP 與 Hostname

26

Page 38: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.2: IP 為 189 的用戶端實際操作第一題

27

Page 39: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.3: IP 為 189 的用戶端實際操作第二題

28

Page 40: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.4: IP 為 189 的用戶端實際操作第三題

29

Page 41: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.5: IP 為 189 的用戶端實際操作第四題

30

Page 42: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.6: IP 為 189 的用戶端實際操作第五題

31

Page 43: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.7: IP 為 128 的用戶端實際操作第一題

32

Page 44: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.8: IP 為 128 的用戶端實際操作第二題

33

Page 45: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.9: IP 為 128 的用戶端實際操作第三題

34

Page 46: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.10: IP 為 128 的用戶端實際操作第四題

35

Page 47: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.11: IP 為 128 的用戶端實際操作第五題

36

Page 48: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

密碼後,腳本就會開始自動的評分用戶端們所做題目是否正確,當用戶端回答正確的

話,就會在顯示結果的正確題目數加上 1 ,但回答錯誤的話會在錯誤的題目數加上 1

,而在評分的過程中如果用戶端的回答有錯誤的話,就會將有錯誤的地方顯示在螢幕

上可以讓用戶端觀看,最後腳本會將結果統計出來並顯示在螢幕上,然後再把最後結

果回傳至伺服器端做紀錄如圖 4.12。

圖 4.12: 結果的回傳

在這次的練習題目中, IP 為 189 的用戶端所作答的題目完全正確,所以正確題數

有五題,而 IP 為 128 的用戶端第二題沒有建立資料夾,而導致該使用者無法正確的設

立權限;第四題因沒有將題目該要求的檔案導向到 vsftpd 所導致的錯誤;第五題因用

戶端沒有撰寫腳本而導致找不到該檔案如圖 4.13。

而在測驗方面,本研究已實際使用在課堂的測驗上,首先需要學生先在終端機上

執行 echo ‘Student ID name‘ > sid ,這可讓伺服器在評分時註明之用,然後伺服器

端會把用戶端的虛擬機做還原的動作,學生們便可開始測驗,而當學生們完成測驗

後,伺服器端會先把用戶端的虛擬機重新啟動後便會開始自動評分。

當學生作答正確的話,就會在該題目顯示 0 來表示正確;反之,當學生作答錯誤

37

Page 49: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

圖 4.13: 伺服器端評分結果

的話,則會顯示非 0 的數字來表示錯誤,而評分完後會將每位學生作答的結果顯示在

最後。 IP 為 125 和 137 的學生都回答正確,所以這兩名學生分別都答對 19 題,總分

為滿分 100 分如程式 4.1。

而 IP為 165的學生在回答網頁架設 web的題目時,並沒有將檔名依題目規定而改

變,所以會在網頁架設 web 顯示非 0 的數字表示該題錯誤;他在權限的設定 acl 時,

沒有將檔案設置規定的權限;還有在外部認證服務 LDAP 、配置 NTP 、設定用戶帳

號 UID 、尋找檔案與字串、邏輯卷冊 LVM 和自動掛載檔案系統 autofs 都沒有依題目

的要求而設定,所以他只答對 15 題,總分為 78 分如程式 4.2。

而 IP 為 140 的學生在回答時,沒有將虛擬名稱依題目做更改,還有在建立使用

者帳戶 users 、權限的設定acl 、自動工作日程 corn 、協同工作目錄 share、外部認證

服務 LDAP 、配置 NTP 、設定用戶帳號 UID 、尋找檔案與字串和自動掛載檔案系統

autofs 都沒有依題目的要求而設定,所以他只答對 8 題,總分為 42 分,而最後顯示結

果如程式 4.3。

38

Page 50: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�=========================第一次模擬考=====================

2 1. 打開終端機執行 echo ’Student ID name’ > sid

2. 等待老師幫你還原 kvm 虛擬機4 3. kvm 虛擬機還原後開始作答

4. 作答完自行將虛擬機重開機並檢查答題是否正確?6 5. 等待老師評分

=================================8 test_192.168.1.125 98XXXXX 楊XX

testnetwork1.user:010 testnetwork2.ftp:0

testnetwork3.web:012 testlocal1.yum:0

testlocal2.vo:014 testlocal3.users:0

testlocal4.acl:016 testlocal5.cron:0

testlocal6.share:018 testlocal7.kernel1:0

testlocal7.kernel2:020 testlocal8.ldap:0

testlocal9.ntp:022 testlocal11.uid:0

testlocal12.swap:024 testlocal13.find:0

testlocal14.grep:026 testlocal15.lvm:0

testlocal10.autofs:028 test_192.168.1.137 101XXXXX 楊XX

testnetwork1.user:030 testnetwork2.ftp:0

testnetwork3.web:032 testlocal1.yum:0

testlocal2.vo:034 testlocal3.users:0

testlocal4.acl:036 testlocal5.cron:0

testlocal6.share:038 testlocal7.kernel1:0

testlocal7.kernel2:040 testlocal8.ldap:0

testlocal9.ntp:042 testlocal11.uid:0

testlocal12.swap:044 testlocal13.find:0

testlocal14.grep:046 testlocal15.lvm:0

testlocal10.autofs:0� �程式 4.1: 模擬考之正確訊息

39

Page 51: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�1 test_192.168.1.165 101XXXXX 吳XX

testnetwork1.user:03 testnetwork2.ftp:0

1c1,155 < kvm web test

---7 > --2013-05-08 10:42:21-- ftp://deyu.wang/pub/kvm.html

> => ‘kvm.html.1’

9 > 正在查找主機 deyu.wang... 192.168.122.1

> 正在連接 deyu.wang|192.168.122.1|:21... 連上了。11 > 以 anonymous 的身分登入... 登入完成!

> ==> SYST ... 完成。 ==> PWD ... 完成。13 > ==> TYPE I ... 完成。 ==> CWD (1) /pub ... 完成。

> ==> SIZE kvm.html ... 13

15 > ==> PASV ... 完成。 ==> RETR kvm.html ... 完成。> 長度: 13 非正式資料()

17 >> 0K 100% 2.55M

=0s19 >

> 2013-05-08 10:42:21 (2.55 MB/s) - ‘kvm.html.1’ saved [13]21 >

testnetwork3.web:123 testlocal1.yum:0

testlocal2.vo:025 testlocal3.users:0

testlocal4.acl:127 testlocal5.cron:0

testlocal6.share:029 testlocal7.kernel1:0

testlocal7.kernel2:031 testlocal8.ldap:2

testlocal9.ntp:133 testlocal11.uid:1

testlocal12.swap:035 testlocal13.find:1

testlocal14.grep:237 testlocal15.lvm:1

testlocal10.autofs:1� �程式 4.2: 模擬考之錯誤訊息

40

Page 52: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

�test_192.168.1.140 99XXXXX 陳XX

2 testnetwork1.user:5testnetwork2.ftp:0

4 testnetwork3.web:0testlocal1.yum:0

6 testlocal2.vo:0testlocal3.users:1

8 testlocal4.acl:1testlocal5.cron:1

10 testlocal6.share:1testlocal7.kernel1:0

12 testlocal7.kernel2:0testlocal8.ldap:2

14 testlocal9.ntp:1testlocal11.uid:1

16 testlocal12.swap:0testlocal13.find:1

18 testlocal14.grep:2testlocal15.lvm:0

20 testlocal10.autofs:1================結果======================

22 test_192.168.1.125 98XXXXX 楊XX共19 題,答對 19 題。分數。 100

24 test_192.168.1.137 101XXXXX 楊XX共19 題,答對 19 題。分數。 100

26 test_192.168.1.143 101XXXXX 廖XX共19 題,答對 15 題。分數。 78

28 test_192.168.1.140 99XXXXX 陳XX共19 題,答對 8 題。分數。 42� �

程式 4.3: 模擬考之結果

41

Page 53: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

第第第 五五五 章章章 結結結論論論

現在的資訊科技發展相當快速,從以前的考試只有紙跟筆的時代開始,發展到現今都

使用電腦來作答,但大多電腦作答都還是以選擇題的方式進行,並沒有以實機的電腦

操作,以 Linux 來說,想學好它並不是簡單的知識作答就可以做的到,需要時常的實

際操作電腦才能夠達成。而目前雖然有相關 shell 腳本題目的評分檢測,但都是評分全

部題目的腳本,卻沒有專門為了因應隨機選題而檢測的腳本,因此,本研究主要以實

機操作的方式來撰寫 shell 腳本,針對使用隨機亂數的方式選出題目,再將隨機選出來

的題目傳送給用戶端,讓用戶端可以實機的操作練習或測驗,最後再逐一做評分檢測

並紀錄結果。而這樣隨機出題的方式是為了在測驗的時候可以達到相當的公平性,能

讓用戶端都能每次練習不同的題目,也為了避免用戶端在測驗的時候死記題型或作弊

的情形發生。

本研究可以讓使用者充分的練習與學習,讓他們可以更了解 Linux 系統,從管理

使用者帳號到架設網站與撰寫 shell 腳本都能訓練使用者基礎的能力,因此本研究不但

可以加強學生實機操作的能力,也可教導學生們正確的學習態度與方式。而題目是以

簡單的 HTML 設計,可以相當便利的新增與修改題目,在未來可以再新增新的題目,

也可以再新增更進階的題目,這樣可以增加隨機出題的題數,讓使用者能多方面的練

習與測驗。

42

Page 54: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

參參參 考考考 文文文 獻獻獻

[1] “數位學習.” http://en.wikipedia.org/wiki/E-learning.

[2] “數位學習-數位典藏學習網.” http://ic.shu.edu.tw/DA/DADL/1-5-2.html.

[3] C.-L. C. Kulik and J. A. Kulik, “Effectiveness of computer-based instruction: An

updated analysis,” Computersin Human Behavior, vol. 7, pp. 75–94, 1911.

[4] “Intelligent tutoring system.” http://en.wikipedia.org/wiki/Intelligent_

tutoring_system.

[5] “考試院.” http://www.exam.gov.tw/mp.asp?mp=1.

[6] “Test.” http://en.wikipedia.org/wiki/Exam.

[7] “聽力訓練-不只是聽聽而已.” http://www.cavesbooks.com.tw/.

[8] “電腦測驗的優缺點.” http://zh.wikiteamwork.wikia.com/.

[9] “Pxe.” http://en.wikipedia.org/wiki/Preboot_Execution_Environment.

[10] 鳥哥, 鳥哥的 Linux 私房菜–基礎學習篇. 碁峰, 3rd ed., 2007.

[11] “類 unix 系統.” http://zh.wikipedia.org/wiki/%E7%B1%BBUnix%E7%B3%BB%E7%

BB%9F.

[12] “unix-like-os.” http://chris959.blogspot.tw/2012/03/unix-like-os.html.

[13] 陳奕靜, “使用 shell 腳本自動處理 latex 文稿之設計,” Master’s thesis, 朝陽科技大

學, 2012.

[14] “Kickstart.” https://access.redhat.com/site/documentation/zh-TW/Red_Hat_

Enterprise_Linux/6/html/Installation_Guide/.

[15] “Kernel based virtual machine.” http://en.wikipedia.org/wiki/Kernel-based_

Virtual_Machine.

[16] “Html.” http://zh.wikipedia.org/wiki/HTML.

43

Page 55: A Design of Practice Learning System for Linux Administratorir.lib.cyut.edu.tw:8080/bitstream/310901800/25608/... · 結果評分,用戶端可使用網路開機模式,也就是預啟動執行環境(

[17] “Linux distribution.” http://en.wikipedia.org/wiki/Linux_distribution.

[18] “Linux file server.” http://ftp.isu.edu.tw/linux.

[19] “Centos home page.” http://www.centos.org.

[20] “Kickstart 各 個 基 本 設 定.” http://linux.vbird.org/linux_enterprise/

0120installation.php.

[21] “設 定 kickstart 選 項.” http://www.php5.idv.tw/documents/redhatTW/RHCG/

s1-kickstart2-options.html.

[22] “建立 kickstart 配置檔案.” http://wiki.debian.org.hk/w/Install_GNU/Linux_

automatically_with_Kickstart.

[23] “虛擬機器.” http://linuxxd.blogspot.tw/2010/11/blog-post_21.html.

[24] “Hypervisor.” https://en.wikipedia.org/wiki/Hypervisor.

[25] “Kvm 與 xen.” http://big5.home.news.cn/gate/big5/lzyo.home.news.cn/

blog/a/0101000000000C8C1207F2BB.html.

[26] “Shell script 程式設計 for linux.” http://itsoho.miroko.tw/Tutorial/Linux/

programming/Shell%20ScriptTutPart1.htm.

[27] 王俊斌, FreeBSD 6.0架設管理與應用. 博碩文化, 2005.

[28] 陳錦輝, HTML初學指引. 台北市: 上奇資訊, 2008.

44

Recommended