(1)DIY Shell之——shell的基本框架

Linux TOMORROW 2年前 (2017-12-03) 4345次浏览 3个评论 扫描二维码

 

这是本博客的第一个文章专辑。主要介绍如何用 C 语言基于Linux系统来实现一个简单shell,DIY 一个shell。通过自己编程实现一个Linux下的shell,可以使得个人对进程的概念、进程的通信和操作系统的运行的理解更加的深刻。还会大大增加个人学习的成就感,提供学习兴趣。

这一个文章专辑被命名为StupidShell,这也是作者所实现的shell的名称,已经开源放到了 GitHub:StupidShell 代码仓 上,感兴趣的读者可以自行前去查看下载,也欢迎对该项目进行星标、提出改善建议、或者自行 fork 之后改善。

 

本专辑会首先从Linux下的shell的实现思想上来解读shell的工作原理和一些必要的知识要点,然后从完整的代码实现来解读具体的工作原理。

 

这是 StupidShell 专辑本章里的第一篇文章,主要介绍什么是 shell 和 Shell 的基本代码架构。

 

shell 的中文翻译为“外壳”,它的定义就是提供接口给用户与操作系统内核交互的软件。是Linux系统下,可以大大提高生产效率的工具。类似于 Windows 下的命令提示符。

简单来说就是一个可以分析并执行用户所输入的命令的软件。

 

shell 的工作流程应该是这样的:

1、打印命令提示符$或者#;

2、读取并分析命令;

3、执行命令;

4、执行完命令后,重复 1-3;

 

是不是很简单?看起来轻而易举,三两行代码就可以实现了是不是?

while(true)
{
        printf("$");//打印命令提示符
        if('p'==gerchar())//读取命令;分析命令
                print("Hello ,I am a shell .\n");//执行命令
}

上面的代码是不是就已经实现上述的 shell 的 3 个工作流程?虽然,它只能执行一个命令,看起来非常 stupid;

但是,它已经把 shell 的三个关键步骤的思想体现在里面了。

 

当然这个小东西还不配叫做 shell。因为 shell 执行的命令不仅仅包括内建命令(像以上代码段所实现的命令),还包括外部命令。

欲知何为内建命令和外部命令,且听下回分解。

 

下一章:

DIY Shell 之——内建命令与外部命令(2)

 

 


TOMORROW 星辰 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:(1)DIY Shell 之——shell 的基本框架
喜欢 (4)
TOMORROW
关于作者:
一个从石头坑掉到泥坑里的攻城狮。
笨笨的鲜花发表我的评论  请填写正确的 个人信息
取消评论
表情 加粗 斜体 签到
(3)个小伙伴在吐槽
  1. 好文章!666,学习了
    speeda2019-05-05 20:01 回复 Windows 7 | 未知浏览器
  2. 好文章!666,学习了
    xtwyxj2019-05-05 19:40 回复 Windows 7 | 未知浏览器
  3. 站长TT
    :mrgreen:
    admin2018-05-16 01:45 回复 Windows 10 | 搜狗浏览器 2.X