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

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

相关推荐
企鹅的蚂蚁1 天前
LubanCat RK3588 实时 Linux 开发(九):从 U-Boot 到 initramfs 的串口启动故障分析
linux·rk3588·u-boot·串口调试·initramfs·linux启动
土司大王1 天前
LeetCode hot100——4.寻找两个正序数组的中位数:Java 二分第K小 递归裁剪
java·算法·leetcode
薛定e的猫咪1 天前
(ICML2024)QSM:基于 Q 函数梯度对齐分数场的扩散模型离策略强化学习
人工智能·深度学习·算法
kkkkkkkkkk_Z1 天前
学嵌入式和Linux应用编程|学习日记:UDP协议与Wireshark抓包学习笔记
linux·笔记·学习
hetao17338371 天前
2026-09-13 hetao1733837 的刷题记录
c++·算法
hansang_IR1 天前
【题解】[JSOI2016] 扭动的回文串
c++·算法
Lyyaoo.1 天前
【二分查找】【困难】寻找两个有序数组的中位数
java·数据结构·算法
Lzh编程小栈1 天前
STM32 DMA深度解析|原理、完整工作流程、寄存器、中断联动,嵌入式面试高频考点(F1系列)
c语言·stm32·单片机·mcu·面试
嵌入式小能手1 天前
飞凌嵌入式ElfBoard-Shell编程应用实例-提取字符并设置rtc时间
linux