通信程序設(shè)計(jì)實(shí)驗(yàn)第二三部分_第1頁(yè)
通信程序設(shè)計(jì)實(shí)驗(yàn)第二三部分_第2頁(yè)
通信程序設(shè)計(jì)實(shí)驗(yàn)第二三部分_第3頁(yè)
通信程序設(shè)計(jì)實(shí)驗(yàn)第二三部分_第4頁(yè)
通信程序設(shè)計(jì)實(shí)驗(yàn)第二三部分_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、通信程序設(shè)計(jì)實(shí)驗(yàn)第二部分實(shí)驗(yàn)一:shell基本命令實(shí)驗(yàn)?zāi)康模壕毩?xí) date、cal、pwd 等幾個(gè)常用的 Linux 命令。實(shí)驗(yàn)內(nèi)容:本實(shí)驗(yàn)用到的命令有:date、cal、pwd、write、alias、uptime、man 等1. 登錄你的 Linux 系統(tǒng)。2. 用命令 date 顯示當(dāng)前的時(shí)間,給出顯示的結(jié)果。3. 用 cal 命令顯示下列年份的日歷:4、52、1752、1952、2005、2006 a)給出你顯示以上年份年歷的命令b)1752 年有幾天,為什么?提示:在因特網(wǎng)上查找答案4. 用 pwd 顯示你的主目錄(home directory)名字,給出 pwd 顯示的結(jié)果。5.

2、使用 write 命令和已經(jīng)登錄系統(tǒng)的一個(gè)朋友進(jìn)行通信。6. 使用 alias 命令顯示系統(tǒng)中的命令的別名,給出顯示的結(jié)果。7. 使用 uptime 命令判斷系統(tǒng)已啟動(dòng)運(yùn)行的時(shí)間和當(dāng)前系統(tǒng)中有多少登錄用戶(hù), 給出顯示的結(jié)果。8. 通過(guò)因特網(wǎng)或 Linux 的 man 命令得到下面的 shell 命令、系統(tǒng)調(diào)用和庫(kù)函數(shù)功 能描述及每個(gè)命令使用例子:CommandShort DescriptionExample Usetouchcpmvrmmkdirrmdirlslprcdpwdopenreadwriteclosepipesocketmkfifosystemprintf9. 退出系統(tǒng)實(shí)驗(yàn)二 文件與

3、文件系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)?zāi)康模?. 學(xué)習(xí)如何創(chuàng)建一個(gè) Linux 目錄的層次結(jié)構(gòu);2. 學(xué)習(xí)有關(guān)絕對(duì)路徑和相對(duì)路徑;3. 學(xué)習(xí)有關(guān)主目錄(home directory)、登錄目錄、工作目錄(當(dāng)前目錄);4. 學(xué)習(xí)如何有效導(dǎo)航 Linux 目錄層次;5. 學(xué)習(xí)有關(guān)文件內(nèi)容類(lèi)型和隱含文件;6. 學(xué)習(xí)有關(guān)文件屬性。實(shí)驗(yàn)內(nèi)容:Linux 文件系統(tǒng)的結(jié)構(gòu)如下:Linux 系統(tǒng)主要目錄說(shuō)明:/bin:也稱(chēng)二進(jìn)制(binary)目錄,包含了那些供系統(tǒng)管理員和普通用戶(hù)使用的重要的 Linux 命令的可執(zhí)行文件。一些常用的命令有:bash、cat、chmod、cp、date、echo、kill、ln、mail、mkdi

4、r、more、mv、ps、pwd、 rm、rmdir、sh、stty、su、tcsh、uname 和 vi。一些用于系統(tǒng)恢復(fù)的命令 如:tar、gzip、gunzip 和 zcat。還有一些網(wǎng)絡(luò)命令如:domainname、hostname、 netstat 和 ping。目錄/usr/bin 下存放了大部分的用戶(hù)命令。/boot :在這個(gè)目錄下存放系統(tǒng)啟動(dòng)時(shí)要用到的程序。包括 Linux 內(nèi)核的二進(jìn)制映像。內(nèi)核文件名是 vmlinux 加上版本和發(fā)布信息。/dev:dev 是設(shè)備(device)的英文縮寫(xiě)。在這個(gè)目錄中包含了所有 linux系統(tǒng)中使用的外部設(shè)備。但是這里并不是放的外部設(shè)備的驅(qū)

5、動(dòng)程序。/etc :etc 這個(gè)目錄是 linux 系統(tǒng)中最重要的目錄之一。在這個(gè)目錄下存放了系統(tǒng)管理時(shí)要用到的各種配置文件和子目錄。我們要用到的網(wǎng)絡(luò)配置文 件,文件系統(tǒng),x 系統(tǒng)配置文件,設(shè)備配置信息,設(shè)置用戶(hù)信息等都在這 個(gè)目錄下。/sbin :這個(gè)目錄是用來(lái)存放系統(tǒng)管理員的系統(tǒng)管理程序。/home :存放用戶(hù)的主目錄。如果建立一個(gè)用戶(hù),用戶(hù)名是“ji”,那么在/home 目錄下就有一個(gè)對(duì)應(yīng)的/home/ji 路徑,用來(lái)存放用戶(hù)的主目錄。/lib :lib 是庫(kù)(library)英文縮寫(xiě)。這個(gè)目錄是用來(lái)存放系統(tǒng)動(dòng)態(tài)連接共享庫(kù)的。幾乎所有的應(yīng)用程序都會(huì)用到這個(gè)目錄下的共享庫(kù)。/mnt :這個(gè)

