【项目】Shell项目
Shell项目,实现自己的命令解释器。
命令分为两种,内置命令(cd,exit)和普通命令。
- 内置命令
内置命令在bash中实现,不产生新进程,对本身做操作。
cd 通过chdir(cd)实现操作。
exit 为退出进程,直接break。
部分代码截图:
运行结果截图:
cd
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。打开相应文件并进行读取打印即可实现该操作。
部分代码截图:
运行结果截图: