LinuxShell的研究與開發(fā)【開題報告】_第1頁
LinuxShell的研究與開發(fā)【開題報告】_第2頁
LinuxShell的研究與開發(fā)【開題報告】_第3頁
LinuxShell的研究與開發(fā)【開題報告】_第4頁
LinuxShell的研究與開發(fā)【開題報告】_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計開題報告計算機(jī)科學(xué)與技術(shù)Linux Shell 的研究與開發(fā)一、選題的背景、意義Linux 的誕生和發(fā)展:Linux 操作系統(tǒng)是UNIX 操作系統(tǒng)的一種克隆系統(tǒng)。 它誕生于 1991 年的 10 月 5 日(這是第一次正式向外公布的時間) 。以后借助于Internet 網(wǎng)絡(luò),并經(jīng)過全世界各地計算機(jī)愛好者的共同努力,現(xiàn)已成為今天世界上使用最多的一種 UNIX 類操作系統(tǒng),并且使用人數(shù)還在迅猛增長。 Linux 操作系統(tǒng)的誕生、 發(fā)展和成長過程始終依賴著以下五個重要支柱: UNIX操作系統(tǒng)、MINIX操作系統(tǒng)、GNU計戈ij、POSIX標(biāo)準(zhǔn)和Internet 網(wǎng)絡(luò)。UNIX 操作系統(tǒng)是美國

2、貝爾實(shí)驗(yàn)室的Ken.Thompson 和 Dennis Ritchie 于 1969 年夏在DEC PDP-7小型計算機(jī)上開發(fā)的一個分時操作系統(tǒng)。當(dāng)時 Ken Thompson為了能在閑置不用的 PDP-7 計算機(jī)上運(yùn)行他非常喜歡的星際旅行( Space travel )游戲,在 1969 年夏天乘他夫人回家鄉(xiāng)加利福尼亞渡假期間,在一個月內(nèi)開發(fā)出了 unix 操作系統(tǒng)的原型。當(dāng)時使用的是 BCPL 語言(基本組合編程語言) ,后經(jīng) Dennis Ritchie 于 1972 年用移植性很強(qiáng)的 C 語言進(jìn)行了改寫,使得UNIX 系統(tǒng)在大專院校得到了推廣。MINIX 系統(tǒng)是由 Andrew S.

3、Tanenbaum( AST) 開發(fā)的。 AST 是在荷蘭 Amsterdam 的 Vrije大學(xué)數(shù)學(xué)與計算機(jī)科學(xué)系統(tǒng)工作,是ACM 和 IEEE 的資深會員 ( 全世界也只有很少人是兩會的資深會員 ) ,共發(fā)表了 100 多篇文章, 5 本計算機(jī)書籍。 AST 雖出生在美國紐約,但他是荷蘭僑民 (1914 年他的祖輩來到美國 ) 。他在紐約上的中學(xué)、 M.I.T 上的大學(xué)、加州大學(xué)Berkeley 分校念的博士學(xué)位。由于讀博士后的緣故,他來到了家鄉(xiāng)荷蘭。從此就與家鄉(xiāng)一直有來往。后來就在Vrije 大學(xué)開始教書、帶研究生了。荷蘭首都Amsterdam 是個常年陰雨綿綿的城市,而對于AST 來說