6、目錄主要用來(lái)臨時(shí)裝載文件系統(tǒng),系統(tǒng)管理員運(yùn)行 mount 命令完成裝載工作。/opt:該目錄用來(lái)安附加軟件包/proc :目錄存放了進(jìn)程和系統(tǒng)得信息,可以在這個(gè)目錄下獲取系統(tǒng)信息。這些信息是在內(nèi)存中,由系統(tǒng)自己產(chǎn)生的。/root :根(root)用戶(hù)的主目錄。如果用戶(hù)是以超級(jí)用戶(hù)的身份登錄的,這個(gè)就是超級(jí)用戶(hù)的主目錄。/sbin,/usr/sbin,/usr/root/sbin:存放了系統(tǒng)管理的工具、應(yīng)用軟件和通用的 root 用戶(hù)權(quán)限的命令。/tmp :用來(lái)存放不同程序執(zhí)行時(shí)產(chǎn)生的臨時(shí)文件。/usr :是 linux 文件系統(tǒng)中最大的目錄之一。它存放了可以在不同主機(jī)間共享的只讀數(shù)據(jù)。/los

7、t+found : 目錄中存放所有和其他目錄沒(méi)有關(guān)聯(lián)的的文件,這些文件可以用 Linux 工具 fsck 查找得到。/sbin : /usr/sbin : /usr/local/sbin : Contains system administration command files that can only be run by the root user./var : 用來(lái)存放易變的數(shù)據(jù),這些數(shù)據(jù)在系統(tǒng)運(yùn)行過(guò)程中會(huì)不斷變化。/var/spool/mail 存放收到的電子郵件,/var/log 存放系統(tǒng)的日志。本實(shí)驗(yàn)用到的命令有:PATH, cd, echo, file, ls, mkdir ,

8、 pwd , rmdir 等。1. 登錄到你的 Linux 系統(tǒng)2. 在你的主目錄下建立如下圖所示的目錄樹(shù)。給出完成這項(xiàng)工作的所有會(huì) 話(huà)。(會(huì)話(huà)是指你命令的輸入和結(jié)果的輸出,你提交的作業(yè)要包含這些內(nèi) 容)3. 顯示你登錄目錄的絕對(duì)路徑,給出這個(gè)會(huì)話(huà)過(guò)程。4. 在系統(tǒng)中,執(zhí)行 cd professional/courses 命令,回答下列問(wèn)題:a.你的主目錄的絕對(duì)路徑是什么?給出獲得該絕對(duì)路徑的命令及命令輸出。b.acm 目錄的絕對(duì)路徑是什么?c.給出 acm 目錄的兩個(gè)相對(duì)路徑。d.執(zhí)行 cd major/cs381/labs 命令。然后執(zhí)行一個(gè)命令顯示當(dāng)前目錄的 絕對(duì)路徑,給出這個(gè)會(huì)話(huà)過(guò)程。

9、e.給出獲得你的主目錄三個(gè)不同的命令。5. 改變目錄到參/。?6. 在/usr/bin 目錄下有多少個(gè)普通文件、目錄文件和鏈接文件?如何得到這個(gè)答案?7. 你系統(tǒng)中的 Linux 內(nèi)核映像文件在那個(gè)目錄中?給出這個(gè)可執(zhí)行內(nèi)核映像文件的名稱(chēng)和文件內(nèi)容類(lèi)型。8. Linux 系統(tǒng)規(guī)定,隱含文件是首字符為”.”的文件,如.profile。在你的系統(tǒng)中查找.profile 和.login 文件,他們?cè)谑裁吹胤?,給出這兩個(gè)文件部分內(nèi)容。9. 顯示你的主目錄下的所有隱含文件的文件名。給出你的會(huì)話(huà)過(guò)程。10. 下面這些目錄的 inode 號(hào)是多少:root、你的主目錄(home directory)、/te

10、mp、 /professional、和/personal? 寫(xiě)出會(huì)話(huà)過(guò)程。注:符號(hào)“”為主目錄11. 在 labs 目錄下,用文本編輯器創(chuàng)建一個(gè)名字為 lab1 的文件,文件的內(nèi)容 為:“Use a text editor to create a file called lab1 under the labs directory in your directory hierarchy. The file should contain the text of this problem.”。 回答下列問(wèn)題:a.lab1 文件的類(lèi)型,用 Linux 命令回答這個(gè)問(wèn)題,給出會(huì)話(huà)過(guò)程。b. lab1 文

