文章目录
Vmware配置Ubuntu
Vim的使用
vim是一款编辑器,基于vi,可以通过按键就能完成文章的书写,有三种使用模式。
模式 | 作用 |
---|---|
命令模式 | 通过输入vi的命令对文件的内容进行处理(复制、删除、移动等),也可以通过按光标键来移动光标 |
编辑模式 | 可以在光标处输入内容 |
命令项模式 | 命令模式下,用户输入冒号后,光标会跳到底行,然后输入命令 |
常用命令
命令 | 作用 |
---|---|
h | 左移光标 |
l | 右移光标 |
k | 上移光标 |
j | 下移光标 |
i | 插入内容 |
l | 第一行插入 |
a | 光标后插入 |
o | 当前行插入新一行 |
x | 删除光标处字符 |
dd | 删除所在行字符 |
X | 删除光标前的一个字符 |
:n1,n2 t n3 | 把n1行到n2行的内容复制到第n3行的下一行 |
:n1,n2 m n3 | 把n1行到n2行的内容移动到第n3行的下一行 |
:w | 保存文件,不退出 |
:q | 不保存,退出 |
:wq/:x /:ZZ | 保存并退出 |
Ubuntu配置
apt-get配置
采用apt-get安装某个软件时,默认官方的软件源仓库位于国外,下载速度慢,选择国内镜像软件源仓库,提高安装速度。
(1)首先切换目录:cd /etc/apt,查看/编辑sources.list文件:sudo vi sources.list
可以看到都是国外的软件源
(2)删掉sources.list原本的内容,选择合适的源并配置,这里选择阿里源,不同版本的Ubuntu对应的内容是不同的。
16.04
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
18.04
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
20.04
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src 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-backports main restricted universe multiverse
(3)文件内容编辑完毕,保存退出,更新源
sudo apt-get update
编写程序
helloworld程序
(1)打开终端,选择合适的位置,创建helloworld文件,通过vim进行编辑文件。
(2)使用gcc命令编译程序
gcc helloworld.c -o helloworld
gcc常用命令如下表
命令 | 作用 |
---|---|
gcc -E helloworld.c -o helloworld. i | 对helloworld.c 的程序进行预编译 .i做扩展名,生成文本文件 |
gcc -S helloworld.i -o helloworld.s | 进行编译,生成一个汇编语言源程序文件.s做扩展名,编译后是文本文件 |
gcc -c helloworld.s -o helloworld.o | 对helloworld.s进行汇编,生成一个可重定位目标文件 . o作扩展名,汇编后是二进制文件 |
gcc helloworld.o -o helloworld | 将多个可重定位目标文件和标准库函数,printf所在的可重定位目标模块printf.o进行链接,生成可执行目标文件 |
gcc helloworld.c -o helloworld | 从c语言程序直接生成可执行目标文件 |
./helloworld | 执行文件helloworld |
(3)运行helloworld文件 |
./helloworld
编写简单程序
(一)Ubuntu下的简单主/子程序
(1)编写一个main.主程序
vim main.c
编写子程序sub.c
(2)编译main.c程序并运行
(二)Windows下编写程序
这里使用VS2017新建一个空项目,编写main.cpp、sub.cpp、sub.h文件,点击运行,得到结果如图。
Ubuntu系统使用makefile方式编程
一个工程文件中的源文件可能有很多,并且不同的功能、模块等都放在不同的目录中,常规的编译已经不能高效化的处理这样的问题,makefile写好后只需要一个make指令,即可完成makefile文件中所编写的所有指令,从而编译整个工程文件。
main.c内容
sub.h内容
makefile内容
hello:main.c sub2.h
gcc main.c sub1.h -o hello
运行结果