作者主页:进击的1++
专栏链接:【1++的Linux】
Linux软件包管理器相当于我们的应用商店一样,yum是Linux下一种常用的软件包管理器。
在介绍yum前我们再来认识一个工具rzsz,这个工具是用于windows与Linux机器间通过Xshell传输文件的,可通过拖拽的方式将文件上传至另一个机器。
需要注意的是在使用yum时必须保证你的机器网络通畅。
ping www.baidu.com 可以验证你的网络是否通畅。
当我们要查看软件包时可以通过yum list 罗列出当前所有的软件包。
例:
部分截图:
由于全部罗列出太多,为了方便我们寻找我们想要的通常会使用管道+grep命令来筛选出我们想要的。
例:
注意:
当我们想要安装软件时可通过命令sudo yum install 软件名称.
yum会自动找到需要下载的软件包,你只需输入y确定。安装完成后会有提示。
例:
由于我已经安装好了GCC,因此提示我已经安装过了。
注意:
学会了安装软件,那么如何卸载软件呢?
使用这条命令:sudo yum remove 软件名称
例:
vim是一个多模式编辑器,常用的有三种模式:命令模式,插入模式,底行模式。
命令模式:控制屏幕光标的移动,字符的删除等。
插入模式:在这个模式中,我们才可以进行文字输入。
底行模式:文件的保存和退出,找字符,列出行号等操作。
命令模式中的一些命令:
6. 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
7. 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
8. 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
9. vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。
10. 按[shift+g]也就是G:进入文本末端
11. 按「#l」:在该行光标移#个位置,如:5l,56l
12. 按「 $ 」:移动到光标所在行的“行尾”
13. 按「^」:移动到光标所在行的“行首”
14. [x」:每按一次,删除光标所在位置的一个字符
15. 「dd」:删除光标所在行
16. 「#dd」:从光标所在行开始删除#行
17. 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
18.「#yw」:复制#个字到缓冲区
19.「yy」:复制光标所在行到缓冲区。
18. 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
19. 「r」:替换光标所在处的字符。
20. 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次。
21. 「ctrl」+「g」列出光标所在行的行号。
底行模式中的一些命令:
在使用末行模式之前,请记住先按「ESC」键确定您已经处于命令模式,再按「:」冒号即可进入底行模式
22. 「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
23. 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
在讲gcc前我们先来讲讲一段代码是如何运行的。
静态库:在编译链接时,库的文件代码全部 加载到可执行文件中,所以在运行时就不需要库文件了。
动态库:在编译链接时,没有把库代码加载到可执行文件中,而是在程序运行时链接文件加载库,且gcc默认使用的是动态链接。
gcc选项
-E 预处理 生成.i文件
-S 编译 生成.s文件
-c 汇编 生成.o文件
-o 链接 最终形成可执行文件
-static 静态链接
-g 生成调试信息,gcc默认生成的是release版本,因此要加-g才能生成debug版本。
要使用gdb进行调试,必须在源代码生成二进制可执行程序的时候加上-g选项。
gdb 常用命令:
makefile带来的好处就是自动化编译,能够极大的提高软件开发效率。
make是一个命令工具,能够解释makefile中的指令。
要理解makefile我们先来理解依赖关系与依赖方法
看一个例子:
在这个makefile中test2.exe与test2.c之间具有依赖关系。并且test2.exe依赖test2.c。也就是说,有test2.exe的前提是必须有test2.c。gcc test2.c -o test2.exe 称做依赖方法,也就是说,test2.c 通过上述的方法才生成了test2.exe。
项目清理
当我们输入clean后,系统就会去makefile中查找clean目标,但是,若没有 .PHONY修饰,并且你的文件里有一个叫clean的,这时就会把你这个文件当做目标文件,因此在编译器眼里你就是最新的文件,不需要去执行依赖方法来生成了。有了。PHONY修饰后,就成了伪目标,伪目标的特点是总是要被执行,因此clean后的依赖方法就总是会执行。
git clone xxx 创建一个放代码的本地仓库