11、件內(nèi)容的類(lèi)型,用 Linux 命令回答這個(gè)問(wèn)題,給出會(huì)話(huà)過(guò)程。12. 退出系統(tǒng)。 實(shí)驗(yàn)三 文件安全實(shí)驗(yàn)?zāi)康模?. 學(xué)習(xí) Linux 的文件訪(fǎng)問(wèn)權(quán)限,用戶(hù)的類(lèi)型和文件訪(fǎng)問(wèn)權(quán)限的類(lèi)型;2. 學(xué)習(xí)如何確定一個(gè)文件的訪(fǎng)問(wèn)權(quán)限;3. 學(xué)習(xí)如何設(shè)置和改變一個(gè)文件的訪(fǎng)問(wèn)權(quán)限;4. 學(xué)習(xí)如何在文件或目錄的創(chuàng)建時(shí)設(shè)置缺省訪(fǎng)問(wèn)權(quán)限。實(shí)驗(yàn)內(nèi)容:在 Linux 系統(tǒng)中,一個(gè)文件的用戶(hù)類(lèi)型有三種:所有者( owner users )、 組( group users)、其他人( Other users )Linux 系統(tǒng)中,文件有三種訪(fǎng)問(wèn)權(quán)限:讀(r)-允許讀某個(gè)文件;寫(xiě)(w) -允許 寫(xiě)、修改和刪除某個(gè)文件;執(zhí)行(x)

12、 -允許執(zhí)行(run)某個(gè)文件。對(duì)于一個(gè)目錄而言:讀(r) -允許用戶(hù)列出目錄的內(nèi)容,使用 ls 命令;寫(xiě) (w)-允許用戶(hù)在目錄下建立新文件,刪除子目錄和文件;執(zhí)行(x)-允許用戶(hù)搜索 這個(gè)目錄,用 cd 命令。使用 ls -l 或 ls -ld 命令顯示文件的訪(fǎng)問(wèn)權(quán)限:本實(shí)驗(yàn)使用的命令有:finger、cd、mkdir、ls、chmod、touch、umask 等1.登錄到你的 Linux 系統(tǒng)2.根據(jù)下列的要求,寫(xiě)出得到這些信息的會(huì)話(huà)過(guò)程:a.你的用戶(hù)名;b.你的用戶(hù) ID;id -rc.你的組 ID 和組名字;d.在你同一組中的其他用戶(hù)名。注:在/etc/passwd 和/etc/gr

13、oup 文件中查到部分信息,要理解這兩個(gè)文件的格式。3. 系統(tǒng)管理員給你的主目錄設(shè)置的權(quán)限是什么?使用什么命令來(lái)得到這個(gè)答案,給出你的會(huì)話(huà)過(guò)程。4.在你的主目錄中的 temp、professional 和 personal 三個(gè)子目錄,設(shè)置使自己(owner)擁有讀、寫(xiě)、執(zhí)行 3 種訪(fǎng)問(wèn)權(quán)限,設(shè)置其它用戶(hù)只有讀和執(zhí)行權(quán)限。 在/tmp 目錄下創(chuàng)建名為 d1、d2 和 d3 的目錄。在 d1 目錄下,用 touch 命令創(chuàng)建一個(gè)名為 f1 的空文件。給出 d1、d2、d3 和 f1 的訪(fǎng)問(wèn)權(quán)限。給出完成這些工作 的會(huì)話(huà)。5設(shè)置當(dāng)前目錄為你的主目錄,設(shè)置/temp 僅執(zhí)行權(quán)限,然后執(zhí)行 ls ld

14、 temp,再執(zhí)行 ls l temp 命令。結(jié)果如何?成功執(zhí)行 ls l temp 命令需要的最小權(quán)限是什么?請(qǐng)?jiān)O(shè)置 temp 目錄的最小權(quán)限,然后再一次執(zhí)行 ls l temp 命令。給出這個(gè)過(guò)程的會(huì)話(huà)。注:登錄系統(tǒng)不能使用 root 用戶(hù)6. 用 umask 命令顯示當(dāng)前的掩碼。把你的主目錄設(shè)置為當(dāng)前目錄,然后在/temp/d1 目錄下,創(chuàng)建 d11 目錄,用 touch 命令創(chuàng)建 f2 空文件。在 temp 目錄 下用編輯器創(chuàng)建 hello.c 文件,該文件的內(nèi)容如下:#include <stdio.h>main(void)printf (“Hello, world!n”)

15、;次的再運(yùn)行命令 gcc o greeting hello.c ,生成了可執(zhí)行文件 greeting。長(zhǎng)列表顯示 f2、 hello.c、greeting 和 d1 文件訪(fǎng)問(wèn)權(quán)限。7. 退出系統(tǒng)實(shí)驗(yàn)四 基本文件處理實(shí)驗(yàn)?zāi)康模?.學(xué)會(huì)如何顯示文本文件的內(nèi)容;2.學(xué)會(huì)如何復(fù)制、追加、移動(dòng)和刪除;3.學(xué)會(huì)如何合并文件;4.學(xué)會(huì)如何確定文件的大??;5.學(xué)會(huì)如何比較文本文件;6.學(xué)會(huì)使用各種打印命令。實(shí)驗(yàn)內(nèi)容:在 Linux 系統(tǒng)中,一個(gè)文件的用戶(hù)類(lèi)型有三種:所有者( owner users )、 組( group users)、其他人( Other users )實(shí)驗(yàn)用到的命令:|、man、vi、ca

