码迷,mamicode.com
首页 > 其他好文 > 详细

20165223 《信息安全系统设计基础》 实现mybash

时间:2018-11-25 16:14:47      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:net   sdn   director   code   用户   系统   解释器   查看系统   技术分享   

  • 使用fork,exec,wait实现mybash
  • 写出伪代码,产品代码和测试代码
  • 发表知识理解,实现过程和问题解决的博客(包含代码托管链接)

一、了解 mybash

1. 简介

bash 是 Bourne Again Shell 的缩写,是linux默认的标准shell(也是大家常说的系统内核),bash也是Unix/Linux上常见的Shell脚本解释器,既然bash是标准的shell,那么就有非标准的sh,csh,ksh等等,我们常说有多少种Shell,其实说的是Shell脚本解释器,Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本,bash是基于Bourne shell创建的,并且吸收了C shell和Korn shell的一些特性,而且bash完全兼容sh,也就是说,用sh写的脚本可以不加修改的在bash中执行。

——摘自《Unix/Linux里面的bash是什么

  • 通常shell中执行命令的流程都是bash进程创建了一个子进程,然后子进程进程替换,替换为可执行的命令文件。
  • bash shell是sh shell的增强版本,目前linux大部分(默认)使用的都是bash shell。

2. mybash 输出信息格式

  • [用户名@主机名所在文件]$(root用户:[用户名@主机名所在文件]#)
  • 当所在文件就是当前用户的家目录时显示“~”

二、研究 mybash 实现需要的系统调用

(1)先用man -k directory | gerp 2来查看一下是否有可用命令

(2)发现命令getcwd符合找到当前目录的要求

  • 使用man getcwd查看系统调用

  • 找到需要的头文件和函数参数


三、实现 mybash 的伪代码

(1)
(2)
(3)
(4)
(5)

四、实现 mybash


四、测试mypwd

  • 测试截图,成功

技术分享图片

  • 用pwd命令检测,一致

技术分享图片

20165223 《信息安全系统设计基础》 实现mybash

标签:net   sdn   director   code   用户   系统   解释器   查看系统   技术分享   

原文地址:https://www.cnblogs.com/moddy13162201/p/10015662.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!