Linux开发工具使用
- vim
- 1.vim的基本概念
- 2.vim三种模式的切换
- 3.底行模式的基础操作
- 4.命令模式下的基础操作
- 5.vim的配置
- yum
- 1.yum的概念
- 2.yum的基础操作
- gcc/g++
- 1.gcc/g++的概念
- 2.一个C/C++程序形成的过程
- 3.gcc/g++基本使用
- make和makefile
- 1.基础概念
- 2.makefile
- 【1】生成
- 【2】清理
- 调试器gdb
- 1.注意
- 2.使用
vim
1.vim的基本概念
vim是一款多模式的代码编辑器,进行代码编辑时有语法高亮。
vim具有多种模式,这里讲一下最常用的三种
- 命令模式
vim打开文件默认的模式,控制光标的移动,配合指令来进行文本删除和复制等功能。
- 插入模式
命令模式下按i键进入插入模式,可以做文字输入,写代码常用的模式。
- 底行模式
命令模式下shift加:进入底行模式,输入特定字符可以进行文件保存以及退出vim。
2.vim三种模式的切换
3.底行模式的基础操作
- 列出行号
set nu :输入后回车列出行号。
- 跳转到文件指定行
数字:输入一个数字后回车跳转到指定行。
- 查找字符
/(或者?)关键字:依据关键字查找,如果第一次查找结果不符合,可以一直按n直到找到结果。
/和?的区别:/自文件第一行开始向下搜索,?是自文件最后一行向上搜索。
- 保存文件
w:输入后回车保存文件。
- 分屏操作
vs 文件名:文件分屏
ctrl加ww:切换操作文件(光标在哪里操作哪里)
- 退出vim
- q:输入后回车退出。
- wq:输入后回车保存并退出。
- !:可以和1,2组合(q!,w!),表示强制的意思,配置系统文件的时候修改可能会拒绝保存和退出。
4.命令模式下的基础操作
- 移动光标
- gg:光标定位到文件开头。
- shift加g:光标定位到文件结尾。
- n加shift加g:光标定位到文件第n行。
- shift加^(6):光标定位到行开始。
- shift加$(4):光标定位到行结尾。
- hjkl:左、下、上、右移动。
- 删除文字
- dd(ndd):删除光标所在行(ndd一次删除n行)。
- x:删除光标所在字符。
- 复制粘贴
- yy(nyy):复制所在行(nyy一次复制n行)。
- p(np):粘贴所在行(np一次粘贴n行)。
- 替换
- shift加~:大小写切换。
- shift加r:进入替换模式(Esc退回命令模式)。
- 撤销操作
- u:撤销上一次操作。
- ctrl加r:撤销上一次u操作。
5.vim的配置
默认vim没有代码补全这样的功能,需要自己配置。
配置文件是.vimrc,用户目录下没有这个文件就自己创建一下,然后进行配置。
大家可以自己搜索一下配置选项,我这里直接给一下C/C++的一键配置,VimForCpp,按照安装方法来就行。
yum
1.yum的概念
yum是一个软件包管理器,软件包就是App,yum就像手机里面的应用市场一样,不一样的是yum可以自己配置下载源(告诉yum去哪里下载)。
2.yum的基础操作
- 查找
yum lsit | grep 关键字:使用管道加行过滤,把含关键字的软件列出来,没有找到就查一下下载方式。
- 安装
sudo yum install -y 软件名:安装和卸载都需要root的权限,加-y选择不会询问是否安装。
- 卸载
sudo yum remove -y 软件:卸载软件
gcc/g++
1.gcc/g++的概念
gcc、g++是编译器,其中gcc负责编译C语言,g++负责编译C++。除此以为gcc和g++还有链接的功能。
2.一个C/C++程序形成的过程
一个C/C++程序的形成需要经过预处理、编译、汇编、链接。
- 预处理:进行宏的替换、头文件展开、注释的删除(空格替换)。
- 编译:将代码转化为汇编代码(这个阶段主要负责语法分析、符号汇总、 词法分析、 语义分析)。
- 汇编:将汇编代码转化为二进制机器指令,生成符号表。
- 链接:汇编完成后会把对应源文件生成目标文件,链接阶段就是把这些目标文件进行链接。
3.gcc/g++基本使用
- 格式
gcc [选项] 要编译的文件 [选项] [目标文件]
- 直接形成可执行程序
gcc/g++ hello.c -o hello
注意:-o选项用于指定生成的可执行文件的名称。这个选项后面需要跟上一个文件名作为参数,不加-o选项的话自动生成。
- 预处理(进行宏替换,条件编译)
gcc -E hello.c -o hello.i
注意:“.i”文件为已经过预处理的C原始程序。
- 编译(生成汇编代码)
gcc –S hello.i –o hello.s
- 汇编(生成二进制机器码)
gcc –c hello.s –o hello.o
- 链接(生成可执行程序)
gcc hello.o –o hello
- gcc其它选项
- -g 生成调试信息。GNU 调试器可利用该信息。
- -w 不生成任何警告信息。
make和makefile
1.基础概念
make是一条命令,makefile是一个文件,这两者组合可以用来自动化构建项目。makefile包含文件编译顺序的信息,make会依据makefile中的信息生成或清理程序。在面对多文件开发的时候只需要简单的一条指令就能一键生成程序或清理。
2.makefile
makefile的两个重点分别是依赖关系加依赖方法,直白一点就是目标需要的文件以及对应的生成指令。
【1】生成
我们用vim打开一个makefile文件:
上面这个例子只是为了进行讲解,实际单文件只需要下面这种写法就可以:
完成makefile的编写后,我们直接运行make指令:
【2】清理
我们输入make clean指令:
调试器gdb
1.注意
- 程序的发布方式有两种,debug模式和release模式。
- Linux gcc/g++出来的二进制程序,默认是release模式。
- 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项。
2.使用
gdb的功能很多,这里列出常用功能。
- gdb DeBug程序:开始调试
- quit:退出
- list/l:显示binFile源代码,接着上次的位置往下列,每次列10行。
- list/l 函数名:列出某个函数的源代码。
- r或run:运行程序。
- n或next:单条执行。(逐过程)
- s或step:进入函数调用。(逐语句)
- break(b) 行号:在某一行设置断点。
- break 函数名:在某个函数开头设置断点。
- info break :查看断点信息。
- finish:执行到当前函数返回。
- print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数。
- p 变量:打印变量值。
- continue(或c):从当前位置开始连续而非单步执行程序
- delete breakpoints:删除所有断点
- delete breakpoints n:删除序号为n的断点
- disable breakpoints:禁用断点
- enable breakpoints:启用断点
- display 变量名:跟踪查看一个变量,每次停下来都显示它的值
- undisplay:取消对先前设置的那些变量的跟踪。
- breaktrace(或bt):查看各级函数调用及参数
- info(i) locals:查看当前栈帧局部变量的值