4、,這最好不過了,因?yàn)檫@樣他就可以待在家里擺弄他的計算機(jī)了。 MINIX 是他 1987 年編制的,主要用于學(xué)生學(xué)習(xí)操作系統(tǒng)原理。到 91 年時版本是1.5 。目前主要有兩個版本在使用: 1.5 版和 2.0 版,當(dāng)時該操作系統(tǒng)在大學(xué)使用是免費(fèi)的,但其它用途不是,當(dāng)然目前都已經(jīng)是免費(fèi)的,可以從許多FTP上下載。作為一個操作系統(tǒng), MINIX 并不是優(yōu)秀者,但它同時提供了用 C 語言和匯編語言寫的系統(tǒng)源代碼。這是第一次使得有抱負(fù)的程序員或hacker 能夠閱讀操作系統(tǒng)的源代碼,在當(dāng)時這種源代碼是軟件商一直小心地守護(hù)著的。GNU計戈ij:GNU計戈U和自由軟件基金會 (the Free Softwa

5、re Foundation - FSF) 是由 Richard M. Stallman于1984年一手創(chuàng)辦的。旨在開發(fā)一個類似Unix、并且是自由軟件的完整操作系統(tǒng):GNU系統(tǒng)。(GNU是GNUs Not Unix 的遞歸縮寫,它的發(fā)音為 guh-NEW。)各種使用 linux 作為核心的GNU操作系統(tǒng)正在被廣泛的使用。雖然這些系統(tǒng)通常被稱作Linux,但是嚴(yán)格地說,它們應(yīng)該被稱為GNU/Linux系統(tǒng)。到上世紀(jì)90年代初,GNU項(xiàng)目已經(jīng)開發(fā)出許多高質(zhì)量的免費(fèi)軟件,其中包括有名的 emacs編輯系統(tǒng)、bash shell 程序、gcc系列編譯程序、gdb調(diào)試程序等等。這些軟件為 Linux操作

6、系統(tǒng)的開發(fā)創(chuàng)造了一個合適的環(huán)境,是 Linux能夠誕生的基礎(chǔ)之一。以至于目 前許多人都將Linux操作系統(tǒng)稱為GNU/Linux操作系統(tǒng)。Linux Shell的基本概念:標(biāo)準(zhǔn)的UNIX shell 是V7(AT&T的第七版)UNIX,在1979年底被提出,且以它的創(chuàng)造 者Stephen Bourne來命名。Bourne shell 是以Algol 這種語言為基礎(chǔ)來設(shè)計,主要被用 來做自動化系統(tǒng)管理工作。雖然 Bourne shell以簡單和速度而受歡迎,但它缺少許多交談 性使用的特色,例如歷程、別名和作業(yè)控制。C shell是在加州大學(xué)柏克來分校于70年代末期發(fā)展而成,而以 2BSD UNI

7、X的部分發(fā)行。這個shell主要是由Bill Joy 寫成,提供了一些在標(biāo)準(zhǔn)Bourne shell所看不到的額外特色。C shell是以C程序語言作為基礎(chǔ),且它被用來當(dāng)程序語言時,能共享類似的 語法。它也提供在交談式運(yùn)用上的改進(jìn),例如命令列歷程、別名和作業(yè)控制。因?yàn)镃 shell是在大型機(jī)器上設(shè)計出來,且增加了一些額外功能,所以 C shell有在小型機(jī)器上跑得較慢,即使在大型機(jī)器上跟Bourne shell比起來也顯得緩慢。有了 Bourne shell和C shell 之后,UNIX使用者就有了選擇,且爭論那一個shell較好。AT&T的David Korn在80年代中期發(fā)明了 Korn

