ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:36KB ,
资源ID:61285      下载积分:6 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-61285.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Linux Shell的研究与开发【开题报告】.doc)为本站会员(文初)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

Linux Shell的研究与开发【开题报告】.doc

1、毕业设计开题报告 计算机科学与技术 Linux Shell 的研究与开发 一、选题的背景、意义 Linux 的诞生和发展 : Linux 操作系统是 UNIX 操作系统的一种克隆系统。它诞生于 1991 年的 10 月 5 日(这是第一次正式向外公布的时间)。以后借助于 Internet 网络,并经过全世界各地计算机爱好者的共同努力,现已成为今天世界上使用最多的一种 UNIX 类操作系统,并且使用人数还在迅猛增长。 Linux 操作系统的诞生、发展和成长过程始终依赖着以下五个重要支柱: UNIX 操作系统、 MINIX 操作 系统、 GNU 计划、 POSIX 标准和 Internet 网络。

2、 UNIX 操作系统是美国贝尔实验室的 Ken.Thompson 和 Dennis Ritchie 于 1969 年夏在DEC PDP-7 小型计算机上开发的一个分时操作系统。当时 Ken Thompson 为了能在闲置不用的 PDP-7 计算机上运行他非常喜欢的星际旅行( Space travel)游戏,在 1969 年夏天乘他夫人回家乡加利福尼亚渡假期间,在一个月内开发出了 unix 操作系统的原型。当时使用的是 BCPL 语言(基本组合编程语言),后经 Dennis Ritchie 于 1972 年用移植性很强的 C 语言进行了改写,使得 UNIX 系统在大专院校得到了推广。 MINIX

3、 系统是由 Andrew S. Tanenbaum( AST)开发的。 AST 是在荷兰 Amsterdam 的 Vrije 大学数学与计算机科学系统工作,是 ACM 和 IEEE 的资深会员 (全世界也只有很少人是两会的资深会员 ),共发表了 100 多篇文章, 5 本计算机书籍。 AST 虽出生在美国纽约,但他是荷兰侨民 (1914 年他的祖辈来到美国 )。他在纽约上的中学、 M.I.T 上的大学、加州大学Berkeley 分校念的博士学位。由于读博士后的缘故,他来到了家乡荷兰。从此就与家乡一直有来往。后来就在 Vrije 大学开始教书、带研究生了。荷兰首都 Amsterdam 是个常年阴

4、雨绵绵的城市,而对于 AST 来说,这最好不过了,因为这样他就可以待在家里摆弄他的计算机了。 MINIX 是他 1987 年编制的,主要用于学生学习操作系统原理。到 91 年时版本是1.5。目前主要有两个版本在使用: 1.5 版和 2.0 版,当时该操作系统在大学使用是免费的,但其它用途不是,当然目前都已经是免费的,可以从许多 FTP 上下载。 作为一个 操作系统, MINIX 并不是优秀者,但它同时提供了用 C 语言和汇编语言写的系统源代码。这是第一次使得有抱负的程序员或 hacker 能够阅读操作系统的源代码,在当时这种源代码是软件商一直小心地守护着的。 GNU 计划 : GNU 计划和自

5、由软件基金会 (the Free Software Foundation - FSF)是由 Richard M. Stallman 于 1984 年一手创办的。旨在开发一个类似 Unix、并且是自由软件的完整操作系统: GNU 系统。( GNU 是 “GNUs Not Unix“的递归 缩写,它的发音为 “guh-NEW“。)各种使用linux 作为核心的 GNU 操作系统正在被广泛的使用。虽然这些系统通常被称作 “Linux“,但是严格地说,它们应该被称为 GNU/Linux 系统。 到上世纪 90 年代初, GNU 项目已经开发出许多高质量的免费软件,其中包括有名的emacs 编辑系统、

6、bash shell 程序、 gcc 系列编译程序、 gdb 调试程序等等。这些软件为Linux 操作系统的开发创造了一个合适的环境,是 Linux 能够诞生的基础之一。以至于目前许多人都将 Linux 操作系统称为 “GNU/Linux“操作系统。 Linux Shell 的基本概念: 标准的 UNIX shell 是 V7(AT&T 的第七版 )UNIX,在 1979 年底被提出,且以它的创造者 Stephen Bourne 来命名。 Bourne shell 是以 Algol 这种语言为基础来设计,主要被用来做自动化系统管理工作。虽然 Bourne shell 以简单和速度而受欢迎,但它

