初阶linux2环境基础开发工具完整教程

Linux【环境基础开发工具使用】 yum、make、makefile+ 阅读详情

目录
一、Linux 软件包管理器 yum
二、Linux 编辑器 vim 全解
三、编译器 gcc/g++ 完整编译流程
四、调试工具 gdb(程序捉虫神器)
五、项目自动化构建 make & Makefile
六、Linux 实战小程序:进度条
七、Git 命令行 + Github 代码上传全流程

gitte板书详细解答

前言
做 Linux 下 C/C++ 开发,必须吃透一套完整工具链:软件安装管理器、代码编辑器、编译器、调试器、项目自动化构建工具、简单实战程序、代码版本管理工具。

一、Linux 软件包管理器 yum
1. 什么是软件包 & yum
Linux 原生安装软件需要下载源码手动编译,流程繁琐。社区将常用软件提前编译打包,存放在远程服务器,通过包管理器一键安装、卸载、管理。

  • 软件包 = Windows 安装程序
  • yum(Yellow dog Updater, Modified)= Linux 应用商店,适配 CentOS、RedHat、Fedora 等 RPM 系发行版
  • 配套工具lrzsz:实现 Windows 与远程 Linux 服务器文件拖拽传输(XShell 工具)

2. 前置要求
yum 所有操作必须保证虚拟机 / 服务器网络正常,验证网络:
在这里插入图片描述

3. 核心操作命令
(1)检索软件包
筛选指定软件包,示例查找 lrzsz:
在这里插入图片描述

  • 输出解析:lrzsz.x86_64 0.12.20-36.e17 @base
  • x86_64:64 位系统包;i686:32 位包
  • el7:适配 CentOS7/RHEL7;el6适配 CentOS6
  • base:软件源仓库名称

(2)安装软件
系统目录写入需要管理员权限sudo,安装时输入y确认:
在这里插入图片描述
出现complete代表安装完成。
注意**:yum 同一时间只能执行一个安装任务,并发执行会直接报错。**
(3)卸载软件
在这里插入图片描述

二、Linux 编辑器 vim 全解
vi 是原生编辑器,vim 是 vi 增强版,支持语法高亮、可视化操作,兼容所有 vi 指令,终端、Windows、Mac 均可运行。
1. Vim 三大核心模式
vim 共 12 种模式,开发只需要掌握 3 种基础模式:
**1.正常 / 命令模式(默认进入):**控制光标、删除复制、切换其他模式
2.插入模式:唯一可输入文字的模式
3.末行模式:保存退出、查找替换、配置行号等

模式切换流程
1.打开文件直接进入命令模式:vim test.c
2.命令 → 插入:i(光标处输入)、a(光标后输入)、o(新建下一行输入)
3.插入 → 命令:按下ESC
4.命令 → 末行:shift + ;(输入:)
在这里插入图片描述
2. 命令模式全套操作
光标移动
h/j/k/l:左、下、上、右一格
gg:跳转文件开头;shift+G:跳转文件末尾
$:行尾;^:行首
w:下一个单词开头;e:下一个单词结尾;b:上一个单词开头
ctrl+f:向下翻一页;ctrl+b:向上翻一页
ctrl+d:向下翻半页;ctrl+u:向上翻半页
15G:直接跳转到第 15 行
删除文字
x:删除光标当前字符;6x:删除光标后 6 个字符
X:删除光标前字符;20X:删除光标前 20 个字符
dd:删除整行;5dd:从当前行向下删除 5 行
复制粘贴
yy:复制当前行;6yy:复制向下 6 行
yw:复制当前单词;3yw:复制 3 个单词
p:粘贴缓冲区内容到光标下方
替换、撤销
r:单次替换光标字符;R:持续替换,ESC 退出
u:撤销上一步操作;ctrl+r:恢复撤销内容

3. 末行模式常用命令
进入方式:ESC 回到命令模式,输入:
在这里插入图片描述
三、编译器 gcc/g++ 完整编译流程
C 程序从源码到可执行文件分为4 个阶段,gcc/g++ 可分步执行,也可一键编译。

  1. 编译四阶段详解

