linux shell详解,以及基于进程对shell的简单模拟实现

什么是shell

shell 翻译成中文就是壳,外壳的意思。它是一个命令行解释器,负责接收用户命令,然后调用相应的应用程序。它将用户和系统内核隔离开来,做他们两者间交互的桥梁。
这就是为什么我们发送一系列命令,系统都知道对应的操作是什么。
shell的功能
1.用户发送命令给shell:将使用者的命令翻译解释给中央内核处理
2.内核发送反馈结果给shell:将核心处理结果翻译呈现给使用者
举个例子:古代为了保证闺中少女的名节,保护少女们收到伤害,和男子决定婚嫁沟通是由媒婆来完成之间交流等活动的。那我们这个shell是不是和媒婆很像呢。
shell这个命令行解释器是一个统称概念,具体到Linux中是有/bin/bash//根目录下bin目录中的bash完成的

模拟shell过程

我们先观察一下Linux下的shell是工作呈现的结果是什么吧。
以ls命令为例子:
这里写图片描述
我们的显示格式有命令提示符:[用户@主机名 目录] 以及我们的命令组成。
我们暂且忽略命令提示符,先完成命令部分。

1.首先利用vim一个文件
具体操作见博客linux vi/vim详解

   vim myshell//进入
   //从普通模式进入可写模式,然后开始写代码 

2.从输入终端获取字符串,因为scanf(%s)不能接收空格,所以采用另一种格式接收整一行数据
2.分解字符串,按照空格位置拆分到一个一个的命令参数,分别存入数组的各个单元中去
3.创建一个子进程,在子进程中调用exec进行进程替换,让子进程去运行命令
关于exec函数,父子进程以及进程替换详细见博客linux 如何创建子进程fork和fork,vfork,exec函数组详

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值