7、缺少许多交谈性使用的特色,例如历程、别名和作业控制。 C shell 是在加州大学柏克来分校于 70 年代末期发展而成,而以 2BSD UNIX 的部分发行 。这个 shell 主要是由 Bill Joy 写成,提供了一些在标准 Bourne shell 所看不到的额外特色。 C shell 是以 C 程序语言作为基础,且它被用来当程序语言时,能共享类似的语法。它也提供在交谈式运用上的改进,例如命令列历程、别名和作业控制。因为 C shell 是在大型机器上设计出来,且增加了一些额外功能,所以 C shell 有在小型机器上跑得较慢,即使在大型机器上跟 Bourne shell 比起来也显得缓

8、慢。 有了 Bourne shell 和 C shell 之后, UNIX 使用者就有了选择,且争论那一个 shell 较好。 AT&T 的 David Korn 在 80 年代中期发明了 Korn shell,在 1986 年发行且在 1988 年成为正式的部分 SVR4 UNIX。 Korn shell 实际上是 Bourne shell 的超集,且不只可在 UNIX 系统上执行,同时也可在 OS/2、 VMS、和 DOS 上执行。它提供了和 Bourne shell 向上兼容的能力,且增加了许多在 C shell 上受欢迎的特色,更增加了速度和效率。 Korn shell 已历经许多修

9、正版,要找寻用户使用的是那一个版本可在 ksh 提示符号下按 Ctrl-v 键。 在大部份的 UNIX 系统,三种著名且广被支持的 shell 是 Bourne shell(AT&T shell,在 Linux 下是 BASH)、 C shell(Berkeley shell,在 Linux 下是 TCSH)和 Korn shell(Bourne shell 的超集 )。这三种 shell 在交 互 (interactive)模式下的表现相当类似,但作为命令文件语言时,在语法和执行效率上就有些不同了。 Bourne shell 是标准的 UNIX shell,以前常被用来做为管理系统之用。大部

10、份的系统管理命令文件,例如 rc start、 stop 与 shutdown 都是 Bourne shell 的命令,且在单 用户 模式 (single user mode)下以 root 登录 时它常被系统管理 员 使用。 Bourne shell 是由 AT&T 发展的,以简洁、快速著名。 Bourne shell 提示符号的默认值是 $。 C shell 是柏克莱大学 (Berkeley)所开发的,且加入了一些新特性,如命令列历程(history)、别名 (alias)、内建算术、 文件 名完成 (filename completion)、和作业控制 (job control)。对于常

11、在交 互 模式下执行 shell 的使用者而言,他们较喜爱使用 C shell;但对于系统管理者而言,则较偏好以 Bourne shell 来做命令,因为 Bourne shell 命令比 C shell 命令来的简单及快速。 C shell 提示符号的默认值是 %。 Korn shell 是 Bourne shell 的超集 (superset),由 AT&T 的 David Korn 所开发。它增加了一些特色,比 C shell 更为先进。 Korn shell 的特色包括了可编辑的历程、别名、函 数 、正规表达式万用字符 (regular expression wildcard)、内建算

12、术、作业控制 (job control)、 协同 处理 (coprocessing)和特殊的 纠 错功能。 Bourne shell 几乎和 Korn shell 完全向上兼容 (upward compatible),所以在 Bourne shell 下开发的程序仍能在 Korn shell 上执行。 Korn shell 提示符号的默 认值也是 $。在 Linux 系统使用的 Korn shell 叫做 pdksh,它是指 Public Domain Korn Shell。 除了执行效率稍差外, Korn shell 在许多方面都比 Bourne shell 为佳;但是,若将 Korn sh