阶段 1:预处理(-E)
处理宏定义、头文件包含、删除注释、条件编译,生成.i预处理文件
在这里插入图片描述
阶段 2:编译(-S)
语法校验,将 C 代码转为汇编语言,生成.s汇编文件
在这里插入图片描述
阶段 3:汇编(-c)
汇编指令转为二进制机器码,生成.o目标文件
在这里插入图片描述
阶段 4:链接(无参数)
整合目标文件 + 系统库,生成可执行程序
在这里插入图片描述
2. 静态库 & 动态库原理
2. 静态库 & 动态库原理
代码中printf仅在stdio.h声明,实现存放在系统库中,链接阶段绑定:
1.动态库(.so,默认):编译不嵌入库代码,运行时加载,文件体积小,系统默认libc.so.6
2.静态库(.a):编译时将库代码全部打包进程序,文件大,运行不依赖外部库,编译加-static参数
3. gcc 高频参数汇总
在这里插入图片描述
四、调试工具 gdb(程序bug神器)
1. 前置条件
gcc 默认生成 release 发布版,无调试符号,必须加-g编译才能使用 gdb:
在这里插入图片描述
退出 gdb:quit 或 ctrl+d

2. gdb 核心调试命令
在这里插入图片描述
五、项目自动化构建 make & Makefile
1. 核心价值
大型项目多文件手动敲 gcc 命令效率极低,Makefile 定义编译依赖规则,执行make一键编译;make clean一键清理编译产物,是 Linux 工程必备技能。

  • make:命令工具,解析 Makefile 脚本
  • Makefile:存放编译规则的文本文件
    2. Makefile 完整示例
    源码hello.c:
    在这里插入图片描述
    同目录创建Makefile:
    在这里插入图片描述

在这里插入图片描述
4. 执行命令
在这里插入图片描述
六、Linux 实战小程序:进度条
1. 前置知识点:\r 回车、\n 换行、行缓冲区

  • \n:换行 + 刷新缓冲区;\r:仅光标回到当前行开头,不换行
  • Linux stdout 行缓冲:无换行时,printf 内容不会立刻打印,需要fflush(stdout)强制刷新缓冲区

三个对比实验理解缓冲区:
在这里插入图片描述
2. 完整进度条代码
在这里插入图片描述
运行效果:单行动态加载进度,百分比同步增长,末尾换行结束。

七、Git 命令行 + Github 代码上传全流程
1. 安装 git
在这里插入图片描述
2. Github 仓库创建步骤
登录 Github 账号,邮箱验证;
主页点击New repository新建仓库;
填写仓库名称、选择公开 / 私有,可勾选Initialize with README;
点击Create repository创建,复制仓库 HTTPS/SSH 链接。
3. Git 三板斧(本地代码上传远端)
在这里插入图片描述
首次推送输入 Github 账号密码,可配置 SSH 免密提交,无需重复输入账号。

人形机器人系列——硬件介绍 人形机器人是多领域交叉技术的产物,主要由三大系统组成:感知系统、决策系统和执行系统。感知系统感知系统是人形机器人获取外界信息的途径,主要由各种传感器组成。其中,视觉传感器用于获取图像信息,如摄像头、激光雷达等;触觉传感器用于感知触碰和压力,如力/力矩传感器、声学传感器等。这些传感器收集到的信息为机器人的决策和执行提供基础。决策系统决策系统是人形机器人的大脑,负责处理和决策各种信息。它由芯片和算法组成。芯片是硬件基础,提供计算能力;算法是软件基础,用于处理和分析传感器收集到的信息,并做出相应的决策。执行系统。 阅读详情

相关推荐

MaaS 商业模式全面分析报告:从技术赋能到商业变现的全链条探索

MaaS(模型即服务)商业模式正成为AI产业主流,2024年上半年中国市场规模达2.5亿元,预计2027年占比将提升至47%。该模式通过云服务提供预训练AI模型,大幅降低企业应用AI的技术门槛和成本。核心盈利方式包括按使用量计费、订阅制、定制化服务等,其中混合模式因灵活性成为趋势。MaaS产业链包含模型提供商、云平台、应用开发商和最终用户,重塑了AI产业格局。随着《数据法案》等监管加强,数据增值服务面临更严格合规要求。未来五年,中国MaaS市场增速预计超50%,用户规模将从2025年2.1亿增至2030年5

芯片行业20年 · 参与定义实现千万级量产出货 · AI芯片PM 2892

Linux 环境基础开发工具详解

