Ubuntu环境搭建及简单应用

**前言:**

    • 一、Ubuntu-Linux环境的搭建
      • A.安装虚拟机Vmvare
      • B.下载安装Ubuntu(答主安装的是18.04)
        • 1.下载Ubuntu镜像文件
        • 2.Vmvare环境下安装Ubuntu18.04
      • C.Ubuntu server 配置及连接
        • 1.创建快照
        • 2. 更换源
    • 二、在Ubuntu下编写简单的程序——hello word!
      • A.vi/vim的简单介绍
      • B.gcc的简单介绍
      • C.简单应用——hello world的编写编译
    • 三、Linux主程序子程序的编译,链接
      • A.使用gcc编译C代码
        • 1.编写主程序文件main1.c
        • 2.编写子程序sub1.h
        • 3.编写子程序sub1.c
        • 4.利用gcc生成可执行文件
        • 5.运行结果
      • B.在window系统下进行编译对比;
    • 四、Ubuntu系统下使用makefile编译程序
      • A.什么是Makefile
      • B.Makefile具体应用

前言:

操作系统 (OS) 是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。现在常见的操作系统有微软的Windows苹果的macOSLinux以及移动操作系统(谷歌的Android和苹果的iOS)。其中,Linux的发行版有很多,如Debiancenterredhat等。

答主本次介绍的Ubuntu也是Linux操作系统流行的发行版之一。主要介绍Ubuntu一下的环境搭建,以及简单程序的编写编译。

一、Ubuntu-Linux环境的搭建

A.安装虚拟机Vmvare

作为初学者学习Linux,没有必要将自己的系统(一般是windows)装成不熟悉的Linux系统或者购买真正的服务器设备。一方面增大学习难度,另一方面服务器成本较高(这里说的是硬件服务器,而非云服务器),因此利用虚拟机软件搭建Linux环境就是一个很好的选择。

使用虚拟机系统环境,可以对虚拟系统随意进行任何的设置和更改操作,甚至可以格式化虚拟机系统硬盘,进行重新分区等操作,而且完全不用担心会丢掉有用的数据。因为虚拟机是系统上运行的一个虚拟软件,对虚拟机系统的任何操作都相当于是在操作虚拟机的虚拟机设备和系统,不会影响电脑上的真实数据。

Vmvare的安装在网上的资源很多,答主在这里就不做过多累述,以下给出Vmvare workstation 官网下载地址以及一些注意事项。

Vmvare workstation 官网下载地址

  1. 目前很多软件由于版权等问题,需要输入序列号/密钥。网上有很多绿色破解版,可以自己找绿色破解版下载就OK。(补充:如果是为了学习知识为目的使用盗版软件是不违法的,个人非商业目的使用不违法。)

  2. 使用虚拟机安装操作系统一般都会选择ISO文件,因此首先我们需要下载操作系统对应ISO版本的文件。

B.下载安装Ubuntu(答主安装的是18.04)

1.下载Ubuntu镜像文件

Ubuntu镜像文件的下载要根据自己的PC机系统版本进行选择,一般情况下大家电脑系统版本都是64位,下载64位版就没有问题。

大家下载Ubuntu的时候会发现共有两个版本:

①一个版本是server(服务器版);
②另一个版本是desk(桌面版)。

从镜像名称区别Ubuntu版本,大家根据自己需要下载对应的版本:

 ubuntu-18.04.5-desktop-amd64.iso           ——桌面版
 ubuntu-18.04.5-live-server-amd64.iso       ——服务器版

(下面给出Ubuntu镜像文件下载的入口)
Ubuntu官网下载入口
Ubuntu历史版本下载入口

2.Vmvare环境下安装Ubuntu18.04

Ubuntu18.04安装晚上资源相当多,在这里就不做说明,下面为一位博主写的文章,大家可以转到此处去学习。

Vmvare下安装Ubuntu18.04 桌面版
Vmvare

C.Ubuntu server 配置及连接

答主安装的是Ubuntu server(服务器版本),因此下面是有关服务器版的的配置与链接,当然“更换源”的内容是类似的。

1.创建快照

1)虚拟机“快照”定义

磁盘快照是虚拟机磁盘文件(VMDK)在某个点及时的副本。在系统崩溃或系统异常,用户可以通过使用恢复到快照来保持磁盘文件系统和系统存储。