16、t、nl、head、tail、ls、cp、wc、lpr 等1. 登錄到你的 Linux 系統(tǒng)2. 創(chuàng)建幾個(gè)大小不等的文本文件,供本實(shí)驗(yàn)和后面幾個(gè)實(shí)驗(yàn)用。用 man cat > mediumFile 命令創(chuàng)建中等大小的文件;用 man bash > largeFile 命令創(chuàng)建 一個(gè)大文件;在創(chuàng)建一個(gè)名字為 smallFile 關(guān)于學(xué)生數(shù)據(jù)的小文件,文件每行內(nèi)容(藍(lán)色字體部分)如下,注意字段之間用 tab 符隔開(kāi):FirstName LastNameMajorGPAEmailPhoneHere is the minimum amount of data that you will h

17、ave in this file.JohnDoeECE3.54111.222.3333JamesDavisECE3.71111.222.1111AlDavisCS2.63111.222.2222AhmadRashidMBA3.04111.222.4444SamChuECE3.68chu111.222.5555ArunRoySS3.86111.222.8888RickMarshCS2.34111.222.6666JamesAda

18、mCS2.77111.222.7777ArtPohmECE4.00111.222.9999JohnClarkECE2.68clark111.111.5555NabeelAliEE3.56111.111.8888TomNelsonECE3.81111.111.6666PatKingSS3.77111.111.7777JakeZuluCS3.00111.111.9999JohnLeeEE3.64jlee111.111.2222SunilRa

19、jECE3.86111.111.3333CharlesRightEECS3.31111.111.4444DianeRoverECE3.873.87111.111.5555AzizInanEECS3.75111.111.11113. 使用 cat 和 nl 命令顯示 smallFile 文件內(nèi)容并顯示行號(hào)。兩個(gè)命令的輸出應(yīng)該 完全一樣。給出完成這項(xiàng)任務(wù)的命令。4. 用 more 命令顯示 smallFile 和 mediumFile 文件內(nèi)容,每屏顯示 18 行。給出你的命令(顯示的

20、內(nèi)容不需要)。5. 顯示 largeFile 文件的開(kāi)始 12 行內(nèi)容,顯示 smallFile 文件的最后 5 行內(nèi)容, 要用什么命令?哪個(gè)命令能顯示 smallFile 文件從第 6 行開(kāi)始到結(jié)束,且逆序 顯示?給出你的會(huì)話(huà)。6. 本實(shí)驗(yàn)?zāi)康挠^察使用帶-f 選項(xiàng)的 tail 命令。復(fù)制 smallFile 文件,文件名為dataFile,創(chuàng)建一個(gè)文件名為 ch7.c 的 c 語(yǔ)言文件,內(nèi)容如下:#include <stdio.h>main()int i; i = 0; sleep(10);while (i < 5) system("date"); sl

21、eep(5);i+;while (1) system("date");sleep(10);現(xiàn)在依次運(yùn)行下列三個(gè)命令。第一個(gè)命令生成一個(gè) c 語(yǔ)言的可執(zhí)行文 件,文件名為 generate;第二個(gè)命令是每隔 5 秒和 10 秒把 date 命令的 輸出追加到 dataFile 文件中,這個(gè)命令為后臺(tái)執(zhí)行,注意后臺(tái)執(zhí)行的命 令尾部加上&字符;最后一個(gè)命令 tail f dataFile,顯示 dataFile 文 件的當(dāng)前內(nèi)容和新追加的數(shù)據(jù):gcc ch9.c o generate generate >> dataFile & tail f data

22、File在輸入 tail -f 命令 1 分鐘左右后,按<Ctrl-C>終止 tail 程序。用kill -9 pid 命令終止 generate 后臺(tái)進(jìn)程的執(zhí)行。注:pid 是執(zhí)行 generate 程序的進(jìn)程號(hào);使用 generate >> dataFile&命令后,屏幕打印后臺(tái)進(jìn)程作業(yè)號(hào)和進(jìn)程號(hào),其中第一個(gè)字段方括號(hào)內(nèi) 的數(shù)字為作業(yè)號(hào),第二個(gè)數(shù)字為進(jìn)程號(hào);也可以用 kill -9 %job 終止 generate 后臺(tái)進(jìn)程,job 為作業(yè)號(hào)。最后用 tail dataFile 命令顯示文件追加的內(nèi)容。給出這些過(guò)程的你 的會(huì)話(huà)。7.在前面你已把 dataFi

