我记得在我的第一篇文章里我便提到过一个说法:当我们准备学习一个东西的时候,我们的心里一定要对三个w有一个准确的回答即what(我准备学的是什么,它可以做什么) why(我为什么要学它,学习它我能获得什么) how(我该如何去学,学到哪种程度)学习linux亦是如此。
一、首先我们要解决的是what
1.1 linux也有自己的规则
谈linux是什么之前想先告诉大家一个我很久才明白的一个知识点:我们学习所有有关计算机的理论时,就相当于我们走进了一个全新的世界,这个世界有自己的一套规则,就像我们学习英语一样,它有自己的一套语法体系,而linux操作系统有一个很重要的规则就是它的所有规则和命令都是我们的前辈为了好用和快捷而用代码写出来的,所以我们学习linux其实就是进入linux的世界学习它自己的一套规则。
1.2 linux的定位
我相信大家都听过linux ,但你是否对它有一个准确的定位呢?我第一次接触linux是在大一的时候,当时同学让我安装红帽子(红帽子是开放源代码的软件、产品和提供全球性的服务的主导开发商和提供者。公司早先的产品Red Hat Linux操作系统,是Linux操作系统,想深入了解的小伙伴可问问度娘),同学只告诉我是linux系统,而我当时心里就有很多疑问,比如啥是linux,为啥又叫红帽子,当时羞于问别人,觉得那样显得自己很无知,然后心里就自以为的把它归属于app一类,现在才明白不懂装懂的自己才是真的无知,所以当你有问题的时候一定要不怕问。
我们要想了解linux的定位,便要先知道操作系统在计算机中扮演的角色,linux只是众多操作系统中的一种,而我们最熟悉的另外一种操作系统肯定非windows莫属了。操作系统说到底就是一个软件,但它和app类软件有很大的不同,操作系统是介于用户和底层硬件之间,根据用户的命令来和具体的硬件连接,帮助我们去做我们想做的事情,比如安装各类app软件,它扮演的角色就像中介,把有关底层硬件的繁琐操作全都包装起来,本着方便我们操作的思想和目的,只给我们展示让我们变得很方便的界面和各种接口命令,或许你会觉得这些东西还是很不近人情很陌生,但我们也要理解,计算机的发展是一个过程,或许你也会成为下一个添砖加瓦的人。
二、接下来我们来看why
2.1 windows和linux
既然有了windows,那我们为什么还要学linux呢,之前在知乎上看到一个相关的回答,我觉得写的很有深度,且有趣易懂,所以自己总结了一下。
那篇文章中对linux和windows的描述可以说是很形象了:windows和linux最重要的区别是它们对自己的用户所做的假设
对于linux,这个假设是:用户知道自己要什么,也明白自己在做什么,并且会为自己的行为负责任
而windows则恰好相反:用户不知道自己想要什么,也不明白自己在做什么,更不打算为自己的行为负责任。
就像不同的产品针对不同的用户,linux和windows亦是如此,所以没有好与坏,只有是否合适。
2.2 linux和底层更近
学习linux也相当于在学习操作系统,这意味着你离底层又进了一步,听很多人都说过越往上走底层的东西越重要,这一点我目前的体会不是很深,所以不便多谈,但我想既然有这么多人都在说,那自有说的道理。
2.3linux的优势
1.开源
linux的源码和架构都是开放的,从中你可以学到很多操作系统的知识。
2.linux下的很多工具都是免费的
3.多用户、多任务、多线程
我想这可能是很多程序员选择linux的一个非常重要的原因,何谓多用户,举个例子就像QQ可以同时登录多个账户,每个账户之间互不影响,linux也是,若是硬件设施好,每个用户可以同时运行多个任务,简直不要太有工作效率了!可能有些小伙伴会奇怪为什么可以同时运行多个任务呢?这个就和操作系统的异步性有关啦,简单来说就是宏观上很多任务一起运行,但微观上还是一个一个在运行,这和有几个处理器也是有关的,比如大家听过的双核,就相当于有两个处理器,可以同时运行两个任务,感兴趣的小伙伴可以找些操作系统的资料深入了解一下。
4.稳定
linux的稳定是众所周知的,而linux为什么会比较稳定呢?Linux的稳定性是由于它没有象其它操作系统一样内核如此庞大、漏洞无穷。
Linux所共享的Unix设计体系是经过长期实践考验的,Linux吸取了Unix系统近1/4世纪发展的经验,体现了最先现代化操作系统的设计理念和最经得住时间考验的设计方案。最令人注目的是Linux开发源代码的开发模式,这保证了任何系统的漏洞都能被及时发现和改正。
三、最后我们看一下how
我们学习一个东西从来不是以花费多少时间为标准,而应该以我们是否真正掌握这个东西为标准。
1.首先你需要一本书或一个视频和一台笔记本
书本的话我推荐鸟哥的linux私房菜,这是老牌子了,内容通俗易懂,而且很全面,这本书也有网站,上面的内容很全很丰富。
2.实验楼
实验楼也是一个不错的选择,如果你只是想了解一下,不是想学的特别深入,那实验楼的课程就完全够用了,不会的可以配合书本看,csdn上也有很多人在发这个课程的学习笔记,可以参考。
3.多动手多实践
学习计算机最快的方式就是实践实践再实践,纸上谈兵终究是水中看月,听的多看的多不如动手实践学的多,因为你一旦实践就会发现自己的问题在哪里。
4.可以多看linux内核源码,这对理解linux操作系统的原理有很大的帮助。
5. 相关资源
https://zhuanlan.zhihu.com/p/22654634
这篇文章里的学习资源比较全面,大家可以参考。
参考文章:
https://www.zhihu.com/question/20117703/answer/31850471