试验2熟悉Linux环境试验
湖北汽车工业学院实验报告湖北汽车工业学院实验报告 班号学号姓名 选课班中的序号完成日期年月日 至 节 实验二实验二熟悉熟悉 LinuxLinux 环境实验环境实验 一、实验目的一、实验目的 1.了解 Ubuntu 系统基本操作方法,学会独立使用该系统。 2.练习常用的 shell 命令。 3.熟悉简单的脚本程序。 4.掌握 Ubuntu 下如何编辑、编译和运行一个C 语言程序。 5.学会利用 gcc、gdb 编译、调试 C 程序。 二二、实验内容、实验内容 1 1、登陆、登陆 LinuxLinux 2 2、熟悉、熟悉 UbuntuUbuntu 图形桌面环境图形桌面环境 3 3、练习常用的、练习常用的 ShellShell 命令(必做)命令(必做) ((6 6 分)分) 1) 目录操作 mkdir abc#创建一个目录 abc cd abc #将工作目录改变到 abc cd #改变当前目录到主目录 ls #列出当前目录的内容 显示: ls -l #输出当前目录内容的长列表,每个目录或文件占一行 显示: pwd #显示当前目录的全路径 显示: 2) 文件管理实用程序 cp /etc/manpath.config file1 #将 etc 目录下 manpath.config 复制到 file1 mv file1 file2将 file1 重命名为 file2 3) 文件显示实用程序 cat file2显示 file2 文件内容 more file2分屏显示 file2 内容 tail file2显示 file2 后几行 head file2显示文件 file2 的开始 10 行 结果: wc file2统计文件 file2 中的行数、单词数和字符数 结果: rm -i file2请求用户确认删除 file2 文件 查看 file2 文件删除没有: 4) 其他实用程序 date输出系统日期和时间 结果: cal显示本月的日历。cal 2002 显示 2002 年的日历 结果: clear清除终端屏幕 history显示你以前执行过的命令的列表 结果: man显示实用程序的有用信息,并提供该实用程序的基本用法 结果: echo Hello,Welcome to here!读取参数并把它写到输出 结果: 4 4、熟悉简单的脚本编程(必做)、熟悉简单的脚本编程(必做) ((1 1 分)分) 编写 Shell 脚本文件,显示当前路径,列出当前路径下所有文件,建立mydir 子目录, 进入该子目录,拷贝/etc/manpath.config 文件到当前目录中,把文件 manpath.config 改 名为 mymanpath.config,分频显示该文件,用户确认删除该文件,回到上一级目录,删除 mydir 子目录。 1)进入文本编辑器,输入下列脚本程序: #!/bin/bash pwd ls –l mkdir mydir cd mydir cp /etc/manpath.config . mv manpath.config mymanpath.config more mymanpath.config rm –i mymanpath.config cd rmdir mydir 2)保存文件并退出文本编辑器。 (给文件命名 myscript) 3)执行该脚本文件(bash myscript) 注意:使用 rm 命令一定格外小心,因为一旦删除了一个文件,就无法恢复。 5 5、熟悉、熟悉 gccgcc 编译器编译器 6 6、掌握、掌握 LinuxLinux 下下 C C 程序编辑运行过程(必做)程序编辑运行过程(必做) LinuxLinux 下编写 C 程序要经过以下几个步骤: ⑴启动常用的编辑器,键入C 源程序代码。 # include void main(void) { printf(“Hello world!\n”); } ⑵编译源程序 gcc -o hello.out hello.c ↙ ⑶运行可执行文件 ·/hello.out ↙ 7 7、、编写 C 程序要求输入自己生日的月份和日期,计算还有多少天是自己的生日,如果生日 日期已过,给出提示信息。 ((2 2 分)分) 实验要求:1. 列出程序清单,关键地方给出注释。 2.列出 shell 窗口编译、执行该 C 程序的命令。 3.给出运行结果。 (可以截图) 1.#include int today(int month,int day)//今天距离第一天的天数 { int sum = 0; switch(month) { case 1:sum = day; break; case 2:sum = 31 + day; break; case 3:sum = 59 + day; break; case 4:sum = 90 + day; break; case 5:sum = 120 + day; break; case 6:sum = 151 + day; break; case 7:sum = 181 + day; break; case 8:sum = 212 + day; break; case 9:sum = 243 + day; break; case 10:sum = 273 + day; break; case 11:sum = 304 + day; break; case 12:sum = 334 + day; break; default : printf(“输入的月份有错误\n“); break; } return sum; } int birthday(int month1,int day1)//生日距离第一天的天数 { int sum1 = 0; switch(month1) { case 1:sum1 = day1; break; case 2:sum1 = 31 + day1; break; case 3:sum1 = 59 + day1; break; case 4:sum1 = 90 + day1; break; case 5:sum1 = 120 + day1; break; case 6:sum1 = 151 + day1; break; case 7:sum1 = 181 + day1; break; case 8:sum1 = 212 + day1; break; case 9:sum1 = 243 + day1; break; case 10:sum1 = 273 + day1; break; case 11:sum1 = 304 + day1; break; case 12:sum1 = 334 + day1; break; default : printf(“输入的月份有错误\n“); break; } return sum1; } int main() { int month1 ,day1, month ,day; int sum; printf(“请输入生日月日(XX-XX):“); scanf(“%d-%d“, printf(“请