23、le 文件復(fù)制為 smallFile 文件的拷貝。用 ls l 命令觀察這 兩個(gè)文件的修改時(shí)間是否一樣。它們是不同的,dataFile 文件的修改時(shí)間應(yīng)該 是這個(gè)文件的創(chuàng)建時(shí)間。什么命令能夠保留這個(gè)修改時(shí)間不變呢?這兩個(gè)文件的 inode 號(hào)是多少?再把文件名 dataFile 改成(移動(dòng))newDataFile,文件 newDataFile 的 inode多少?與 dataFile 文件的 inode 號(hào)是否相同,若相同,為什么? 然后再把文件 newDataFile 移動(dòng)到/tmp 目錄下,文件/tmp/newDataFile 的inode 號(hào)是多少?比較結(jié)果如何,為什么? 給出完成上述工

24、作的會(huì)話(huà)過(guò)程。8.在屏幕上顯示文件 smallFile、mediumFile、largeFile 和/tmp/newDataFile 的字 節(jié)數(shù)、字?jǐn)?shù)和行數(shù)。smallFile 和/tmp/newDataFile 文件應(yīng)該是相同的。你能用 其它命令給出這些文件的字節(jié)數(shù)的大小嗎?什么命令。給出會(huì)話(huà)過(guò)程。9.打印 smallFile文件的兩個(gè)備份,且?guī)刑?hào)和頭部(標(biāo)題)信息。用什么命令?你能用其它命令完成這項(xiàng)工作嗎(注:可使用管道命令)?給出會(huì)話(huà)過(guò)程。10. 退出系統(tǒng).實(shí)驗(yàn)五 高級(jí)文件處理實(shí)驗(yàn)?zāi)康模?. 學(xué)習(xí)如何壓縮和解壓文件;2. 學(xué)習(xí)如何排序文本文件;3. 學(xué)習(xí)如何搜索文件或目錄;4. 學(xué)習(xí)如

25、何查找文本文件的內(nèi)容;5. 學(xué)習(xí)如何搜索某個(gè) Linux 命令存放在何處;6. 學(xué)習(xí)如何對(duì)文本文件使用 cutting和 pasting字段的數(shù)據(jù)庫(kù)操作。實(shí)驗(yàn)內(nèi)容:實(shí)驗(yàn)用到的命令:gzip、gunzip、sort、find、vi、cat、ls、cp、where、which、grep、cut、paste1.登錄到你的 Linux 系統(tǒng)2.顯示文件 midiumFile 和 largeFile 文件的大小。用 gzip 命令壓縮文件 midiumFile 和 largeFile,壓縮后的文件名字是什么?給出這兩個(gè)文件壓縮 前后的大小及壓縮率。如果你系統(tǒng)中有 zmore 命令,使用這個(gè)命令顯示壓 縮

26、文件 midiumFile 的內(nèi)容。最后再解壓這兩個(gè)文件。給出會(huì)話(huà)過(guò)程。3.以 GPA 作為關(guān)鍵字排序文件 newSmallFile 中的數(shù)據(jù),忽略空格。給出會(huì)話(huà)過(guò)程。4.搜索你的主目錄,找到所有的 HTML 和 C 程序文件(文件有.html、.htm或.c 擴(kuò)展名),顯示符合要求的文件路徑和文件名。給出你的會(huì)話(huà)。5.給出命令,搜索主目錄,顯示創(chuàng)建時(shí)間在/etc/passwd 之后的文件及其路徑。6.下面的命令在什么地方:ftp、ssh、tar、telnet、passwd 和 find?給出會(huì)話(huà)過(guò)程。7.用下面的 smallFile 文件(是前面 smallFile 文件的增強(qiáng)版,藍(lán)色字體部

27、分為 smallFile 文件的內(nèi)容),并完成以下任務(wù):(用 grep 命令)$ more smallFileJohnDoeECE3.54 111.222.3333JamesDavisECE 3.71 111.222.1111AlDavisCS2.63 111.222.2222AhmadRashidMBA3.74111.222.4444SamChuECE3.68chu111.222.5555ArunRoySS3.06 111.222.8888Rick

28、MarshCS2.34 111.222.6666JamesAdamCS2.77111.222.7777ArtPohmECE4.00111.222.9999JohnClarkECE2.68clark 111.111.5555NabeelAliEE3.56111.111.8888TomNelsonECE3.81 111.111.6666PatKingSS2.77 111.111.7777JakeZuluCS3.001

29、11.111.9999JohnLeeEE2.64jlee111.111.2222SunilRajECE3.36111.111.3333Charles RightEECS3.31111.111.4444DianeRoverECE3.87111.111.5555AzizInanEECS3.75111.111.1111LuJohnCS3.06 111.333.1111LeeChowEE3.74chowlc.www.ord 111.333.2222AdamGil

