Linux 软件编程学习第五 六天之minishell小项目

利用Linux中IO接口实现MiniShell

项目要求:

1.进入软件后显示字符终端界面,界面中包含用户名(可以写死为linux)、操作系统名(可以写死为ubuntu)、当前所在的文件名

linux@ubuntu:Desktop

2.软件中支持用户输入如下命令:

1.ls

ls -a

ls -l

ls filename

ls -l filename

2.touch

touch filename

3.rm

rm filename

4.mkdir

mkdir dirname

5.rmdir

rmdir dirname

6.cd

cd ..

7.cp

cp src.txt dstdir

8.mv

mv oldpath newpath

9.cat

cat filename.txt

10.chmod

chmod 0777 filename

11.ln

ln -s file.txt a.txt

ln file.txt b.txt

12.find

find filepath -name filename

3.minishell记录了用户输入命令的时间和内容,可以支持用户使用history命令查看用户输入的历史命令及其输入的时间

history

2024-08-03 13:51:30history

项目要求:

1.编写项目文档

1.项目需求

项目背景

描述实现该原因及背景

需求分析

分析项目要求(不涉及技术)

概要设计

根据需求设计相关技术实现功能

软件框图:各个模块之间的功能及其关系

模块设计

具体每个功能的模块设计

流程图:每个模块实现功能的具体步骤及方式

2.根据代码功能,将代码划分成若干个文件,并使用多文件编程来实现代码

main.c

main.h

terminal.c

terminal.h

command.c

command.h

Makefile

编写文档 -> 分析整体软件设计及实现 -> 编写代码 -> 调试代码 -> 答辩

相关推荐
hanlin032 分钟前
刷题笔记:力扣第84题-柱状图中最大的矩形
笔记·算法·leetcode
青少儿编程课堂1 小时前
威佐夫博弈(双堆取子游戏)解析
c++·python·算法·bfs·信息学竞赛
卷土重去1 小时前
第 6 章 Linux 实操篇-Vi 和 Vim 编辑器
linux·编辑器·vim
en.en..3 小时前
Linux 孤儿进程与僵尸进程
linux·运维·服务器
辰烨chenye5 小时前
LeetCode Hot 100 题解 · 普通数组篇
算法·leetcode·职场和发展
hqyjzsb8 小时前
零 AI 项目经验,学 Python 转型 AI 的正确顺序是什么?
开发语言·人工智能·python·算法·职场和发展·数据挖掘·数据分析
辰烨chenye8 小时前
LeetCode Hot 100 题解 · 二分篇
java·算法·leetcode
微功夫信息技术8 小时前
分层多智能体强化学习驱动的非急救转运公平 - 效率统一调度系统研究与实践
人工智能·学习·算法·动态规划
T1mzhou9 小时前
ARM64 Linux 6.10内核启动流程7-ioremap和readl writel
linux·服务器·c语言
sanjiaomao3339 小时前
从论文公式到Python实现:用单元测试校验滑动平均算法
python·算法·单元测试