Linux操作系统7:文件系统及磁盘管理(二)

简介: Linux操作系统7:文件系统及磁盘管理(二)

写在最前面

原文发布时间:2022/11/13 12:23:04

由于质量分过低,因此进行完善更新

原文

一、实验目的

掌握Linux ubuntu系统软件包安装方法

掌握用make进行编译的方法和技能

二、实验内容

练习Linux Ubuntu系统中软件包的安装方法

在Linux系统下用make进行源码编译。

1.查看系统是否安装vim,若有,则先卸载该软件,然后重新安装vim(注意update)。

2.利用vim编写如下c语言程序:一个main.c代码完成两个数字的输入及四个子程序:add.c、subtract.c, multiply.c 和 divide.c的调用。其中,这四个子程序分别完成对main.c中输入数字的加、减、乘、除运算。完成源码文件的编写后,编写makefile文件描述各源码文件间的依赖关系及最终生成可执行文件main的编译规则。通过make工具将源码编译生成可执行文件main,并运行main文件。

根据实验练习1和2完成实验报告。

三、实验结果

我们发现,需要安装vim。因此我们先进入root模式,安装vim。

因为虚拟机不是最新的,所以安装失败了。所以,我们在安装之前先更新。

这样就是更新成功了,我们再次进行vim的安装。

下载成功后,可以在图形界面看到vim图标。并且,可以通过版本查看是否安装。

进入vim界面后,按i进入编辑模式(可以看到,左下角有INSERT)

写完之后,按esc :wq

先下载gcc

完善

分为两个部分来完成这次实验。

实验一:Linux软件包安装

实验目的

  • 掌握Linux Ubuntu系统软件包的安装方法。

实验内容

步骤1:检查并重新安装vim

首先,我们将检查系统是否安装了vim编辑器。如果已安装,我们将卸载它,然后重新安装。这将有助于熟悉软件包的安装和卸载过程。

  1. 打开终端,检查是否已安装vim
vim --version
  1. 如果vim已经安装,将显示VIM - Vi IMproved以及相关信息。
  2. 如果vim已安装,卸载它:
sudo apt remove vim
  1. 输入管理员密码确认卸载。
  2. 现在重新安装vim
sudo apt update
sudo apt install vim
  1. 这将更新软件包信息并重新安装vim

现在,我们已经重新安装了vim,接下来,我们将进行第二部分的实验。

实验二:使用make进行源码编译

实验目的

  • 掌握使用make进行源码编译的方法和技能。

实验内容

步骤1:编写C语言程序

在这一部分,我们将使用vim编辑器编写一个简单的C语言程序。这个程序将包括一个main.c文件,以及四个子程序:add.csubtract.cmultiply.cdivide.cmain.c将接收两个数字的输入,并调用这四个子程序完成加法、减法、乘法和除法运算。

// main.c
#include <stdio.h>
#include "add.h"
#include "subtract.h"
#include "multiply.h"
#include "divide.h"
int main() {
    double num1, num2;
    printf("Enter two numbers: ");
    scanf("%lf %lf", &num1, &num2);
    printf("Sum: %lf\n", add(num1, num2));
    printf("Difference: %lf\n", subtract(num1, num2));
    printf("Product: %lf\n", multiply(num1, num2));
    printf("Quotient: %lf\n", divide(num1, num2));
    return 0;
}
步骤2:编写makefile文件

为了使用make工具编译这些源码文件,我们需要编写一个makefile文件,描述各源码文件之间的依赖关系和最终生成可执行文件main的编译规则。

# makefile
CC = gcc
CFLAGS = -Wall
all: main
main: main.o add.o subtract.o multiply.o divide.o
  $(CC) $(CFLAGS) -o main main.o add.o subtract.o multiply.o divide.o
main.o: main.c
  $(CC) $(CFLAGS) -c main.c
add.o: add.c
  $(CC) $(CFLAGS) -c add.c
subtract.o: subtract.c
  $(CC) $(CFLAGS) -c subtract.c
multiply.o: multiply.c
  $(CC) $(CFLAGS) -c multiply.c
divide.o: divide.c
  $(CC) $(CFLAGS) -c divide.c
clean:
  rm -f main main.o add.o subtract.o multiply.o divide.o

这个makefile文件指定了各个源码文件之间的依赖关系,以及如何编译它们并生成可执行文件main

步骤3:使用make编译源码

现在,我们可以使用make工具编译这些源码文件并生成可执行文件main。在终端中,进入源码文件所在的目录,并运行以下命令:

make

make将按照makefile文件中定义的规则进行编译。

步骤4:运行可执行文件

编译成功后,你可以运行生成的可执行文件main

./main

然后输入两个数字,并得到它们的加法、减法、乘法和除法运算结果。

实验报告

本次实验我们完成了两个主要目标。首先,我们掌握了Linux Ubuntu系统中软件包的安装方法,包括安装和卸载软件包。其次,我们学习了如何使用make进行源码编译,包括编写makefile文件,定义依赖关系和编译规则,以及使用make工具编译源码文件。

通过这次实验,我们深入了解了Linux操作系统的一些高级主题,包括软件包管理和源码编译。这些技能对于Linux系统管理和开发非常重要。

希望本次实验对你的Linux学习之路有所帮助。

目录
相关文章
|
18天前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
31 0
|
19天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
1月前
|
Linux 数据安全/隐私保护 虚拟化
Linux技术基础(1)——操作系统的安装
本文是龙蜥操作系统(Anolis OS) 8.4 的安装指南,用户可以从[龙蜥社区下载页面](https://openanolis.cn/download)获取ISO镜像。安装方法包括物理机的光驱和USB闪存方式,以及虚拟机中的VMware Workstation Pro设置。安装过程涉及选择语言、配置安装目标、选择软件集合和内核,设置Root密码及创建新用户。安装完成后,可通过文本模式或图形化界面验证系统版本,如Anolis OS 8.4,标志着安装成功。
|
6天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
18天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
21 0
|
1月前
|
存储 算法 Linux
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
45 0
|
5天前
|
Ubuntu Linux 芯片
Linux(2)ubuntu rootfs根文件系统制作
Linux(2)ubuntu rootfs根文件系统制作
19 0
|
13天前
|
存储 运维 监控
深入理解 Linux 文件系统的层次结构
【4月更文挑战第14天】本文将探讨 Linux 操作系统的文件系统层次结构,这是每个系统管理员和开发人员必须掌握的核心知识。我们将从文件系统的顶层目录开始,逐步深入到每个目录的特定用途和重要性,以及它们如何协同工作以支持 Linux 系统的正常运行。
|
26天前
|
存储 固态存储 Unix
Linux中磁盘分区和文件系统管理
在Linux系统中,磁盘是存储数据的物理设备,如HDD或SSD,以文件形式存在于`/dev`目录下,如`sda`、`sdb`等。文件系统定义了如何在磁盘上组织和访问数据,常见的Linux文件系统有ext2、ext3、ext4、xfs等。通过虚拟机软件如VMware,用户可以向Linux虚拟机添加新的硬盘。
|
7月前
|
存储 Linux
Linux磁盘管理命令
Linux磁盘管理命令
57 0