学习路线图
在学习视频之前,建议你按照这个顺序来规划,这样知识体系会更完整。

(图片来源网络,侵删)
-
环境准备与基础命令
- 目标: 熟悉 Linux 基本操作,能够进行文件管理、软件安装、使用终端。
-
ls,cd,mkdir,rm,cp,mv,grep,find,man命令,vim或nano编辑器的基本使用,gcc,gdb,make的安装。 - 为什么重要: 这是后续所有操作的基础,不会用终端和编辑器,代码都写不进去。
-
C 语言基础复习与 Linux 特性
- 目标: 在 Linux 环境下重新复习 C 语言,并学习 Linux 下 C 编程的特点。
- 数据类型、运算符、流程控制、函数、指针(重中之重!)、结构体、文件操作 (
fopen,fread,fwrite,fclose等)。 - Linux 特性: 学习
gcc编译器的基本用法,如gcc hello.c -o hello,理解.o目标文件和可执行文件的区别。
-
核心:Linux 系统编程
- 目标: 学习如何通过 C 语言调用 Linux 内核提供的 API 来控制硬件、管理进程、进行网络通信等,这是 Linux C 的精髓所在。
- 文件 I/O:
open(),read(),write(),lseek(),close(),以及stat系列函数,这是对标准 C 库文件操作的底层封装。 - 进程控制:
fork(),exec()系列函数,wait(),exit(),理解进程的创建、执行和等待。 - 进程间通信: 管道、消息队列、信号量、共享内存。
- 多线程编程:
pthread库的使用,线程的创建、同步(互斥锁、条件变量)。 - 网络编程:
Socket编程,使用TCP/IP协议进行客户端/服务器开发。 - 信号处理:
signal()函数,处理异步事件。
- 文件 I/O:
-
工具链的使用
(图片来源网络,侵删)- 目标: 掌握强大的开发工具,提升开发效率。
- GDB 调试: 学习断点、单步执行、查看变量内存、分析程序崩溃原因。
- Makefile: 学习如何编写 Makefile 来管理大型项目的编译和链接。
- GCC 高级选项: 了解优化选项、调试信息生成、头文件和库文件搜索路径等。
-
项目实战
- 目标: 将所学知识融会贯通,动手实践。
- 项目建议:
- 一个简单的 Shell(命令行解释器)。
- 一个多线程的 Web 服务器。
- 一个简单的文件传输工具。
- 一个基于共享内存的聊天程序。
推荐视频教程
以下视频教程都是国内非常知名且质量极高的免费资源,完全覆盖了上述路线图。
入门与环境准备
- B站 - 尚硅谷Linux零基础入门到精通
- 简介: 这套教程虽然是讲 Linux 运维的,但前几十集的 Linux 基础命令、Vim 使用、Shell 编程等内容讲得非常透彻,是入门 Linux 环境的绝佳选择,对于纯程序员来说,看懂前 50 集就足够了。
- 适合人群: Linux 纯小白。
Linux C 语言核心 - (最推荐)
-
B站 - Bilibili - 黑马程序员 - Linux C++服务器开发
- 简介: 强烈推荐! 这套教程虽然是 C++,但前半部分(约 1/3)是纯 C 语言,并且是目前市面上讲得最好的 Linux C 系统编程视频之一,主讲人(马老师)逻辑清晰,讲解深入浅出,从环境搭建到文件 I/O、进程、线程、网络编程,覆盖得非常全面,并且配有大量实战案例。
- 适合人群: 有一定 C 语言基础,想系统学习 Linux 系统编程的学习者。这套视频可以作为你的主教程。
-
B站 - Bilibili - 传智播客 - C语言高级项目实战(Linux环境)
(图片来源网络,侵删)- 简介: 另一套非常经典的 Linux C 教程,内容与黑马程序员的有重叠,但讲解风格和侧重点略有不同,可以作为补充学习,或者看其中一个觉得不适应时换一个。
- 适合人群: 同上。
工具链专项
- GDB 调试教程:
- B站 - GDB调试实战(完整版): 这套教程专门针对 GDB,从基本命令到高级调试技巧(如调试多进程、多线程)都讲得很清楚。
- Makefile 教程:
- B站 - 跟我一起写Makefile: 陈皓(左耳朵耗子)的经典之作,虽然视频年代稍早,但内容是永恒的经典,配套的文章更是必读。
- GCC 编译器教程:
- 可以直接搜索“GCC 编译选项”,很多博客和视频都会讲解,B站的这个视频:GCC编译器详细使用教程。
推荐书籍
视频教程快速上手,但书籍才能构建最稳固的知识体系。
-
《C Primer Plus》(第6版)
- 简介: C 语言的“圣经”级教程,如果你 C 语言基础不牢,或者想系统性地再学一遍,这本书是最佳选择,它不局限于某个平台,但所有知识点都适用于 Linux。
-
《C程序设计语言》(K&R)
- 简介: C 语言之父写的书,薄而精悍,适合有一定基础后阅读,能帮你领略 C 语言的精髓和设计思想。
-
《鸟哥的Linux私房菜》- 基础学习篇
- 简介: Linux 领域的另一本“圣经”,可以和视频教程结合,作为 Linux 基础知识的字典和参考书。
-
《Linux C 编程一站式学习》
- 简介: 强烈推荐! 这本书非常适合有一定 C 语言基础,想直接进入 Linux 系统编程的学习者,它将 C 语言和 Linux 系统编程紧密结合,讲解非常透彻,而且有完整的配套视频和实验,完全可以免费在线阅读。
- 在线阅读地址: https://akaedu.github.io/book/
-
《UNIX环境高级编程》(APUE)
- 简介: Linux 系统编程的“圣经”,这本书非常厚,内容详尽,是深入理解 Linux/UNIX 系统的终极宝典。
- 建议: 不要作为入门书籍!在你学完了黑马或传智的视频教程,对系统编程有了整体认识之后,再把这本书当作字典和进阶读物,遇到不懂的知识点就来查阅。
学习建议
- 动手!动手!动手! 看十遍视频不如自己动手敲一遍代码,教程中的每一个例子都要亲自编译、运行、调试。
- 不要怕报错,Linux 环境下的错误信息有时很晦涩,学会看懂
gcc和gdb的报错信息是基本功。 - 善用
man手册,在 Linux 终端里输入man open就可以查看open函数的详细说明,包括参数、返回值、示例等,这是程序员最重要的工具。 - 先模仿,再创造,跟着视频敲完例子后,尝试修改它,比如增加一个功能,改变一种实现方式,然后尝试自己写一个小项目。
- 加入社区,遇到问题可以先自己搜索(Google > Baidu),在 Stack Overflow、CSDN、知乎等社区提问时,要清晰地描述你的问题、你尝试过的解决方案和相关的错误信息。
祝你学习顺利,早日成为 Linux C 语言高手!
