1. 实验目
的理解shell程序的功能。
学会shell的使用。
建造一个简单的shell。
2. 实验内容
基本任务:编写一个简单的shell程序,实现以下基本的命令。
1) 浏览目录和文件的各种属性 ls -l?
2) 回显 echo、
3) 显示文件内容 cat、more、
4) 创建目录mkdir、
5) 删除目录rmdir、
6) 删除文件rm、
7) 改变目录cd 、
8) 改变文件和目录的权限chmod、
9) 显示当前目录 pwd、
10) 文字统计 wc、
11) 查看时间命令 date 、time、
12) 退出命令exit、
13) 帮助命令 help、
14) 发送信号命令 kill、
15) 查看在线用户 who、
16) 查看命令历史记录 history、
17) 查看系统的信息 systeminfo
18) 执行用户的程序
选做任务
提供友好的人机界面;
Advanced shell功能,例如:
1) 输入输出重定向,例如 ./a.out > output.dat
2) 支持多管道命令,例如 ./a.out -a | ./b.out | ./c.out
3) 支持后台运行命令,例如 ls | wc &
4) 其他:参考GNU bash提供的功能。
参考程序:
课本的示例Program 1.5 和 Program 8.8
GNU bash. 源代码见bash-2.05b.tar.gz,文档见bash-doc-2.05b.tar.gz。
3. 实验要求
独立完成实验内容
良好的编程风格
注意事项
禁止使用system函数直接调用系统shell提供的命令。
对于执行指定的程序,使用fork函数生成一个新进程执行。
必须有exit命令:用来退出shell。
必须有help命令:列出shell所拥有的所有命令。
当前目录下放一个hello程序(功能:打印"hello world")。
实验提交
1) 程序源代码、可执行文件、makefile和readme都放在目录 /home/apue/apue×××/lab2/下,×××表示用户的编号。请严格按照上述目录位置存放,否则后果自负。
2) 程序命名: mysh , 提交前请编译好且可执行。
3) readme文件为实验报告:说明程序设计文档、用户手册。
4. 评分标准
A——选做内容/必做内容功能完善,编程风格好,人机接口界面好;
B——必做内容功能完善,完成部分选做内容,编程风格好,人机接口界面良好;
C——完成必做内容,编程风格良好;
D——能完成必做内容;
E——未按时完成必做内容,或者抄袭(雷同者全部为E).
本文作者: