实验课题1:Linux命令解释程序设计与实现.docx

实验课题1:Linux命令解释程序设计与实现.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.3.2 显示当前一系列进程 3.3.2 显示当前一系列进程 PAGE # 3.1.3 文件重命名 3.1.3 文件重命名 PAGE # 实验课题 1:Linux 命令解释程序设计与实现 实验报告 实验内容及要求 Linux 命令解释程序功能设计要求: 选取和设计实现一组内部命令(五条以上) ; 外部命令执行采用直接调用 exec 系统调用的方式来实现; 至少一条内部命令采用直接调用相应系统调用的方式来实现; 系统环境变量(至少包括当前目录)支持; 在 Linux 操作系统上启用(或替换原命令解释程序 Shell )测试验 证。 开发、运行及测试环境 虚拟环境软件 : Oracle VM VirtualBox 操作系统: Oracle Linux 6.5 编辑器: vim 编译器: gcc 实验步骤 采用 c 语言编写该 Linux 命令解释程序。首先包含 unistd.h 、 sys/syscall.h 等头文件以及完成各个功能的函数声明。主程序中利用循环结 构完成不限次的命令提示符显示和命令输入,并判别输入的命令是否合法,是 内部命令还是外部命令。将 Linux 命令解释程序的各个功能封装成函数,完成 具体的命令执行处理。实现具体功能步骤如下。 采用间接调用实现的内部命令 显示指定目录下文件列表 设计该命令关键词为“ ls ”, 功能为用户输入该命令后,指定具体的目录路 径,可显示在该目录下的文件列表,并将文件编号显示,格式为“ file 编号 文件名”,每行显示一个文件的文件名。如该过程中出现错误导致不能显示文件 列表则输出具体错误提示。采用间接调用相应系统调用的方式将该功能完成后 封装为 void list_() 函数。 显示当前路径 设计该命令关键词为“ pwd”, 功能为用户输入该命令后,在下一行显示当 前路径并回车换行。采用间接调用相应系统调用的方式将该功能完成后封装为 void pwd_() 函数。 设计该命令关键词为“ rename”, 功能为用户输入该命令后,在下一行显示 “ pleace input the old file name: ”,用户需输入需要重命名的文件名,然 后显示“ pleace input the new file name: ”,用户需输入该文件的新的文件 名,即可完成对文件的重命名。完成后显示提示重命名工作失败或成功。采用 间接调用相应系统调用的方式将该功能完成后封装为 void rename_() 函数。 显示输入内容 设计该命令关键词为“ echo” , 功能为用户输入该命令后,输入空格,然后 输入需要显示的内容,即可在下一行显示上述用户希望输出的内容并回车换 行。采用间接调用相应系统调用的方式将该功能完成后封装为 void echo_() 函 数。 使用帮助 设计该命令关键词为“ help ” , 功能为用户输入该命令后,然后显示本命令 解释程序的合法命令及其具体的功能说明。采用间接调用相应系统调用的方式 将该功能完成后封装为 void help_() 函数。 退出程序 设计该命令关键词为“ exit ”或“ quit ”, 功能为用户输入该命令后,显示 “ thank you for using! bye~ ”,之后该命令解释程序( Shell )退出到 Linux 操作系统上的原命令解释程序 Shell 。采用间接调用相应系统调用的方式完 成。因该功能代码较简单直接在主程序中实现并未封装为函数。 设置和初始化系统环境变量 此处略,详见下文 3.4 系统环境变量支持中的说明。 采用直接调用的内部命令 文件拷贝 设计该命令关键词为“ copy” , 功能为用户输入该命令后,然后显示 “ pleace input the file name to be copied: ”,用户输入需要复制的文件的 文件名,然后显示“ pleace input the new file name: ”,用户输入新拷贝文 件的文件名,即可完成文件的拷贝。如该过程中出现错误导致文件拷贝不成功 则输出具体错误提示。采用直接调用系统调用的方式将该功能完成后封装为 void copy_() 函数。 外部命令 显示环境变量 设计该命令关键词为“ env”, 功能为用户输入该命令后,然后显示出所有 的系统环境变量,每行显示一个。采用直接调用 exec 系统调用的方式将该功 能完成后封装为 int environ_() 函数。 4.3.2 显示当前一系列进程 4.3.2 显示当前一系列进程 PAGE # 4.1.3 文件重命名 4.1.3 文件重命名 PAGE # 设计该命令关键词为“ jobs ”, 功能为用户输入该命令后,然后显示出当前 一系列进程和子进程。采用直接调用 exec 系统调用

您可能关注的文档

文档评论(0)

fengnaifeng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档