李占嶺++馬麗潔
[摘要]Linux作為一個(gè)多任務(wù)、多用戶的操作系統(tǒng),以其良好的穩(wěn)定性、高效性和靈活性贏得了廣大用戶,并迅速發(fā)展成為操作系統(tǒng)的主流,因此,國(guó)內(nèi)外多數(shù)高等學(xué)校,尤其高職院校計(jì)算機(jī)及相關(guān)專業(yè)已將Linux操作系統(tǒng)作為專業(yè)課程列入教學(xué)計(jì)劃中。如何測(cè)試學(xué)生掌握Linux操作系統(tǒng)的基本操作、系統(tǒng)管理、服務(wù)器配置的水平,已成為L(zhǎng)inux操作系統(tǒng)課程考試改革的關(guān)鍵。文章利用Linux操作系統(tǒng)的可測(cè)試性,研究開發(fā)Shell程序,實(shí)踐完成Linux操作可測(cè)試腳本,即科學(xué)高效的Linux評(píng)分系統(tǒng)。
[關(guān)鍵詞]Linux操作系統(tǒng);可測(cè)試性;Shell腳本;評(píng)分系統(tǒng)
[DOI]1013939/jcnkizgsc201623255
1前言
軟件的可測(cè)試性原指軟件在一定的時(shí)間和成本前提下,進(jìn)行測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行的能力。Linux操作系統(tǒng)作為一個(gè)系統(tǒng)軟件,具有優(yōu)良的可測(cè)試性,本文擴(kuò)展Linux操作系統(tǒng)可測(cè)試特性,泛指Linux操作系統(tǒng)用戶的操作是可測(cè)試的,這樣可以檢測(cè)用戶對(duì)Linux的操作是否正確,從而可以應(yīng)用于考察Linux操作技能的評(píng)分系統(tǒng)中。
該課程旨在考察學(xué)生掌握Linux操作系統(tǒng)的應(yīng)用能力,具體包括Linux操作系統(tǒng)的基本操作、系統(tǒng)管理、服務(wù)器配置三個(gè)方面,該課程考核方式為上機(jī)操作更合理,而上機(jī)操作的評(píng)分除了人工之外,就急需一套科學(xué)、規(guī)范的評(píng)分系統(tǒng)。
Shell是Linux操作系統(tǒng)人機(jī)交互的原生界面,Shell命令能夠控制整個(gè)Linux操作系統(tǒng)的動(dòng)作,Shell腳本就是將Shell命令按照某種邏輯關(guān)系組合在一個(gè)程序中,用于結(jié)合現(xiàn)有的程序完成小型的、特定的工作,常用于批處理的系統(tǒng)管理中,Shell腳本也可以和許多外部命令行工具結(jié)合起來完成信息查詢、簡(jiǎn)化文本處理、調(diào)度任務(wù)運(yùn)行時(shí)間、生成報(bào)表以及發(fā)送郵件之類的工作。因此,如果Shell腳本程序有價(jià)值,我們就可以用作黑盒測(cè)試。
2Linux操作可測(cè)試腳本研究
高?!癓inux操作系統(tǒng)”課程旨在掌握Linux的功能、應(yīng)用、架構(gòu)等內(nèi)容,具體包括Linux操作系統(tǒng)的基本操作、系統(tǒng)管理、服務(wù)器配置三個(gè)方面,下面分別對(duì)三部分知識(shí)點(diǎn)及使用的測(cè)試腳本進(jìn)行介紹。
2.1基本操作
這部分主要測(cè)試學(xué)生的基本命令,文件、目錄的操作命令,VIM編輯器的使用和設(shè)置,文件的輸入輸出重定向、管道等復(fù)雜應(yīng)用以及文件的壓縮、備份等。
對(duì)文件操作命令測(cè)試主要使用的測(cè)試腳本是if語句以及 [-f*/*txt]。首先來進(jìn)行判斷文件的存在,從而使用grep命令來查找對(duì)文件的編輯內(nèi)容;對(duì)目錄的操作會(huì)首先使用if cd */* >/dev/null 2&>1來進(jìn)行判斷目錄的存在,再使用字符串判斷=或cmp命令來驗(yàn)證目錄中符合要求的文件;在VIM編輯器設(shè)置時(shí)需在配置文件中查找其配置內(nèi)容是否與要求相符,這部分還可以根據(jù)需要建立符合要求的文件來與學(xué)生生成文件進(jìn)行比較判斷,會(huì)頻繁用到1>,2>,&>正確、錯(cuò)誤、全部輸出重定向的處理。
2.2系統(tǒng)管理
這部分主要測(cè)試學(xué)生對(duì)系統(tǒng)的管理,創(chuàng)建用戶、組;文件、目錄的權(quán)限、擁有者設(shè)置;系統(tǒng)分區(qū)、磁盤空間信息;管理員定期自動(dòng)調(diào)度任務(wù)設(shè)置以及Shell腳本管理。
對(duì)用戶和組的管理主要通過讀取配置文件/etc/passwd和/etc/groupgrep來進(jìn)行考察判斷,其中會(huì)涉及正則表達(dá)式的特殊字符^或$,來準(zhǔn)確定位記錄;文件或目錄的權(quán)限可通過 find *-name *-perm *** > ~/temp 2>/dev/null以及輸入重定向read string < ~/temp及if [ $string]完成權(quán)限判斷;在進(jìn)行系統(tǒng)分區(qū)和磁盤空間信息的查看時(shí)通過ls –l ~* |tr –s “ “|cut –d “ “ –f 5 > ~/temp 2>/dev/null來提取出磁盤或分區(qū)的信息;管理員所設(shè)置的定期自動(dòng)調(diào)度任務(wù)需要在/var/spool/cron/root目錄中查找并測(cè)試;對(duì)Shell腳本的測(cè)試使用墨盒測(cè)試,使用特征數(shù)據(jù)驗(yàn)證結(jié)果。
2.3服務(wù)器配置
這部分測(cè)試學(xué)生對(duì)典型的SSH、NFS、YUM、FTP、Samba、Apache、DNS等服務(wù)的應(yīng)用和配置能力。
這些服務(wù)的開機(jī)自啟動(dòng)設(shè)置須通過if [-e /etc/rc5d/S*]來判斷,而服務(wù)的架構(gòu)正是通過服務(wù)的應(yīng)用腳來達(dá)到反測(cè)試的效果,例如NFS服務(wù),將通過umount /mnt 2>/dev/null;mount –t nfs 1921680$*:emb mnt 2>/dev/null 來驗(yàn)證emb目錄的共享;FTP服務(wù),將通過lftp 1921680$*|cd put|put file 2>/dev/null來將file文件上傳到服務(wù)器的put目錄來驗(yàn)證匿名用戶可上傳;Apache服務(wù)可通過fixfox 1921680$*來查看服務(wù)器的主頁等。
3Linux操作可測(cè)試腳本的實(shí)踐
Linux操作可測(cè)試腳本即評(píng)分系統(tǒng),需要組建局域網(wǎng)絡(luò)環(huán)境,將在一臺(tái)RHEL65做服務(wù)器,簡(jiǎn)稱Server(1921680254,域名serverexamplecom),我們要做的主要配置也是在Server上完成的。
Server上需要做的服務(wù)有:
(1)使用FTP共享光盤中的rpm包作為YUM源。
(2)DNS服務(wù),用于解析考試機(jī),即工作站,簡(jiǎn)稱station機(jī)(1921680*,域名station*examplecom)以及Apache。
(3)NIS服務(wù)器+NFS,共享特定用戶家目錄。
下面我們分別介紹這些服務(wù)的實(shí)現(xiàn)。
3.1使用FTP搭建YUM源
首先要將共享光盤掛載到Server服務(wù)器上:mount /dev/cdrom /media,安裝FTP服務(wù)到Server中rpm-ivh /media/Server/vsftpdrpm,并開啟vsftpd服務(wù)service vsftpd start以及chkconfig vsftpd on設(shè)置開機(jī)自啟動(dòng);然后將光盤資料復(fù)制到Server上的FTP默認(rèn)目錄/var/ftp中cp-a /media/* /var/ftp/pub/中;最后定位yum源 rpm-ivh /var/ftp/pub/Server/createrepo-044-2fc6noarchrpm|createrepo。至此,Server上的工作暫時(shí)告一段落,可以去station機(jī)上測(cè)試:首先配置網(wǎng)絡(luò)環(huán)境1921680*,網(wǎng)關(guān)DNS設(shè)為1921680254,與服務(wù)器同屬examplecom域,網(wǎng)絡(luò)測(cè)試ping通過后,建立yum配置文件 vim /etc/yumreposd/Serverrepo,內(nèi)容如下:
[Server]
name=Server
baseurl=file://mnt/Server
enabled=1
gpgcheck=0
保存退出后yum clean all|yum list 進(jìn)行測(cè)試,至此,Server上的yum服務(wù)端配置完畢。
32搭建DNS服務(wù)
首先在服務(wù)器上安裝bind軟件包rpm-ivh bind,并配置vim /etc/namedconf建立正向和反向解析域和文件zone "examplecom" { type master;file "examplecomzone";};zone "192168in-addrarpa" { type master; file "192168zone";};保存退出。然后分別設(shè)置正向和反向解析文件,格式如下:
station*INA1921680*
0*INPTRstation*examplecom
保存退出,啟動(dòng)DNS服務(wù)。同時(shí)可以去station機(jī)上測(cè)試 nslookup,顯示出主機(jī)名、IP、域名之間的對(duì)應(yīng),則設(shè)置成功。
3.3NIS服務(wù)器+NFS
首先在Server上安裝NIS服務(wù)器軟件包 rpm-ivh ypserv-219-3i386rpm,并檢查服務(wù)器是否已安裝portmap、ypbind、yp-tools服務(wù)rpm-qa|grep portmap;rpm-qa|grep ^yp;建立NIS域名vim /etc/sysconfig/network,在該配置文件中增加一條NISDOMAIN=Centcom,啟動(dòng)ypserv服務(wù)service ypserv start;nisdomainname命令查看是否生效;然后編輯配置文件 vim /etc/ypservconf,增加記錄如下:
127001/255000:*:*:none
19216800/25525500:*:*:none
此記錄允許本地主機(jī)對(duì)NIS服務(wù)訪問。接下來創(chuàng)建NIS登錄用戶useradd niSUSEr3(家目錄設(shè)置為/rhome/nisuser1)|passwd RedHat,并創(chuàng)建NIS數(shù)據(jù)庫(kù)通過/usr/lib/yp/ypinit-m來建立主數(shù)據(jù)庫(kù)-s:建立輔助數(shù)據(jù)庫(kù),按ctrl+D,Y確認(rèn)后就可建立數(shù)據(jù)庫(kù)文件。/usr/lib/yp/ypinit –m,然后重啟ypserver服務(wù)。其次配置NFS共享nis用戶的家目錄vim /etc/exports,增加記錄/rhome/niSUSEr319216800/16(rw)重啟NFS服務(wù)。最后,通過配置客戶端來驗(yàn)證setup進(jìn)入配置界面,選擇“認(rèn)證配置”,勾選上NIS,下一步,輸入nis賬號(hào)所在域,設(shè)置centcom,還有服務(wù)器地址1921680254。退出后yptest測(cè)試,成功后會(huì)顯示nis用戶信息;之后配置客戶端autofs,以便掛載nis用戶家目錄vim /etc/automaster,增加/rhome /etc/automisc;vim /etc/automisc增加如下記錄:
niSUSEr3-fstype=nfs,rw1921680254:/rhome/nisuser3
保存后service autofs restart啟動(dòng)服務(wù),驗(yàn)證通過,至此,NIS服務(wù)器配置成功。
這樣,我們的服務(wù)器基本配置完畢,Linux可測(cè)試的評(píng)分系統(tǒng)環(huán)境就搭建起來了。
Shell腳本語言是解釋型的,這類程序的執(zhí)行,是由解釋器讀入程序代碼,并將其轉(zhuǎn)換成內(nèi)部的形式,再執(zhí)行。而解釋器本身就是一般的編譯型程序。使用腳本語言的好處在于它們多數(shù)運(yùn)行在比編譯型語言還高的層級(jí),能夠輕易處理文件與目錄之類的對(duì)象。而Shell就是一個(gè)典型的腳本編譯語言。Shell是各UNIX系統(tǒng)之間通用的功能,并且經(jīng)過了POSIX的標(biāo)準(zhǔn)化,可以應(yīng)用到很多系統(tǒng)上。因此,使用Shell腳本完成Linux操作測(cè)試評(píng)分系統(tǒng)是科學(xué)有效的方法。