8、 shell ,在1986 年發(fā)行且在1988 年成為正式的部分 SVR4 UNIX。Korn shell 實(shí)際上是Bourne shell 的超集,且不只可在 UNIX系統(tǒng)上執(zhí)行,同時也可在OS/2、VMS和DOS上執(zhí)行。它提供了和 Bourne shell向上兼容的能力,且增加了許多在C shell上受歡迎的特色,更增加了速度和效率。Kornshell已歷經(jīng)許多修正版,要找尋用戶使用的是那一個版本可在ksh提示符號下按Ctrl-v鍵。在大部份的 UNIX系統(tǒng),三種著名且廣被支持的shell 是Bourne shell(AT&T shell ,在 Linux 下是 BASHb C shell

9、(Berkeleyshell,在 Linux 下是 TCSH和 Korn shell(Bourneshell的超集)。這三種shell 在交互(interactive)模式下的表現(xiàn)相當(dāng)類似,但作為命令文件語言時,在語法和執(zhí)行效率上就有些不同了。Bourne shell是標(biāo)準(zhǔn)的UNIX shell ,以前常被用來做為管理系統(tǒng)之用。大部份的系統(tǒng) 管理命令文件,例如 rc start 、stop與shutdown者B是Bourne shell的命令,且在單用戶模式(single user mode) 下以root 登錄時它常被系統(tǒng)管理員使用。Bourne shell 是由AT&T發(fā)展的,以簡潔、快速

10、著名。Bourne shell提示符號的默認(rèn)值是 $。C shell是柏克萊大學(xué)(Berkeley)所開發(fā)的,且加入了一些新特性,如命令列歷程 (history)、別名(alias)、內(nèi)建算術(shù)、文件名完成(filename completion)、和作業(yè)控制(job control)。對于常在交互模式下執(zhí)行shell的使用者而言,他們較喜愛使用C shell ;但對于系統(tǒng)管理者而言,則較偏好以Bourne shell來做命令,因?yàn)?Bourne shell命令比Cshell命令來的簡單及快速。C shell提示符號的默認(rèn)值是 %。Korn shell 是 Bourne shell 的超集(su

11、perset),由 AT&T 的 David Korn 所開發(fā)。 它增加了一些特色,比C shell更為先進(jìn)。Korn shell的特色包括了可編輯的歷程、別名、函數(shù)、正規(guī)表達(dá)式萬用字符(regular expression wildcard) 、內(nèi)建算術(shù)、作業(yè)控制 (jobcontrol)、協(xié)同處理(coprocessing) 和特殊的糾錯功能。Bourne shell 幾乎和 Korn shell完全向上兼容(upward compatible),所以在 Bourne shell下開發(fā)的程序仍能在Kornshell 上執(zhí)行。Korn shell提示符號的默認(rèn)值也是$。在Linux 系統(tǒng)使用

12、的Korn shell 叫做 pdksh ,它是指 Public Domain Korn Shell 。除了執(zhí)行效率稍差外,Korn shell在許多方面都比 Bourne shell 為佳;但是,若將Korn shell與C shell相比就很困難,因?yàn)槎咴谠S多方面都各有所長,就效率和容易使 用上看,Korn shell是優(yōu)于C shell ,相信許多使用者對于C Shell的執(zhí)行效率都有負(fù)面的印象。國內(nèi)外研究現(xiàn)狀:Linux作為一種開源的操作系統(tǒng),在國內(nèi)外享有較高的聲譽(yù),其重要地位是其他操作系 統(tǒng)所不可取代的。正是由于Linux操作系統(tǒng)的開源性,在國內(nèi)外各大研究機(jī)構(gòu)對其進(jìn)行了不斷的開發(fā)和

13、完善,逐步形成了今天的Linux操作系統(tǒng),其功能非常強(qiáng)大,運(yùn)行非常穩(wěn)定。國內(nèi)外均成立了專門的研究機(jī)構(gòu)對其進(jìn)行開發(fā)和研究。而近年來由于網(wǎng)絡(luò)技術(shù)的興起,Linux系統(tǒng)也發(fā)展為一種可以進(jìn)行資源共享和交互的網(wǎng)絡(luò)平臺。在資源共享的同時,網(wǎng)絡(luò)的安全已 經(jīng)成為科研機(jī)構(gòu)研究的重點(diǎn), 并且推出了一系列的網(wǎng)絡(luò)管理控制系統(tǒng), 特別是實(shí)現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)的管理和控制。其中以網(wǎng)絡(luò)數(shù)據(jù)管理和控制過濾器IPTABLES最為出名??梢哉f就目前國內(nèi)外研究的情況來看Liunx 方面的網(wǎng)絡(luò)管理控制系統(tǒng)的開發(fā)技術(shù)已經(jīng)相當(dāng)成熟, 并且正在不斷的進(jìn)行完善。在 UNIX/linux Shell 中主要有這幾類 shell : Bourne sh