30、esSS2.54111.333.3333AndyJohnEECS3.98 111.333.4444a.顯示計(jì)算機(jī)科學(xué)專(zhuān)業(yè)(CS)學(xué)生的行及行號(hào)。給出你的會(huì)話(huà)。b.顯示 first name 為 John 的學(xué)生的行及行號(hào)。給出你的會(huì)話(huà)。c.顯示 first name 或 last name 為 Lee 的學(xué)生的行及行號(hào)。給出你的會(huì)話(huà)。d.顯示 e-mail 地址以 .org 結(jié)尾的學(xué)生的行及行號(hào)。給出你的會(huì)話(huà)。e.顯示 GPA 在 3.69 和 4.0 在之間的學(xué)生的行及行號(hào)。給出你的會(huì)話(huà)。f.顯示計(jì)算機(jī)科學(xué)學(xué)生 GPA 在 3.5 和 4

31、.0 在之間的學(xué)生的行及行號(hào)。給出 你的會(huì)話(huà)。8.用 cut 和 paste 命令,構(gòu)造并顯示一個(gè)表,包含以下四個(gè)字段:first name、last name、GPA 和 academic major(專(zhuān)業(yè))。給出你的會(huì)話(huà)。9. 退出系統(tǒng)實(shí)驗(yàn)六 管道與重定向?qū)嶒?yàn)?zāi)康模?. 學(xué)習(xí)如何使用 Linux 的 I/O 重定向和管道操作;2. 學(xué)習(xí)使用 I/O 重定向和管道操作完成單個(gè)命令不能實(shí)現(xiàn)的復(fù)雜任務(wù);3. 學(xué)習(xí)如何使用 I/O 重定向、管道和 FIFOs 去完成單個(gè)命令不可能實(shí)現(xiàn)的復(fù) 雜任務(wù)。實(shí)驗(yàn)用到的命令:|、<、>、find、cat、who、sort、cut、head、ls、w

32、c 等實(shí)驗(yàn)內(nèi)容:實(shí)驗(yàn)用到的命令:gzip、gunzip、sort、find、vi、cat、ls、cp、where、which、grep、cut、paste1. 登錄到你的 Linux 系統(tǒng)中2. 用 cat 命令創(chuàng)建一個(gè)名字為 test.data 文件,文件內(nèi)容如下。文件創(chuàng)建成功 后,用 cat 命令顯示這個(gè)文件的內(nèi)容。給出你的會(huì)話(huà)過(guò)程。This data is to be stored in a file called test.data by using the cat command. We can create the test.data file with this data by

33、using a text editor such as vi. However, the purpose of this exercise is to show an interesting use of output redirection.3.用一行命令顯示當(dāng)前登錄到系統(tǒng)中的用戶(hù)的數(shù)量。給出命令和輸出結(jié)果。4.用一行命令顯示第一個(gè)登錄到系統(tǒng)中的用戶(hù)的名字。給出命令和輸出結(jié)果。提示:使用 who、sort、cut、head 命令和管道實(shí)現(xiàn)。5.計(jì)算命令 ls l 的輸出中的字符數(shù)、單詞數(shù)和行數(shù),并把它顯示在顯示器 上。給出命令和輸出結(jié)果。6. 退出系統(tǒng)實(shí)驗(yàn)七 進(jìn)程實(shí)驗(yàn)?zāi)康模?. 了解有關(guān) L

34、inux 進(jìn)程的屬性;2. 學(xué)習(xí)有關(guān) Linux 的前臺(tái)、后臺(tái)進(jìn)程及守護(hù)進(jìn)程;3. 學(xué)習(xí)有關(guān) Linux 命令的順序執(zhí)行和并發(fā)執(zhí)行;4. 學(xué)習(xí)有關(guān)掛起和終止進(jìn)程;5. 了解 Linux 的信號(hào)。6.了解你系統(tǒng)中 Linux 進(jìn)程的層次結(jié)構(gòu)。實(shí)驗(yàn)用到的命令:ps、kill、nice、pstree 等實(shí)驗(yàn)內(nèi)容:1.進(jìn)入你的 linux 系統(tǒng)2.在你進(jìn)入系統(tǒng)中,有多少進(jìn)程在運(yùn)行?進(jìn)程 init、sched、cron、inetd 的 ID是多少。給出你得到這些信息的會(huì)話(huà)過(guò)程。1. $ ps A /ps a 顯示現(xiàn)行終端機(jī)下的所有程序,包括其他用戶(hù)的程序。 2. ps -A 顯示所有程序。3. init

