(18年)新的学期,迎来了第一个大作业——>在ubuntu系统下写出自己一个shell,并且能运行自己定义的命令或者系统本身的命令,如:cd , ls ,pwd等。
笔者和组员大概看了《Linux环境高级编程》这本书,这本书里有各种系统调用函数的详解,按照目录结构进行划分,看起来非常方便。大概了解了命令行的命令,分为两种,一种是系统内置的命令,用excv()及其衍生函数即可执行,另一种是非系统调用命令,需要程序中调用各种函数和使用各种结构体才能完成。
在这么一分析后,很神秘的命令变得很清晰,系统内置命令该调用什么函数,非系统调用命令该调用什么函数。当然不想调用函数可以去看bash源码,笔者能力有限就没有去看~。
我们组设计的shell很简单,分为3个模块:第一个模块,主函数不断循环执行(用来不断的接受命令);第二个模块:执行函数:用于对命令进行选择判断,以选择正确的第三个模中的函数;模块三:命令的实现函数.cpp文件和.h文件。 最后写了一个makefile
以下是最后得到的shell命令的编写,链接如下:
https://download.csdn.net/download/qq_38851184/12322875
拜师教育学员文章:作者:1001-高同学,
转载或复制请以 超链接形式 并注明出处 拜师资源博客。
原文地址:《操作系统大作业———设计一个属于自己的shell》 发布于2020-04-12
评论 抢沙发