【项目】Shell项目

Shell项目,实现自己的命令解释器。

命令分为两种,内置命令(cd,exit)和普通命令。

 

  • 内置命令

内置命令在bash中实现,不产生新进程,对本身做操作。

cd 通过chdir(cd)实现操作。

exit 为退出进程,直接break

部分代码截图:

 

运行结果截图:

cd

扫描二维码关注公众号,回复: 9485539 查看本文章

 

exit

 

  • 普通命令

普通命令通过fork()+exec()实现,产生新进程

部分代码截图:

 

pwd :显示当前文件所在的绝对路径,通过getcwd(pwd,len)即可得到。

部分代码截图:

 

运行结果截图:

mkdir:生成目录文件,通过mkdir()生成

部分代码截图:

 

运行结果截图:

 

rmdir:删除空的目录文件,通过rmdir()删除

部分代码截图:

 

运行结果截图:

 

touch:生成普通文件。直接利用open()打开文件,若无则创建。

部分代码截图:

 

运行结果截图:

rm:删除普通文件,通过unlink()实现。

部分代码截图:

 

运行结果截图:

ls:通过getcwd()获取当前所在目录后,通过opendir(),readdir(),closedir()对目录流进行操作。打印非隐藏文件,并判断其文件权限后根据权限将文件名分颜色打印。

部分代码截图:

 

运行结果截图:

cp:文件拷贝,通过open(),read(),write(),close()等对文件的操作实现对新文件的打开/创建,并进行复制操作。

部分代码截图:

 

运行结果截图:

 

ps -e/-A:ps命令所需要的信息存储在/proc/pid/task/status。打开相应文件并进行读取打印即可实现该操作。

部分代码截图:

 

运行结果截图:

 

发布了15 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ifiwere/article/details/104573140
今日推荐