14、ell (bsh) C shell ( csh) Korn shell ( ksh) Bourne Again shell ( bash) POSIX shell ( sh) TENEX/TOPS C shell ( tcsh) TC Shell(tesh) Z Shell(zsh )各主要操作系統(tǒng)下缺省的 shell:AIX 下是 Korn Shell 。Solaris 和 FreeBSD缺省的是 Bourne shell 。HP-UX缺省白勺是 POSIX shell 。Linux 是 Bourne Again shell 。未來發(fā)展趨勢:目前, Linux 技術(shù)已經(jīng)成為 IT 技術(shù)發(fā)展的

15、熱點(diǎn),投身于Linux 技術(shù)研究的社區(qū)、研究機(jī)構(gòu)和軟件企業(yè)越來越多,支持Linux 的軟件、硬件制造商和解決方案提供商也迅速增加,Linux 在信息化建設(shè)中的應(yīng)用范圍也越來越廣, Linux 產(chǎn)業(yè)鏈已初步形成,并正在得到持續(xù)的完善。隨著整個Linux 產(chǎn)業(yè)的發(fā)展, Linux 技術(shù)也處在快速的發(fā)展過程中,形成了若干了技術(shù)熱點(diǎn)。UNIX作業(yè)系統(tǒng)的SHELL大致可分為兩大系統(tǒng),一是1970年代前期由美國貝爾實(shí)驗(yàn)室(BELL LAB)所發(fā)展的sh(Bourne Shell), 它是UNIX系統(tǒng)中的標(biāo)準(zhǔn) SHELL此一系統(tǒng)彳麥來又 發(fā)展出 ksh(Korne Shell) 、 bash(Bourne

16、Again Shell) 等功能更多的介面;另一系 統(tǒng)是美 國柏克來大學(xué)(Berkekey)在1970年代彳麥期所發(fā)展的csh(C Shell),和它屬於同一系統(tǒng)的有tcsh 等。 無論上述的那一種 shell , 它的基本功能與作用都是相同的, 它們之間的不同處可能在於對同一動作處理程序上的不同 ( 會影響 命令處理的速度) 、所提供內(nèi)鍵命令及變數(shù)的或多或寡等, 其中內(nèi)部命令與變量的多少直接影響到 shell 功能的多少, 是使用者在使用時最容易直接感受到的。在UNIX系統(tǒng)中,使用者可視自己的需要執(zhí)行sh、ksh、bash、csh或tcsh來代替原先使用的 shell 、改變正在使用的環(huán)境;

17、也可 以用 chsh 指令、輸入想使用的 shell 的路徑及名稱(如/bin/csh ,在Y11-Y14機(jī)器上還需輸入個人使用者的密碼),改變以彳麥每次login時所使用的 shell 、使自己所使用的環(huán)境能最滿足自己使用 上的需要。本課題的意義就是通過編寫簡單的 shell 程序,更加了解shell 的執(zhí)行過程,加深對shell 命令的理解,進(jìn)而進(jìn)一步加深對 linux 操作系統(tǒng)的熟練程度。二、研究的基本內(nèi)容與擬解決的主要問題研究的基本內(nèi)容:在 Linux 環(huán)境下編寫一個簡單的 shell 程序,達(dá)到以下要求:( 1)能夠執(zhí)行外部程序命令,命令可以帶參數(shù);( 2)能夠?qū)崿F(xiàn)管道和輸入輸出重定

