【Linux-5】常用编程辅助工具

目录:

  1. 编程辅助工具
  2. 模式切换
  3. 编译器
  4. 调试器
  5. 函数调用栈
  6. make/makefile

1.编程辅助工具:
                        yum:Linux软件包管理器(相当于应用商店)
                            查看软件包    yum  list
                                    lrzsz yu list | grep lrzsz
                            安装软件包    yum lnstall
                                    lrzsz.x86_64    yum install lrzsz.x86_64    yum install lrzsz
                            移除软件包    yum remove
                      vim编辑器:因为vim模式不能使用鼠标,因此为了完成能够插入,删除,复制,粘贴各个操作
                                 vim将操作分为很多模式,一共有12种模式,但常用的只有3种
                            插入模式:插入数据
                            普通模式:完成命令操作(常用的有:移动光标,复制,粘贴,删除,撤销,恢复撤销)
                            底行模式:保存文件,退出编辑

2.模式切换:

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

3.gcc编译器

gcc将高级语言(C语言)编译成机器可以识别的语言
                        预处理:条件编译,去注释
                        编译:将C语言代码解释成汇编代码
                        汇编:将汇编代码->机器指令
                        链接:生成可执行文件或库函数(链接库文件里的代码)
                        
                        静态链接:链接静态库,将库中代码拷贝到程序中,程序比较大,但是运行时不需要依赖静态库的存在
                                静态库如果多个程序用了相同的静态库,运行时程序被加载到内存中,会出现多份冗余代码
                                而动态库,在内存中共享同一份动态库代码
                        动态链接:链接动态库,记录函数位置符号信息,程序比较小,但是运行时需要依赖动态库的存在
                                【共享库/运行时库】
                        gcc常用选项
                            -E 只进行预处理                -S只进行编译         -c只进行汇编
                            -o 用于指定生成的文件名称    
                            -static 使用静态链接
4.gdb调试器
调试程序运行过程前提---调试bug
                            0.向程序中加入调试符号信息debug【前提】        gcc默认生成的是release发布版程序,程序中可执行程序中没有加入调试符号信息
                                                                            gcc -g :生成debug版本可执行程序
                            1.加载程序 gdb./main【gdb加载程序的时候如果有运行程序参数,不能加载的时候给与】
                          
                            2.开始调试
                                    run 直接运行程序        start  开始逐步调试
                            3.常见操作
                                    list 查看代码            next(n)   下一步
                                                            start(s)  下一步
                                
                            4.断点相关操作
                                    break file main.c:n   在某一行(n)打断点
                                    break test               给函数打断点                info break 查看断点信息
                                 print  查看变量内容
                                    print var
                                continue (c) 继续运行        delete break_id 删除断点    watch 变量监控(当变量内容改变时停下来)watch var 

5.函数的调用栈信息:

backtrace:快速定位

6.make/makefile

make/Makefile:项目自动化构建工具
                                Makefile:普通文本文件,但是不普通的是它记录的是项目的固件流程规则
                                make:Makefile的解释器,完成项目的构建
                                    在当前目录下敲击make
                                Makefile基本编写规则:
                                    目标对象:[依赖对象]
                                    tab 要执行的对象
                                make的解释规则:
                                    make打开Makefile文件后,寻找到第一个目标对象
                                            若没有找到:认为没有要生成的对象,报错并退出
                                            若找到了:判断目标对象文件是否存在
                                            目标对象文件若存在:判断是否有依赖对象名称
                                                若没有依赖对象:检测外部是否存在目标对象文件(是否已生成过了)
                                                目标对象未生成:执行要执行的命令(生成目标对象的命令)
                                                目标对象已生成:报错,目标对象已有,不需要重新生成
                                            有依赖对象:判断依赖对象是否存在;
                                                若存在:检测目标对象和依赖对象的最后一次修改时间
                                        目标对象文件不存在:则直接执行命令生成      
                            Makefile预定义变量:
                                    $^:所有的依赖对象                            wilecard:获取所有的文件名
                                    $<:依赖对象中的第一个                        patsubst:
                                    $@:目标对象
                            伪对象:不管对象是否最新,是否存在,每次都需要为对象执行生成命令
                            声明伪对象:.PHONY:clean

 

 

 

 

 

~bye~

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值