在 Linux 中,软件包是经过预编译、打包的应用程序或工具,它类似于 Windows 系统中的安装程序。软件包可以通过包管理器进行管理,简化软件的安装、更新和卸载过程。常见的软件包后缀包括.rpm.deb等。yum(Yellow dog Updater, Modified)是 Linux 下非常常用的包管理器,主要应用于 Fedora、RedHat、CentOS 等发行版。它相当于 Linux 系统的"应用商店",用户可以通过 yum 工具轻松地获取和安装各种预编译好的软件包。yum的工作原理基于rpm。

2406_83947720的博客 2543

three.js中如何高效加载并播放GLB格式的3D动画

本文详细介绍了在three.js中高效加载并播放GLB格式3D动画的最佳实践。通过对比GLB与GLTF格式的优势,提供从环境搭建、模型加载到动画控制的完整解决方案,并分享性能优化技巧和常见问题排查方法,帮助开发者提升3D动画项目的开发效率和用户体验。

weixin_27890975的博客 362

Linux环境基础开发工具使用

Linux环境基础开发工具使用一级目录二级目录 Linux下安装软件的方式: 源代码安装 rmp包安装 yum命令安装 yum: 帮我们查找并下载软件 帮我们安装 帮我们解决依赖关系 yum是一条命令 一级目录 二级目录 ...

AI_ELF的博客 1万+

小程序选项卡以及swiper套用(跨页面)

选项卡tab和swpier之间的套用 其实我之前写过一篇选项卡的切换demo,大家阔以参考一下 小程序多个选项卡切换 那今天写这个demo呢,是因为项目需求,所以仅供参考。 我是拿到了home.wxml的数组下标, 通过url传参的方式去将这个id传到下一个页面, 下一个页面接收以后再将id赋值给对应的tabI或者currentId(swiper 的下标) 实现上一个页面进来以后直接进入对应的页...

Rechal_Mei的博客 3597

DCDC系列(一): COT DCDC基本原理

电流环DCDC属于双环控制模式,根据电流检测的位置,分为峰值电流环控制模式、谷值电流环控制模式和平均电流环控制模式,主要由输出电压反馈环和电流环两个环路来实现控制,其瞬态响应比电压环更好,且有自动限流的功能,但仍需要斜坡补偿网络,且对噪声敏感。Stage3: 在下管NMOS打开阶段,由于后级负载此时间段内消耗的电量较少,所以VFB还未低至Vref,所以此阶段中,上管PMOS和下管NMOS均处于关断状态,此时的电感电流为0mA,此阶段测的VSW上的电压就是Cout上的电压VREG;

weixin_40073649的博客 3941

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

三种模式正常模式插入模式底行模式我们一共有12种总模式,大家下来可以研究一下vim操作打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。

m0_74091744的博客 1236

yolo 图像检测、关键点检测单摄像头测量物体尺寸长度大小

new_distance/real_size (待求物体像素距离与实际距离比值)= distance / metric_length (参照物像素距离与实际距离比值)然后运行size_demo进行要测量的物体进行关节点检测距离;metric_length是上面耳机选取的两个点的实际物理距离,大概6cm;这里用的windows。通过关键点检测识别物体关键点的像素距离,然后参考比例尺计算实际距离。2)关键点算法这里用的现有的进行测试,实际场景需要自己训练。这里拿这模型推理出的关键点坐标进行后续长度计算。

weixin_42357472的博客 2525

从入门到精通:详解Linux环境基础开发工具的使用

从入门到精通:详解Linux环境基础开发工具的使用

m0_73150338的博客 2131

uniapp - 获取设备麦克风权限+麦克风设备列表,用户可选择切换麦克风设备功能,选择麦克风采集设备后点击录制音频外部声音+可随时暂停/继续录音+记录音频录制时长(支持在线播放试听或下载MP3文件)

uniapp获取麦克风设备列表,uniapp录制声音,Uniapp获取麦克风权限,uniapp苹果ios安卓app获取麦克风设备列表,Uniapp H5获取浏览器麦克风并实现录音,Uniapp实现麦克风权限管理与音频录制全流程,uni-app实战案例:实现H5页面麦克风权限获取与录音功能,uni-app音频录制,uniapp麦克风授权窗口,uniapp获取iOS麦克风权限,实现前端录音并播放,把音频传给后端接口处理,获取麦克风并实现录音功能,前端获取/切换麦克风播放采集音频和采集音量大小,前端调用麦克风实现

🏆 前端领域优质创作者 2982

SpringBoot+Vue+kkFileView实现文档管理(文档上传、下载、在线预览)

上面在使用OpenOffice实现doc、excel、ppt等文档的管理和预览。除此之外可用kkFileView实现包括且更多文档的预览。