35、、sched、cron 和 inetd 進(jìn)程的父進(jìn)程是哪一個(gè)?這些父進(jìn)程的 ID 是什 么?init、sched、cron 和 inetd 進(jìn)程的優(yōu)先數(shù)是多少?根據(jù)優(yōu)先數(shù)從高到 低(大到?。┝谐鲞@些進(jìn)程。給出會(huì)話(huà)過(guò)程。4. 你系統(tǒng)中有多少個(gè) HTTP 服務(wù)進(jìn)程?它們的進(jìn)程 ID 是什么?獲得上面每 個(gè)信息用一個(gè)命令實(shí)現(xiàn)。給出你的會(huì)話(huà)過(guò)程。5. 有多少個(gè) sh、bash、csh 和 tcsh 進(jìn)程運(yùn)行在你的系統(tǒng)中?給出會(huì)話(huà)過(guò)程。6. linux 系統(tǒng)中,進(jìn)程可以在前臺(tái)或后臺(tái)運(yùn)行。前臺(tái)進(jìn)程在運(yùn)行結(jié)束前一直 控制著終端。若干個(gè)命令用分號(hào)(;)分隔形成一個(gè)命令行,用圓括弧把 多個(gè)命令掛起來(lái),他們就在一

36、個(gè)進(jìn)程里執(zhí)行。使用“&”符作為命令分隔 符,命令將并發(fā)執(zhí)行??梢栽诿钚心┪布印?amp;”使之成為后臺(tái)命令。請(qǐng)用一行命令實(shí)現(xiàn)以下功能,它一小時(shí)后再屏幕上顯示文字“Time forLunch!”來(lái)提醒你去吃午餐。給出會(huì)話(huà)過(guò)程。注:可以使用 sleep 命令7. 寫(xiě)一個(gè)命令行,實(shí)現(xiàn) find 和 sort 命令的并發(fā)執(zhí)行。find 命令顯示在你的主 目錄下 foobar 文件的路徑;sort 命令以 GPA 作為關(guān)鍵字排序 smallFile 文 件,且忽略字段間的空格。兩個(gè)命令的錯(cuò)誤信息重定向到/dev/null 中。find 命令的輸出重定向到 find.out 文件中,sort 命

37、令的輸出重定向到 sort.out 文件中。當(dāng)命令運(yùn)行結(jié)束后,顯示 find.out 和 sort.out 的內(nèi)容。給出會(huì)話(huà) 過(guò)程。8.給出一個(gè)命令,終止 ID 為 12345 的進(jìn)程和 ID 為 2 的作業(yè)。9.寫(xiě)一命令行,使得 date 、uname a 、who 和 ps 并發(fā)執(zhí)行。給出會(huì)話(huà)過(guò)程。10.在 shell 下執(zhí)行下面的命令。3 個(gè) pwd 命令的運(yùn)行結(jié)果是什么?$ pwd$ bash$ cd usr$ pwd$ $<Ctrl-D>#終止 shell$ pwd注:“$”為系統(tǒng)提示符11. 用 pstree 命令顯示你系統(tǒng)中進(jìn)程層次結(jié)構(gòu)。12. Log out. 第三

38、部分(Shell編程)實(shí)驗(yàn)一 shell編程(一)一、實(shí)驗(yàn)名稱(chēng)shell編程一二、實(shí)驗(yàn)?zāi)康恼莆誷hell程序的建立和執(zhí)行方式三、實(shí)驗(yàn)環(huán)境Redhat Fedora 16四、實(shí)驗(yàn)內(nèi)容(一)shell程序的建立和執(zhí)行1依次執(zhí)行下列命令,理解終端打印的反饋信息意義。$ date$ pwd$ cd .$ cd2建立shell程序腳本$ vi ex1datepwdcd .cd存盤(pán)退出。3檢查文件是否存在。$ ls4執(zhí)行shell程序ex1,顯示反饋信息與單步命令操作相同。方式一:輸入定向到shell腳本$ bash < ex1方式二:以腳本名作為參數(shù)$ bash ex1$ bash ex1 /us

39、r方式三:將shell腳本的權(quán)限設(shè)置為可執(zhí)行,然后在提示符下直接執(zhí)行它步驟1:$ chmod a+x ex1步驟2:$ mv ex1 /usr/bin步驟:$ ex1 $ ex1 /usr 5. 在文本編輯器中錄入下面shell程序,保存為ex2,然后執(zhí)行之。#!/bin/bash# If no arguments, then listing the current directory.# Otherwise, listing each subdirectory.if test $# = 0then ls .else for i do ls -l $i | grep 'd' d

40、onefi實(shí)驗(yàn)二 shell編程(二)二、實(shí)驗(yàn)?zāi)康恼莆誷hell中各種變量和函數(shù)的使用三、實(shí)驗(yàn)環(huán)境Redhat Fedora 16四、實(shí)驗(yàn)內(nèi)容shell變量1用戶(hù)定義的變量。單步執(zhí)行下述命令,練習(xí)變量賦值,理解反饋信息。$ dir=/home/mengqc/ex1$ echo $dir$ echo dir$ today=Sunday$ echo $today $Today$ str=”Happy New Year.”$ echo "Wish You $str"2read命令(1)單步執(zhí)行下述命令:$ read name -輸入read命令zhangsan -輸入name的值

41、$ echo "Your Name is $name."Your Name is zhangsan -顯示輸出的結(jié)果$ read a b c -read命令有三個(gè)參數(shù)cuit cn edu -輸入三個(gè)字符串,中間以空格隔開(kāi)$ echo "Email : $a. $c. $b" Email : -顯示輸出結(jié)果 (2)將上述四個(gè)單步命令編輯為shell程序,取名ex3。$ vi ex3 (輸入四行命令,編后存盤(pán))。(3)運(yùn)行shell程序ex3。$ bash ex33特殊變量(1)建立一個(gè)內(nèi)容如下的shell程序ex4:echo “Program name

