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
- 码云链接:mybash.c
四、测试mypwd
- 测试截图,成功
- 用pwd命令检测,一致
以上是关于20165223 《信息安全系统设计基础》 实现mybash的主要内容,如果未能解决你的问题,请参考以下文章
20165223 《信息安全系统设计基础》 stat命令的实现-mysate
2017-2018-1 20155315 《信息安全系统设计基础》实验三 实时系统
2018-2019-1 《信息安全系统设计基础》实验三:并发程序