BADAO_LIUMANG_QIZHI的博客 1万+

Linux环境基础开发工具使用(2)

E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面-S 编译到汇编语言不进行汇编和链接-c 编译到目标代码-o 文件输出到 文件-static 此选项对生成的文件采用静态链接-g 生成调试信息。GNU 调试器可利用该信息。-shared 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.-O0-O1-O2-O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高-w 不生成任何警告信息。

Mr_Xuhhh的博客 1041

大模型部署指南:LM Studio

本文介绍使用LM Studio部署大模型

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1951

【Linux升级之路】2_Linux环境基础开发工具使用

Linux工具学前常识,Linux编辑器vim的使用,sudo提权指令讲解/配置,Linux编译器gcc/g++的使用,项目自动化构建工具make/makefile的使用,工具实践(小程序-进度条),Linux环境下git的使用(以gitee平台为例讲解),Linux调试器gdb的使用

Captain_ldx的博客 728

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【Linux】环境基础开发工具的使用(一)

在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装。

m0_64826370的博客 1758

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Linux环境基础开发工具使用(2)

Linux环境基础开发工具使用(2) 如何在gitee创建项目仓库?如何使用git上传项目?如何使用Linux:make/makefile? 如何在Linux中完成一个小程序进度条?如何使用Linux调试器-gdb? 这一篇文章给你答案!!!

wer24_25的博客 1527

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Linux环境基础开发工具的使用

最后一列,base表示的是“软件源”的名称,类似于“小米应用商店”,“华为应用商店”这样的概念。​ 从上图可以发现,想要得到可执行程序,我们首先要得到test.o文件,要得到test.o文件就要得到test.s文件,以此类推,只要我们写好了源代码,通过这样的依赖关系和依赖方法,最终就能得到可执行程序。​ 项目清理类似于VS下的清理解决方案,也就是将之前生成的所有文件清理掉,如果我们进行手动清理,那么在有多个文件的情况下,手动清理未免太过麻烦,此时我们可以将项目加入到Makefile文件中。

qq_55317476的博客 968

Linux的基础开发工具

本文介绍了Linux开发环境中的常用工具链,包括:1)包管理器yum的使用与镜像源配置;2)vim编辑器的命令/底行模式操作及配置技巧;3)gcc/g++编译器的四个编译阶段(预处理/编译/汇编/链接)和动静态库区别;4)make/Makefile自动化构建工具的基本语法和变量使用;5)git版本控制的基本工作流;6)gdb/cgdb调试器的常用调试命令。文章以CentOS 7.9为基础,重点讲解了各工具的核心功能、典型用法和配置技巧,帮助开发者快速搭建高效的Linux开发环境。

博客 | 复习知识点 + 练习 + 最终的领悟 | 全力以赴 3773

【Linux】Linux环境基础开发工具_2

按 X :可以向左侧删除(删除光标所在行的左侧字符)。按 p :可以将缓冲区的字符粘贴到光标所在的下一行。按 dd :删除光标所在行,剪切功能,可以使用粘贴。按 q 是没有用的,要按。按 h :将光标向左移动一格,相当于方向键的 ←。按 j :将光标向下移动一格,相当于方向键的 ↓。按 k :将光标向上移动一格,相当于方向键的 ↑。按 l :将光标向右移动一格,相当于方向键的 →。按 w :可以按单词在行内从左向右移动。按 b :可以按单词在行内从右向左移动。按 yy :将光标所在行复制到缓冲区。

m0_69828905的博客 782

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

一、调试器gdb 二、make/Makefile 三、git 1、安装git sudo yum install git 2、远端创建仓库 1、注册gitee账号后,进入页面根据下图建仓库 2、命名仓库,并简单设置属性 3、复制https地址 3、git“三板斧”上传代码到仓库 ...

m0_47646784的博客 9632

Linux环境基础与开发工具使用

本文系统介绍Linux开发工具链:VIM三种模式及常用命令、静态库与动态库区别、GCC编译流程、Makefile自动化构建逻辑,以及Git代码上传远端的核心操作,为开发者提供基础工具使用指南。

fyy31的博客 1236

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

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

2301_78022459的博客 830

【Linux】环境基础开发工具使用(万字汇总)

Linux环境基础开发工具总结,方便自己用来复习

m0_60338933的博客 5364
上一篇: C++进阶2(多态)
下一篇: linux3进程概念
code_whiter
博客等级 码龄2年 289粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值