42、is $0”echo “There are totally $# parameters passed to this program”echo “The last is $?”echo “The parameters are $*”(2)按如下執(zhí)行程序ex4,觀察反饋信息:$ bash ex4 this is a test program實(shí)驗(yàn)三 shell編程(三)二、實(shí)驗(yàn)?zāi)康氖炀氄莆誷hell程序設(shè)計(jì)中各種控制結(jié)構(gòu)語(yǔ)句是使用三、實(shí)驗(yàn)環(huán)境Redhat Fedora 16四、實(shí)驗(yàn)內(nèi)容控制結(jié)構(gòu)1if語(yǔ)句(1)理解并建立shell程序ex5:echo “The current directory i

43、s pwd”if test -f "$1" # 如果位置參數(shù)$1對(duì)應(yīng)的文件then echo "$1 is an ordinary file." # 是普通文件“- F”則顯示本行else echo "$1 is not anordinary file." # 否則顯示本行fi執(zhí)行ex5,并理解反饋信息:$ bash ex5 ex4(2)理解并建立shell程序ex6:if test -f "$1" then cat $1else if test -d "$1" then (cd $1 ; ca

44、t * ) else echo "$1 is neither a file nor a directory." fifi執(zhí)行ex6,并理解反饋信息。2. case 語(yǔ)句2while語(yǔ)句(1)理解并建立shell程序ex7:while $1 do if -f $1 then echo "display : $1" cat $1 else echo " $1 is not a file name." fi shift #后續(xù)位置參數(shù)左移done執(zhí)行ex7,并理解反饋信息。(2)編寫(xiě)求前五個(gè)偶數(shù)之和的shell程序ex8:loopcount

45、=0result=0while $loopcount lt 5 do (loopcount=loopcount+1)(increment=loopcount * 2)let “result=result + increment”doneecho "result is $result"3for語(yǔ)句(1)理解并建立shell程序ex9:for day in Monday Wednesday Friday Sundaydo echo $daydone執(zhí)行ex9,并理解反饋信息。(2)理解并建立shell程序ex10:mkdir backupfor filename in lsdo

46、 cp $filename backup/$filename if $? -ne 0 then echo “copy for $filename failed” fidone執(zhí)行ex10,并理解反饋信息。4Select語(yǔ)句理解并建立shell程序ex11:select item in Continue Finshdo if $item = “Finsh” ; then break fidone 執(zhí)行ex11,并理解反饋信息。理解并建立shell程序ex12:while truedoselect menuItem in create input delete exitdo case “$menu

47、Item” in create) echo “create a file.” break; input) echo “input data to file.” break; delete) echo “delete the file.” break; exit) exit;esac donedone執(zhí)行ex12,并理解反饋信息。實(shí)驗(yàn)四 shell編程(四)一、實(shí)驗(yàn)名稱(chēng)shell編程四二、實(shí)驗(yàn)?zāi)康牧私鈙hell編程中特殊字符的含義三、實(shí)驗(yàn)環(huán)境Redhat Fedora 16四、實(shí)驗(yàn)內(nèi)容(四)函數(shù)1理解并建立shell程序ex12:displaymonth() case $1 in 1) echo

48、 “Month is January”; 2) echo “Month is February” ; 3) echo “Month is March” ; 4) echo “Month is April” ; 5) echo “Month is May” ; 6) echo “Month is June” ; 7) echo “Month is July” ; 8) echo “Month is August” ; 9) echo “Month is September” ; 10) echo “Month is October” ; 11) echo “Month is November”

49、; 12) echo “Month is December” ; *) echo”Invalid parameter” esacdisplaymonth $1執(zhí)行ex13,并理解反饋信息。$ bash ex12 3$ bash ex12 10實(shí)驗(yàn)實(shí)例:請(qǐng)?jiān)趘i中逐一編輯并執(zhí)行以下10個(gè)shell腳本程序,然后結(jié)合所學(xué)知識(shí)和程序的輸出分析各程序中各語(yǔ)句的含義:1.編寫(xiě)一個(gè)簡(jiǎn)單的回顯用戶(hù)名的shell程序。#!/bin/bash#filename:dateecho "Mr.$USER,Today is:"echo 'date'echo Whish you a l

50、ucky day!2.使用if-then語(yǔ)句創(chuàng)建簡(jiǎn)單的shell程序。#!/bin/bash#filename:bbbbecho -n "Do you want to continue: Y or N"read ANSWERif $ANSWER=N -o $ANSWER=n then exitfi3.使用if-then-else語(yǔ)句創(chuàng)建一個(gè)根據(jù)輸入的分?jǐn)?shù)判斷是否及格的shell程序。#!/bin/bash#filename:akecho -n "please input a score:"read SCOREecho "You input Score is $SCORE"if $SCORE -ge 60 ;then echo -n "Congratulation!You Pass the examination."elseecho -n "Sorry!You Fail t

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論