【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 <stdio.h>                                                                                          
 #include <unistd.h>
 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 $@

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值