利用Linux中IO接口实现MiniShell
项目要求:
1.编写项目文档
1.项目需求
项目背景
描述实现该原因及背景
需求分析
分析项目要求(不涉及技术)
概要设计
根据需求设计相关技术实现功能
软件框图:各个模块之间的功能及其关系
模块设计
具体每个功能的模块设计
流程图:每个模块实现功能的具体步骤及方式
2.将用户输入命令的时间及其命令写入到日志文件中并纪录
[%d-%d-%d %d:%d:%d]:%s
3.根据代码功能,将代码划分成若干个文件,并使用多文件编程来实现代码
main.c
main.h
terminal.c
terminal.h
command.c
command.h
Makefile
编写文档 -> 分析整体软件设计及实现 -> 编写代码 -> 调试代码 -> 答辩
需要思考的功能:
1.打印终端命令行如何实现?
[linux@Ubuntu:当前所在目录] getcwd -> 绝对路径 -> 显示最后一部分内容
/home/linux/Desktop/dirname
2.能够接收用户的命令?
ls gets -> 解析字符串获得命令及其参数
touch a.txt
rmdir dirname
cp a.txt b.txt
3.实现对应命令?
ls opendir readdir closedir
ls -a opendir readdir closedir
ls -l
touch fopen fclose
rm remove
mkdir mkdir
rmdir rmdir
cp IO
cat IO
ln symlink link
pwd getcwd
cd chdir
mv rename
chmod chmod
4.命令记录
写入文件