2)为什么使用虚拟机快照

  • 虚拟机坏了不可恢复,需要重新装软件、配置环境,比较麻烦,操作不可逆;而“快照”是可逆的。
  • 当需要重复的返回到某一系统状态,又不想创建多个虚拟机的时候,就可以使用快照功能
  • 通过建立多个快照,可以为不同的工作保存多个状态,并且不相互影响,一旦某个环节操作错误,可以很快还原到出错前的状态,完成实验。

3)创建虚拟机“快照”

  • 首先, 检查数据更新。登录用户,在命令行敲下命令 :sudu apt updata/sudo apt full-upgrade

Ubuntu环境搭建及简单应用_第1张图片

答主这边sudu apt updata无法运行,后面的代码块sudo apt full-upgrade能够正常更新。如果大家碰到类似问题可以输入后一个代码块解决问题。

  • 之后, 点击虚拟机右键选择“快照”-“拍摄快照”,下一步

Ubuntu环境搭建及简单应用_第2张图片

  • 其次, 编辑描述快照。点击“拍摄快照”,“快照”保存成功。

Ubuntu环境搭建及简单应用_第3张图片

  • **最后,**查看快照管理情况。点击虚拟机右键选择“快照”-“快照管理器”
    Ubuntu环境搭建及简单应用_第4张图片
    在后续使用过程中,可以随时保存“快照”,便于恢复系统,这个有点儿类似玩游戏时的“存档”状态~
2. 更换源

1)为什么需要更换源

由于某些原因,当我们用官网的源的更新和下载包的时候,速度慢、很费时间。所以,将其更换换成国内的源

2)更换源的步骤

  • 第一步,备份之前的源;

打开终端,输入命令进行备份;

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

输入以下命令,检查是否备份成功;

 1.cd /etc/apt/     
 2.ll   

实际运行图如下:

Ubuntu环境搭建及简单应用_第5张图片

  • 第二步,进入ssh更换源;

答主是在外部ssh上进行更换源的操作。下面介绍一下ssh的登陆方法

首先在Ubuntu上获取IP地址,输入命令ifconfig回车,就会看到IP地址。

之后,打开windows自带的Windows Powershell,输入ssh 用户名@IP地址。第一次登录会提示

Are you sure you want to continue connecting (yes/no/[fingerprint])?

输入yes,回车即可。

最后,输入密码后进入ssh

  • 第三步,进入ssh后,删除源内容;

使用vim编辑器编辑软件源,输入命令vim /etc/apt/sources.list,在底线命令模式输入dd删除全部内容;或者用nano,输入命令nano /etc/apt/sources.list ,进入编辑器后使用 Ctrl+K删除全部内容。

  • 第四步,更换源内容;

源文件内容删除后,将镜像文件粘贴进去。由于答主使用的是ssh,因此只需点击鼠标右键,即可粘贴。在这里给出清华源与阿里云源,大家二选一。

阿里云镜像源

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

清华镜像源

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-proposed main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-proposed main restricted universe multiverse
  • 第五步,修改完软件源后,更新软件列表和软件;
sudo apt update  #更新软件列表
sudo apt upgrade  #更新软件

二、在Ubuntu下编写简单的程序——hello word!

A.vi/vim的简单介绍

vi或vim是Linux最基本的文本编辑工具,基本上分为三种模式分别:

1.命令模式
2.输入模式
3.底线命令模式、

三种状态之间的转化,如下图所示
Ubuntu环境搭建及简单应用_第6张图片
vim常用命令

命令 作用
i 切换到输入模式,以输入字符
x 删除当前光标所在处的字符
: 切换到底线命令模式,以在最底一行输入命令
U 撤销对当前行上做的所有修改
dd 删除光标所在一整行数据,且临时存储到缓存区
:wq 保存文件且退出 vim 编辑器
:q! 强制退出

B.gcc的简单介绍

GCC 仅仅是一个编译器,没有界面,必须在命令行模式下使用。通过gcc命令就可以将源文件编译成可执行文件。

最简单的生成可执行文件的写法为:

$ cd dirname #进入源文件所在的目录
$ gcc filename.c #在 gcc 命令后面紧跟源文件名

打开 源目录,会看到多了一个名为 a.out 的文件,这就是最终生成的可执行文件。这样就一次性完成了编译和链接的全部过程,非常方便。

注意:不像 Windows,Linux 不以文件后缀来区分可执行文件,Linux下的可执行文件后缀理论上可以是任意的,这里的.out只是用来表明它是 GCC 的输出文件。不管源文件的名字是什么,GCC生成的可执行文件的默认名字始终是a.out。

如果不想使用默认的文件名,那么可以通过-o选项来自定义文件名,例如:

$ gcc helloworld.c -o HW.out

