操作系统大作业---------设计一个属于自己的shell

(18年)新的学期,迎来了第一个大作业------>在ubuntu系统下写出自己一个shell,并且能运行自己定义的命令或者系统本身的命令,如:cd , ls ,pwd等。

笔者和组员大概看了《Linux环境高级编程》这本书,这本书里有各种系统调用函数的详解,按照目录结构进行划分,看起来非常方便。大概了解了命令行的命令,分为两种,一种是系统内置的命令,用excv()及其衍生函数即可执行,另一种是非系统调用命令,需要程序中调用各种函数和使用各种结构体才能完成。

在这么一分析后,很神秘的命令变得很清晰,系统内置命令该调用什么函数,非系统调用命令该调用什么函数。当然不想调用函数可以去看bash源码,笔者能力有限就没有去看~。

我们组设计的shell很简单,分为3个模块:第一个模块,主函数不断循环执行(用来不断的接受命令);第二个模块:执行函数:用于对命令进行选择判断,以选择正确的第三个模中的函数;模块三:命令的实现函数.cpp文件和.h文件。 最后写了一个makefile

以下是最后得到的shell命令的编写,链接如下:

https://download.csdn.net/download/qq_38851184/12322875

 

你可能感兴趣的:(操作系统)