13、ell 与 C shell 相比就很困难,因为二者在许多方面都各有所长,就效率和容易使用上看, Korn shell 是优于 C shell,相信许多使用者对于 C Shell 的执行效率都有负面的印象。 国内外研究现状 : Linux 作为一种开源的操作系统 ,在国内外享有较高的声誉,其重要地位是其他操作系统所不可取代的。正是由于 Linux 操作系统的开源性,在国内外各大研究机构对其进行了不断的开发和完善,逐步形成了今天的 Linux 操作系统,其功能非常强大,运行非常稳定。国内外均成立了专门的研究机构对其进行开发和研究。而近年来由于网络技术的兴起, Linux系统也发展为一种可以进行资源

14、共享和交互的网络平台。在资源共享的同时,网络的安全已经成为科研机构研究的重点,并且推出了一系列的网络管理控制系统,特别是实现对网络数据的管理和控制。其中以网络数据管理和控制过滤器 IPTABLES 最为出名。可以说就目前国内外研究的情况来看 Liunx 方面的网络管理控制系统的开发技术已经相当成熟,并且正在不断的进行完善。 在 UNIX/linux Shell 中主要有这几类 shell: Bourne shell (bsh) C shell ( csh) Korn shell ( ksh) Bourne Again shell ( bash) POSIX shell ( sh) TENEX/

15、TOPS C shell ( tcsh) TC Shell(tesh) Z Shell(zsh ) 各主要操作系统下缺省的 shell: AIX 下是 Korn Shell。 Solaris 和 FreeBSD 缺省的是 Bourne shell。 HP-UX 缺省的是 POSIX shell。 Linux 是 Bourne Again shell。 未来发展趋势 : 目前, Linux 技术已经成为 IT 技术发展的热点,投身于 Linux 技术研究的社区、研究机构和软件企业越来越多,支持 Linux 的软件、硬件制造商和解决方案提供商也迅速增加,Linux 在信息化建设中的应用范围也越来越

16、广, Linux 产业链已初步形成,并正在得到持续的完善。随着整个 Linux 产业的发展, Linux 技术也处在快速的发展过程中,形成了若干了技术热点。 UNIX 作业系统的 SHELL 大致可分为两大系统,一是 1970 年代 前期由美国贝尔实验室(BELL LAB)所发展的 sh(Bourne Shell), 它是 UNIX 系统中的标准 SHELL,此一系统後来又发展出 ksh(Korne Shell)、 bash(Bourne Again Shell)等功能更多的介面;另一系 统是美国柏克来大学 (Berkekey)在 1970 年代後期所发展的 csh(C Shell),和它属於

17、 同一系统的有tcsh 等。 无论上述的那一种 shell,它的基本功能与作用都是相同的, 它们之间的不同处可能在於对同一动作处理程序上的不同 (会影响 命令处理的速度 )、所提供内键命令及变数的或多或寡等,其中内部命令与变 量 的多 少 直接影响到 shell 功能的多 少 ,是使用者在使用时最容易直接感受到的。 在 UNIX 系统中,使用者可视自己的需要执行 sh、 ksh、 bash、 csh 或 tcsh 来代替原先使用的 shell、改变正在使用的环境;也可 以用 chsh指令、输入想使用的 shell 的路径及名称 (如 /bin/csh, 在 Y11-Y14 机器上还需输入个人使

18、用者的密码 ),改变以後每次 login时所使用的 shell、使自己所使用的环境能最满足自己使用 上的需要。 本课题的意义就是通过编写简单的 shell 程序,更加了解 shell 的执行过程,加深对shell 命令的理解,进而进一步加深对 linux 操作系统的熟练程度。 二、研究的基本内容与拟解决的主要问题 研究的基本内容: 在 Linux 环境下编写一个简单的 shell 程序,达到以下要求: ( 1)能够执行外部程序命令,命令可以带参数; ( 2)能够实现管道和输入输出重定向功能。 拟解 决的主要问题: 实现的 shell 能够解释并执行下列命令: ( 1) ls 列目录 功能:显示

19、文件和目录的信息 ls 以默认方式显示当前目录文件列表 ls -a 显示所有文件包括隐藏文件 ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行 ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M 2G) ls -lt 显示文件,按照修改时间排序 ( 2) cp 文件拷贝 功能: copy 文件 cp source target 将文件 source 复制为 target cp /root /source. 将 /root 下的文件 source 复制到当前目录 cp ? av soure_dir target_dir 将整个目录复制,两

