Bootstrap

Linux环境基础和基础开发工具使用

一、yum软件管理器

Linux 下按照软件的方案:

  • 1、源代码按照
  • 2、rpm包安装
  • 3、包管理器进行安装-----yum/apt
1、包管理器

yum / apt 就像手机的应用商店
解决依赖/下载/安装/卸载
通过到软件包服务器查找、下载请求

  • 操作系统生态问题!
  • Centos 、Ubnutu、kail对应的群体不同
    在这里插入图片描述
    在这里插入图片描述
    Linux机器上,有对应的给yum / apt提供的配置文件!url 或者IP地址
    软件包服务器在国外,下载软件比较慢。
    所以国内组织、高校,就自己花钱把国外的软件包拷贝到国内服务器,这叫镜像。
    配置文件是软件源,替换成国内的。
2、yum

查看包服务器中软件包,只找了软件名包含ls 的软件包名字
在这里插入图片描述

安装,默认安装到系统目录下

yum install 后跟软件包名字

安装软件受权限约束,root 或者sudo yum /apt 提权

卸载:

yum remove 软件名
yum -y remove 软件名 //强制卸载,问我的全部yes 

也需要root权限,才能执行

在这里插入图片描述
yum一次只能安装一个,如果中途关掉使用下面代码结束:

killall yum
3、apt

搜索不支持管道

apt search xxx

安装

apt install -y xxx

卸载

apt remove -y xxx
4、安装源

本地yum源配置文件所在的路径:
在这里插入图片描述
在这里插入图片描述
软件源分为稳定软件源和扩展软件源,甚至有更多分类

安装扩展软件源:

yum install -y epel-release

二、编辑器vim

1、各种模式
  • 1、vim是一个专注的编辑器
  • 2、多模式的编辑器

在这里插入图片描述
vim是Linux操作系统自带的编辑器

一般的三种模式

在这里插入图片描述在这里插入图片描述

2、打开时直接让光标定位到指定号

在这里插入图片描述

3、!加命令字符

快速帮我执行最近的历史命令
在这里插入图片描述

三、命令模式

1、i 进入插入模式

a也进入插入模式光标向后移动
o进入插入模式,光标位置向下插入一行

  • 打开vim指令默认处于命令模式,输入i 后可以编写代码,左下角会出现INSERT
  • vim 不支持鼠标
    在这里插入图片描述
2、Shift + : 进入底行模式
3、光标定位
  • gg :光标定位到最开始
  • G : 光标定位到最结尾
  • 行号 + gg 或者 行号 + G : 光标去到指定的行号
  • $ :定位到当前行的最后
  • ^ : 定位到当前行最前
  • h:左
  • l :右
  • j:下
  • k:上
  • w:以单词为单位向后移动,可以给前面带数字
  • b:以单词为单位向前移动,可以给前面带数字
  • yy:复制光标所在行,可以给前面加数字
  • p:粘贴,可以给前面加数字
  • dd:剪切或删除,可以给前面加数字
  • x:删除光标当前位置的字符,可以带数字
  • X:删除光标之前位置的字符,可以带数字
  • ~:大小写转换
  • r:小范围文本替换,可以带数字
4、ZZ(大写)保存并退出vim
5、R 进入替换模式
6、u撤销操作
7、ctrl + r对u进行撤销
8、ctrl + ww 分屏情况下光标移动
9、ctrl + v进入视图模式批量化编辑

批量化注释的操作
先ctrl + v,用h、j、k、l 键选择要注释的行,选择之后然后输入shift +i,//在ESC一下自动完成注释
批量化去掉注释
ctrl + v,选择行和两列,然后d
在这里插入图片描述

四、底行模式

1、ESC退回命令模式
2、set nu调出行号
  • set nonu 设置没有行号
3、w 保存
  • w!强制保存
4、q退出
  • wq保存并退出
  • q!强制退出
5、/ 定位查找
  • n下一个
6、! 后跟命令行操作

不退出vim的情况下指向命令行操作

7、vs 文件对比开启分屏

光标在那个文件就对那个文件操作

8、%s/文本1/文本2/g替换

将文本1替换成文本2

五、编译器gcc/g++

1、编译和运行

编译生成可执行程序,-o 选项可以设置生成文件的名字
在这里插入图片描述
运行
在这里插入图片描述
gcc常用选项:
在这里插入图片描述

2、编译运行的知识

在这里插入图片描述

3、动静态库

使用动态链接必须在系统里面存在动态库,动态库也称为共享库
在这里插入图片描述

使用静态链接必须在系统里面存在静态库
静态链接:把我们要的库方法实现,直接拷贝到我们的可执行程序中

在Linux系统中默认只会存在动态库
安装静态库命令:

yum install glibc-static libstdc++-static -y

六、对vim进行配置

在这里插入图片描述
修改当前家目录下的.vimrc的配置文件
在这里插入图片描述
最简单的配置让vim在打开时就能有行号

自动配置在 Centos7 x86_64下的链接
https://gitee.com/HGtz2222/VimForCpp

七、配置sudo的可信任用户

sudo配置文件所在位置:
在这里插入图片描述
必须使用root账号修改,把信任的用户添加进入配置文件

在这里插入图片描述

八、自动化构建-make/Makefile

1、make和makefile是什么
  • make是一个命令
  • makefile是一个文件
2、使用

简单的完成对.c文件的生成可执行程序
在这里插入图片描述
make指令自动执行Makefile

Makefile里的内容:
在这里插入图片描述
依赖关系和依赖方法,形成目标文件

在这里插入图片描述

在这里插入图片描述
make 会自定向下扫描makefile文件,默认形成第一个目标文件
如果想指定形成,make后面跟上目标文件名称

.PHONY 代表的含义是总是被执行的

Makefile的注释用#号
make会自动推导,直到依赖文件存在
在这里插入图片描述

3、更加具有通用型的makefile

这种类似C语言的宏替换:
在这里插入图片描述
但依然不够通用,只适合当前目录下只有一个源文件

4、Makefile完成多文件的编译

获取当前目录中所有.c文件:

  • $(命令行命令)
  • makefile自己提供了一个语法wildcard的函数
    在这里插入图片描述
    在这里插入图片描述
    这两个命令是等价的

让命令不回显:

  • 在命令前加@,不让命令回显
    在这里插入图片描述

把.c文件替换.o文件:

  • 利用makefile自己的语法规则
    在这里插入图片描述

$^ :代表依赖文件列表
$@: 代表目标文件
%:通配符
$<:把依赖文件一批文件一个一个交给对应的命令

在这里插入图片描述

实现效果:
在这里插入图片描述

九、Linux第一个系统程序——进度条

1、回车与换行

回车跟换行是两个不同的操作。
\r: 回车表示从尾到首的过程。
\n: 换行表示从该行到下一行。

2、行缓冲区

程序在打印到显示器上是,内容存在缓冲区中,缓冲区的刷新策略是行刷新。
程序退出会强制刷新。
如果不想行刷新,想立即刷新:
在这里插入图片描述
C语言提供了fflush策略强制刷新
在这里插入图片描述
刷新标准输出流

3、进度条代码

知识点默认gcc是C89需要改版本
在编译时加选项 -std=c99
在这里插入图片描述

代码:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

;