实验时间: 2023.2.27
【实验目的】
1.了解Ubuntu系统基本操作方法,学会独立使用该系统。
2.熟悉Ubuntu下如何编辑、编译和运行一个C语言程序。
3.掌握Linux系统中编辑、编译、调试、运行C程序的全过程。
【预习内容】
预习实验一的阅读材料,了解以下方面内容。
1.Ubuntu下各种应用程序的使用。
2.常用的SHELL命令。
3.gedit编辑器、vim编辑器和emacs编辑器使用方法。
4.Ubuntu下C程序编辑、编译和运行过程。
【实验内容】
一、登陆Linux,熟悉Ubuntu图形桌面环境
1.参考阅读材料,熟悉任务栏并快速打开各个菜单及窗口。
2.掌握打开 “终端”按钮,并在终端窗口中,熟悉Linux常用命令,重点掌握:
cd , ls , pwd ,cat , mkdir , cp , rm ,who 命令
二、了解目录和文件系统
Linux 和 Unix 文件系统被组织成一个有层次的树形结构。文件系统的最上层是 /,称为 “根目录”。在 Unix 和 Linux 的设计理念中,一切皆为文件——包括硬盘、分区和可插拔存储介质。这就意味着所有其它文件和目录(包括其它硬盘和分区)都位于根目录中。 例如:/home/zhang/sort.c 给出了正确的完整路径,它指向 sort.c 文件,而该文件位于 zhang 目录下,该目录又位于 home 目录, home 目录又位于根(/) 目录下。 在根 (/) 目录下,有一组重要的系统目录,在大部分 Linux 发行版里都通用。直接位于根 (/) 目录下的常见目录列表如图1-1所示。
图1-1 根目录
实验要求:查阅资料,了解各个文件夹的作用。
三、熟练使用gedit编辑器及gcc编译器
1.编辑器可以使用系统自带的gedit文本编辑器,或者vim编辑器
在编写文本或计算机程序时,需要创建文件、插入新行、重新排列行、修改内容等,计算机文本编辑器就是用来完成这些工作的。
若需了解vim编辑器,参见附录。
2.GNU/Linux中通常使用的C编译器是GNU gcc。编译器把源程序编译生成目标代码的任务分为以下4步:
图1-2 HelloWorld编译流程
a. 预处理,把预处理命令扫描处理完毕;
b. 编译,把预处理后的结果编译成汇编或者目标模块;
c. 汇编,把编译出来的结果汇编成具体CPU上的目标代码模块;
d. 连接,把多个目标代码模块连接生成一个大的目标模块;
3.掌握Ubuntu下C程序编辑运行过程(重点)
Ubuntu下编写C程序要经过以下几个步骤:
例如,在窗口模式相应文件夹下右击,选择 “New Document” 创建一个新文件,进入编辑环境,输入C源程序,保存并命名为HelloWorld.c,如图1.2所示。
图1-3 新建一个C程序
代码如下:
# include <stdio.h> void main(void) { printf(“Hello world!\n”); }
注意:每次修改源代码之后,注意及时保存,再进行编译。
操作过程如图1-4所示。
图 1-4 编译运行程序图例
打开终端,进入命令行。用gcc编译器对C源程序进行编译,以生成一个可执行文件。方法:
gcc -o HelloWorld.out HelloWorld.c ↙
或者方法:gcc HelloWorld.c -o HelloWorld.out ↙
注:命令行中 -o选项表示要求编译器输出可执行文件名为HelloWorld.out文件,HelloWorld.c是源程序文件。
在终端,编译目录下,键入:
·/ HelloWorld.out ↙
(4)分步编译
我们也可以手动控制以上这个编译流程的4个步骤,从而留下中间文件方便研究:
gcc HelloWorld.c -E -o HelloWorld.i 预处理:加入头文件,替换宏。
gcc HelloWorld.i -S -o HelloWorld.s 编译:包含预处理,将 C 程序转换成汇编程序。
gcc HelloWorld.s -c -o HelloWorld.o 汇编:包含预处理和编译,将汇编程序转换成可链接的二进制程序。
gcc HelloWorld.o -o HelloWorld 链接:包含以上所有操作,将可链接的二进制程序和其它别的库链接在一起,形成可执行的程序文件。
逐渐生成各个中间文件, 如下图:
【要求】
1.举例列出常用的shell命令使用方法,并适当截图。
2. 编辑HelloWord.c程序,编译运行并将代码、结果截图。
2.通过实例总结上机调试C语言程序的过程及此次上机的感想体会。
【实验步骤和结果】
1.删除文件3
2.重命名文件2为1
复制文件1到文件22
3.显示当前目录的全路径pwd
cd work 将工作目录改变到work(注意:work目录已存在)
cd 改变当前目录到主目录
4.ls 列出当前目录的内容
ls -1 输出当前目录内容的长列表,每个目录或文件占一行
英语和汉字1区分开
5.创建一个目录
cat exp1.c 显示exp1.c文件内容
6
7连接
8.编辑HelloWord.c程序
【实验总结和体会】
- 目录中是什么意思1~?
隐藏的备份文件
2.Cd前进不能退回 回到主目录 cd file :进入当前文件中的文件
3.Tail显示文件后10行,不能是文件夹
4.
只要是yes就识别
5.More 没有分屏显示
什么是分屏显示
6.Aspell怎么检验拼写
7..mkdir work 创建一个目录work
创建一个text 或者Word应该用什么语句呢
8.
man +命令 显示实用程序的有用信息,并提供该实用程序的基本用法
echo 读取参数并把它写到输出
9.上机调试C语言程序的过程及此次上机的感想体会。
初步感知了gcc编译器Linux系统Ubuntu系统
虚拟机就是一款可以为其他系统来提供相应环境的软件。比如你不想装双系统,因为这是有风险的,有可能会把你原系统里的一些重要数据清除还有可能是你的电脑配置不允许(简单来说就是配置低)。虚拟机里还可以安装其他系统,不过可能会有点卡。
ubuntu是一个以桌面为主的Linux系统是用来学习Linux的很有效的。这个系统需要虚拟机来提供环境给他运行。但如果是直接装系统就不需要了。当成软件安装的时候需要
怎么删除文件夹
一、删除文件/文件夹
rm :命令是强大的删除命令,它可以 永久性地 删除文件系统中指定的文件或目录。在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息。
此命令的基本格式为:rm [选项] 文件或目录
选项:
-f:强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。
-i:和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。
-r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件
二、删除文件(即这个文件被删除)
单个删除:rm -f + 文件
三、删除文件夹
rm -rf + 路径/目录名
强制删除文件夹及其子文件。
注意
rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复,因此,尤其在使用 rm 命令删除目录时,要慎之又慎。
\n才是换行符
改完必须保存!!!!!!!
问题:
有几个基本的命令 掌握不清楚,需要深入学习后才能深刻体会。