这样生成的可执行程序的名字就是HW.out

C.简单应用——hello world的编写编译

1. 切换到家目录下,建立demo文件夹;

$ cd home            #进入/home目录 
$ mkdir demo      #在/home目录下创建文件夹demo

Ubuntu环境搭建及简单应用_第7张图片

此步骤可以省略。答主创建该文件夹,是为了后续方面管理。如果不创建demo文件夹,在当前目录下直接编写程序也是可以的。

2. 在当前目录下,输入命令vim helloworld.c。采用文本编辑器vim,创建helloworld.c 文件;

Ubuntu环境搭建及简单应用_第8张图片

3. 进入vim编辑器后按照c的语法编写程序即可,在之前已经介绍了vim的简单用法,在这里不做重复说明;

Ubuntu环境搭建及简单应用_第9张图片

4. 生成可执行程序。命令行输入gcc helloworld.c,
会发现在之前创建的demo文件夹中出现可执行文件类型a.out

Ubuntu环境搭建及简单应用_第10张图片

5. 在命令行输入./a.out,运行可执行文件如下所示:

Ubuntu环境搭建及简单应用_第11张图片>注意 ./表示当前目录,整条命令的意思是运行当前目录下的 a.out 程序

总结: 为了读者方便阅读理解,将完整的演示一下从编辑源文件到运行可执行程序的全过程:

$ cd demo  #进入源文件所在目录(可省略)
$ vim helloworld.c  #新建并编辑源文件
$ gcc helloworld.c  #生成可执行程序
$ ./a.out  #运行可执行程序
hello,world!
$   #继续等待输入其它命令

三、Linux主程序子程序的编译,链接

A.使用gcc编译C代码

问题重述:

编写一个主程序文件 main1.c 和一个子程序文件 sub1.c。
要求: 程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。

1.编写主程序文件main1.c

在命令行输入vim main1.c。主程序已经用vim写好,以下为主程序内容:

Ubuntu环境搭建及简单应用_第12张图片

2.编写子程序sub1.h

在命令行输入vim sub1.h,回车进入文本编辑器中,按照正常c语言编写即可,子程序sub1.h如下所示:

#ifndef _SUB1_H
#define_SUB1_H
#include
float x2x(int a,int b)
#endif
3.编写子程序sub1.c

在命令行输入vim sub1.c,回车进入文本编辑器中,按照正常c语言编写即可,子程序sub1.c如下所示:

Ubuntu环境搭建及简单应用_第13张图片

4.利用gcc生成可执行文件

在命令行输入`gcc main1.c sub1.c -o main1。采用多个文件一起编译,输出放到main1中。

Ubuntu环境搭建及简单应用_第14张图片

5.运行结果

在命令行输入`./main1(filename),输出运算结果。

Ubuntu环境搭建及简单应用_第15张图片

B.在window系统下进行编译对比;

对于windows系统下程序的的编译,大家是比较熟悉的,可以用Dec-cpp,也可以使用vs,或者其他的一些编译工具。在这里答主直接会给出运行结果:

Ubuntu环境搭建及简单应用_第16张图片

四、Ubuntu系统下使用makefile编译程序

问题重述:

在第三章节问题基础上,使用Makefile方式进行编译。

A.什么是Makefile

Makefile是一个工程文件的编译规则,描述了整个工程的编译和链接等规则,其中包含了哪些文件需要编译,哪些文件不需要编译,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重建等等。

makefile带来的好处就是——“自动化编译”。一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率

  • Makfile规则

目标文件:[相依文件]
命令[注释]
命令[注释]
…………

规则名词 规则解释
目标 需要生成的目标文件
依赖 生成该目标所需的一些文件
规则 由依赖文件生成目标文件的手段
Tab 每条规则必须以tab开头,使用空格不行

Make file简单介绍,大家感兴趣的可以点开学习。

B.Makefile具体应用

1)检查是否有“make”源码包。输入sudo apt install make进行安装。

Ubuntu环境搭建及简单应用_第17张图片
2)创建Make file文件,输入命令vim makefile

newmain:main1.o sub1.o
                gcc  main1.o sub1.o -o newmain
main1.o:main1.c
              gcc -c main1.c
sub1.o:sub1.c
             gcc -c sub1.c
clean:
              rm prog *.o   #删除编译产生的中间文件

3)调用make并运行。输入make回车;再输入./newmain

这时,只需要一条make命令完成了编译。

Ubuntu环境搭建及简单应用_第18张图片

你可能感兴趣的:(ubuntu,linux,编辑器)