M的编程备忘录之Linux——基础开发工具

目录

1、Linux软件包管理器 yum

1.1、查看软件包

1.2、安装软件

1.3、卸载软件

2、Linux开发工具 vim

2.1、vim的基本概念

2.2、vim的基本操作

         1、进入vim

        2、正常模式进入插入模式

        3、插入模式切换至正常模式

        4、正常模式切换至末行模式

        5、退出vim及保存文件

2.3、vim正常模式命令集

        移动光标

        删除文字

        复制

        替换

        撤销上一次操作

        更改

        跳至指定行

2.4、末行模式命令集

        列出行号

        跳到文件某一行

        查找字符

        保存文件

        离开vim

3、Linux编译器-gcc/g++使用

        预处理(进行宏替换)

        编译(生成汇编)

        汇编(生成机器可识别代码)

        链接(生成可执行文件或库文件)

        gcc选项

4、Linux调试器 gdb使用

4.1、背景

4.2、使用

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

6、git


1、Linux软件包管理器 yum

        以安装lrzsz为例

1.1、查看软件包

                通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包

            yum list | grep lrzsz

1.2、安装软件

            yum install lrzsz

         su root//获取root权限 

1.3、卸载软件

            sudo yum remove lrzsz

2、Linux开发工具 vim

2.1、vim的基本概念

        正常/普通/命令模式

                控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到末行模式

        插入模式
                只有在插入模式下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
        末行模式
                文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+:即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入help vim-modes

2.2、vim的基本操作

         1、进入vim

              

             进入之后在正常模式

        2、正常模式进入插入模式

              按「i」切换进入插入模式,按“i”进入插入模式后是从光标当前位置开始输入文件;                         按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
              按「o」进入插入模式后,是插入新的一行,从行首开始输入文字

        3、插入模式切换至正常模式

                处于插入模式,按ESC键就可转到正常模式

        4、正常模式切换至末行模式

                shift+;其实就是输入:

        5、退出vim及保存文件

                先进入末行模式

           w //保存当前文件

           wq // 保存并退出

           q! //不保存,强行退出

2.3、vim正常模式命令集

        移动光标

                vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格

              「G」:移动到文章的最后
              「 $ 」:移动到光标所在行的“行尾”
              「^」:移动到光标所在行的“行首”
              「w」:光标跳到下个字的开头
              「e」:光标跳到下个字的字尾
              「b」:光标回到上个字的开头
              「#l」:光标移到该行的第#个位置,如:5l,56l
              [gg]:进入到文本开始
              [shift+g]:进入文本末端
              「ctrl」+「b」:屏幕往“后”移动一页
              「ctrl」+「f」:屏幕往“前”移动一页
              「ctrl」+「u」:屏幕往“后”移动半页
              「ctrl」+「d」:屏幕往“前”移动半页

        删除文字

              「x」:每按一次,删除光标所在位置的一个字符
              「#x」:如「6x」表示删除光标所在位置的后面(包括自己在内)6个字符
              「X」:大写的X,每按一次,删除光标所在的位置前面的一个字符
              「#X」:「20X」删除光标所在前20个字符
              「dd」:删除光标所在行
              「#dd」:从光标所在行开始删除#行

        复制

              「yw」:将光标所在之处到字尾的字符复制到缓冲区
              「#yw」:复制#个字到缓冲区
              「yy」:复制光标所在行到缓冲区
              「#yy」:「6yy」表示拷贝光标所在行往下6行文字
              「p」:将缓冲区内的字贴到光标所在位置

        替换

              「r」:替换光标所在处的字符
              「R」:替换光标所到之处字符,按下「ESC」键为止

        撤销上一次操作

              「u」:可以回到上一个操作
              「ctrl + r」:撤销的恢复

        更改

              「cw」:更改光标所在处到字尾处
              「c#w」:更改#个字符

        跳至指定行

              「ctrl」+「g」:列出光标所在行的行号
              「#G」:移动到第#行的行首

2.4、末行模式命令集

        列出行号

              「set nu」:会在文件中每一行前面列出行号

        跳到文件某一行

              「#」:输入后会跳至#行

        查找字符

              「/关键字」:先按「/」键,在输入想寻找的字符,若不是则可以按「n」
              「?关键字」:先按「/」键,在输入想寻找的字符,若不是则可以按「n」
              「n」:会寻找至你要的关键字位置

        保存文件

              「w」:保存文件

        离开vim

              「q」:退出vim,如果无法离开后面跟一个「!」强制离开
              「wq」:保存并退出

3、Linux编译器-gcc/g++使用

   格式:   gcc 「选项」 要编译文件名 「选项」 目标文件名

        预处理(进行宏替换)

                预处理功能主要包括宏定义,文件包含,条件编译,去注释等。
                预处理指令是以#号开头的代码行。
                实例: gcc –E hello.c –o hello.i

        编译(生成汇编)

                在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc 把代码翻译成汇编语言。
                实例: gcc –S hello.i –o hello.s

        汇编(生成机器可识别代码)

                汇编阶段是把编译阶段生成的“.s”文件转成目标文件
                实例: gcc –c hello.s –o hello.o

        链接(生成可执行文件或库文件)

                在成功编译之后,就进入了链接阶段。
                实例: gcc  hello.o –o hello

        gcc选项

                -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
                -S  编译到汇编语言不进行汇编和链接
                -c  编译到目标代码
                -o 文件输出到 文件
                -static 此选项对生成的文件采用静态链接
                -g 生成调试信息。GNU 调试器可利用该信息。
                -shared 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.
                -O0
                -O1
                -O2
                -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
                -w  不生成任何警告信息。
                -Wall 生成所有警告信息。

4、Linux调试器 gdb使用

4.1、背景

        程序的发布方式有两种,debug模式和release模式
        Linux gcc/g++出来的二进制程序,默认是release模式
        要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项

4.2、使用

gdb [可执行程序名]

若出现,以下情况

这是因为没有安装gdb 

list/I 行号:显示程序的源代码,接着上次的位置往下列,每次列10行

list/l 函数名:列出某个函数的源代码。
r或run:运行程序。
n 或 next:单条执行。
s或step:进入函数调用
break(b) 行号:在某一行设置断点
break 函数名:在某个函数开头设置断点
info break :查看断点信息。
fifinish:执行到当前函数返回,然后挺下来等待命令
print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数
p 变量:打印变量值。
set var:修改变量的值
continue(或c):从当前位置开始连续而非单步执行程序
run(或r):从开始连续而非单步执行程序
delete breakpoints:删除所有断点
delete breakpoints n:删除序号为n的断点
disable breakpoints:禁用断点
enable breakpoints:启用断点
info(或i) breakpoints:参看当前设置了哪些断点
display 变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay:取消对先前设置的那些变量的跟踪
until X行号:跳至X行
breaktrace(或bt):查看各级函数调用及参数
info(i) locals:查看当前栈帧局部变量的值
quit:退出gdb

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

        make是一条命令,makefifile是一个文件,两个搭配使用,完成项目自动化构建。

process_bar: progress_bar
    gcc -g progress_bar.c -o progress_bar                                                                                                                                                
.PHONY:cleam
    rm -r progress_bar

6、git

        安装git

                yum install git

        创建好项目后复制项目链接

        下载项目到本地

                git clone 链接

        提交代码 先将刚才的代码放到刚才的目录中

                git add  文件名

                git commit -m "代码说明"

                git push


版权声明:本文为HyperMyteki原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。