这套课的名字叫「Linux 三剑客」,第一次看到容易误会成讲 grep、sed、awk 那一套文本工具。实际打开会发现,它讲的是嵌入式开发里绕不开的三块地基:C 语言的细节、Linux 环境下的编程方式、以及把代码真正跑在板子上的那套流程。王利涛在嵌入式培训这块做了不少年,这套内容属于他「嵌入式工程师自我修养」系列里偏底层的一环,不是速成班。
它到底解决什么工作场景
如果你现在的工作状态是:能照着例程改改代码,但一遇到指针、内存、编译报错就卡住;或者从单片机转过来,发现 Linux 下写程序完全是另一套逻辑,编译、链接、运行环境都得重新理解——那这套课对得上。它不教你怎么点灯,也不教某个具体芯片的寄存器,而是把「为什么这么写」讲清楚。比如变量的存储类型、volatile 关键字到底防的是什么、一个程序从源码到可执行文件中间经历了什么,这些都是实际调试时真正会用到的东西,不是考试题。另一个绕不开的场景是:很多嵌入式岗位面试会直接问 C 语言底层和 Linux 环境相关的问题,这套课的内容和那类问题重合度不低。
学完能独立做什么
比较实际的预期是:能独立写出结构清晰、不容易出内存问题的 C 程序;能在 Linux 命令行环境下完成编译、调试、打包这一整套动作;遇到编译警告和链接错误时,知道从哪儿下手排查,而不是直接搜答案。课程里有一个环节是制作自己的程序安装包,这个动作看起来小,但它意味着你理解了程序的发布流程,而不只是会写 main 函数。这些能力单看都不算「高级」,但它们是后面学驱动、学系统编程的前提,缺了这层,往上学会一直别扭。
资料适合什么基础
零基础直接上会有点吃力,因为它默认你至少写过一点 C,知道什么是函数和数组。真正适合的是两类人:一类是学过 C 但学得不扎实、想回头补底层的人;另一类是有单片机或硬件背景、要往 Linux 方向转的工程师。如果你已经能熟练写多线程程序、看得懂 man 手册,那这套课对你偏基础,可以先跳过前面几章,直接看后面的环境部分。课程体量不小,从头到尾刷完需要投入整块时间,碎片化看效果会打折,尤其是涉及编译和调试的部分,最好跟着敲一遍。
怎么用这套资料
- 先按顺序过一遍 C 语言部分,哪怕觉得简单也别跳,重点看自己以前没搞清楚的运算符优先级、字符串处理、存储类型这些点。
- 每看完一节,在 Linux 环境里自己写一遍,不要只看不练,编译报错本身就是学习内容。
- 打包和发布那部分建议单独找一个空闲时间做完整流程,它需要连续操作,中途打断容易乱。
- 基础部分过完后,可以把注意力转到 Linux 环境相关的内容,这部分才是「三剑客」里真正区分度的东西。
一句话判断值不值得学:如果你正在被 C 语言细节和 Linux 编程环境两头夹着,想找一个讲得系统、不糊弄的入口,这套课是合适的;如果你只想快速上手某个框架或做项目,它对你来说节奏偏慢。
课程目录
C语言那些事儿277 集
- 5-2 算术运算符.mp4
- [81.2 MB] 6-4 字符串输入输出函数.mp4
- [51.2 MB] 5-6 位逻辑运算符.mp4
- [143.4 MB] 8-6 变量的存储类型.mp4
- [126.5 MB] 1-1 你真的了解C语言吗.mp4
- [182.7 MB] 8-7 关键字volatile.mp4
- [23.9 MB] 2-7 制作自己的第一个程序安装包.mp4
- [46.2 MB] 14-2 文件的打开与关闭.mp4
- [47.2 MB] 3-3 常量与变量.mp4
- [157.9 MB] 5-3 赋值运算符.mp4
- [56.0 MB] 8-11 库函数基础.mp4
- [96.6 MB] 10-3 指向数组的指针.mp4
- [148.6 MB] 5-10 一些容易出错的优先级.mp4
- [25.6 MB] 5-9 C语言的序列点(C99).mp4
- [99.6 MB] 10-1 指针的基本概念.mp4
- [257.4 MB] 8-5 变量的链接属性.mp4
- [35.0 MB] 2-3 计算机编程语言的发展.mp4
- [65.4 MB] 10-10 const关键字修饰指针.mp4
- [37.4 MB] 12-2 宏定义.mp4
- [109.0 MB] 10-5 指针数组.mp4
- [58.6 MB] 9-3 字符数组与字符串.mp4
- [67.1 MB] 2-1 开发环境安装及使用.mp4
- [138.9 MB] 8-2 函数的参数.mp4
- [91.4 MB] 8-12 开发自己的函数库.mp4
- [117.7 MB] 2-5 程序到底是怎么运行的?.mp4
- [32.6 MB] 6-5 printf家族其它函数.mp4
- [57.6 MB] 7-1 结构化程序设计和流程图.mp4
- [41.5 MB] 4-5 布尔类型_Bool(C99).mp4
- [36.9 MB] 2-6 程序安装原理及过程分析.mp4
- [29.4 MB] 4-4 类型转换.mp4
- [85.5 MB] 10-7 指向指针的指针.mp4
- [113.6 MB] 12-3 一些预定义的宏.mp4
- [43.3 MB] 3-5 数据在内存中的表示.mp4
- [180.6 MB] 9-1 数组的基本概念.mp4
- [223.0 MB] 8-3 函数的嵌套与递归.mp4
- [58.2 MB] 11-5 共用体.mp4
- [91.1 MB] 8-4 变量的作用域.mp4
- [88.7 MB] 7-4 循环结构程序设计.mp4
- [93.6 MB] 14-1 文件的基本概念.mp4
- [158.2 MB] 3-4 二进制计数制及和其它进制转换.mp4
- [87.7 MB] 13-2 动态内存申请函数.mp4
- [68.1 MB] 4-1 整型类型数据.mp4
- [123.2 MB] 1-4 C语言的特点.mp4
- [39.9 MB] 13-3 内存泄露与野指针.mp4
- [105.2 MB] 11-6 枚举.mp4
- [46.3 MB] 2-4 可执行程序是怎么生成的?.mp4
- [125.3 MB] 8-10 内联函数.mp4
- [48.5 MB] 4-3 浮点型数据.mp4
- [63.7 MB] 11-3 指向结构体的指针.mp4
- [112.4 MB] 5-8 逗号表达式.mp4
- [27.0 MB] 9-2 二维数组.mp4
- [94.5 MB] 1-3 C语言及标准的发展过程.mp4
- [156.5 MB] 11-9 复合字面量.mp4
- [29.2 MB] 10-11 指针数组作为main函数参数.mp4
- [69.2 MB] 9-6 变长数组.mp4
- [43.7 MB] 7-3 选择程序设计.mp4
- [120.6 MB] 1-2 学习C语言的重要性.mp4
- [64.5 MB] 5-1 运算符与表达式.mp4
- [154.4 MB] 8-8 多个C源文件组织方式.mp4
- [105.0 MB] 14-4 文件状态监测函数.mp4
- [42.6 MB] 11-7 使用typedef定义数据类型.mp4
- [57.4 MB] 5-5 逻辑运算符.mp4
- [46.3 MB] 2-2 计算机基本原理介绍.mp4
- [115.9 MB] 10-9 函数指针.mp4
- [44.7 MB] 10-6 指向字符串的指针.mp4
- [38.9 MB] 11-4 结构体函数.mp4
- [20.3 MB] 6-1 格式输出函数printf.mp4
- [95.2 MB] 5-7 条件运算符.mp4
- [32.5 MB] 6-3 字符输入输出函数.mp4
- [55.7 MB] 4-6 复数类型_Complex(C99).mp4
- [25.1 MB] 3-6 程序调试技巧.mp4
- [74.8 MB] 12-5 条件编译.mp4
- [55.0 MB] 5-4 关系运算符.mp4
- [38.8 MB] 11-8 结构体成员为柔性数组(C99).mp4
- [39.2 MB] 8-9 内部函数与外部函数.mp4
- [33.1 MB] 14-5 文件的随机读写.mp4
- [69.3 MB] 9-4 字符串处理函数.mp4
- [58.7 MB] 13-1 动态内存管理.mp4
- [79.7 MB] 4-2 字符型数据.mp4
- [139.6 MB] 12-1 预处理的基本概念.mp4
- [64.8 MB] 8-1 函数的基本概念.mp4
- [139.2 MB] 3-2 标识符与关键字.mp4
- [105.4 MB] 1-5 C语言为什么这么难学?.mp4
- [31.6 MB] 11-1 结构体的基本概念.mp4
- [151.2 MB] 10-2 指向变量的指针.mp4
- [132.7 MB] 12-6 其它预处理命令.mp4
- [121.7 MB] 9-5 数组作为函数的参数.mp4
- [108.4 MB] 10-8 指向函数的指针.mp4
- [40.7 MB] 7-2 顺序程序设计.mp4
- [30.6 MB] 10-4 指向二维数组的指针.mp4
- [83.0 MB] 3-1 hello world程序分析.mp4
- [100.1 MB] 12-4 头文件包含.mp4
- [82.6 MB] 10-12 restrict关键字修饰指针.mp4
- [44.8 MB] 6-2 格式输入函数scanf.mp4
- [84.5 MB] 14-3 文件的读写函数.mp4
- [105.7 MB] 11-2 结构体数组.mp4
- [61.6 MB] 📁 嵌入式软件调试 📁 专题1:软件调试理论基础 5.断点和单步是怎么实现的?.mp4
- [57.7 MB] 4.debug文件和release文件的区别.mp4
- [106.9 MB] 7.JTAG和Jlink调试原理及区别.mp4
- [51.7 MB] 1.什么是软件调试?.mp4
- [140.4 MB] 2.常用的软件调试方法.mp4
- [42.0 MB] 6.仿真器调试原理.mp4
- [36.1 MB] 3.常见的错误类型.mp4
- [70.2 MB] 📁 专题3:Linux内核日志打印技巧 10.使用proc文件系统与内核交互.mp4
- [103.0 MB] 1.内核实验环境介绍.mp4
- [99.2 MB] 8.strace命令.mp4
- [129.0 MB] 5.printk实现机制分析(三)--printk打印配置.mp4
- [70.1 MB] 9.内核转储.mp4
- [44.5 MB] 2.printk打印数据格式与打印等级.mp4
- [72.1 MB] 3.printk实现机制分析(一)--控制台、终端和串口之间的关系.mp4
- [100.4 MB] 7.动态调试.mp4
- [127.7 MB] 6.打印函数调用栈.mp4
- [65.3 MB] 4.printk实现机制分析(二)--内核实现和日志系统.mp4
- [132.0 MB] 📁 专题2:printf函数打印高阶技巧(免费) 2.打印文件名、函数名、行号.mp4
- [25.9 MB] 5.打印等级控制.mp4
- [48.5 MB] 1.输出重定向.mp4
- [116.2 MB] 3.打印缓冲问题.mp4
- [39.0 MB] 4.打印开关控制.mp4
- [27.1 MB] 1.输出重定向_片头.mp4
- [169.7 MB] 📁 使用QEMU搭建u-boot+linux+NFS开发环境 2.搭建嵌入式开发基本环境.mp4
- [166.4 MB] 7.挂载NFS文件系统.mp4
- [37.0 MB] 3.QEMU安装及仿真开发板介绍.mp4
- [131.4 MB] 1.为什么要使用QEMU学习嵌入式开发.mp4
- [112.2 MB] 8.完善NFS根文件系统.mp4
- [49.1 MB] 6.使用u-boot引导Linux内核镜像.mp4
- [155.6 MB] 4.编译Linux内核镜像和dtb文件.mp4
- [63.7 MB] 5.使用busybo制作根文件系统.mp4
- [161.0 MB] 9.在开发板上运行应用和驱动程序.mp4
- [32.9 MB] 📁 C语言实战之学生成绩管理系统 15.安装安装包制作及发布.mp4
- [65.1 MB] 5. 概要设计.mp4
- [99.5 MB] 8.编码(2)之数据存储模块.mp4
- [99.6 MB] 4.需求分析.mp4
- [60.3 MB] 12.编码(6)之成绩统计.mp4
- [25.7 MB] 2.软件开发基本流程.mp4
- [136.4 MB] 6.详细设计.mp4
- [100.5 MB] 7.编码(1)之工程创建、成绩打印.mp4
- [106.7 MB] 13.编码(7)之人机交互菜单和模块集成.mp4
- [66.1 MB] 9.编码(3)之成绩添加、成绩删除.mp4
- [192.0 MB] 3.可行性分析及项目开发计划.mp4
- [24.8 MB] 10.编码(4)之成绩查询.mp4
- [48.3 MB] 1.课程及项目简介.mp4
- [134.6 MB] 14.代码优化及测试流程.mp4
- [112.7 MB] 11.编码(5)之成绩修改.mp4
- [79.9 MB] 📁 Makefile工程实践 3.7 支持静态库的生成和使用.mp4
- [77.9 MB] 2.3 变量.mp4
- [105.7 MB] 2.6 库的生成和使用:动态库、静态库.mp4
- [70.2 MB] 2.8 Makefile的隐含规则.mp4
- [50.5 MB] 3.11 重构我们的Makefile.mp4
- [100.6 MB] 3.8 支持动态库的生成和使用.mp4
- [83.3 MB] 2.1 Makefile的基本语法.mp4
- [55.5 MB] 2.4 条件执行.mp4
- [16.0 MB] 2.5 函数.mp4
- [43.9 MB] 3.9 支持第三方静态库、动态库的使用.mp4
- [27.8 MB] 3.4 使用目录管理目标文件.mp4
- [97.0 MB] 1.1 Makefile基本概念.mp4
- [128.8 MB] 3.3 使用目录管理源文件.mp4
- [73.7 MB] 3.5 使用目录管理依赖关系文件.mp4
- [92.8 MB] 3.1 构建MP3项目工程.mp4
- [43.9 MB] 3.6 使用目录管理头文件.mp4
- [24.7 MB] 2.7 Makefile的执行过程.mp4
- [20.2 MB] 3.2 自动添加目标头文件的依赖.mp4
- [79.2 MB] 1.2 程序的编译和链接.mp4
- [77.1 MB] 3.10 支持软件的安装与卸载.mp4
- [25.6 MB] 2.2 Makefile基本组成单元:规则.mp4
- [107.2 MB] 📁 零基础玩转Linux+Ubuntu 4.4 FTP服务器配置及使用.mp4
- [83.8 MB] 3.5 进程管理.mp4
- [80.7 MB] 3.4 文件访问权限.mp4
- [81.5 MB] 2.2 Linux高级命令简单使用.mp4
- [75.3 MB] 2.5 Make工程管理.mp4
- [87.7 MB] 2.3 shell脚本入门.mp4
- [71.6 MB] 3.7 制作自己的deb软件安装包.mp4
- [61.1 MB] 3.9 使用wine安装Windows应用软件.mp4
- [48.6 MB] 3.8 使用apt安装卸载软件.mp4
- [62.8 MB] 4.3 SSH远程登录.mp4
- [87.1 MB] 4.2 Samba服务器配置及使用.mp4
- [62.2 MB] 1.2 Linux和Ubuntu的关系.mp4
- [31.7 MB] 1.1 课程简介及Linux学习路线介绍.mp4
- [123.6 MB] 3.3 用户账户管理.mp4
- [126.0 MB] 2.4 vi及vim入门.mp4
- [102.7 MB] 2.1 linux基本命令使用.mp4
- [176.5 MB] 4.1 NFS服务器配置及使用.mp4
- [48.8 MB] 3.1 什么是环境变量.mp4
- [148.3 MB] 1.4 X-window和桌面环境KDE、GNOME.mp4
- [33.7 MB] 3.2 文件系统管理.mp4
- [91.6 MB] 1.3 ubuntu16.04安装以及新特性介绍.mp4
- [101.9 MB] 3.6 源码软件包的编译、安装、卸载.mp4
- [131.6 MB] 📁 vim从入门到精通 5.文本插入操作.mp4
- [32.5 MB] 13.分页与折叠栏.mp4
- [56.2 MB] 4.滚屏与跳转.mp4
- [22.1 MB] 12.编辑多个文件.mp4
- [51.4 MB] 2.vim工作模式简介.mp4
- [53.9 MB] 6.文本删除操作.mp4
- [50.3 MB] 9.组合命令使用.mp4
- [27.0 MB] 7.文本复制、剪切与粘贴.mp4
- [35.1 MB] 10.文本查找与替换.mp4
- [54.0 MB] 3.光标移动.mp4
- [90.1 MB] 8.文本修改与替换.mp4
- [20.9 MB] 14.多窗口操作.mp4
- [49.5 MB] 1.课程介绍、vim简介及安装.mp4
- [56.8 MB] 15.vim配置与插件介绍.mp4
- [26.1 MB] 11.修改的撤销、重做与保存.mp4
- [32.8 MB] 📁 Git零基础实战 2.2 在Linux下安装git.mp4
- [53.6 MB] 4.3 git引用:分支和标签.mp4
- [90.5 MB] 8.6 添加新的远程版本库.mp4
- [22.1 MB] 7.6 挑选合并.mp4
- [34.5 MB] 7.9 分支修改储藏.mp4
- [31.5 MB] 8.4 远程分支的基本操作.mp4
- [81.4 MB] 6.6 给提交重新排序:git rebase.mp4
- [67.5 MB] 10.5 Git+Repo+Gerrit环境介绍.mp4
- [66.7 MB] 10.1 管理本地文件,防止隐私泄露.mp4
- [46.3 MB] 6.5 Git置位:git reset.mp4
- [52.2 MB] 5.4 忽略指定格式的文件.mp4
- [41.3 MB] 3.2 git基本流程介绍.mp4
- [59.3 MB] 7.
- 11 一个脱离了组织的提交:no branch.mp4
- [28.9 MB] 7.7 分支衍合.mp4
- [57.8 MB] 10.2 发起一个公开项目.mp4
- [68.3 MB] 5.1 文件管理:文件添加及提交.mp4
- [47.5 MB] 3.3 分支和标签简单使用.mp4
- [23.6 MB] 7.2 分支的基本使用.mp4
- [59.1 MB] 3.1 git仓库创建及配置.mp4
- [77.3 MB] 10.4 搭建本地git服务器.mp4
- [148.1 MB] 5.6 差异比较git diff.mp4
- [43.0 MB] 4.2 git对象模型:blob、tree、commit.mp4
- [115.7 MB] 6.4 提交修改:git revert.mp4
- [61.4 MB] 5.2 文件删除.mp4
- [63.9 MB] 5.5 撤销本地仓库的修改.mp4
- [43.5 MB] 7.5 压合合并提交.mp4
- [33.5 MB] 6.7 将多个提交合并为一个提交.mp4
- [23.4 MB] 6.8 将一个提交分解为多个提交.mp4
- [28.8 MB] 7.3 分支的合并.mp4
- [20.5 MB] 10.3 发起一个私人项目.mp4
- [55.3 MB] 6.1 commit对象与存储.mp4
- [25.3 MB] 7.1 分支的基本概念.mp4
- [42.8 MB] 5.7 压缩仓库.mp4
- [42.7 MB] 7.8 分支合并与衍合的区别.mp4
- [66.3 MB] 8.1 远程仓库的概念.mp4
- [59.5 MB] 5.3 文件重命名.mp4
- [20.0 MB] 6.3 提交查找:git grep.mp4
- [26.8 MB] 7.10 恢复已删除分支的提交.mp4
- [50.1 MB] 8.3 远程仓库的基本操作.mp4
- [64.3 MB] 6.9 恢复隐藏的历史.mp4
- [65.4 MB] 1.1 Git简介.mp4
- [71.1 MB] 4.1 Git基本概念:工作区、暂存区和版本库.mp4
- [65.3 MB] 8.2 使用github代码托管.mp4
- [78.7 MB] 2.1 在Windows下面安装git.mp4
- [27.0 MB] 9.1 标签的远程操作.mp4
- [36.7 MB] 6.2 查看提交历史:git log.mp4
- [64.8 MB] 7.4 解决合并冲突.mp4
- [82.9 MB] 8.5 远程分支和本地分支的区别.mp4
- [49.0 MB] 📁 vim从入门到精通-第2季 7.cscope查找工具的使用.mp4
- [55.5 MB] 14.保存会话信息.mp4
- [82.2 MB] 15.小结与作业.mp4
- [62.8 MB] 11.Supertab插件.mp4
- [31.4 MB] 10.C语言插件的使用.mp4
- [126.5 MB] 8.使用quickfix显示错误列表和跳转.mp4
- [124.8 MB] 6.使用Winmanager插件显示文件列表窗口.mp4
- [57.0 MB] 4.在函数、变量、宏之间来回跳转.mp4
- [83.9 MB] 9.添加注释.mp4
- [26.4 MB] 0.vim演示视频.mp4
- [13.1 MB] 3.vim脚本语法.mp4
- [103.7 MB] 1.vim配置与配置文件.mp4
- [172.8 MB] 12.C文件和头文件快速切换.mp4
- [21.9 MB] 2.按键映射.mp4
- [145.0 MB] 5.使用taglist显示函数、宏、结构体列表.mp4
- [60.6 MB] 13.书签的使用.mp4
- [19.6 MB] 📁 Makefile工程实践(第2季) 10.软件打包与发布.mp4
- [74.6 MB] 7.使用libtool构建动态链接库.mp4
- [121.9 MB] 4.shallow目录结构的Makefile.mp4
- [66.7 MB] 2.Autotools发展史.mp4
- [88.0 MB] 1.什么是Autotools.mp4
- [179.6 MB] 5.头文件管理、路径指定、对依赖关系的影响.mp4
- [140.3 MB] 3.使用变量、宏生成flat目录Makefile.mp4
- [96.7 MB] 6.构建目标文件.mp4
- [46.8 MB] 9.deep目录结构的makefile、库的多目录构建.mp4
- [66.7 MB] 8.使用第三方静态库、动态库.mp4
- [57.9 MB] 📁 Linux三剑客配套代码PPT Linux三剑客配套代码PPT.exe [72.2 MB] 适合人群 C语言初学者 Linux环境开发者 嵌入式工程师 学习收获 掌握C语言基础 精通Linux编程 提升嵌入式开发能力 祝您学习愉快! 学有所成,前程似锦!






