-----------博文目录 ----------

1、yum软件包管理器

2、vim文本编辑器

3、大佬们都喜欢的编辑器

4、gcc编译器

5、Makefile

6、gdb调试工具

7、项目版本控制工具


  • 1、yum软件包管理器:读法 /亚姆/

  1.     yum list                  查看可以安装的软件包     | grep ** 进行筛选查看                    
  2.     yum install             安装软件包     这个命令也可以进行软件升级处理
  3.     yum remove          移除软件包    

例如:
查看可以安装的软件包:

安装 g++


升级处理

  • 2、vim文本编辑器

    对文本的操作: 插入数据 保存 删除 复制 粘贴 剪切 滚动显示位置 改变输入位置
    vim 为了能够实现所有的操作,因此有很多的模式(十二种),每个模式下所完成的功能各有不同
    常用:插入模式,普通模式,底行模式
 

  •     普通模式下的操作

    1、移动光标
             k 上 j 下 h 左 l 右(方向键亦可以)
             w b 单词左右移动
             ctrl f / b 上下翻页
             gg  行首 / 行尾 G                gg=G全文对齐
    2、复制
           yy    复制光标所在行
           n + yy 复制 n 行数据
    3、粘贴
           p    光标下行粘贴
    4、剪切
           s    剪切光标所在字符并进入插入模式
           dd    剪切光标所在行
           dw    剪切光标所在单词
    5、撤销
           u
    6、选择
           v 加方向键进行选择
           数据交互    CTRL + s 与虚拟机退出交互  CTRL + o 继续交互
   7、匹配
           / + 匹配的字符串

  • 3、大佬们都喜欢的编辑器,下面列举一下除vim以外的编辑器

编辑器对比
名称特点不足

Eclipse

1、从编写、查错、编译、帮助等等各方面为Java语言贴身定做。
2、可无限扩展的强大插件功能。
3、众多公司、厂商、组织的鼎立支持。
4、开放,自由,免费。

1、大工程时,吃内存耗cpu,依然会出现很慢、卡顿、奔溃和无响应的情况

2、插件对eclipse版本要求比较严格,插件更新速度跟不上eclipse更新速度

3、安装插件过多之后,速度变慢,有些插件安装比较麻烦

Emacs

1、Emacs是伪装成编辑器的操作系统。可以用来收发电子邮件、通过FTP/TRAMP编辑远程档案、登陆IRC和朋友交流、查看日历等功能,

2、它也是一个巨大的开放社区,在这里你能结识到更酷一些的程序员。

1、智能感知和补全不足

2、插件不完善和不友善

vim

1、VIM是纯粹的自由软件

2、无数种插件,自己选择

1、内置脚本语言有局限性

Brackets

1、1.可以实时预览

2、可以快速编辑,在HTML可以编辑CSS和JS代码。

暂无

Light Table

1、实时运行反馈,调试和搜索文档的功能

2、及时反馈功能提供了一个不同寻常的运行环境来让程序员构建抽象。

暂无
Sublime Text 3

1、具有漂亮的用户界面和强大的功能

2、可自定义键绑定,菜单和工具栏

3、跨平台

暂无

Sed

1、简化对文件的反复操作,编写转换程序

1、编辑效率低下
  • 4、gcc编译器

  • 作用:将高级语言代码编译成机器可识别的指令代码
  • 编译步骤:

            1、预处理 :展开代码
            2、编译 :将高级语言代码编译成汇编代码
            3、汇编 :将汇编代码编译成机器指令
            4、链接 :执行程序,所有调用的文件合在一起执行。
                        静态链接:直接拷贝代码
                        动态链接:生成链接地址
            5、库 :保存实现函数代码的文件(后面介绍)
                    1)静态库 :生成可执行程序,链接静态库称为静态链接 ,  后缀是 .a
                        直接将库文件的代码拷贝到可执行程序中,代码冗余量大,占用资源多,对库的依赖程度低
                    2)动态库 :生成可执行程序,链接动态库称为动态链接 ,后缀是 .so
                        只记录动态库的位置符号信息,代码冗余量小,占用资源少,对库的依赖程度高
                        gcc默认链接动态库

