常常有人在个人交流群问我:请问 Linux 要怎么学习啊?Linux 要怎么入门啊?这个问题,其实就像是:请问开发一个网站要多少钱?html
可是,我很能理解,由于我曾经也是这样的小白,对于 Linux 一无所知。Linux 只是一个操做系统,你们能够在上面工做、学习、开发,对于 Linux 的学习,其实你要先肯定好方向,再具体说怎么学习怎么入门。linux
由于有太多人问了,因此我就写篇文章来统一答复一下。不过,关注个人很太多大佬了,而我毕竟是个转行的,经验方面确定比不上正规军,因此若是我说的有不对的地方,欢迎多多批评指正!数据库
对于 Linux 从业都而言,主要有三个方向:运维、开发、底层。下面我就对这三个方向进行展开。编程
方向一:运维服务器
这应该是不少 Linux 从业者给你们的形象吧,不少人也把我看成运维工程师,问我一堆运维方向的问题,但是我不是这个方向的,我真不会啊!微信
那运维方向主要作一些什么工做?网络
首先,是服务器维护运维
保证服务器正常运行不宕机,这是最最基本的要求。服务器一旦宕机,公司找的第一个通常是运维工程师,因此,不少运维工程师都自嘲是「背锅侠」。编程语言
而后,须要给开发人员提供一个可靠的服务器运做环境和技术支持工具
我所知道的不少公司的开发环境是由开发人员本身搭建好的,可是,也有些公司将这部分工做内容交给运维工程师,而开发人员就专一于写代码。
固然,还包括对各类服务的配置,如FTP,DNS,APACHE,IPTABLE,ORACLE,MYSQL等。
除此以外,还要对服务器状态进行监控,如CPU内存占用,进程僵死崩溃,磁盘空间,异常登录等。固然,还要负责系统进行升级,备份等等工做。
那些以前问我问题的小伙伴,大家看看,是否是包含在这里?不要紧,其实个人心里仍是很(xiang)淡(ma)定(ren)的。
那么,运维工程师须要学一些什么?
运维工程师须要懂不少的命令,而后就是上面提到的开发环境的搭建,各类服务的配置,以及平常的维护之类,都须要会。不少的操做其实经过脚本就能很方便完成,因此运维工程师不少还须要懂 Shell 及 Python。推荐的入门书籍:鸟哥 Linux 私房菜。
方向二:应用开发
这就是个人老本行啦~啊,不对,个人老本行是机械……
应用开发及底层开发方向就要写比较多的代码了,相对而言运维工程师就不须要写不少代码。
Linux 应用开发工程师主要作一些什么工做?
简单而言,Linux 应用开发工程师主要在Linux 环境下开发各类应用程序,就如同大家在 Windows 下开发的应用程序同样(好比QQ,PC微信等)。这些应用程序有些带有界面,也有不少是不带界面的。带界面的不少是由 QT 开发,固然也有其余的开发工具。
Linux 应用开发工程师需求量相对比较多,行业分布也比较广。方向主要有两个,一个是服务器方向,另外一个是嵌入式方向。
几乎全部的科技公司都有服务器,因此在不少行业都有 Linux 应用工程师的身影。而嵌入式方向,也就是我如今的方向,就是在嵌入式平台上开发应用程序,其实道理都是同样的。
那么 Linux 应用开发工程师须要掌握什么技能?
首先确定要熟悉 Linux 平台的 API ,包括 IO 操做,进程间通信, Linux 环境,网络通信,等等,推荐看 APUE 这本神书。固然还须要懂脚本语言,包括 Shell, Python ,都须要懂。还有数据库的操做,好比 MySQL,Sqlite,至少要懂一个。
对于编程语言的话,大多数状况下是使用 C/C++ 。若是你须要作界面开发,可能还须要懂 QT 。
除此以外,你还须要懂一些行业规范,这个是应用工程师的必备技能。
方向三:底层开发
底层开发工程师相对而言需求就会少一些,一个公司一般会养一堆的应用开发工程师,但底层开发工程师可能就配备了一两个。为何?由于如今不少底层移植、适配的工做都由芯片厂商都帮你作好了,大家不少状况下只需作维护就行了。
因此,底层开发工程师的一个很好去处就是芯片厂商,若是对这块有兴趣的朋友,芯片厂商是一个很好的去处。
固然底层开发工程师不只仅作维护了,也是会根据公司的业务需求作一些定制。除此以外,还会作驱动开发的工做。
那底层开发工程师须要掌握什么技能?
虽说移植之类的工做如今不少都由芯片厂商完成,但uboot,文件系统,内核这类的移植技能确定要掌握。而后,驱动开发也确定要会,由于这部分工做的分量仍是很多的。
而在作底层开发工做时,还有一个重要的技能,就是芯片手册的查看。若是你不会查看芯片手册,那后面的移植啊,驱动开发之类的工做都无从谈起。
有些公司可能还会对内核进行裁剪定制,那么,就须要对内核源码比较了解了,这部分要求就相对比较高了。
小结
因此,Linux 从业都三个主要方向的工做内容都不同,所需的技能也不一样。通常咱们是选择其中一个方向,进行深刻研究,有精力时再去学习其它方向,拓宽技术广度。
原文来自:https://mp.weixin.qq.com/s/Qg3RWSMmxEyq-kVH_XqZlw
本文地址:https://www.linuxprobe.com/linux-work-direction.html编辑:传棋,审核员:逄增宝