linux操作系统简易shell设计与实现(源码)【字数:8163】
摘 要在Linux操作系统中,用户通过在终端中输入shell命令或者将shell命令编写成脚本来管理计算机是整个系统的核心,也是标志用户会不会使用Linux操作系统的重中之重。shell命令是用户与系统内核沟通的中介,它为用户使用操作系统的服务提供了一个命令行界面,用户在shell提示符下输入的每个命令都由shell先解释,然后传给内核执行。因此想了解Linux操作系统,就必须先了解shell命令,以及shell命令如何被解释,如何被执行的。本应用的主要核心思想是基于C语言来实现,对用户输入的字符串命令进行标准化处理,然后解析,最后通过相关命令部分执行,分为内部命令,外部命令,以及系统指令。最终通过本应用,可以练习熟练使用系统调用和各类IO库函数充分了解shell指令执行过程,以及相关Linux操作系统内核知识。
目 录
第1章 绪论 1
1.1 课题背景 1
1.2 课题研究 1
1.2.1 课题研究的目的和意义 1
1.2.2 国内发展情况 1
1.3 开发环境和开发工具 1
1.3.1 开发环境Centos7.0 1
1.3.2 开发工具GCC 2
1.3.3 开发语言C语言 2
第2章 Linux简介 3
2.1 Linux的内核 3
2.1.1 系统内存管理 3
2.1.2 软件管理程序 4
2.1.3 硬件设备管理 4
2.1.4 文件系统管理 4
2.2 Linux的特点 5
2.2.1 多用户 5
2.2.2 多任务 5
2.2.3 移植性 6
2.2.4 开放性 6
2.2.5 良好的用户界面 6
2.2.6 安全性 6
2.2.7 设备的独立性 6
2.2.8 强大的网络功能 6
2.3 Linux的发行版本 6
2.3.1 核心Linux发行版 6
2.3.2 特定用途的Linux发行版 7
第3章 Shell概述 8
3. *好棒文|www.hbsrm.com +Q: @351916072@
1 什么是Shell 8
3.2 Shell的种类 8
3.3 Shell的使用 9
第4章 Mini Shell的设计 10
4.1 系统设计思想 10
4.2 总体功能 10
4.3 系统主要设计思路 13
第5章 Mini Shell的实现 15
5.1 Mini Shell简介 15
5.2 Mini Shell的具体实现(附代码) 16
5.2.1 系统main函数的实现 16
5.2.2 jobs命令实现代码 18
5.2.3 显示历史命令代码实现 20
5.2.4 重定向命令代码实现 21
5.2.5 管道命令代码实现 23
5.2.6 保存历史命令代码实现 24
5.3 效果图 24
5.3.1 执行ls命令结果 24
5.3.2 执行touch命令结果 25
5.3.3 执行rm命令结过果 25
5.3.4 执行jobs命令结果 25
5.3.5 执行输出重定向命令>结果 25
5.3.6 执行管道命令结果 27
结束语 28
致 谢 29
参考文献 30
第1章 绪论
1.1 课题背景
Linux在目前市场应用的操作系统还是很广泛的。在Linux的内核身上我们可以看到操作系统的很多重要体系结构属性。内核可以划分为多个子系统,在或高或低不同的层次上。当然,Linux也是一个完整的整体,在内核中包含着一些基本服务。这正是微内核架构的不同之处,在微内核层中它可以提供一些诸如通信、I/O、内存和流程管理等基本服务。
在内存和CPU使用方面,Linux都具有较高的效率并且非常稳定。但是相对于其他操作系统来说,Linux可以在这种大小和复杂性的前提下,它可移植性还是能体现出来。在大量处理器和不同体系结构约束平台上依然可以运行编译后的Linux。
1.2 课题研究
1.2.1 课题研究的目的和意义
随着互联网在日常生活中的普遍应用,许多想了解和掌握Linux的程序员会逐渐参与到Linux的开发之中。在这过程中,许多富有创造性想法的程序员在完全自发地参与开发的前提下,不会对任何服务进行任何争议。当程序员们完成了部分程序,他们就会发布这个程序,并将该程序发送需要它的人。而其他的程序员在研究后会修正和改进它,然后再次发布。这个过程一遍又一遍的开始,所以Linux的改进是最快的,而且它还有很高的稳定性。
因此,研究Linux可以系统而全面的了解一个操作系统运行方式。对一些想深入学习操作系统的同学来说,Linux是热情、自由和开放的完整产品。
1.2.2 国内发展情况
Linux现在是开放源码项目的代表,许多大型硬件厂商也支持Linux。在Linux平台上有越来越多的服务软件。Linux现在在企业应用程序中也比较广泛。
1.3 开发环境和开发工具
1.3.1 开发环境Centos7.0
CentOS 是一个款基于Red Hat Linux开发并发行的企业级Linux发行版本。CentOS是通过Red Hat Enterprise Linux源代码进行第二次编译的产物,并且修复了RHEL上不少已知的Bug。相对于其他Linux发行版,其稳定性值得信赖。而且他的图形化界面相对简洁美观。
1.3.2 开发工具GCC
GCC原本是一款只处理C语言的语言编译器。后来它得到广泛的应用与推广,变得可以处理像C++、Java、Fortran等汇编语言。所以它又通常被称为GNU编译器套件。早期的GCC被应用在大多数类Unix操作系统上,正因为它是一款自由软件,所以它的兼容性和可移植性都是非常高的。在目前普遍使用的Windows操作系统上也可以完美运行。
1.3.3 开发语言C语言
C语言是一种通用且广泛应用于系统和应用软件开发的编程语言。它拥有很多优点,例如高效、灵活、功能丰富、表现力强、可移植性强等。它的优点:1、紧凑、灵活和方便;2,运营商丰富;3,数据类型丰富;4、表达模式是灵活和实用;5,可以直接访问物理地址,对硬件的操作,6,高质量地生成的目标代码,程序执行效率高,7,良好的可移植性。
目 录
第1章 绪论 1
1.1 课题背景 1
1.2 课题研究 1
1.2.1 课题研究的目的和意义 1
1.2.2 国内发展情况 1
1.3 开发环境和开发工具 1
1.3.1 开发环境Centos7.0 1
1.3.2 开发工具GCC 2
1.3.3 开发语言C语言 2
第2章 Linux简介 3
2.1 Linux的内核 3
2.1.1 系统内存管理 3
2.1.2 软件管理程序 4
2.1.3 硬件设备管理 4
2.1.4 文件系统管理 4
2.2 Linux的特点 5
2.2.1 多用户 5
2.2.2 多任务 5
2.2.3 移植性 6
2.2.4 开放性 6
2.2.5 良好的用户界面 6
2.2.6 安全性 6
2.2.7 设备的独立性 6
2.2.8 强大的网络功能 6
2.3 Linux的发行版本 6
2.3.1 核心Linux发行版 6
2.3.2 特定用途的Linux发行版 7
第3章 Shell概述 8
3. *好棒文|www.hbsrm.com +Q: @351916072@
1 什么是Shell 8
3.2 Shell的种类 8
3.3 Shell的使用 9
第4章 Mini Shell的设计 10
4.1 系统设计思想 10
4.2 总体功能 10
4.3 系统主要设计思路 13
第5章 Mini Shell的实现 15
5.1 Mini Shell简介 15
5.2 Mini Shell的具体实现(附代码) 16
5.2.1 系统main函数的实现 16
5.2.2 jobs命令实现代码 18
5.2.3 显示历史命令代码实现 20
5.2.4 重定向命令代码实现 21
5.2.5 管道命令代码实现 23
5.2.6 保存历史命令代码实现 24
5.3 效果图 24
5.3.1 执行ls命令结果 24
5.3.2 执行touch命令结果 25
5.3.3 执行rm命令结过果 25
5.3.4 执行jobs命令结果 25
5.3.5 执行输出重定向命令>结果 25
5.3.6 执行管道命令结果 27
结束语 28
致 谢 29
参考文献 30
第1章 绪论
1.1 课题背景
Linux在目前市场应用的操作系统还是很广泛的。在Linux的内核身上我们可以看到操作系统的很多重要体系结构属性。内核可以划分为多个子系统,在或高或低不同的层次上。当然,Linux也是一个完整的整体,在内核中包含着一些基本服务。这正是微内核架构的不同之处,在微内核层中它可以提供一些诸如通信、I/O、内存和流程管理等基本服务。
在内存和CPU使用方面,Linux都具有较高的效率并且非常稳定。但是相对于其他操作系统来说,Linux可以在这种大小和复杂性的前提下,它可移植性还是能体现出来。在大量处理器和不同体系结构约束平台上依然可以运行编译后的Linux。
1.2 课题研究
1.2.1 课题研究的目的和意义
随着互联网在日常生活中的普遍应用,许多想了解和掌握Linux的程序员会逐渐参与到Linux的开发之中。在这过程中,许多富有创造性想法的程序员在完全自发地参与开发的前提下,不会对任何服务进行任何争议。当程序员们完成了部分程序,他们就会发布这个程序,并将该程序发送需要它的人。而其他的程序员在研究后会修正和改进它,然后再次发布。这个过程一遍又一遍的开始,所以Linux的改进是最快的,而且它还有很高的稳定性。
因此,研究Linux可以系统而全面的了解一个操作系统运行方式。对一些想深入学习操作系统的同学来说,Linux是热情、自由和开放的完整产品。
1.2.2 国内发展情况
Linux现在是开放源码项目的代表,许多大型硬件厂商也支持Linux。在Linux平台上有越来越多的服务软件。Linux现在在企业应用程序中也比较广泛。
1.3 开发环境和开发工具
1.3.1 开发环境Centos7.0
CentOS 是一个款基于Red Hat Linux开发并发行的企业级Linux发行版本。CentOS是通过Red Hat Enterprise Linux源代码进行第二次编译的产物,并且修复了RHEL上不少已知的Bug。相对于其他Linux发行版,其稳定性值得信赖。而且他的图形化界面相对简洁美观。
1.3.2 开发工具GCC
GCC原本是一款只处理C语言的语言编译器。后来它得到广泛的应用与推广,变得可以处理像C++、Java、Fortran等汇编语言。所以它又通常被称为GNU编译器套件。早期的GCC被应用在大多数类Unix操作系统上,正因为它是一款自由软件,所以它的兼容性和可移植性都是非常高的。在目前普遍使用的Windows操作系统上也可以完美运行。
1.3.3 开发语言C语言
C语言是一种通用且广泛应用于系统和应用软件开发的编程语言。它拥有很多优点,例如高效、灵活、功能丰富、表现力强、可移植性强等。它的优点:1、紧凑、灵活和方便;2,运营商丰富;3,数据类型丰富;4、表达模式是灵活和实用;5,可以直接访问物理地址,对硬件的操作,6,高质量地生成的目标代码,程序执行效率高,7,良好的可移植性。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/rjgc/341.html