名称作用例子
gcc -E只进行预处理gcc -E test.c -o test.i
gcc -S只进行编译gcc -S test.i -o test.s
gcc -c只进行汇编  gcc -C test.s -o test.o
 gcc -o指定生成文件名称gcc test.o -o test

          gcc 默认生成二进制文件
      一般我们都是gcc test.c -o test(c语言)或者 g++ test.cpp -o test(c++)直接搞定(不需要指定库的时候)

  • 5、Makefile

        作用:一个文本文件,记录项目的变异规则,辅助项目的自动化编译。但是有一个make命令,逐步执行makefile记录的编译规则
        命名:Makefile / makefile
                                        
        编写:
            make:只能编译一个目标对象,如果要编译多条,需要加入 ALL
                                        
            预定义变量: $@ 目标对象 $^ 所有的依赖对象  $<  所有依赖对象的第一个
            编写规则必须是制表符开始[tab]

        执行过程:make程序在当前工作目录下找makefile文件
                1.到当前目录下查找makefile文件,找不到报错
                2.到文件找到第一个目标对象,并把这个对象当作终极目标
                3.检测这和目标对象和依赖关系的最后一次修改时间,判断是否需要重新编译,如果修改时间一样则不需要重新编译,直接退出
                4.如果目标对象不存在则直接生成,但依赖对象可能不存在
                5.为了生成终极目标,首先要保证依赖都存在,所以会先去生成所有依赖对象(依赖对象生成的依赖关系二十用户在下边定义的)

也可以这样写:

声明伪对象 :.0PHONY
    伪对象 :每次都需要重新生成新的main

  • 6、gdb调试工具

    1、添加调试符号信息    

        gcc -g

    2、打开gdb环境

  1. 直接gdb打开环境,然后file+可执行文件
  2. 或者直接gdb + 可执行文件

    3、gdb调试命令
     1)显示源程序
          list:列出源程序,默认显示十行,多出的行多敲结果list命令
          list -:显示当前行之前的十行
          list n:从n行到第十行
          list start end:从第start行到end行
          show listsize:参看list显示的行数,
          set listsize:设置list显示的行数
    2)控制程序的执行
         break n:在第n行设置断点
         breadk main:在函数入口设置断点
         break main if i==10:在条件处设置断点
         info breakpoint(简写:info break):查看断点
         delete:清除所有断点
         delete n:删除n号断点
    3)程序的运行
         run:运行程序,执行到断点处
         next:单步执行,不进入函数内部:逐过程
         step:单步执行,进入函数内部:逐语句
         continue:从当前位置出发,执行到断点处
    4)查看运行是的数据
          print:显示表达式/变量的值
         print + 变量:
         print + 表达式
         print array[0]@n:显示第0个到第n个元素
         print array[n]:查看第 n 个元素
         print + 变量= 值:修改变量的值
         info display + 变量:监视,每次单步执行后会显示变量的变化
         delete display:删除监视
    5)显示函数调用堆栈信息
         backtrace(bt):显示堆栈信息
         where:显示堆栈信息
         up n:向上显示 n 层
         down n:向下显示n层    

  • 7、项目版本控制工具

  • git项目版本控制工具:分布式管理
  • suv项目管理控制工具:集中式管理

 

  • git 三板斧
  1.  git clone https-url      从GitHub上克隆代码到当前路径,这个步骤只用进行一次,在你的Linux里有该库名称的目录就行。
  2. git add file                  添加提交的文件
  3. git commit -m "***"    本地提交,***代表描述信息
  4.  git push                   上传代码,后面提示就是输入用户名和密码了

问题一:
*** Please tell me who you are.

Run

 git config --global user.email "you@example.com"

 git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.
第一次会提交会出现上述问题,是因为没有初始化,或者说是没有绑定邮箱。这个时候只用git config --global user.email "xxx@xxx.com"引号里的邮箱改成自己的git上的邮箱就行了。类比第二个改成自己用户名也行。
问题二:
error: 无法推送一些引用到 'https://github.com/......
1)这个可能你当时在GitHub上删除了某些文件,这个时候你可以git pull合并后,按照提示输入描述信息,然后git push就行
2)git push -u origin +master​   强行提交试一试

        附加:    =     :=         ?=         +=    的区别
                       =    用的时候赋值
                      :=    及时赋值
                      ?=   空的就赋值
                      +=  追加赋值

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