【Linux】Linux环境基础开发工具使用

张开发
2026/4/18 4:37:22 15 分钟阅读

分享文章

【Linux】Linux环境基础开发工具使用
上篇博客我们学习了Linux权限相关知识那么这节课我们来学习一下Linux环境基础开发工具使用吧~主要包括yum、vim、gcc/g的使用以及Linux项目自动化构建工具。目录Linux软件包管理器--yumyum是什么yum相关操作yum本地配置Linux编辑器-vim的使用vim的基本概念vim的基本操作vim命令模式命令集vim底行模式命令集Linux编译器-gcc/g使用预处理编译汇编链接静态库与动态库Linux项目自动化构建工具-make/makefileLinux软件包管理器--yumyum是什么yum是一个软件下载安装管理的一个客户端类似小米应用商店、华为应用商城。Linux中软件包可能有依赖关系yum会帮助我们解决依赖关系的问题。yum相关操作yum安装三板斧查找yum list | grep XXX安装[sudo/以root身份]yum install [-y] XXX删除[sudo/以root身份]yum remove [-y] XXXyum本地配置配置是在干什么呢yum会根据/etc/yum.repos.d/该路径下面的配置文件来构成自己的下载链接根据OS版本根据你要下载的软件yum帮助我们下载安装一般的机器内置的链接地址是centos的官网软件链接都是指向国外的。yum可能比较慢所以需要配置。如何配置呢本质就是更改文件或者更改文件内容。例如wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo这行命令的意思就是把在阿里云远端的文件下载下来命名为CentOS-Base.repo。在配置完成后清除缓存 yum clean all生成缓存 yum makecache升级更新 yum -y update使用yum一般都要是联网的Linux编辑器-vim的使用vim是一款多模式的编辑器所谓多模式是指插入模式、命令模式和底行模式。vim的基本概念插入模式只有在插入模式下才可以做文字输入按「ESC」键可回到命令模式。该模式是我们后面用的最频繁的编辑模式。命令模式是核心模式。控制屏幕光标的移动字符、字或行的删除移动复制某区段及进入插入模式下或者到底行模式。底行模式文件保存或退出也可以进行文件替换找字符串列出行号等操作。 在命令模式下按shift也就是即可进入该模式。vim的基本操作进入vim,在系统提示符号输入vim及文件名称后就进入vim全屏幕编辑画面$ vim test.c不过有一点要特别注意就是你进入vim之后是处于【命令模式】你要切换到【插入模式】才能够输入文字。请注意vim默认不会帮我们新建文件的只有当保存时该文件才会首次被创建。【命令模式】切换至【插入模式】输入a输入i -- 加一个空格输入o -- 另起一行【插入模式】切换至【命令模式】按ESC键即可。【命令模式】切换至【底行模式】shift其实就是输入退出vim及保存文件,在【正常模式】下按一下「:」冒号键进入【底行模式】,例如w保存当前文件wq保存并退出q!不保存强制退出为了方面理解记忆画出模式切换图vim命令模式命令集进入插入模式按「i」切换进入插入模式按“i”进入插入模式后是从光标当前位置开始输入文件按「a」进入插入模式后是从目前光标所在位置的下一个位置开始输入文字按「o」进入插入模式后是插入新的一行从行首开始输入文字。从插入模式切换为命令模式按「ESC」键。复制nyy复制前n行 n连续复制n行np粘贴当前光标的下一行n表示把指定内容粘贴n次ndd剪切/删除指定行、连续的多行撤销上一次操作u撤销ctrlr对历史撤销移动光标shift4$将光标定位到当前行的结尾shift6^将光标定位到当前行的开始gg将光标定位到整个文本的最开头shiftgG将光标定位到整个文本的最后一行nshiftgnG将光标定位到整个文本的任意一行h,j,k,l:左、下、右、上也可以带n。这四个字母快速记忆h在最左边所以代表左l在最右边所以代表右k-king国王高高在上代表上j-jump向下跳w按照单词为单位进行光标后移b按照单词为单位进行光标前移shift~大小写快速切换shiftzzZZ保存并退出删除文字nx删除光标后续的一个字符可以一次删除n个一行内nshiftxX删除光标前的一个字符可以一次删除n个一行内替换nr对光标指定的位置进行一个字符的替换可以一次替换多个shiftrR进入替换模式直接进行文本替换vim底行模式命令集在使用末行模式之前请记住先按「ESC」键确定您已经处于正常模式再按「」冒号即可进入末行模式。w保存q退出wq保存并退出强制set nu、nonu打开行号、去掉行号/关键字做搜索!command不退出vim可以进行shell命令的执行方便常用函数查看vs filename分屏用于多文件操作ctrlww切换屏幕Linux编译器-gcc/g使用gcc编译器只能用于编译C程序g编译器既可以编译C程序也可以编译C程序。程序的翻译过程主要包括四步预处理、编译、汇编、链接。预处理gcc命令gcc -E test.c -o test.i这句代码是预处理预处理会完成宏替换、去注释、头文件展开条件编译等。-o test.i要挨在一起生成test.i文件-o指目标文件。从现在开始进行程序的翻译预处理完成就停下。编译gcc -S test.i -o test.s这句代码是编译将C语言变成汇编语言从现在开始程序的翻译编译完成就停下来汇编gcc -c test.s -o test.o这句话是汇编将汇编语言编译成二进制目标文件从现在开始进行程序的翻译汇编完成就停下来。链接gcc test.o -o my.exe这句话是链接形成可执行程序。巧记命令ESc按顺序键盘左上角的ESC键特别记忆一下c是小写形成的文件是iso按顺序镜像文件后缀就是iso。静态库与动态库在windows中动态库以.dll为后缀静态库以.lib为后缀而在Linux中动态库以.so为后缀静态库以.a为后缀。静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。Linux项目自动化构建工具-make/makefilemake是一条指令makefile是一个文件两个搭配使用完成项目自动化搭建。make会根据makefile的内容完成编译/清理工作。上图中有这样一行.PHONY:clean.PHONY:XXXXXX对应的方法总是要被执行的。现在抛出两个问题并给予回答a.为什么makefile对最新的可执行程序默认不会重新生成呢提高编译效率。b.makefile怎么知道我的程序需要被编译了呢比较可执行文件的最近修改时间和源文件最近修改时间如果可执行文件的最近修改时间更靠近当前时间那么需要重新编译否则不需要重新编译。几个符号文件依赖性make/makefile会自动根据文件中的依赖关系进行自动推导帮助我们执行所有相关的依赖方法但必须注意的是所要形成的目标文件必须放在第一行即上图中的2、3行剩下的3-8行可以乱序。也就是说当执行到第1行时需要依赖文件code.o但是这时还没有就需要去下面找第3行形成了code.o但是所需的code.s还是没有这就需要依次往下类推直到遇到code.ccode.c是存在的。支持变量替换makefile支持变量定义就类似于C语言中的宏一样这非常方便以后的修改我们在进行make/makefile时会打印出对应的命令如果我们不想打印出这样的命令可以在makefile文件对应的命令前加上符号依赖方法也可以有多行加上是为了不打印出对应的执行语句Linux调试器-gdb使用程序的发布方式有两种debug模式和release模式Linux gcc/g出来的二进制程序默认是release模式要使用gdb调试必须在源代码生成二进制程序的时候,加上 -g 选项下面介绍几个常用的gdb命令1.quit/q退出gdb2.list/l - 查看文件内容l 文件名:行号/函数名l 行号/函数名3.b - 打断点b 文件名:行号/函数名b 行号/函数名4.info/i - 查看断点info b / i b5.d - 删除断点d 断点编号6.enable/disable - 使能/失能断点enable/disable 断点编号7.next/n - 逐过程相当于F108.step/s - 逐语句相当于F119.print/p - 查看变量内容地址p a , p a10.display a / a常显示变量值可以观察变化情况类似VS中的监视窗口11.undisplay 编号取消某个常显示变量值12.continue/c - 运行至下一个断点处13.finish - 运行结束所在函数就停下来14.until - 跳转至指定行中间的代码都是运行了的15.set var - 修改变量的值16.bt - 查看各级函数调用及参数

更多文章