【1++的Linux】之基础开发工具

作者主页:进击的1++
专栏链接:【1++的Linux】

文章目录

  • 一,Linux软件包管理管理器
  • 二,Linux编辑器--vim
    • 2.1 什么是vim
    • 2.2 vim的基本操作
  • 三,gcc的使用
  • 四,gdb的使用
  • 五,项目自动化构建工具
  • 六,git三板斧

一,Linux软件包管理管理器

Linux软件包管理器相当于我们的应用商店一样,yum是Linux下一种常用的软件包管理器。
在介绍yum前我们再来认识一个工具rzsz,这个工具是用于windows与Linux机器间通过Xshell传输文件的,可通过拖拽的方式将文件上传至另一个机器。

需要注意的是在使用yum时必须保证你的机器网络通畅。
ping www.baidu.com 可以验证你的网络是否通畅。

当我们要查看软件包时可以通过yum list 罗列出当前所有的软件包。
例:
部分截图:
【1++的Linux】之基础开发工具_第1张图片

由于全部罗列出太多,为了方便我们寻找我们想要的通常会使用管道+grep命令来筛选出我们想要的。
例:
【1++的Linux】之基础开发工具_第2张图片
注意:

  1. 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
  2. “x86_64” 后缀表示64位系统的安装包, “i686” 后缀表示32位系统安装包. 选择包时要和系统匹配.
  3. “el7” 表示操作系统发行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示 centos6/redhat6.
  4. 最后一列,epel 表示的是 “软件源” 的名称, 类似于 “小米应用商店”, “华为应用商店” 这样的概念.

当我们想要安装软件时可通过命令sudo yum install 软件名称.
yum会自动找到需要下载的软件包,你只需输入y确定。安装完成后会有提示。
例:
由于我已经安装好了GCC,因此提示我已经安装过了。
【1++的Linux】之基础开发工具_第3张图片
注意:

  1. 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
  2. yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.

学会了安装软件,那么如何卸载软件呢?
使用这条命令:sudo yum remove 软件名称
例:
【1++的Linux】之基础开发工具_第4张图片

二,Linux编辑器–vim

2.1 什么是vim

vim是一个多模式编辑器,常用的有三种模式:命令模式,插入模式,底行模式。
命令模式:控制屏幕光标的移动,字符的删除等。
插入模式:在这个模式中,我们才可以进行文字输入。
底行模式:文件的保存和退出,找字符,列出行号等操作。

2.2 vim的基本操作

  1. 进入vim:输入vim 文件名 ,进入vim后,处于命令模式。
  2. 命令模式切换为插入模式:输入a或i或o。
  3. 插入模式切换为命令模式:按Esc。
  4. 命令模式切换为底行模式:shift+;。
  5. 在底行模式中:w是保存文件;wq是保存并退出:q!是强制退出。

命令模式中的一些命令:
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前我们先来讲讲一段代码是如何运行的。

  1. 预处理阶段:在这个阶段主要进行的是宏替换,条件编译,去注释,文件包含等操作。
  2. 编译:编译的主要目的是生成汇编,在这个阶段还会检查语法的正确性。
  3. 汇编:在这个阶段会将汇编语言转换为二进制机器可识别代码。
  4. 链接:链接阶段会进行函数库的链接以及同一项目中的各文件间的链接。接下来我们再讲讲什么是函数库。
  5. 函数库:函数库分为静态库和动态库两种。

静态库:在编译链接时,库的文件代码全部 加载到可执行文件中,所以在运行时就不需要库文件了。
动态库:在编译链接时,没有把库代码加载到可执行文件中,而是在程序运行时链接文件加载库,且gcc默认使用的是动态链接。

gcc选项

-E 预处理 生成.i文件
-S 编译 生成.s文件
-c 汇编 生成.o文件
-o 链接 最终形成可执行文件
-static 静态链接
-g 生成调试信息,gcc默认生成的是release版本,因此要加-g才能生成debug版本。

例:
【1++的Linux】之基础开发工具_第5张图片

四,gdb的使用

要使用gdb进行调试,必须在源代码生成二进制可执行程序的时候加上-g选项。
gdb 常用命令:

  1. list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。
  2. list/l 函数名:列出某个函数的源代码。
  3. r或run:运行程序。
  4. n 或 next:单条执行。
  5. s或step:进入函数调用
  6. break(b) 行号:在某一行设置断点
  7. break 函数名:在某个函数开头设置断点
  8. info break :查看断点信息。
  9. finish:执行到当前函数返回,然后挺下来等待命令
  10. print§:打印表达式的值,通过表达式可以修改变量的值或者调用函数
  11. display 变量名:跟踪查看一个变量,每次停下来都显示它的值
  12. delete breakpoints:删除所有断点
  13. delete breakpoints n:删除序号为n的断点

五,项目自动化构建工具

makefile带来的好处就是自动化编译,能够极大的提高软件开发效率。
make是一个命令工具,能够解释makefile中的指令。
要理解makefile我们先来理解依赖关系与依赖方法
看一个例子:
【1++的Linux】之基础开发工具_第6张图片

在这个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三板斧

git clone xxx 创建一个放代码的本地仓库

  1. git add 将代码上传到本地仓库中
  2. git commit 提交改动,日志到本地
  3. git push 同步到远端服务器上

你可能感兴趣的:(1++的Linux,linux,git,vim)