从业5年,教你学习Linux开发
Posted llawliet0001
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从业5年,教你学习Linux开发相关的知识,希望对你有一定的参考价值。
- 为什么要学习Linux编程?
其实这个问题很容易回答,因为你要写的程序是跑在Linux下的啊。至于跨平台的程序,你熟哪个就在哪个下开发,效率第一,纠缠平台和工具,纯属吃饱了没事干闲的。其实Linux编程就是说开发Linux软件,所以说,在Linux系统下开发才会更加顺手,并且效率更高。因为直接就可以在主机环境下运行,而无需再安装虚拟机,模拟器等来测试程序。
- 关于Linux开发
Linux下开发,其实主要涉及两种基本语言,C和C++。C语言是学习Linux编程必不可少的语言,因为Linux系统内核很多就是C语言编写的,而且粗语言也是目前对硬件支持最好的语言。Linux提供的很多api也是C语言写的,所以只有当我们理解了C语言之后,才能更好的进行Linux开发。而c++是C语言的超集,在保留了C语言的一些语法特性之外,支持的比C语言也更多。除了C语言和c++之外,还可以根据Linux去学习一下怎么写驱动程序等等。Linux编程除了Linux的api外,Linux内部还有一种语言,为shell。这门语言是是Linux的脚本语言。类似于windows上的vb脚本编程。虽然shell提供了十分简单的语法,但是当和Linux的命令结合起来的时候,就非常强大了。基本上shell可以很好的处理各种Linux上命令行就能解决的问题,而且更加自动化和便捷。然后学学Qt,悉一下图形界面,可以把你做的命令行下的小程序完全改成图形界面下的。
- 如何学习?
首先,要想学会Linux编程,你必须要会用Linux,也就是必须学会如何在命令行环境下操作。当你能够在命令行下使用各种命令,操作各种文件和在Windows上使用鼠标一样的时候,就说明你已经入门了Linux系统。这个时候,你就不会再有之前对命令行的方反感,反而喜欢上了命令行。因为这个给时候,你会发现鼠标还要点好多下的操作,在命令行下几个字母就可以轻松解决。在学习的时候一定要多多练习。可以自己安装一个虚拟机,也可以在网上买一个云服务器,买最便宜的就行。在系统上多做练习。首先在Linux系统上尝试着做各种和Windows一样的操作,这样就可以了解到Linux和windows之间的差异了。
这个我个人认为看一本书就行了,《Linux就该这么学》,记得安装Linux系统,自己按照这本书的章节安排,自己手把手操作一遍。这本书从最基础的命令开始,一直到搭建lnmp环境为止,一步一步由浅入深的教你学习Linux。做完这一步,你基本上已经可以学习开发了。因为我当时初学Linux操作系统的时候,就是使用这本书入的门,这本书配套的还有一个网站,非常方便,我们可以直接在网站上看书,所以说我们有时候没有带书,公交车上地铁上,随时想看就可以看。这个网站上还有很多的技术新闻资讯以及技术干货,我相信通过这本书你可以学到更多东西,不止Linux的,还包括其他的编程语言和操作系统等知识。
- 如何深入
接下来就是继续深入了,这个时候你得去稍微的看看内核源码啊,内核的进线程调度啊。这个时候,数据结构算法啥的这些就是你必备的基础知识了,计算机网络,操作系统啥的也全部得看看,操作系统原理啥的也得看看,这些东西虽然看着和编程无关,但是全部都是真正涉及到最底层架构的东西了。学会这些东西对于你理解系统的底层架构有很大的帮助。如果不会这些知识,你根本看不懂源码。
在学习的过程中,要不断积累和了解最新的东西,首先了解这个概念,然后知道这个概念是干嘛的,提出这个概念是解决为了解决什么问题的。
- 书籍推荐
最后推荐几本书(前面的包含在内):
《Linux就该这么学》
《鸟哥的Linux私房菜 基础篇》
《C程序设计语言》 丹尼斯写的
《Linux C编程一站式学习》 宋劲杉写的
《Eensstial C++》
《C++ Primer》
《Effective C++》
《Linux网络编程》 宋劲彬写的
《Unix环境高级编程》
《Unix网络编程》 两部
《Linux高级程序设计》 华清远见
《大话数据结构》
《算法导论》
《Linux内核情景分析》
《深入理解Linux内核》
《深入理解计算机系统》
《现代操作系统》
《深入理解计算机网络》
《TCP/IP》的三卷经典书
最后,我个人认为,我们要广泛的接收新知识,所以要多去网上看一些别人的文章。比如各大论坛,GitHub,stackoverflow, 博客园,CSDN等等社区和论坛,多逛逛,当然还有知乎也要多逛逛,毕竟知乎的大神还是很多的。
以上是关于从业5年,教你学习Linux开发的主要内容,如果未能解决你的问题,请参考以下文章
白帽子***与网络安全工程师教你:Kali Linux和Windows软件管理的异同
白帽子***与网络安全工程师教你:Kali Linux和Windows用户密码管理的异同
白帽子***与网络安全工程师教你:Kali Linux和Windows用户密码管理的异同