到什么程度才叫精通 Linux?
时间:2024-01-21 07:55:01 | 来源:网站运营
时间:2024-01-21 07:55:01 来源:网站运营
到什么程度才叫精通 Linux?:一般说自己精通某项技术的,要么是应届生,要么是刚工作没多久的,再者就是半桶水的人。
Linux 博大精深,我敢肯定,Linus 本人都不敢说自己精通 Linux 。Linux 可以应用的场景太多了,小到嵌入式设备,大到大型服务器,无所不在。对于 Linux 从来者而言,每个人都只是做其中的一个小方向而已。
那我们来看看,Linux 有哪些方向。
我曾经写过一篇文章,介绍 Linux 从业者的三大主要方向。本文也同步发表在我的本站专栏了。
专栏主要分享 Linux 基础,Linux进阶,Linux 编程,Linux 神器,Linux 趣应用,树莓派等 Linux 方向干货。自我介绍一下。
我是良许,本科及硕士所学专业却是机械,毕业后从零开始自学转行 IT,1 年后被世界 500 强外企所录用,目前是 Linux 工程师。另外说下,千万别局限于技术,要多做副业。我在2019年事业收入大概是本职工作的2倍多达到全职的条件了。具体可以看下面的视频:
在正式回答问题之前,先提前透露一下,
文末将分享更多 Linux 干货,别忘了拉到最后哦!
文末更多干货!!文末更多干货!!文末更多干货!!下面是正文回答:
经常有人在我的交流群问我:良许,请问 Linux 要怎么学习啊?Linux 要怎么入门啊?这个问题,其实就像是:良许,请问开发一个网站要多少钱?
但是,我很能理解,因为我曾经也是这样的小白,对于 Linux 一无所知。Linux 只是一个操作系统,大家可以在上面工作、学习、开发,对于 Linux 的学习,其实你要先确定好方向,再具体说怎么学习怎么入门。
因为有太多人问了,所以我就写篇文章来统一答复一下。不过,关注我的很太多大佬了,而我毕竟是个转行的,经验方面肯定比不上正规军,所以如果我说的有不对的地方,欢迎多多批评指正!
学习编程,千万不要急于求成,一定要多读一些经典书籍,多看源码,多下苦功夫去死磕代码,这样技术才能长进。给大家分享一些程序员必读经典书籍,一定要多读几遍:对应书单:
对于 Linux 从业都而言,主要有三个方向:
运维、开发、底层。下面我就对这三个方向进行展开。程序员必读经典书单(高清PDF版)对于 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 从业都三个主要方向的工作内容都不一样,所需的技能也不同。一般我们是选择其中一个方向,进行深入研究,有精力时再去学习其它方向,拓宽技术广度。
所以说,想要精通 Linux ,没那么容易。
前面提到过,我是半路出家,由机械自学转行 IT 。我
牺牲了所有的周末、晚上、节假日,以及陪女朋友逛街的时间,终于成功转行,并被世界500强外企所录用。对于我转行的经历,可以查看下面这篇文章,如果你有转行方面的困惑,也欢迎与我交流!
转行的过程是痛苦的,但收获是可喜的。为了更好的学习,我疯狂收集资料,涵盖了 IT 领域各个方面,比如:
Java,Python,C/C++,Linux,PHP,go,C#,QT,git/svn,人工智能,大数据,单片机,算法,小程序,易语言,安卓,ios,PPT,软件教程,前端,软件测试,简历,毕业设计,公开课,等等。
不管在公众号还是本站,我主要分享以下 Linux 干货(限于篇幅,各专题只列出少数几篇文章):
Linux 基础
主要包括 Linux 环境搭建、常用工具、一些基础命令、性能优化等等。
Linux环境搭建 | 手把手教你安装Linux虚拟机
Linux环境搭建 | VMware下共享文件夹的实现
Linux常用工具 | 使用notepad++远程编辑虚拟机文档
Linux常用工具 | 全能终端神器——MobaXterm
Linux常用命令 | 10个非常有趣的Linux命令
Linux常用命令 | Linux下find与exec的联手干大事
Linux性能优化 | Linux性能检测常用的10个基本命令
Linux 进阶
主要包括 Linux 命令高级用法,常用命令行工具,一些技巧等等。
Linux命令高级用法 | Linux下 ls 命令的高级用法8例
Linux命令高级用法 | 5分钟 more 命令从入门到精通
Linux命令行工具 | 程序员轻松绘图神器
Linux命令行工具 | Linux里隐藏的计算器,你知道它的奥秘吗?
Linux常用技巧 | 让你提高效率的Linux技巧
Linux常用技巧 | Linux下日志文件过大解决方案
当然,直接看文字太乏味了,而视频教程肯定效果会更好。于是我也开始录一些视频,定期发布到公众号及各大视频网站。下面先放两个:
我被Linux嘲笑了https://www.zhihu.com/video/1115971766371258368SSH到服务器指定目录https://www.zhihu.com/video/1115971897636188160先大概分享这些,本帖将持续更新,后面将有
Linux 编程,Linux 神器,Linux 趣应用,树莓派等文章的整理,敬请期待!
最后,最近很多小伙伴找我要
Linux学习路线图,于是我根据自己的经验,利用业余时间熬夜肝了一个月,整理了一份电子书。无论你是面试还是自我提升,相信都会对你有帮助!目录如下:
免费送给大家,只求大家金指给我点个赞!
电子书 | Linux开发学习路线图
也希望有小伙伴能加入我,把这份电子书做得更完美!
另外,再次强调,如果你想进大厂的话,一定要好好学算法,这是面试必备的。这里准备了一份 BAT 大佬总结的 LeetCode 刷题宝典,很多人靠它们进了大厂。附:近期高赞回答
Linux的功能有多强大?
学习Linux有没有比《鸟哥的Linux私房菜》更好的书?
有没有学习Linux比较好的入门书籍?
码字不易,硬核码字更难,希望大家不要吝啬自己的鼓励。我是:@程序员良许
欢迎关注我!我的个人网站,满满的都是Linux干货:良许Linux教程网如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!