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).