如何入门Linux?很多已经职业化的Linux工程师,对这种问题其实挺无奈的,但是我一般会问三个问题,其实就清楚为何入不了门了:
1.你从哪里知道的linux?
2.你准备学Linux干嘛?
3.你学Linux有多大决心?
一般情况下,大部分人接触Linux的机会并不多,对Linux平台下的开发更是一无所知。而现在的发展趋势却越来越表明:无论是作为一个优秀的软件开发人员,或是互联网、IT行业的从业人员,掌握Linux是一种很重要的谋生资源与手段,很多迹象表明这是一个很好的加分项。
下面我将会结合自己的几年的个人经验,为大家总结Linux入门的知识点(整套体系入门课程视频+关注私信“1”获取)
Linux开发环境
项目目的:了解Linux环境搭建,了解Linux C编程
项目知识点:Linux安装,命令使用,shell编程
项目:shell脚本实现检测局域网内哪些ip地址机器宕机
课后作业题:shell脚本实现获取本机ip地址
Linux C编程
1. Linux C编程 统计文件单词数量(文件操作)
项目目的:了解Linux编程环境搭建,了解Linux C编程
项目知识点:文件操作,文件指针,
课后练习题:统计每个单词出现的次数
2. Linux C编程 实现通讯录(结构体)
项目目的:了解结构体定义,数据结构
项目知识点:链表操作,添加节点,遍历,查找
课后练习题:按照姓名首字母存储通讯录,使用数组加链表
Linux环境编程
3. 并发下的计数方案(锁)
项目目的:了解并发,了解计数方案
项目知识点:互斥锁,自旋锁,原子操作
课后练习题:了解CAS,并实现CAS
4. 实现线程池(线程)
项目目的:了解线程,了解线程加锁,互斥锁mutex,条件变量cond
项目知识点:线程队列,任务队列,互斥锁,条件变量
课后练习题:对线程池的数量进行控制
5. CPU与进程的关系(进程与进程通信)
项目目的:了解进程,进程间通信 共享内存,管道,sockpair
项目知识点:进程操作,进程与CPU粘合,进程间通信
课后练习题:实现一个进程间通信组件
6. 数据库操作
项目目的:了解数据库操作,程序代码操作
项目知识点:数据库封装,sql语句封装,网络连接封装
课后练习题:封装一个数据库连接池
网络编程
7. DNS请求器(UDP编程)
项目目的:了解UDP通信,了解DNS协议
项目知识点:UDP通信,DNS协议,协议解析
课后练习题:实现异步DNS
8. 实现http请求器(TCP客户端)
项目目的:了解TCP通信,了解HTTP协议
项目知识点:TCP编程,HTTP请求协议
课后练习题:实现异步HTTP请求
9. 百万级并发服务器(TCP服务器)
项目目的:网络IO,服务器后端编程
知识点:tcp,网络io,Linux系统
课后练习题:测试搭建百万并发服务器
项目实战
10. 实现网络爬虫
项目目的:了解爬虫产品开发,功能分解,产品架构
项目功能:Page下载器,Page分析器,调度器
依赖库:pcre,libxml2,liburi,libuv,curl
课后练习题:实现求职网站上面,职位爬取