18、向功能。擬解決的主要問題:實(shí)現(xiàn)的 shell 能夠解釋并執(zhí)行下列命令:( 1) ls 列目錄功能:顯示文件和目錄的信息ls 以默認(rèn)方式顯示當(dāng)前目錄文件列表ls -a 顯示所有文件包括隱藏文件ls -l 顯示文件屬性,包括大小,日期,符號連接,是否可讀寫及是否可執(zhí)行l(wèi)s -lh 顯示文件的大小,以容易理解的格式印出文件大?。ɡ?K 234M 2G)ls -lt 顯示文件,按照修改時間排序( 2) cp 文件拷貝功能: copy 文件cp source target 將文件 source 復(fù)制為 targetcp /root /source.將/root 下的文件 source復(fù)制到當(dāng)前目錄cp

19、 ? av soure_dir target_dir將整個目錄復(fù)制,兩目錄完全一樣( 3) rm 刪除文件功能:刪除文件、或目錄rm file刪除某一個文件rm -f file 刪除時候不進(jìn)行提示??梢杂趓 參數(shù)配合使用rm -rf dir 刪除當(dāng)前目錄下叫 dir 的整個目錄( 4) who 顯示當(dāng)前登錄的用戶信息功能:顯示登錄用戶例如:# whozhoulj pts/0 Mar 13 21:24 (09)( 5) cat 顯示文件內(nèi)容顯示文件的內(nèi)容,和DOS勺type相同cat file三、研究的方法與技術(shù)路線、研究難點(diǎn),預(yù)期達(dá)到的目標(biāo)研究的方法與技術(shù)路線:熟悉Linu

20、x操作系統(tǒng)下的C語言高級編程,了解Linux操作系統(tǒng)的shell執(zhí)行方式,熟 練運(yùn)用C語言對字符串進(jìn)行處理。學(xué)習(xí)并掌握 Linux C語言系統(tǒng)庫函數(shù)的用法,熟練運(yùn)用某 些庫函數(shù)來完成設(shè)計。研究難點(diǎn):實(shí)現(xiàn)管道和輸入輸出重定向。預(yù)期目標(biāo):在 Red Hat Linux 操作系統(tǒng)下, 設(shè)計一個并實(shí)現(xiàn)一些簡單的 shell 命令, 具有列出文件,復(fù)制文件, 顯示文件內(nèi)容,刪除文件和目錄等功能,能識別并提示錯誤的命令,并達(dá)到初步實(shí)用的水平。四、論文詳細(xì)工作進(jìn)度和安排第七學(xué)期第10 周至第 18 周( 2011 年 01 月 06 日前) :文獻(xiàn)檢索和資料收集,完成畢業(yè)論文(設(shè)計)文獻(xiàn)綜述、開題報告和外文

21、翻譯;第八學(xué)期 第 1 周 至第 3 周 ( 2011 年 03 月 11 日前) : 撰寫論文提綱, 完成畢業(yè)論文 (設(shè)計)初稿、需求分析和概要設(shè)計;第八學(xué)期 第 4 周 至第 12 周( 2011 年 05 月 13 日前) :詳細(xì)設(shè)計、系統(tǒng)調(diào)試、和畢業(yè)論文(設(shè)計)完成定稿;第八學(xué)期第 13 周( 2011 年 05 月 20 日前) :完成應(yīng)用軟件系統(tǒng)的設(shè)計和畢業(yè)論文(設(shè)計)送指導(dǎo)老師和評閱老師評閱,準(zhǔn)備答辯;第八學(xué)期第 14 周:參加畢業(yè)論文(設(shè)計)答辯。五、主要參考文獻(xiàn):1 坦思利 . LINUX 與 UNIX Shell 編程指南 M. 北京: 機(jī)械工業(yè)出版社, 2000.2 Mark G. Sobell. Linux 命令、編輯器與Shell 編程 M. 北京:清華大學(xué)出版社, 2007.3 Mark G. Sobell. Linux 命令、編輯器與 shell編程(第2版)M.清華大學(xué)出版社, 2010.4 臥龍小三 . 實(shí)戰(zhàn) Linux Shell 編程與服務(wù)器管理M. 北京:電子工業(yè)出版社, 2010.5 (美) 布盧姆 . Linux 命令行和 shell 腳

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論