版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、版本號:1.0 撰寫人:孫自廣日期:2014-01-27操作系統(tǒng)實驗指導(dǎo)書 (Linux版) 廣西工學(xué)院計算機工程系 2014年01月前言 操作系統(tǒng)是計算機科學(xué)與技術(shù)專業(yè)(軟件工程方向)的一門非常重要的專業(yè)課程,操作系統(tǒng)是應(yīng)用軟件與底層硬件的橋梁。通俗的說“只有搞懂了操作系統(tǒng),才能真正理解計算機”。學(xué)好操作系統(tǒng)課程可以提升學(xué)生應(yīng)用計算機解決問題的能力,并獲得開發(fā)大型復(fù)雜軟件的經(jīng)驗。操作系統(tǒng)至關(guān)重要,但學(xué)好它并不容易。雖然Windows界面友好,方便使用,但是底層運行機制被有效的隱藏,在很多人眼里計算機還是一個黑匣子。在選擇教學(xué)用操作系統(tǒng)上頗費苦心,目前可用于教學(xué)的操作系統(tǒng)有Minix, Noc
2、hos, Geekos, JOS,F(xiàn)reeBSD等,而Linux不僅是開源的,而且資料豐富并擁有大量的應(yīng)用軟件,所有我們選擇了Linux作為實驗的平臺。本實驗指導(dǎo)書參閱了很多網(wǎng)上的優(yōu)秀資源,在此對提供這些資源的作者,表示感謝。目 錄前言21.操作系統(tǒng)實驗概述41.1 實驗平臺及工具41.2 基本內(nèi)容51.3 考核規(guī)則52. 系統(tǒng)應(yīng)用實驗項目62.2 Linux 應(yīng)用實驗項目 2:shell基本命令82.3 Linux應(yīng)用實驗項目 3: 文件編輯102.5 Linux 應(yīng)用實驗項目 5:文件安全162.6 Linux 應(yīng)用實驗項目 6: 基本文件處理182.7 Linux應(yīng)用實驗項目7:高級文件
3、處理212.9 Linux 應(yīng)用實驗項目 8:管道與I/O重定向232.10 Linux 應(yīng)用實驗項目 9:進程243.系統(tǒng)開發(fā)實驗項目273.1 Linux 進程創(chuàng)建293.2 進程軟中斷通信343.3 進程管道通信37271.操作系統(tǒng)實驗概述實踐對于操作系統(tǒng)課程是至關(guān)重要的,但這種實踐決不應(yīng)該僅僅停留在某些算法的模擬實現(xiàn)上。就算在編程實現(xiàn)了一個完整的“文件系統(tǒng)”,但如果沒有和磁盤驅(qū)動、高速緩存、內(nèi)存管理等模塊聯(lián)系在一起,即使編寫了大量的代碼,也只是實現(xiàn)了某些概念(更像是一個數(shù)據(jù)結(jié)構(gòu)課程設(shè)計),仍然不能控制可實際運行的操作系統(tǒng)。本實驗指導(dǎo)書強調(diào)在可實際運行的操作系統(tǒng)上的實踐。 1.1 實驗平
4、臺及工具1. Ubuntu Linux考慮到實驗的可操作性,選擇了成熟的Linux版本,具體平臺可選擇流行的Ubuntu,讀作“烏邦圖”。Ubuntu也許不是目前最好用的Linux桌面發(fā)行版,但它一定是最流行的!它最重要特點是易用,非常的易用。 現(xiàn)在,已經(jīng)有越來越多的人開始用Ubuntu完全代替Windows,享受更加自由、安全、守法的感覺。Ubuntu的主頁是 另外國內(nèi)的雨林木風(fēng)團隊,開發(fā)一個基于ubuntu的高仿XP開源系統(tǒng),界面和Windows XP極為相似(/)。2. GCC編譯器GCC是和Linux一起成長起來的編譯器。Linux最初的版本就是由G
5、CC編譯的?,F(xiàn)在GCC也是在自由軟件領(lǐng)域應(yīng)用最廣泛的編譯器。所以,我們也選擇GCC作為本實驗的指定編譯器。 3. GDB調(diào)試器GDB調(diào)試器是GCC編譯器的兄弟。作為自由軟件領(lǐng)域幾乎是唯一的調(diào)試器,它秉承了*nix類操作系統(tǒng)的一貫風(fēng)格,采用純命令行操作,較類似dos下的debug。關(guān)于它的使用方法請看GDB使用手冊。 4.cygwincygwin是一個在windows平臺上運行的unix模擬環(huán)境,是cygnus solutions公司開發(fā)的自由軟件。它對于學(xué)習(xí)unix/linux操作環(huán)境,或者從unix到windows的應(yīng)用程序移植,或者進行某些特殊的開發(fā)工作,尤其是使用gnu工具集在windo
6、ws上進行嵌入式系統(tǒng)開發(fā),非常有用。要安裝網(wǎng)絡(luò)版的cygwin,可以到,點擊"Install Cygwin Now!"。這樣會先下載一個叫做setup.exe的GUI安裝程序,用它能下載一個完整的cygwin。我們把cygwin的作為一個備用工具,可以通過它來練習(xí)命令行操作。1.2 基本內(nèi)容本實驗分為兩個階段:系統(tǒng)應(yīng)用實驗和系統(tǒng)開發(fā)實驗。表1. 系統(tǒng)應(yīng)用實驗項目編號項目備注1起步2Linux shell基本命令3文件編輯4文件和文件系統(tǒng)結(jié)構(gòu)5文件安全6基本文件處理7高級文件處理8管道和I/O重定向9進程表2. 系統(tǒng)開發(fā)實驗項目編號項目備注1Linux進程創(chuàng)建2進程軟中斷3進
7、程管道通信1.3 考核規(guī)則每次考核,老師會到學(xué)生所在的電腦旁,觀看項目的運行結(jié)果,并進行簡單的答辯。操作系統(tǒng)實驗的成績主要由學(xué)生所作的實踐工作和取得的實驗結(jié)果來定,同時輔以學(xué)生撰寫的實驗報告作為部分。因此成績主要考核三方面的內(nèi)容: 1. 實踐工作需要達(dá)到一定的量; 2. 實驗內(nèi)容要求得到正確、豐富的實驗結(jié)果; 3. 實驗報告的撰寫情況。其中前兩項是考察的重點。2. 系統(tǒng)應(yīng)用實驗項目目前入學(xué)的計算機專業(yè)學(xué)生,一開始便使用Windows系統(tǒng),以至于相當(dāng)一部分學(xué)生連最常用的DOS命令都不知道。終端命令脫去了“視窗”華麗的外衣,它的高效與靈活是計算機系統(tǒng)引入入勝的一個特點。系統(tǒng)應(yīng)用實驗以Linux系統(tǒng)
8、的使用為主,本實驗內(nèi)容可以和“Linux環(huán)境與開發(fā)”課程有效銜接,鍛煉學(xué)生操縱計算機的能力,加深對文件系統(tǒng)的了解。本階段安排有11個項目,每個項目基本都可以在2-3個學(xué)時內(nèi)做完。2.1 Linux 應(yīng)用實驗項目1:虛擬機環(huán)境下的Linux系統(tǒng)安裝1安裝虛擬機軟件VMWare Workstation v6.52創(chuàng)建虛擬機選擇File | New | New Virtual Machine選擇Custom方式,并進行以下配置:1. 虛擬機的操作系統(tǒng)類型(Guest Operating System)為Linux2. 內(nèi)存512 MB3. 共享網(wǎng)絡(luò)連接4. 創(chuàng)建虛擬硬盤,默認(rèn)大小為8GB,文件名Li
9、nux.vmdk,類型IDE 0:0注意在Advanced按鈕界面下選擇IDE硬盤仿真,不要使用SCSI硬盤仿真。VMWare缺省選擇為SCSI硬盤仿真。另外,系統(tǒng)自動配置CD-ROM IDE 1:0,USB控制器 Present,等等3安裝Linux整個安裝(及其其后的軟件安裝),只需要ubuntu 9.1的第一張光盤1. 從光盤啟動如果使用.iso光盤鏡像文件,請在VMWare軟件的虛擬機設(shè)置中,選擇光盤鏡像仿真。具體操作:1. VMWare中選中當(dāng)前的虛擬機2. 選擇菜單Edit | Virtual Machine Setting . 3. 在彈出的對話框中選擇Hardware頁面(缺省
10、),在Device列表中選擇CD ROM4. 在右側(cè)Connection中,選擇Use ISO Image,并指定光盤鏡像的位置2. 創(chuàng)建(虛擬)磁盤上的分區(qū)時,選擇自動創(chuàng)建3. 此后,按照屏幕提示進行安裝2.2 Linux 應(yīng)用實驗項目 2:shell基本命令實驗?zāi)康模壕毩?xí) data、cal、pwd 等幾個常用的 Linux 命令。實驗內(nèi)容:本實驗用到的命令有:date、cal、pwd、write、alias、uptime、man 等1. 登錄你的 Linux 系統(tǒng)。2. 用命令 date 顯示當(dāng)前的時間,給出顯示的結(jié)果。3. 用 cal 命令顯示下列年份的日歷:4、52、1752、1952
11、、2005、2006 a)給出你顯示以上年份年歷的命令b)1752 年有幾天,為什么?提示:在因特網(wǎng)上查找答案4. 用 pwd 顯示你的主目錄(home directory)名字,給出 pwd 顯示的結(jié)果。5. 使用 write 命令和已經(jīng)登錄系統(tǒng)的一個朋友進行通信。6. 使用 alias 命令顯示系統(tǒng)中的命令的別名,給出顯示的結(jié)果。7. 使用 uptime 命令判斷系統(tǒng)已啟動運行的時間和當(dāng)前系統(tǒng)中有多少登錄用戶, 給出顯示的結(jié)果。8. 通過因特網(wǎng)或 Linux 的 man 命令得到下面的 shell 命令、系統(tǒng)調(diào)用和庫函數(shù)功 能描述及每個命令使用例子:CommandShort Descrip
12、tionExample Usetouchcpmvrmmkdirrmdirlslprcdpwdopenreadwriteclosepipesocketmkfifosystemprintf9. 退出系統(tǒng)2.3 Linux應(yīng)用實驗項目 3: 文件編輯 實驗?zāi)康模?. 練習(xí)用 pico 編輯器編輯文本文件;2. 練習(xí)用 vi 編輯器編輯文本文件;3. 練習(xí)用 emacs 編輯器編輯文本文件;實驗內(nèi)容:Linux 是文本驅(qū)動(text-driven)的操作系統(tǒng),Linux 常用的編輯器有:l 文本界面下的編輯器u vi : 最令 UNIX 類操作系統(tǒng)初學(xué)者裹足不前的 editor,然而只要你習(xí)慣于操作,
13、你會覺得它比任何的 editor 都好用,且功能強大。u pico 或 nano :一種風(fēng)格很像 Microsoft DOS 的 EDIT 的一種文本編輯器。一些發(fā)行版沒有安裝。u emacs: linux 編輯器,功能強大的全屏幕編輯器。u 命令行方式建議使用 emacs 或 vil 圖形界面的編輯器u emacs 編程編輯器u gedit 全屏幕文本編輯程序1. 登錄你的 Linux 系統(tǒng)。2. pico 文本編輯器的使用:a. 在 shell 提示符下,輸入 pico 并按<Enter>鍵;b. 在 pico 的文本區(qū),將光標(biāo)置于首行并輸入文字:This is txet th
14、at I have enteres on a lioe in the pico editor.按<Delete>鍵和方向鍵來修正拼寫錯誤;c. 按三次<Enter>鍵;d. 輸入:This is a line of text three lines down from the first line. e. 按<Ctrl-O>鍵;f.在 File Name To Write 提示后輸入 linespaced,并按<Enter>鍵;g. 按下<Ctrl-X>鍵回到 shell 提示符下;h. 在 shell 提示符下輸入 more lin
15、espaced 并按<Enter>鍵。以上步驟完成后,屏幕上看到了什么?3. 運行 pico 并創(chuàng)建帶有 3 行文本的一個文件。然后,使用 pico 的剪切和粘貼功 能來復(fù)制這 3 行,使該文件包含 9 行文本。以 prob3 為文件名保存該文件。4. vi 編輯器的使用:a. 在 shell 提示符下,輸入 vi firscrip 并按<Enter>鍵。vi 的界面將出現(xiàn)在顯示屏上;b. 輸入 a,輸入 ls la,并按<Enter>鍵;c. 輸入 who,并按<Enter>鍵;d. 輸入 pwd,再按<Enter>鍵。這時屏幕將如
16、下圖所示:ls la who pwde. 輸入:wq,并按<Enter>鍵;f.在 shell 提示符下,輸入 bash firscrip 并按<Enter>鍵;g. 觀察結(jié)果。當(dāng)前的工作目錄中有多少個文件?他們的名稱和大???還有誰在使用你的計算機系統(tǒng)?當(dāng)前的工作目錄是什么?4.在系統(tǒng)中運行 vi 并創(chuàng)建一個 bash shell 腳本文件,它包含下面行:echo $SHELLchsh l然后以 sheller 為名保存該文件并退出 vi。在 shell 提示符下,輸入 bash sheller 并按<Enter>鍵。屏幕上給出了當(dāng)前的 shell 和一個
17、linux 文件,該文件的內(nèi)容包 含系統(tǒng)中可用的其他 shell。給出運行的結(jié)果。5.登錄你的 Linux 系統(tǒng),運行 emacs 程序,編輯一個新文件,使用-nw 命令選項。a. 在文件的第一行輸入你的名字;b. 在文件的第二行輸入“"The emacs editor is the most complex and customizable of the Linux text editors".”6.退出系統(tǒng)2.4 Linux應(yīng)用實驗項目 4:文件與文件系統(tǒng)結(jié)構(gòu)實驗?zāi)康模?. 學(xué)習(xí)如何創(chuàng)建一個 Linux 目錄的層次結(jié)構(gòu);2. 學(xué)習(xí)有關(guān)絕對路徑和相對路徑;3. 學(xué)習(xí)有關(guān)主
18、目錄(home directory)、登錄目錄、工作目錄(當(dāng)前目錄);4. 學(xué)習(xí)如何有效導(dǎo)航 Linux 目錄層次;5. 學(xué)習(xí)有關(guān)文件內(nèi)容類型和隱含文件;6. 學(xué)習(xí)有關(guān)文件屬性。實驗內(nèi)容:Linux 文件系統(tǒng)的結(jié)構(gòu)如下:Linux 系統(tǒng)主要目錄說明:§ /bin:也稱二進制(binary)目錄,包含了那些供系統(tǒng)管理員和普通用戶使用的重要的 Linux 命令的可執(zhí)行文件。一些常用的命令有:bash、cat、chmod、cp、date、echo、kill、ln、mail、mkdir、more、mv、ps、pwd、 rm、rmdir、sh、stty、su、tcsh、uname 和 vi。一
19、些用于系統(tǒng)恢復(fù)的命令 如:tar、gzip、gunzip 和 zcat。還有一些網(wǎng)絡(luò)命令如:domainname、hostname、 netstat 和 ping。目錄/usr/bin 下存放了大部分的用戶命令。§ /boot :在這個目錄下存放系統(tǒng)啟動時要用到的程序。包括 Linux 內(nèi)核的二進制映像。內(nèi)核文件名是 vmlinux 加上版本和發(fā)布信息。§ /dev:dev 是設(shè)備(device)的英文縮寫。在這個目錄中包含了所有 linux系統(tǒng)中使用的外部設(shè)備。但是這里并不是放的外部設(shè)備的驅(qū)動程序。§ /etc :etc 這個目錄是 linux 系統(tǒng)中最重要的目
20、錄之一。在這個目錄下存放了系統(tǒng)管理時要用到的各種配置文件和子目錄。我們要用到的網(wǎng)絡(luò)配置文 件,文件系統(tǒng),x 系統(tǒng)配置文件,設(shè)備配置信息,設(shè)置用戶信息等都在這 個目錄下。§ /sbin :這個目錄是用來存放系統(tǒng)管理員的系統(tǒng)管理程序。§ /home :存放用戶的主目錄。如果建立一個用戶,用戶名是“ji”,那么在/home 目錄下就有一個對應(yīng)的/home/ji 路徑,用來存放用戶的主目錄。§ /lib :lib 是庫(library)英文縮寫。這個目錄是用來存放系統(tǒng)動態(tài)連接共享庫的。幾乎所有的應(yīng)用程序都會用到這個目錄下的共享庫。§ /mnt :這個目錄主要用來
21、臨時裝載文件系統(tǒng),系統(tǒng)管理員運行 mount 命令完成裝載工作。§ /opt:該目錄用來安附加軟件包§ /proc :目錄存放了進程和系統(tǒng)得信息,可以在這個目錄下獲取系統(tǒng)信息。這些信息是在內(nèi)存中,由系統(tǒng)自己產(chǎn)生的。§ /root :根(root)用戶的主目錄。如果用戶是以超級用戶的身份登錄的,這個就是超級用戶的主目錄。§ /sbin,/usr/sbin,/usr/root/sbin:存放了系統(tǒng)管理的工具、應(yīng)用軟件和通用的 root 用戶權(quán)限的命令。§ /tmp :用來存放不同程序執(zhí)行時產(chǎn)生的臨時文件。§ /usr :是 linux 文
22、件系統(tǒng)中最大的目錄之一。它存放了可以在不同主機間共享的只讀數(shù)據(jù)。§ /lost+found : 目錄中存放所有和其他目錄沒有關(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 : 用來存放易變的數(shù)據(jù),這些數(shù)據(jù)在系統(tǒng)運行過程中會不斷變化。/var/spool/mail 存放收到的電子郵件,/va
23、r/log 存放系統(tǒng)的日志。本實驗用到的命令有:PATH, cd, echo, file, ls, mkdir , pwd , rmdir 等。1. 登錄到你的 Linux 系統(tǒng)2. 在你的主目錄下建立如下圖所示的目錄樹。給出完成這項工作的所有會 話。(會話是指你命令的輸入和結(jié)果的輸出,你提交的作業(yè)要包含這些內(nèi) 容)3. 顯示你登錄目錄的絕對路徑,給出這個會話過程。4. 在系統(tǒng)中,執(zhí)行 cd professional/courses 命令,回答下列問題:a. 你的主目錄的絕對路徑是什么?給出獲得該絕對路徑的命令及命令輸出。b.acm 目錄的絕對路徑是什么?c. 給出 acm 目錄的兩個相對路徑
24、。d.執(zhí)行 cd major/cs381/labs 命令。然后執(zhí)行一個命令顯示當(dāng)前目錄的 絕對路徑,給出這個會話過程。e. 給出獲得你的主目錄三個不同的命令。5. 改變目錄到/usr。在這個目錄下有多少個文件和目錄,他們的文件內(nèi)容類 型是什么?6. 在/usr/bin 目錄下有多少個普通文件、目錄文件和鏈接文件?如何得到這個答案?7. 你系統(tǒng)中的 Linux 內(nèi)核映像文件在那個目錄中?給出這個可執(zhí)行內(nèi)核映像文件的名稱和文件內(nèi)容類型。8. Linux 系統(tǒng)規(guī)定,隱含文件是首字符為”.”的文件,如.profile。在你的系統(tǒng)中查找.profile 和.login 文件,他們在什么地方,給出這兩個文
25、件部分內(nèi)容。9. 顯示你的主目錄下的所有隱含文件的文件名。給出你的會話過程。10. 下面這些目錄的 inode 號是多少:root、你的主目錄(home directory)、/temp、 /professional、和/personal? 寫出會話過程。注:符號“”為主目錄11. 在 labs 目錄下,用文本編輯器創(chuàng)建一個名字為 lab1 的文件,文件的內(nèi)容 為:“Use a text editor to create a file called lab1 under the labs directory in your directory hierarchy. The file shoul
26、d contain the text of this problem. ”。 回答下列問題:a. lab1 文件的類型,用 Linux 命令回答這個問題,給出會話過程。b. lab1 文件內(nèi)容的類型,用 Linux 命令回答這個問題,給出會話過程。12. 退出系統(tǒng)。2.5 Linux 應(yīng)用實驗項目 5:文件安全實驗?zāi)康模?. 學(xué)習(xí) Linux 的文件訪問權(quán)限,用戶的類型和文件訪問權(quán)限的類型;2. 學(xué)習(xí)如何確定一個文件的訪問權(quán)限;3. 學(xué)習(xí)如何設(shè)置和改變一個文件的訪問權(quán)限;4. 學(xué)習(xí)如何在文件或目錄的創(chuàng)建時設(shè)置缺省訪問權(quán)限。實驗內(nèi)容:在 Linux 系統(tǒng)中,一個文件的用戶類型有三種:所有者( o
27、wner users )、 組( group users)、其他人( Other users )Linux 系統(tǒng)中,文件有三種訪問權(quán)限:讀(r)-允許讀某個文件;寫(w) -允許 寫、修改和刪除某個文件;執(zhí)行(x) -允許執(zhí)行(run)某個文件。對于一個目錄而言:讀(r) -允許用戶列出目錄的內(nèi)容,使用 ls 命令;寫 (w)-允許用戶在目錄下建立新文件,刪除子目錄和文件;執(zhí)行(x)-允許用戶搜索 這個目錄,用 cd 命令。使用 ls -l 或 ls -ld 命令顯示文件的訪問權(quán)限:本實驗使用的命令有:finger、cd、mkdir、ls、chmod、touch、umask 等1.登錄到你的
28、Linux 系統(tǒng)2.根據(jù)下列的要求,寫出得到這些信息的會話過程:a. 你的用戶名;b. 你的用戶 ID;c. 你的組 ID 和組名字;d. 在你同一組中的其他用戶名。注:在/etc/passwd 和/etc/group 文件中查到部分信息,要理解這兩個文件的格式。3. 系統(tǒng)管理員給你的主目錄設(shè)置的權(quán)限是什么?使用什么命令來得到這個答案,給出你的會話過程。6.在你的主目錄中的 temp、professional 和 personal 三個子目錄,設(shè)置使自己(owner)擁有讀、寫、執(zhí)行 3 種訪問權(quán)限,設(shè)置其它用戶只有讀和執(zhí)行權(quán)限。 在/tmp 目錄下創(chuàng)建名為 d1、d2 和 d3 的目錄。在
29、d1 目錄下,用 touch 命令創(chuàng)建一個名為 f1 的空文件。給出 d1、d2、d3 和 f1 的訪問權(quán)限。給出完成這些工作 的會話。7 設(shè)置當(dāng)前目錄為你的主目錄,設(shè)置/temp 僅執(zhí)行權(quán)限,然后執(zhí)行 ls ld temp,再執(zhí)行 ls l temp 命令。結(jié)果如何?成功執(zhí)行 ls l temp 命令需要的 最小權(quán)限是什么?請設(shè)置 temp 目錄的最小權(quán)限,然后再一次執(zhí)行 ls l temp 命令。給出這個過程的會話。注:登錄系統(tǒng)不能使用 root 用戶8. 用 umask 命令顯示當(dāng)前的掩碼。把你的主目錄設(shè)置為當(dāng)前目錄,然后在/temp/d1 目錄下,創(chuàng)建 d11 目錄,用 touch 命
30、令創(chuàng)建 f2 空文件。在 temp 目錄 下用編輯器創(chuàng)建 hello.c 文件,該文件的內(nèi)容如下:#include <stdio.h>main(void)printf (“Hello, world!n”);再運行命令 gcc o greeting hello.c ,生成了可執(zhí)行文件 greeting。長列表顯示 f2、 hello.c、greeting 和 d1 文件訪問權(quán)限。9. 退出系統(tǒng)2.6 Linux 應(yīng)用實驗項目 6: 基本文件處理實驗?zāi)康模?.學(xué)會如何顯示文本文件的內(nèi)容;2.學(xué)會如何復(fù)制、追加、移動和刪除;3.學(xué)會如何合并文件;4.學(xué)會如何確定文件的大?。?.學(xué)會如何比
31、較文本文件;6.學(xué)會使用各種打印命令。實驗內(nèi)容:實驗用到的命令:|、man、vi、cat、nl、head、tail、ls、cp、wc、lpr 等1. 登錄到你的 Linux 系統(tǒng)2. 創(chuàng)建幾個大小不等的文本文件,供本實驗和后面幾個實驗用。用 man cat > mediumFile 命令創(chuàng)建中等大小的文件;用 man bash > largeFile 命令創(chuàng)建 一個大文件;在創(chuàng)建一個名字為 smallFile 關(guān)于學(xué)生數(shù)據(jù)的小文件,文件每 行內(nèi)容(藍(lán)色字體部分)如下,注意字段之間用 tab 符隔開:FirstName LastNameMajorGPAEmailPhoneHere i
32、s the minimum amount of data that you will have in this file.JohnDoeECE3.54111.222.3333JamesDavisECE3.71111.222.1111AlDavisCS2.63111.222.2222AhmadRashidMBA3.04111.222.4444SamChuECE3.68chu111.222.5555ArunRoySS3.86111.222.8888Ric
33、kMarshCS2.34111.222.6666JamesAdamCS2.77111.222.7777ArtPohmECE4.00111.222.9999JohnClarkECE2.68clark111.111.5555NabeelAliEE3.56111.111.8888TomNelsonECE3.81111.111.6666PatKingSS3.77111.111.7777JakeZuluCS3.00111.
34、111.9999JohnLeeEE3.64jlee111.111.2222SunilRajECE3.86111.111.3333CharlesRightEECS3.31111.111.4444DianeRoverECE3.87111.111.5555AzizInanEECS3.75111.111.11113. 使用 cat 和 nl 命令顯示 smallFile 文件內(nèi)容并顯示行號。兩個命令的輸出應(yīng)該 完全一樣。給出完成這項任務(wù)的命令。4. 用 more 命令顯示 smallFil
35、e 和 mediumFile 文件內(nèi)容,每屏顯示 18 行。給出你的命令(顯示的內(nèi)容不需要)。5. 顯示 largeFile 文件的開始 12 行內(nèi)容,顯示 smallFile 文件的最后 5 行內(nèi)容, 要用什么命令?哪個命令能顯示 smallFile 文件從第 6 行開始到結(jié)束,且逆序 顯示?給出你的會話。6. 本實驗?zāi)康挠^察使用帶-f 選項的 tail 命令。復(fù)制 smallFile 文件,文件名為dataFile,創(chuàng)建一個文件名為 ch7.c 的 c 語言文件,內(nèi)容如下:#include <stdio.h>main()int i; i = 0; sleep(10);while
36、 (i < 5) system("date"); sleep(5);i+;while (1) system("date");sleep(10);現(xiàn)在依次運行下列三個命令。第一個命令生成一個 c 語言的可執(zhí)行文 件,文件名為 generate;第二個命令是每隔 5 秒和 10 秒把 date 命令的 輸出追加到 dataFile 文件中,這個命令為后臺執(zhí)行,注意后臺執(zhí)行的命 令尾部加上&字符;最后一個命令 tail f dataFile,顯示 dataFile 文 件的當(dāng)前內(nèi)容和新追加的數(shù)據(jù):gcc ch9.c o generate gene
37、rate >> dataFile & tail f dataFile在輸入 tail -f 命令 1 分鐘左右后,按<Ctrl-C>終止 tail 程序。用kill -9 pid 命令終止 generate 后臺進程的執(zhí)行。注:pid 是執(zhí)行 generate 程序的進程號;使用 generate >> dataFile&命令后,屏幕打印后臺進程作業(yè)號和進程號,其中第一個字段方括號內(nèi) 的數(shù)字為作業(yè)號,第二個數(shù)字為進程號;也可以用 kill -9 %job 終止 generate 后臺進程,job 為作業(yè)號。最后用 tail dataFile
38、命令顯示文件追加的內(nèi)容。給出這些過程的你 的會話。7. 在前面你已把 dataFile 文件復(fù)制為 smallFile 文件的拷貝。用 ls l 命令觀察這 兩個文件的修改時間是否一樣。它們是不同的,dataFile 文件的修改時間應(yīng)該 是這個文件的創(chuàng)建時間。什么命令能夠保留這個修改時間不變呢?這兩個文 件的 inode 號是多少?再把文件名 dataFile 改成(移動)newDataFile,文件 newDataFile 的 inode多少?與 dataFile 文件的 inode 號是否相同,若相同,為什么? 然后再把文件 newDataFile 移動到/tmp 目錄下,文件/tmp/n
39、ewDataFile 的inode 號是多少?比較結(jié)果如何,為什么? 給出完成上述工作的會話過程。8. 在屏幕上顯示文件 smallFile、mediumFile、largeFile 和/tmp/newDataFile 的字 節(jié)數(shù)、字?jǐn)?shù)和行數(shù)。smallFile 和/tmp/newDataFile 文件應(yīng)該是相同的。你能用 其它命令給出這些文件的字節(jié)數(shù)的大小嗎?什么命令。給出會話過程。9. 打印 smallFile文件的兩個備份,且?guī)刑柡皖^部(標(biāo)題)信息。用什么命令?你能用其它命令完成這項工作嗎(注:可使用管道命令)?給出會話過程。10. 退出系統(tǒng).2.7 Linux應(yīng)用實驗項目7:高級文件
40、處理實驗?zāi)康模?. 學(xué)習(xí)如何壓縮和解壓文件;2. 學(xué)習(xí)如何排序文本文件;3. 學(xué)習(xí)如何搜索文件或目錄;4. 學(xué)習(xí)如何查找文本文件的內(nèi)容;5. 學(xué)習(xí)如何搜索某個 Linux 命令存放在何處;6. 學(xué)習(xí)如何對文本文件使用 cutting和 pasting字段的數(shù)據(jù)庫操作。實驗內(nèi)容:實驗用到的命令:gzip、gunzip、sort、find、vi、cat、ls、cp、where、which、grep、cut、paste1. 登錄到你的 Linux 系統(tǒng)2. 顯示文件 midiumFile 和 largeFile 文件的大小。用 gzip 命令壓縮文件 midiumFile 和 largeFile,壓
41、縮后的文件名字是什么?給出這兩個文件壓縮 前后的大小及壓縮率。如果你系統(tǒng)中有 zmore 命令,使用這個命令顯示壓 縮文件 midiumFile 的內(nèi)容。最后再解壓這兩個文件。給出會話過程。3. 以 GPA 作為關(guān)鍵字排序文件 newSmallFile 中的數(shù)據(jù),忽略空格。給出會 話過程。4. 搜索你的主目錄,找到所有的 HTML 和 C 程序文件(文件有.html、.htm或.c 擴展名),顯示符合要求的文件路徑和文件名。給出你的會話。5. 給出命令,搜索主目錄,顯示創(chuàng)建時間在/etc/passwd 之后的文件及其路徑。6. 下面的命令在什么地方:ftp、ssh、tar、telnet、pas
42、swd 和 find?給出會話過程。7. 用下面的 smallFile 文件(是前面 smallFile 文件的增強版,藍(lán)色字體部分為 smallFile 文件的內(nèi)容),并完成以下任務(wù):(用 grep 命令)$ more smallFileJohnDoeECE3.54 111.222.3333JamesDavisECE 3.71 111.222.1111AlDavisCS2.63 111.222.2222AhmadRashidMBA3.74111.222.4444SamChuE
43、CE3.68chu111.222.5555ArunRoySS3.06 111.222.8888RickMarshCS2.34 111.222.6666JamesAdamCS2.77111.222.7777ArtPohmECE4.00111.222.9999JohnClarkECE2.68clark 111.111.5555NabeelAliEE3.56111.111.8888TomNelsonECE3.81 111.111.6666Pat
44、KingSS2.77 111.111.7777JakeZuluCS3.00111.111.9999JohnLeeEE2.64jlee111.111.2222SunilRajECE3.36111.111.3333Charles RightEECS3.31111.111.4444DianeRoverECE3.87111.111.5555AzizInanEECS3.75111.111.1111LuJohnCS3.06lu.johnxy
45、 111.333.1111LeeChowEE3.74chowlc.www.ord 111.333.2222AdamGilesSS2.54111.333.3333AndyJohnEECS3.98 111.333.4444a. 顯示計算機科學(xué)專業(yè)(CS)學(xué)生的行及行號。給出你的會話。b. 顯示 first name 為 John 的學(xué)生的行及行號。給出你的會話。c. 顯示 first name 或 last name 為 Lee 的學(xué)生的行及行號。給出你的會話。d. 顯示 e-mail 地址以 .org 結(jié)尾的學(xué)生的行及行號。給出你的
46、會話。e. 顯示 GPA 在 3.69 和 4.0 在之間的學(xué)生的行及行號。給出你的會話。f.顯示計算機科學(xué)學(xué)生 GPA 在 3.5 和 4.0 在之間的學(xué)生的行及行號。給出 你的會話。8. 用 cut 和 paste 命令,構(gòu)造并顯示一個表,包含以下四個字段:first name、last name、GPA 和 academic major(專業(yè))。給出你的會話。9. 退出系統(tǒng)2.9 Linux 應(yīng)用實驗項目 8:管道與I/O重定向?qū)嶒災(zāi)康模?. 學(xué)習(xí)如何使用 Linux 的 I/O 重定向和管道操作;2. 學(xué)習(xí)使用 I/O 重定向和管道操作完成單個命令不能實現(xiàn)的復(fù)雜任務(wù);3. 學(xué)習(xí)如何使用
47、 I/O 重定向、管道和 FIFOs 去完成單個命令不可能實現(xiàn)的復(fù) 雜任務(wù)。實驗用到的命令:|、<、>、find、cat、who、sort、cut、head、ls、wc 等實驗內(nèi)容:1. 登錄到你的 Linux 系統(tǒng)中2. 用 cat 命令創(chuàng)建一個名字為 test.data 文件,文件內(nèi)容如下。文件創(chuàng)建成功 后,用 cat 命令顯示這個文件的內(nèi)容。給出你的會話過程。This data is to be stored in a file called test.data by using the cat command. We can create the test.data fil
48、e with this data by 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)中的用戶的數(shù)量。給出命令和輸出結(jié)果。4. 用一行命令顯示第一個登錄到系統(tǒng)中的用戶的名字。給出命令和輸出結(jié)果。提示:使用 who、sort、cut、head 命令和管道實現(xiàn)。5. 計算命令 ls l 的輸出中的字符數(shù)、單詞數(shù)和行數(shù),并把它顯示在顯示器 上。給出命令和輸出結(jié)果。6. 退
49、出系統(tǒng)2.10 Linux 應(yīng)用實驗項目 9:進程實驗?zāi)康模?. 了解有關(guān) Linux 進程的屬性;2. 學(xué)習(xí)有關(guān) Linux 的前臺、后臺進程及守護進程;3. 學(xué)習(xí)有關(guān) Linux 命令的順序執(zhí)行和并發(fā)執(zhí)行;4. 學(xué)習(xí)有關(guān)掛起和終止進程;5. 了解 Linux 的信號。6.了解你系統(tǒng)中 Linux 進程的層次結(jié)構(gòu)。實驗內(nèi)容:實驗用到的命令:ps、kill、nice、pstree 等1. 進入你的 linux 系統(tǒng)2. 在你進入系統(tǒng)中,有多少進程在運行?進程 init、sched、cron、inetd 的 ID是多少。給出你得到這些信息的會話過程。3. init、sched、cron 和 in
50、etd 進程的父進程是哪一個?這些父進程的 ID 是什 么?init、sched、cron 和 inetd 進程的優(yōu)先數(shù)是多少?根據(jù)優(yōu)先數(shù)從高到 低(大到?。┝谐鲞@些進程。給出會話過程。4. 你系統(tǒng)中有多少個 HTTP 服務(wù)進程?它們的進程 ID 是什么?獲得上面每 個信息用一個命令實現(xiàn)。給出你的會話過程。5. 有多少個 sh、bash、csh 和 tcsh 進程運行在你的系統(tǒng)中?給出會話過程。6. linux 系統(tǒng)中,進程可以在前臺或后臺運行。前臺進程在運行結(jié)束前一直 控制著終端。若干個命令用分號(;)分隔形成一個命令行,用圓括弧把 多個命令掛起來,他們就在一個進程里執(zhí)行。使用“&”
51、符作為命令分隔 符,命令將并發(fā)執(zhí)行??梢栽诿钚心┪布印?amp;”使之成為后臺命令。請用一行命令實現(xiàn)以下功能,它一小時后再屏幕上顯示文字“Time forLunch!”來提醒你去吃午餐。給出會話過程。注:可以使用 sleep 命令7. 寫一個命令行,實現(xiàn) find 和 sort 命令的并發(fā)執(zhí)行。find 命令顯示在你的主 目錄下 foobar 文件的路徑;sort 命令以 GPA 作為關(guān)鍵字排序 smallFile 文 件,且忽略字段間的空格。兩個命令的錯誤信息重定向到/dev/null 中。find 命令的輸出重定向到 find.out 文件中,sort 命令的輸出重定向到 sort.ou
52、t 文件中。當(dāng)命令運行結(jié)束后,顯示 find.out 和 sort.out 的內(nèi)容。給出會話 過程。8. 給出一個命令,終止 ID 為 12345 的進程和 ID 為 2 的作業(yè)。9. 寫一命令行,使得 date 、uname a 、who 和 ps 并發(fā)執(zhí)行。給出會話過程。10. 在 shell 下執(zhí)行下面的命令。3 個 pwd 命令的運行結(jié)果是什么?$ pwd$ bash$ cd usr$ pwd$ $<Ctrl-D>#終止 shell$ pwd注:“$”為系統(tǒng)提示符11. 用 pstree 命令顯示你系統(tǒng)中進程層次結(jié)構(gòu)。12. Log out.3.系統(tǒng)開發(fā)實驗項目 系統(tǒng)開發(fā)實
53、驗以Linux內(nèi)核開發(fā)為主,通過這些項目開發(fā)驗證內(nèi)核的功能,鍛煉學(xué)生分析問題的能力。LINUX 系統(tǒng)調(diào)用介紹1. 進程控制的系統(tǒng)調(diào)用l fork 系統(tǒng)調(diào)用創(chuàng)建新的子進程格式: pid=intfork()fork 調(diào)用返回時,系統(tǒng)中已有兩個用戶級環(huán)境完全相同的進程存在,這兩個 進程從 fork 調(diào)用中得到的返回值不同,其中子進程得到的返回值為零,父進程 得到的返回值是新創(chuàng)建子進程的進程標(biāo)識號。l exec 系統(tǒng)調(diào)用 格式:(六種)int execl(path,arg0,arg1,argn,(char *)0)char *path, *arg0, *arg1, , *argn ;exec 調(diào)用進程的正文段被指定的目標(biāo)文件的正文段所覆蓋,其屬性的變化方 式與 fork 成功后從父進程那里繼承屬性的方式幾乎是一樣的。系統(tǒng)中絕大多數(shù) 命令都是通過 exec 來執(zhí)行的,不但 shell 進程所創(chuàng)建的子進程使用它來執(zhí)行用戶 命令,shell 進程本身和它的祖先進程也是用 exec 來啟動執(zhí)行的。l exit 系統(tǒng)調(diào)用終止進程執(zhí)行 格式:void exit(status)intsta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商品房買賣合同范文
- 夜景工程合同范本
- 深交所證券上市事宜協(xié)議書
- 工程總承包合同文本
- 網(wǎng)上證券交易代理協(xié)議
- 企業(yè)會計人員工作職責(zé)模版(3篇)
- 2025年見證取樣送樣細(xì)則模版(2篇)
- 2025年企業(yè)領(lǐng)導(dǎo)上半年工作總結(jié)樣本(2篇)
- 煤質(zhì)科副科長安全生產(chǎn)責(zé)任制范文(2篇)
- 2025年中小學(xué)交通安全教育演講稿模版(3篇)
- 淮安市洪澤區(qū)2022-2023學(xué)年七年級上學(xué)期期末生物試題【帶答案】
- 2024年民航安全知識培訓(xùn)考試題庫及答案(核心題)
- MOOC 漢字文化解密-華中師范大學(xué) 中國大學(xué)慕課答案
- 黑龍江省哈爾濱市香坊區(qū)2023-2024學(xué)年八年級上學(xué)期期末語文試卷
- 青島版(五四制)四年級數(shù)學(xué)下冊全冊課件
- 農(nóng)村污水處理設(shè)施運維方案特別維護應(yīng)急處理預(yù)案
- 【施工組織方案】框架結(jié)構(gòu)施工組織設(shè)計
- 工業(yè)控制系統(tǒng)安全與實踐 課件 第7-9章 工業(yè)控制系統(tǒng)異常行為檢測、工控系統(tǒng)信息安全風(fēng)險評估、入侵響應(yīng)
- 人工智能背景下高校智慧思政建設(shè)
- 高考物理復(fù)習(xí)講義第88講 電磁感應(yīng)中的雙桿模型(解析版)
- 老年人的心肺復(fù)蘇課件
評論
0/150
提交評論