【Linux】常用工具(vim,gcc,gdb,附加---进度条程序)

目录

一.工具

1 . 编辑器

2.编译器

3.调试器

二.使用

    1.vim编辑器        

    2.编译器:gcc/g++ make

    3.调试器:gdb

  下面是一个Linux--->vim中自主实现的进度条程序


  今天我们来说一说Linux下一些常用的工具,包括编辑器,编译器,调试器和一些基本的使用方法

一.工具

1 . 编辑器

        (1)vim(脚本编程)

                Vim是从 vi 发展出来,编译及错误跳转等方便编程的功能特别丰富,程序员中广泛使用。是类Unix系统用户最喜欢的编辑器之一。

        (2)Eclipse(自定义界面)

                Eclipse拥有代码高亮和智能提示等功能。Eclipse可以完成以下编程语言——Python, R,JavaScript, Natural, Lasso, C, C++, Scheme等等的编程工作.

        (3)Brackets(常规文件切换)

                Brackets也是一款为Linux开发者设计的开源代码编辑器,好处在于,使用Brackets写代码,不会被任何事情所打断.

        (4)Light Table(多媒体选择和编辑)

               LightTable是一个免费开源的编辑器,界面干净好看,有大量扩展。它与Windows、Mac和Linux都兼容,是高度可定制的.一个浏览器窗口即可实时查看更改,而且支持不同的嵌入。

2.编译器

        (1)MSVC

                Windows平台上最常用的编译器,在C++编译器圣战中的胜利者,但是对标准的支持不够快.

        (2)Clang

                licence极度友好,代码质量非常棒,采用的IR为LLVM IR非常优秀,各大公司逐步发力在Clang上,包括不限于微软,IBM,Nvidia等,各大公司也在开始疯狂的往Clang / LLVM交代码(圈地),也开始往Clang实现OpenMP,Nvidia GPU等支持,目前在赶超GCC的道路上,但是Clang依赖于的LLVM,目前的性能还是无法与GCC相提辩论.

        (3)GCC/G++

                跨体系结构很多,很多开源软件默认编译器都是GCC/G++,这一点上Clang比不上。

3.调试器

        调试器来说,Linux下我们最常用的还是gdb,gdb功能强大.但是有一点,gdb调试的前提是可执行程序中需要有调试符号信息,gcc -g ,生成debug版本程序,才可以用于调试.

        那么为什么一定要加上 -g  选项呢 ? 

               因为默认生成的可执行文件是无法用gdb进行跟踪或者调试的,因为可执行程序中没有可以供gdb调试的信息,那么为了将调试信息整合到可执行文件中,我们需要使用-g选项 , 这样生成的可执行程序,倘若出现问题,便可以使用 gdb 找出问题具体出现的位置,便于问题的解决.

二.使用

  在这里我们对vim,gcc,gdb进行展开讲解

    1.vim编辑器        

            vim有十二种操作模式,但是我们常用的就是三种,分别是 普通模式 , 插入模式 , 底行模式.

            (1)普通模式(完成普通的基本命令)​​​​​​

                 普通模式进入插入模式

                  

                输入的字母                    对应的插入位置
                        i 从当前位置开始插入
                       a 光标向后移动一个字符然后进入插入模式
                       o  向光标所在行下方添加新行开始插入
                       I  光标回到行首
                       A  光标所在行尾
                      O  光标所在行上方添加新行

 

                 普通模式快捷键 :

        普通模式快捷键                              对应操作
                  hjkl                              左下上右
                  wb                  向右/向左按单词移动光标
                  yy                       赋值光标所在行数据
                  nyy                 从光标所在行开始向下复制
                   P                 向光标所在行上方粘贴新行
                   p                 向光标所在行下方粘贴新行
                   x                      删除光标所在字符
                   h               剪切到当前字符的后一个位置
                   dw               删除光标所在位置往后的单词
                   dd                               删除行
                   D              从光标所在处开始删除到行尾
                   u                               撤销
               Ctrl  + r                               回退

                 普通模式进入底行模式 : Shift + :
            (2)插入模式: 向文件中插入数据

                  插入模式--->普通模式       按Esc键
            (3)底行模式:
                     退出/保存编辑  vim设置
                     q! 强制退出 

    2.编译器:gcc/g++ make

 gcc编译器:将我们所写的代码编译生成计算机可以识别的机器指代码
 编译过程:  预处理-->编译-->汇编-->链接
        预处理: 展开所有代码
        编译: 语义语法纠错,无误则将代码生成汇编代码
        汇编: 将汇编代码解释生成机器可识别代码
        链接: 将所有的目标文件(每一个.c文件生成的机器代码)以及外部的库,集合到一起,生成可执行程序

      gcc 编译选项:

                 编译选项                                作用                              例子
                       -g        指示编译器在编译时产生调试信息               gcc -g main.c -o main
                       -E      只进行预处理(进行宏展开),不生成文档               gcc -E main.c -o main.i
                       -S  只进行预处理和编译,把文档编译成汇编代码               gcc -s main.i -o main.s
                       -c        进行预处理,编译,汇编,生成obj文件               gcc -c main.s -o main.o
                       -o                         定制目标名称               gcc main.o -o main
                    -static                       禁止使用动态库  

    3.调试器:gdb


        gdb调试的前提是可执行程序中需要有调试符号信息,gcc -g ,生成debug版本程序,才可以用于调试,
        (1)加载程序:
              gdb ./main

        (2)调试程序

                操作                                       对应内容
                   r                    接收参数,运行程序     (r    -a    -l)
                start                                   开始单步调试
                   l                默认查看调试行附近代码     l file:line
                   n                           下一步,但是不进入函数
                   s                           下一步,追踪进入函数
                 until                   直接运行到指定行    until file:line
                   b                               打断点   b file:line
                   i                                   查看调试信息
              d/d b_id                               删除所有/指定断点
                   p                                  查看变量内容
                   c                              从停止处继续运行
                 watch                               变量监控   watch var
                   bt                               查看函数调用栈信息

  下面是一个Linux--->vim中自主实现的进度条程序

    ProgressBar.c   : 

 #include                                                                                           
 #include 
 int main()
 {
   char per[10] = {0};
   int i = 0;
   while(i < 10)
   {
     per[i] = '-';
     printf("%s\r",per);
     fflush(stdout);
     usleep(500000);
     i++;
   }
   return 0;
 }

Makefile   : 

ProgressBar:ProgressBar.c
    gcc $^ -o $@

          希望对大家有帮助,谢谢观看!

你可能感兴趣的:(Linux,Linux-常用工具)