科 技 学 院 实验报告 ( 2014-- 2015年度第1学期) 名 称: UNIX/LINUX体系及编程 院 系: 信息工程系 班 级: 学 号: 学生姓名: 指导教师: 姜丽梅 设计周数: 3 成 绩: 日期:2014年 12 月10日 任 务 书 一、 目的与要求 1. 掌握UNIX/Linux系统的目录和文件管理命令。 2. 掌握shell的输入输出重定向, 编写shell脚本文件。 3. 编写C语言程序,使用GCC编译,使用GDB调试。 4. 掌握make工具,撰写makefile文件,完成C程序的自动编译。 5. 要求每人能独立完成实验。 二、 主要内容 1. 用pwd命令显示用户主目录的路径名,用date命令查看当前日期和时间,用who命 令查看当前登录在系统中的用户列表,利用who命令选项查看当前系统中的用户 总数和系统启动时间。比较whoami 和who am i显示的结果区别,熟练使用cat、cd、chmod、ls、cp、ln、df、ps等命令。 2. 用vi编辑器,先在用户主目录中创建文件,编辑文件。并作统计文件大小,重新 编辑文件。字符串替换等工作 3. 用find命令查找名为passwd的文件。从用户主目录开始,查找所有1天前创建的文 件。查找文件属主的文件。查找1天前被访问过的文件。 4. 用重定向符和cat命令创建一个 flower脚本文件,完成如下功能。 4.1 显示用户名。显示用户当前系统中的进程。 4. 2 判断当前用户是否为root用户:若是root用户,则根据命令行参数n,清除/var /log目录下的某个文件的内容但保留其最后的n行的内容,若没有参数,则保留 10行;若不是root用户,提示出错。 5. 编写C程序,编译、运行、调试程序。用C语言程序编程实现:将输入的十进制数 输出为相应的十六进制数。 6. 利用UNIX的软中断信号编写一段C语言程序完成:显示数字1到100,在程序运行中 如果捕获到一个SIGINT信号,则转去执行一段显示当前系统时间的程序。考虑 信号复位的情况,使程序能够实现多次被打断而多次恢复执行。 三、 进度计划 "序号 "设计(实验)内容 "完成时间 "备注 " "1 "基本命令及编辑器VI "4学时 " " "2 "SHELL脚本编写 "4学时 " " "3 "C程序开发 "4学时 " " 四、实验成果要求 1. 将操作截图贴报告中,包括命令、脚本、C代码、makefile文件及运行结果。 五、 考核方式 1. 以实验报告作为实验成绩。 学生姓名: 指导教师: 2014年12月10日 一、实验目的和要求: 1. 掌握UNIX/Linux系统的目录和文件管理命令。 2. 掌握shell的输入输出重定向, 编写shell脚本文件。 3. 编写C语言程序,使用GCC编译,使用GDB调试。 4. 掌握make工具,撰写makefile文件,完成C程序的自动编译。 5. 要求每人能独立完成实验。 二、实验主要内容: 1. 用pwd命令显示用户主目录的路径名,用date命令查看当前日期和时间,用who命 令查看当前登录在系统中的用户列表,利用who命令选项查看当前系统中的用户 总数和系统启动时间。比较whoami 和who am i显示的结果区别。 命令:pwd:查看当前工作路径 命令:date:查看日期时间 命令who 选项查看当前系统中的用户总数和系统启动时间 命令:whoami 和 who am i 的区别:whoami只显示当前用户的名字 2. 用vi编辑器,先在用户主目录中创建文件,编辑文件。并作统计文件大小,重新 编辑文件。字符串替换等工作 命令:创建hello文件:vi hello 命令:统计创建文件大小:du –h davidlinux 命令:字符串的替换:在命令模式下输入 cat hello查看文件内容如下: 可以把文件中所有的lilei替换成xiaoming。输入:%s/lilei/xiaoming/g 3. 运用find命令查找passwd文件 在/目录下查找passwd文件:find / -name passwd 查找一天前所创建的文件:find /home/deno/ -atime +1 查找一天前所访问的文件:find /home/deno/ -ctime +1 查找/home/demo目录下属主是tom的文件:find -user tom 4. 编写flower脚本 a. 显示用户名。显示用户当前系统中的进程。 b. 判断当前用户是否为root用户:若是root用户,则根据命令行参数n,清除/var /log目录下的某个文件的内容但保留其最后的n行的内容,若没有参数,则保 留10行;若不是root用户,提示出错。 文件为/var/log/c
【UNIX/Linux系统基础】
在UNIX/Linux操作系统中,学习掌握基本的命令行操作是至关重要的。实验报告中的内容涉及了以下几个核心知识点:
1. **目录和文件管理**:使用`pwd`命令显示当前工作目录,`date`查看日期和时间,`who`用于查看当前登录的用户,`whoami`显示当前用户名,`who am i`同样显示当前用户但格式略有不同。此外,还有`ls`列出目录内容,`cd`切换目录,`chmod`改变文件权限,`cp`复制文件,`ln`创建链接,`df`检查磁盘空间,`ps`查看当前进程。
2. **VI编辑器**:VI是UNIX/Linux中的文本编辑器,可以用来创建、修改文件。通过`vi filename`创建或打开文件,编辑完成后使用`:wq`保存并退出,`:q!`不保存退出。统计文件大小可以使用`du -h filename`,字符串替换则在命令模式下输入`:%s/old_string/new_string/g`。
3. **Find命令**:用于在文件系统中查找文件。例如,`find / -name passwd`查找全局的`passwd`文件,`find /home/deno/ -atime +1`查找一天前创建的文件,`find -user tom`查找属主为`tom`的文件。
4. **Shell脚本**:通过重定向符和`cat`命令可以创建脚本文件。例如,`flower`脚本可以显示用户名(`whoami`),并显示当前进程(`ps`)。如果用户是root,可以根据参数删除并保留文件的最后几行内容。
5. **C语言编程**:使用`gcc`编译C源码,`gdb`进行调试。例如,编写一个程序将十进制数转化为十六进制,可以使用`printf`函数和类型转换来实现。
6. **处理信号**:UNIX/Linux支持信号机制,例如`SIGINT`代表中断信号。可以编写C程序,当接收到`SIGINT`时,暂停当前任务,显示系统时间,然后恢复执行。这涉及到信号处理函数和信号复位的概念。
7. **Make工具和Makefile**:`make`工具用于自动化编译过程,`makefile`是它的配置文件。在其中定义规则和目标,使得C程序的编译、链接更高效。
实验要求学生独立完成上述任务,并提交包含命令、脚本、C代码、makefile及运行结果的截图作为成绩依据。实验进度计划中,基本命令与VI编辑器的学习需4学时,shell脚本编写同样4学时,C程序开发也是4学时。实验的目的是通过实践操作,全面掌握UNIX/Linux系统的基本操作和编程技能。