Linux常用工具

环境:CentOS7
工具:yum,vim,GBD,Makefile,

yum

yum: 软件包管理工具
查看软件包 yum list
安装软件包 yum install package_name
移除软件包 yum remove package_name

vim编辑器

因为vim中默认不能输用鼠标,因此为了完成能够插入,删除,复制,粘贴各个操作,vim将操作分为了很多模式:12种模式,常用的有三种:
插入模式:插入数据
普通模式:完成命令操作(移动光标,复制,粘贴,删除,撤销)
底行模式:保存文件,推出编辑

\Github-Hexo\themes\miho\source\images\Linux常用工具\1_1.png)

模式切换:

普通模式—>插入模式
i 从光标所在位置开始插入 I 光标移动到行首,开始插入
a 光标移动到下一个字符处开始插入 A 光标移动到行尾,开始插入
o 光标所在行下方添加新行开始插入 O 光标所在行上方添加新行开始插入
插入模式—>普通模式
ESC
普通模式—>底行模式
: /
底行模式—>普通模式
ESC
底行模式下的操作:
:w :wq :q :q! 保存退出操作
/string ?string 字符串查找
普通模式下的操作:
光标移动:hjkl 左下上有 w/b 按单词移动 ctrl+f/ctrl+b 向下/上翻页 gg/G 光标移动到文档开始/ 最后
复制:yy 复制当前行 n+yy 复制当前行向下n行
粘贴:p 向光标所在行下方粘贴 P 向光标所在行上方粘贴
删除:dd 删除光标所在当前行 ndd 删除光标所在行向下n行数据 x删除光标所在字符
dw 删除单词 D删除光标后的数据
撤销:u
恢复撤销:ctrl+r

Gcc 编译器

gcc将高级语言(C语言)编译成机器可以识别的语言
预处理:去掉注释,展开代码 gcc -E main.c -o main.i
编译:语法语义纠错,将c语言代码解释成为汇编代码 gcc -S main.i -o main.o
汇编:将汇编代码解释成为二进制文件(机器指令) gcc -c main.o
链接:链接库文件中的代码
静态链接:链接静态库。将库中代码拷贝到程序中,程序比较大,但是运行时不需要依赖静态库存 在。静态库如果多个程序使用了相同的静态库,运行时程序被加载到到内存中,会出现冗 余代码。
动态链接(共享库/运行时库):连接动态库。记录函数位置符号信息,程序比较小,但是运行时需要依赖动态空的存 在。共享一块内存
gcc默认是动态链接
gcc常用选项:
-E 只进行预处理
-S 只进行编译
-c 只进行汇编
-o 用于生成指定文件名称
-static 使用静态链接

GBD调试器

调试程序的运行过程—调试bug’
GBD加载程序的时候如果有程序运行参数,不能加载的时候给予,在run的时候加入参数
0.向程序中加入调试符号信息
gcc默认生成的是release发布版程序,可执行程序中没有任何调试信息。

gcc -g 生成Debug程序
1.加载程序
gbd ./main
2.开始调试
run 程序开始
start 开始逐步调试
3.常见操作
list 查看代码
list file:line
n 下一步 不跟踪进入函数,直接将函数运行完毕(逐过程)
s 下一步 跟踪进入函数(逐语句)
until 直接运行到指定行
until file:line
4.断点相关
b file:line 在第line行加断点
b function_name 函数加断点
info b 查看断点
print 查看变量
print var
continue 运行到下一个断点处继续运行
delete 删除断点
delete line 删除固定行断点
delete 删除所有断点
watch 变量监控,当变量改变时,停下来
watch var
5.查看调用栈信息
bt(backtrace) 查看函数调用栈—快速定位程序崩溃位置

make/Makefile 项目自动化构建工具

Makefile:普通文本文件,但是不普通的是makefile记录的是项目的构建流程规则。
make:一个程序—makefile解释器,解释makefile中的项目构建规则,完成项目构建。
在当前目录下输入make命令,make程序到当前目录下找makefile文件,逐行解释。
Makefile基本编写规则:
目标对象:[依赖对象]
tab 要执行的命令
make的解释规则:
make打开makefile文件后,找寻第一个目标对象名称
若没有找到:认为没有要生成的对象,报错退出
若找到了:判断目标对象是否存在:
目标对象文件若存在:判断是否有依赖对象名称
若没有依赖对象名称:认为目标对象以经生成,不需要重新执行命令生成
若有依赖对象名称:判断依赖对象文件是否存在:
若存在:判断目标对象文件与依赖对象的时间关系
若不存在:在makefile继续向下查找依赖对象的生成规则
依赖对象在下一条规则中作为目标对象被生成,进而生成第一个目标对象后退出
目标对象文件不存在:
则直接执行命令生成
makefile预定义变量:$@ $< $^
$@:目标对象
$<:所有的依赖对象
$^:依赖对象的第一个
伪对象:不管对象是否最新,是否存在,每次都需要为对象执行生成命令
声明伪对象: .PHONY : clean

makefile中变量的赋值方式:有何不同?

git 项目版本管理工具

git和svn
git:分布式版本控制器
svn:集中式版本控制器
git基本操作
下载服务器上的代码:
git clone
修改代码后,本地提交(本地管理):
git add newfile
git commit -m “2019/5/13 description”
将本地修改提交到服务器:
git push origin master
master是git代码管理主分支

最后更新: 2019年05月23日 16:18

原始链接: http://CQolive.github.io/2019/05/23/Linux常用工具/

× 请我吃糖~
打赏二维码