linux基础环境开发工具和配置
- 一.学习yum工具进行软件安装:
- 1.什么是yum:
- 2.查看软件包:
- 3.安装和删除:
- 4.yum生态:
- 二.vim的使用:
- 一.快速介绍一下vim
- 二.vim正常模式:
- 2-1:命令模式
- 1.光标移动:
- 2.删除文字
- 3.复制:
- 4.替换:
- 2-2:底行模式
- 三.vim编辑器配置:
- 1.配置文件的位置:
- 四:编译原理+gcc和g++的使用:
- 1.gcc 和 g++ 快速使用:
- 2.生成可执行程序的过程:
- 1,预编译(预处理):
- 2.编译
- 3.汇编
- 4.链接:
- 3.动静态库:
- 1.库的意义:
- 2.动态库:
- 3.静态库:
- 4.总结:
- 五:make和Makefile linux下的项目自动化构建工具:
- 1.快速使用:
- 2.理解依赖关系和依赖方法:
- 3.内容补充:
- 1.连续多次使用make
- 2.伪目标:
- 3.符号替代-->标准
- 六:linux下的一个小程序:进度条
- 1.准备知识:
- 2.倒计时:
- 3.简单的进度条!
- 1.新建文件夹,创建文件:
- 2.对文件进行简单内容的编辑:
- 3.去写Makefile文件进行简单测试!
- 4.进度条版本1:
- 4.进度条版本2:随机下载量:
- 5.色块进度条!
- 七:git的使用:
- 1.在gitee创建仓库!
- 2.克隆远程仓库到本地:
- 3.文件添加到克隆目录下:
- 4.画图说明--->
一.学习yum工具进行软件安装:
1.什么是yum:
在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.
yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上.
2.查看软件包:
我们可以通过==yum list ==命令进行软件包的查找但是软件包是非常多的,这个时候我们需要使用grep进行软件包的筛选!
yum list | grep (需要查找的软件包)
3.安装和删除:
安装:
yum install -y 软件名称
删除:
yum remove -y 软件名称
注意:
1.安装软件必须在有网络的情况下进行(服务器或者虚拟机)ping www.biduo.com 进行检测。
2.因为安装软件的操作是需要在根目录下进行操作,所以使用命令进行软件安装的时候需要是root或者sudo进行root提权。
3.yum安装软件只能一个一个进行有顺序的,不能一个软件正在安装又去安装下一个软件。
4.yum生态:
1.yum如何得知目标服务器的地址和下载链接,通过开发者提供的:软件工具。
2.在一个大环境下面:
2-1:(在一个大社区下面)有人发出问题就有人解决问题。谁获取到了利益?使用相同环境的开发者获取到了利益。
2-2:在一个社区下面进行软件的编写会使社区越来越好。
补充:
二.vim的使用:
一.快速介绍一下vim
1.打开一个vim默认进入一个命令模式:
2.输入I切换成插入模式:
3.shift+:切换成行底模式。
4.按下ESC进入命令模式:
二.vim正常模式:
vim正常模式包括有命令模式,插入模式,底行模式。
补充:在vim模式下不能直接进行服务器的退出,这个时候文件没有保存退出,下一次进入的时候在相同目录下会有一个文件名.swap
2-1:命令模式
1.光标移动:
vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
按「G」:移动到文章的最后
按「 $ 」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l
按[gg]:进入到文本开始
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页
2.删除文字
「x」:每按一次,删除光标所在位置的一个字符
「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
「dd」:删除光标所在行
「#dd」:从光标所在行开始删除#行
n+dd 剪切n行,n+p 粘贴n行。
3.复制:
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完
成复制与粘贴功能。
4.替换:
shift+~ :在命令模式下光标位置的快速切换大小写
r+需要替换的字符 可以把光标位置进行替换
shift+r --》R 进入替换模式在这个模式下可以直接在光标下进行输入替换。
「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
「ctrl + r」: 撤销的恢复
更改
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字跳至指定的行
「ctrl」+「g」列出光标所在行的行号。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
2-2:底行模式
w :文件保存
q:文件退出
一般可以正常退出如果退出不了可以加一个!进行强制退出。
1.wq :文件保存并且退出
2.set nu 列出行号
3. :(冒号) + 行号 跳到该行!
4./+(寻找的字符) 按n向后继续寻找!
5.?+(寻找的字符) 按n向前继续寻找!
6.使用vim打开其他的文件:vs + 文件名称
三.vim编辑器配置:
1.配置文件的位置:
在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
==而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,
通常已经存在一个.vimrc文件,如果不存在,则创建之。==切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~打开自己目录下的.vimrc文件,执行 vim .vimrc
四:编译原理+gcc和g++的使用:
1.gcc 和 g++ 快速使用:
1.gcc 【选项】要进行处理的文件 【选项】生成的文件
2.一般来说第二个选项都是-o (-o需要紧跟目标文件)
2.生成可执行程序的过程:
1,预编译(预处理):
1.命令 gcc -E text.c -o text.i
2.主要内容:
2-1:注释的去除,宏替换,条件编译,头文件的包含。
2.编译
1.命令:gcc -S text.i -o text.s(汇编代码)
2.主要内容:
2-1:语法分析,语意分析,词法分析,符号汇总。
3.汇编
1.命令:gcc -C text.s -o text.o
2.把汇编代码转换为机器可以识别的二进制文件!
4.链接:
1.上面的三个过程可以统称为编译阶段。
2.主要命令 gcc text.o -o text
3.进入链接的过程
3-1:主要有动静态库两种!
3.动静态库:
1.库的意义:
1.提高了编写代码的效率,减少了重复冗余的工作。
2.有动态库和静态库!
2.动态库:
1.一般gcc进行编译链接使用的都是动态链接,通过保存一个地址通过地址找到这个方法去解决问题。
2.优点:
节省空间,不会出现重复代码。
3.缺点:
对动态库比较依赖,并且找到方法和回来的过程需要时间的!
4.使用动态链接:
gcc text.c -o text
3.静态库:
1.一般gcc需要通过不同的命令使用静态链接,直接拷贝一份大的库文件来进行本地的使用!
2.优点:
不依赖库,节省时间,同类型的平台可以直接使用。
3.缺点:
文件的占用的空间比较大,容易产生重复代码的使用浪费空间!
4.使用静态链接需要一个前提安装静态库:
centos7 下安装c/c++静态库命令:
yum install -y glibc -static C语言
yum install -y libstdc++ -static C++
5.使用静态链接:
命令:gcc text.c -o text -static
4.总结:
1.file + 可执行文件
查看动静态依赖!
2.ldd + 可执行文件
可以查看依赖库的情况!
文件后缀:
五:make和Makefile linux下的项目自动化构建工具:
1.快速使用:
1.构建一个Makefile/makefile : 必须是这两个文件名称
2.vim 打开 Makefile/makefile 文件进行配置:
3.配置文件格式:
目标文件:依赖文件
[Tab] 依赖文件生成目标文件方法
- make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。
2.理解依赖关系和依赖方法:
1.依赖具有递归性:
3.内容补充:
1.连续多次使用make
提示产生的maybin已经是最新的了!
使用stat + 文件 可以查看文件的详细信息:
Access : 创建时间
Modify : 内容修改时间
Change:属性修改时间:
touch 已经存在的文件修改文件的ACM时间都改为当前时间!
补充:内容修改------>影响到属性修改时间------>内容修改导致大小改变,大小是属性的范围。
连续多次的使用mak命令会去检测依赖文件和目标文件的时间如果目标文件的时间要晚于依赖文件那么就说明再一次生成目标文件没有修改。如果依赖文件的时间晚于目标文件说明依赖文件改变需要生成新的目标文件并且覆盖原来的目标文件!
2.伪目标:
本身是一个虚假伪造的目标,这个伪目标不希望生成什么文件或者东西的。伪目标只想要执行依赖方法。一般伪目标会声明在不需要生成目标文件的只需要执行依赖方法的操作之前并且伪目标的出现防止Makefile中的目标文件和工作目录下的名字冲突提高了执行Makefile的效率!
3.符号替代–>标准
1.依赖文件和依赖目标的符号替换:
$@ ---->替代目标文件
$^ ------>替代依赖文件
2.应该在依赖方法中使用这两个字符!
2.依赖方法中或者说全局的符号替换:
在Makefile文件开头进行声明
1.把想要替换为的字符(字符串) = 原来应该写的字符(字符串)
2.使用替换字符需要:$(替换字符) 这样的使用格式!
六:linux下的一个小程序:进度条
1.准备知识:
1.标准输出流:使用printf如果 “” 末尾使用\n字符意思是将标准输出流中的内容打印到当前光标的所在行并且移动到下一行的行首。
2.我们键盘上的按键:enter 包括了回车+换行的功能。
3.回车:\r 光标回到当前行的开头。作为printf的字符串末尾不会把标准输出中的内容打印到屏幕上的需要使用函数fflush()函数进行对应标准输出流的刷新!
4.换行一般和回车同时使用组成了键盘上的enter,老式的键盘的形状也可以说明这样的一个概念!
2.倒计时:
1.使用usleep函数:控制程序休眠时间()中的时间单位是微秒!
2.1s = 1000ms 1ms = 1000 vs
3.头文件是:unistd.h
3.简单的进度条!
1.新建文件夹,创建文件:
2.对文件进行简单内容的编辑:
3.去写Makefile文件进行简单测试!
4.进度条版本1:
9 void version_1()10 {//1.保存符号的数组!11 char buffer[103];12 memset(buffer,'\0',sizeof(buffer));13 //2.开头保存一个>头用来指方向!14 int count=0;15 buffer[0]=head;16 //2.循环打印进度条每次打印结束都把光标回到开头!17 while(count<=100)18 {19 printf("[%-100s] [%d%%] []\r",buffer,count);20 fflush(stdout);21 buffer[count]=mov;22 count++;23 buffer[count]=head;24 //控制= 和 > 位置放置!25 if(count==100)26 {27 buffer[count]=mov;28 }29 usleep(50000);30 }31 }
4.进度条版本2:随机下载量:
5.色块进度条!
和进度条改变的部分!
效果图展示!
七:git的使用:
1.在gitee创建仓库!
2.克隆远程仓库到本地:
命令:git clone 【url】(远程仓库地址!)
3.文件添加到克隆目录下:
4.画图说明—>
处于远程拷贝的目录下面!