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

Posted moddy13162201

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20165223 《信息安全系统设计基础》 实现mybash相关的知识,希望对你有一定的参考价值。

  • 使用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的主要内容,如果未能解决你的问题,请参考以下文章

20165223 《信息安全系统设计基础》 stat命令的实现-mysate

20165223 《信息安全系统设计基础》第八周学习总结

2017-2018-1 20155315 《信息安全系统设计基础》实验三 实时系统

2018-2019-1 《信息安全系统设计基础》实验三:并发程序

2018-2019-1 20175206《信息安全系统设计基础》第二周学习总结

2017-2018-1 20155310 《信息安全系统设计基础》第十二周学习总结