【Linux】|开发工具介绍 | yum |vim | gcc/g++ | gdb | git

07-16 1702阅读

Linux开发工具详解

      • 1. 引言💦
      • 2. Linux软件包管理器:Yum
        • 什么是软件包
        • 安装和卸载软件
        • rzsz工具
        • 3. Linux编辑器:Vim
          • Vim的基本概念
          • Vim的基本操作
          • Vim模式和命令集🐳
          • Vim配置
          • 4. Linux编译器:GCC/G++
            • 编译过程详解
            • ==编译器的自举==
            • 函数库:静态库和动态库
            • GCC常用选项
            • 5. Linux调试器:GDB
              • GDB的基本使用
              • 调试命令详解
              • 6. Linux项目自动化构建工具:Makefile
                • Makefile的基本概念
                • Makefile的编写实例
                • 自动化编译和项目清理
                • 7. 第一个Linux程序:进度条
                  • 行缓冲区概念
                  • 进度条代码实现
                  • 8. 版本控制系统:Git
                    • Git的安装与配置
                    • 使用Git管理项目
                    • 将项目上传至GitHub

                      1. 引言💦

                      在Linux系统上进行开发,掌握和使用合适的工具能够大大提高开发效率和代码质量。本文将详细介绍几种常用的Linux开发工具,包括软件包管理器Yum、编辑器Vim、编译器GCC、调试器GDB、构建工具Makefile以及版本控制系统Git。通过这些工具的使用,你将能够更高效地进行软件开发和维护。


                      2. Linux软件包管理器:Yum

                      什么是软件包

                      在Linux系统中,软件包是预先编译好的程序集合,类似于Windows上的安装程序。使用软件包管理器如Yum,可以方便地安装、更新和卸载软件包,而无需手动编译源代码。

                      安装和卸载软件

                      要安装软件包,可以使用如下命令:

                      sudo yum install package_name
                      

                      例如,安装lrzsz软件包:

                      sudo yum install lrzsz
                      

                      要卸载软件包,可以使用以下命令:

                      sudo yum remove package_name
                      

                      例如,卸载lrzsz软件包:

                      sudo yum remove lrzsz
                      
                      rzsz工具

                      rzsz工具用于在Windows机器和远程Linux机器之间通过XShell传输文件,安装完成后可以通过拖拽的方式将文件上传。


                      3. Linux编辑器:Vim

                      Vim的基本概念

                      Vim是vi的增强版,是一种多模式编辑器。Vim有三种基本模式:命令模式、插入模式和末行模式。命令模式用于移动光标和删除文本,插入模式用于文本输入,末行模式用于保存文件和退出Vim。

                      Vim的基本操作

                      进入Vim编辑一个文件:

                      vim filename
                      

                      在命令模式下,按下i、a或o进入插入模式进行文本输入。按下ESC键返回命令模式。按:进入末行模式,可以保存文件或退出Vim。

                      常用命令包括:

                      :w  # 保存文件
                      :q  # 退出Vim
                      :wq # 保存并退出
                      :q! # 强制退出不保存
                      
                      Vim模式和命令集🐳

                      【Linux】|开发工具介绍 | yum |vim | gcc/g++ | gdb | git


                      • 命令模式:用于光标移动和文本操作

                        • h 左移光标,j 下移光标,k 上移光标,l 右移光标
                        • dd 删除整行,yy 复制整行,p 粘贴
                        • 插入模式:用于文本输入

                          • i 光标前插入,a 光标后插入,o 新行插入
                          • 末行模式:用于保存和退出

                            • :w 保存文件,:q 退出Vim,:wq 保存并退出,:q! 强制退出
                              Vim配置

                              Vim的配置文件位于/etc/vimrc(系统级)和~/.vimrc(用户级)。常用配置包括:

                              syntax on      " 启用语法高亮
                              set nu        " 显示行号
                              set shiftwidth=4 " 设置缩进为4个空格
                              

                              4. Linux编译器:GCC/G++

                              编译过程详解

                              GCC的编译过程分为四个阶段:预处理、编译、汇编和链接。

                              • 预处理:宏替换、文件包含、条件编译和去注释

                                gcc -E hello.c -o hello.i
                                

                                【Linux】|开发工具介绍 | yum |vim | gcc/g++ | gdb | git

                              • 编译:将代码转换为汇编语言

                                gcc -S hello.i -o hello.s
                                
                              • 汇编:将汇编代码转换为目标代码

                                gcc -c hello.s -o hello.o
                                
                              • 链接:生成可执行文件或库文件

                                gcc hello.o -o hello
                                
                                编译器的自举

                                【Linux】|开发工具介绍 | yum |vim | gcc/g++ | gdb | git

                                函数库:静态库和动态库
                                • 静态库:编译时将库文件代码加入可执行文件中,生成的文件较大,但运行时不需要库文件。

                                  • 静态库文件后缀为.a
                                  • 动态库:编译时不将库文件代码加入可执行文件中,运行时由运行时链接器加载库文件,节省系统资源。

                                    • 动态库文件后缀为.so
                                      GCC常用选项
                                      • -E:仅进行预处理
                                      • -S:仅进行编译生成汇编代码
                                      • -c:仅进行编译生成目标代码
                                      • -o:指定输出文件
                                      • -g:生成调试信息
                                      • -O0, -O1, -O2, -O3:优化选项,级别从0到3

                                        5. Linux调试器:GDB

                                        GDB的基本使用

                                        GDB用于调试程序,可以设置断点、单步执行、查看变量等。使用GDB调试程序时,需要在编译时加上-g选项。

                                        调试命令详解
                                        • gdb binFile:启动GDB并加载可执行文件
                                        • run:运行程序
                                        • break 行号或break 函数名:设置断点
                                        • next:单步执行
                                        • step:进入函数
                                        • print 表达式:打印表达式的值
                                        • continue:继续执行
                                        • quit:退出GDB

                                          6. Linux项目自动化构建工具:Makefile

                                          Makefile的基本概念

                                          Makefile定义了一系列规则来指定文件的编译顺序和依赖关系,实现自动化编译。Make工具解释Makefile中的指令。

                                          Makefile的编写实例

                                          一个简单的Makefile示例:

                                          hello: hello.o
                                              gcc hello.o -o hello
                                          hello.o: hello.c
                                              gcc -c hello.c -o hello.o
                                          clean:
                                              rm -f hello hello.o
                                          
                                          自动化编译和项目清理
                                          • 依赖关系:Make根据文件的时间戳确定哪些文件需要重新编译。
                                          • 伪目标:如clean,用.PHONY声明,执行make clean进行项目清理。

                                            7. 第一个Linux程序:进度条

                                            行缓冲区概念

                                            在Linux中,标准输出是行缓冲的,输出会在遇到换行符时刷新缓冲区。因此,制作进度条时需要手动刷新缓冲区。

                                            进度条代码实现
                                            #include 
                                            #include 
                                            #include 
                                            int main() {
                                                int i = 0;
                                                char bar[102];
                                                memset(bar, 0, sizeof(bar));
                                                const char *lable = "|/-\\";
                                                while (i 
                                                    printf("[%-100s][%d%%][%c]\r", bar, i, lable[i % 4]);
                                                    fflush(stdout);
                                                    bar[i++] = '#';
                                                    usleep(10000);
                                                }
                                                printf("\n");
                                                return 0;
                                            }
                                            
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]