Linux------开发工具的使用
程序员文章站
2022-05-20 09:39:24
...
常用工具
yum: 软件包管理工具
软件安装方法:
手动源码安装(非常不推荐)
使用工具安装
工具自身可以解决软件包的依赖关系
常用操作(除安装外都需root权限)
查看
yum list 查看能够安装什么
yum list installed | grep package 查看已经安装了什么
安装
yum install package_name
移除
yum remove package_name
vim: 编辑器
十二种操作模式,但是常用三种:普通模式;插入模式;底行模式
普通《=》插入:i a o I A O
光标移动: hjkl ctrl+f/b向下/向上翻页 w/b gg回到文件第一行 G跳到文件最后一行 e
复制: yy nyy复制多行
粘贴: p向下粘贴 P向上
剪切(删除) x删除光标所在字符 dw按单词来删除 D dd删除光标所在行 ndd所在行一下n行
撤销: u上一步 crlt+r下一步
其他: gg=G全文对齐
普通《=》底行 :
q: 退出vim
wq:保存退出
q!:强制退出
set:设置行号
/ string ?string 字符查找
gcc: 编译器(将c/c++高级语言代码翻译为机器可识别的代码)
预处理: 展开所有代码,头文件展开,宏替换,去注释,条件编译-----.i
编译: 语法语义纠错,翻译为汇编代码 -----.s
汇编: 将汇编代码翻译成二进制(机器码)可识别指令-----.o
链接: 链接库(机器码),将所有代码合在一起生成的可执行程序(可执行程序)----- 。exe//a.out
库文件: 已经汇编完成的公共代码
链接: 将库中的代码拿到要生成的可执行程序中
动态链接: 链接动态库,只是记录库中的接口符号位置信息,好处是资源冗余较小,但是缺点是程序运行时需要动 态库的存在。共享库/运行时库(都为动态库)
静态链接: 链接静态库,将库中代码直接拷贝到可执行程序中,好处是程序执行时不需要依赖库文件的存在;缺点为占用资源较多
gcc链接方式默认为动态链接
gdb: 调试器(调试一个程序的运行过程)
linux下程序编译默认生成release版本,不带有调试符号信息,意味着程序无法被调试;所以程序调试的前提就是编译生成debug版本程序,因此gcc编译程序时需要加上-g选项,开启调试,向程序中添加调试符号信息
gcc -g main.c -o main
gdb调试程序需要将程序信息加载到gdb中
gdb ./main gdb 进入gdb后 运行 file ./main命令
开始调试: run
运行程序加载运行参数: r parmarm1 param2 .......
start: 开始逐步调试
n 下一步:遇到函数直接运行并不跟踪进入函数
s 下一步:遇到函数运行并跟踪进入函数
p var 查看变量数据
l line(line指定行号) 指定查看调试行附近代码
untill line 直接运行到指定行
b line 向当前调试文件指定行添加断点
flie : line 向指定文件指定行添加断点
func 向函数添加断点
watch var 变量监控,给变量添加断点,当变量内容发生改变,停止
i b 查看所有断点信息
d id 删除指定断点 ,默认删除所有
c 断点停止后,继续运行
bt: 查看函数调用栈信息
make/makefile:项目自动化构建工具
makefile: 定义编译规则的普通文件
make: 是一个解释程序,解释执行makefile中定义的编译规则 执行make命令,这时make程序会到当前目录下寻找makefile文件,解释其中的编译规则
如何编写makefile,编写规则(目标对象:依赖对象)
通过目标对象与依赖对象最后一次修改时间,判断目标对象是否需要重新生成
make在makefile中只找第一个目标对象,为了生成这个目标对象而执行命令,完毕后直接退出(后面的对象都不会生成)
make在makefile中找到第一个目标对象,若目标对象不存在,则执行命令开始找一依赖对象,这时候如果这个对象的依赖对象不存在,则在后续的编译规则中寻找是否可以生成这个依赖对象,当所有的依赖对象生成完毕后最终生成目标对象(判断目标对象是否存在,依赖对象是否存在);若目标对象存在,无依赖对象则报错,若有依赖对象则判断时间关系;若没找到则查找依赖对象生成规则生成依赖对象。
预定义变量
[email protected] 要生成的目标对象
$^ 所有的依赖对象
$< 依赖对象中的第一个
.PHONY关键字用于申明伪对象 (伪对象:不管对象是否是最新,每次都要重新生成)
git: 分布式的项目版本管理工具
svn: 集成式的项目版本管理工具
克隆代码到本地(克隆代码)
git clone git地址(项目地址)
添加本地文件
git add 新文件
提交代码到本地仓库
git commit -m "本次提交备注信息"
提交本地代码到服务器分支
git push origin master(master是git主分支)
进度条:
\r:光标回到原来位置覆盖之前的东西
\n:换行符
对于stdout/stderr,\n不仅具有换行作用而且还有刷新缓冲区的作用
上一篇: Spring Boot 开发工具的使用
下一篇: 开发工具——日志Timber的使用
推荐阅读
-
Python中函数的多种格式和使用实例及小技巧
-
flash 8怎么使用对象绘制功能? flash绘制折叠不粘连图案的教程
-
flash标尺在哪? flash使用标尺的基础知识
-
状态机的概念和在Python下使用状态机的教程
-
cdr艺术笔工具的怎么使用? CorelDraw艺术笔工具实例教程
-
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
-
在Python中使用SimpleParse模块进行解析的教程
-
CAD怎么使用命令提取图纸中图形的数据?
-
在Python下使用Txt2Html实现网页过滤代理的教程
-
Python multiprocessing模块中的Pipe管道使用实例