Linux基础工具的使用(yum,vim,gdb,make/makefile)
1.yum
yum(Yellow dog Updater,Modified)是linux下非常常用的包管理器,主要用于包的安装移除。
yum操作需要联网。
常用的命令:
-
yum search
:查找软件包 -
yum list
:查找所有可用的包 -
sudo yum install [软件名]
:安装软件时,需要用到管理员权限 -
sudo yum remove [软件名]
:卸载软件时,也要管理员权限 -
yum makecache
:将软件包信息保存到本地 -
yum clear all
:清楚所有缓存
2.vim
- vim有12种模式,但常用的就3种模式
- 命令行模式:控制光标的移动、可进行复制、粘贴、删除、返回、对齐
- 插入模式:在文本文件中,可以进行输入,按[ESC]可回到命令行模式
- 底行模式:保存退出、匹配查找替换
- 基本操作
- 进入插入模式:
a:当前光标的下一个位置插入 A:当前光标所在行尾插入
i:当前光标进行插入 I:当前光标所在行首插入
o:当前光标的下一行插入 O:当前光标的上一行插入(都是新起一行)- 插入模式进入命令行模式
按[ESC]按键即可- 命令行模式进入底行模式
[shift] + [:]- 在底行模式下,退出编辑
若更改了文件:需按wq保存再退出
未更改文件:q退出
若更改了文件,但是权限不对,导致无法更改,需按:q!退出
- 命令行模式基本操作:
G:光标移到文章最后
gg:光标移到文章开头
k / j / h / l:控制光标上下左右移动
ctrl + f:向下翻页
ctrl + b:向上翻页
gg=G:全文对齐
x:每按一次,删除光标所在位置后的一个字符
#x:每按一次,删除光标所在位置后的#个字符
X:每按一次,删除光标所在位置前的一个字符
#X:每按一次,删除光标所在位置前的#个字符
dd:删除光标所在行
dw:删除单词
#dd:从光标开始处删除#行
yy:复制光标所在行到缓冲区
#yy:复制光标往下#行到缓冲区
p:将缓冲区字符粘贴到光标所在位置
r:替换光标所在处的字符
R:替换光标所到之处的字符,按ESC停止
u:撤销上一次操作,可多次撤销
ctrl + r:撤销的恢复,可多次恢复
cw:更改光标所在处的单词
c#w:更改当前光标所在处开始,#个单词
- 底行模式基本操作:
底行直接输入数字:跳到该数字的行
/关键字:查找关键字,向下查找
?关键字:查找关键字,向上查找,按n查找下一个
w:保存文件
q:推出文件
wq:一般二者同时使用
在以打开的文件底行模式下:vs + 文件名,可再开一个窗口
ctrl + ww:窗口切换
3.gdb
gdb调试器:调试一个程序的运行过程,发现程序哪里有问题。并不是所有的程序都可以调试,调试器只能调试具有调试符号信息的程序。
程序发布有两种模式:debug模式和release模式。
gcc/g++运行出来的二进制程序,默认是release模式的。
要使用gdb调试,必须在生成二进制程序文件的时候,加上-g
选项。
基本操作:
加载程序:gdb + 程序名称
开始调试:
- run:运行到结尾
- start:逐步调试
- 调试方法:
list 行号:显示行号上下5行代码,总计10行
list 函数名:显示函数,也只显示10行
step:s,会进入函数,逐行调试
next:n,不会进入函数,逐语句调试
break 行号:b,在行号设置断点
break 函数名:b,在函数头设置断点
print :p,打印表达式的值
until 行号:运行到行号这里停下
continue:c,从当前位置运行到下一个断点的位置
set var:修改变量的值
watch 变量:给变量打断点,当变量改变下,程序停下
delete breakpoints:删除所有断点
delete breakpoints n:删除序号为n的断点
disable breakpoins:禁用断点
disable breakpoints n:禁用序号为n的断点
enable breakpoins:启用断点
enable breakpoins n:启用序号为n的断点
display 变量名:跟踪查看一个变量,相当于vs中的监视
undisplay :取消先前设置的那些变量的跟踪
info b:查看当前设置了那些断点
info locals:查看当前栈帧局部变量的值
backtrace:bt,查看各级函数调用及参数,快速定位奔溃的位置
4.make/Makefile
项目自动化构建工具
makefile:文本文件,记录项目的构建流程及规则
make:makefile 的解释性程序,对构建流程和规则进行解释执行,完成构建
- makefile编写规则:
目标对象:依赖对象
制表符\t 执行命令
目标对象:要生成的可执行程序的名称
依赖对象:生成目标对象所需要的源码文件
- make执行规则:
- 找到当前目录下的makefile/Makefile文件
- 根据时间关系,判断是否需要重新生成
- 若要重新生成,执行指令。要生成多个,all:目标对象1 目标对象2
- 必须保证依赖对象存在
make中的预定义变量:都是在执行指令中使用
[email protected]:表示目标对象
$^:表示所有依赖性
$<:表示所有依赖性中的第一个
make中的%通配符:匹配任意字符串
wildcard:扩展通配符
patsubst:替换通配符
使用方法:如图
makefile中的清理工作:clean。需要我们指定执行。生成伪对象最好
伪对象:不论对象是否刷新,都需要重新生成。