20、目录完全一样 ( 3) rm 删除文件 功能: 删除文件 或目录 rm file 删除某一个文件 rm -f file 删除时候不进行提示。可以于 r 参数配合使用 rm -rf dir 删除当前目录下叫 dir 的整个目录 ( 4) who 显示当前登录的用户 信息 功能:显示登录用户 例如: # who zhoulj pts/0 Mar 13 21:24 (10.140.0.109) ( 5) cat 显示文件内容 显示文件的内容,和 DOS 的 type 相同 cat file 三、研究的方法与技术路线、研究难点,预期达到的目标 研究的方法与技术路线: 熟悉 Linux 操作系统下的 C

21、 语言高级编程,了解 Linux 操作系统的 shell 执行方式,熟练运用 C 语言对字符串进行处理。学习并掌握 Linux C 语言系统库函数的用法,熟练运用某些库函数来完成设计。 研究难点: 实现管道和输入输出重定向。 预期目标: 在 Red Hat Linux 操作系统下,设计一个并实现一些简单的 shell 命令,具有列出文件,复制文件,显示文件内容,删除文件和目录等功能,能识别并提示错误的命令,并达到初步实用的水平。 四、论文详细工作进度和安排 第七学期第 10 周至第 18 周( 2011 年 01 月 06 日前):文献检索和资料收集,完成毕业论文(设计)文献综述、开题报告和外

22、文翻译; 第八学期 第 1 周 至第 3 周( 2011 年 03 月 11 日前):撰写论文提纲,完成毕业论文(设计)初稿 、需求分析和概要设计; 第八学期 第 4 周 至第 12 周( 2011 年 05 月 13 日前):详细设计、系统调试、和毕业论文(设计)完成定稿; 第八学期第 13 周( 2011 年 05 月 20 日前):完成应用软件系统的设计和毕业论文(设计)送指导老师和评阅老师评阅,准备答辩; 第八学期第 14 周:参加毕业论文(设计)答辩。 五、主要参考文献: 1 坦思利 . LINUX 与 UNIX Shell 编程指南 M.北京: 机械工业出版社, 2000. 2 M

23、ark G. Sobell. Linux 命令、编辑器与 Shell 编程 M. 北京:清华大学出版社, 2007. 3 Mark G. Sobell. Linux 命令、编辑器与 shell 编程 (第 2 版 )M. 清华大学出版社, 2010. 4 卧龙小三 . 实战 Linux Shell 编程与服务器管理 M. 北京:电子工业出版社, 2010. 5 (美)布卢姆 . Linux 命令行和 shell 脚本编程宝典 M. 北京:人民邮电出版社, 2009. 6 于重重,谭励,杨明华 . Linux 命令、编辑器、 Shell 编程实例大全 M. 北京:人民邮 电出版社 , 2009.

24、 7 (美)莫雷( Molay, B) . Unix/Linux 编程实践教程 M. 清华大学出版社, 2004. 8 Robert Love. LINUX 系统编程 M.南京:东南大学出版社, 2009. 9 和硕科技编辑部 . 精通 LINUX & UNIX Shell 程序设计 M. 北京:中国青年出版社, 2001. 10(美)弗里斯科比( Frisch,AE.) . Unix 与 Linux 系统管理 M. 北京:清华大学出版 社, 2006. 11 李善平 . 边干边学 :LINUX 内核指导 M. 杭州:浙江大学出版社, 2002. 12 沈良忠 . Linux C 编程一站式学

25、习 M. 北京:电子工业出版社, 2009. 13 Kurt Wall. GNU/Linux 编程指南 (第二版 )M. 北京:清华大学出版社, 2002. 14 Quigley / 美 Ellie. Linux Shell 实例精解 M. 北京:中国电力出版社, 2003. 15 David Tansley. LINUX & UNIX Shell ProgrammingM. Addison-Wesley Professional, 2000. 16 Charlie Rursel. UNIX 与 Linux 精选问题集(英文版) M. 北京:机械工业出版 1998. 17(美) Bruce Molay 著,杨宗源等译 .Unix/Linux 编程实践教程 M. 北京:清华大学出版社, 2004.

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。