关于linux入门
《鸟哥的linux私房菜》不是讲编程的,是讲系统管理、服务器架设的,如系统权限、用户管理、架设网站等等方面的知识,和C++一点关系都没有。不过在系统管理方面仍然是一本不错的入门书(第三版排版不太好,命令在图里有空格,但文字里却并在一起等情况,要自己分辨)
在linux下还是以C为主的,当然要学图形界面等软件还是和C++有关。
如果是C的学习,跟linux还是非常相关的,需要了解很多linux系统内核知识,如果是C++的话,建议直接从C++库入手,如QT、ACE等等,这些都和系统本身没直接关系(但有些库只能运行在linux下)
给你点建议:
要学LINUX下的C编程,先看一两本LINUX下C的书比较好,这个你自己选择,但是经典的书还是好一些,比如《LINUX程序设计》、《UNIX环境高级编程》,看这些的时候把书上的例子选择一些自己编译一下,哪怕是照着敲进去,事半功倍。
推荐一本简单的内核书《linux内核完全剖析0.12》,这个讲的是0.12内核,代码量只有1万多行,现在的内核比起来差了近几百倍了。这个书讲了很多X86体系结构的知识,这时理解内核必备的,汇编你要能看懂。有了上述的知识,可以看一下《深入理解LINUX内核》等书,了解下现在的真正的内核。(目前kernel 3的经典书籍没有,而且第三代内核升级比较快,不会像2.6这样的版本几年没有大更新了,不过3和2.6还是很相似的,主要是一些扩充,原理是一样的,可以用2.6的书去了解下,挑一本经典的就好)
之后可以根据自己的喜好选择,如果想了解驱动开发的就看看《Linux设备驱动程序》,想了解网络的,可以了解相关协议等等,如果想搞学C++,也可以了解相应的库。
(很多书的书名是写unix并非linux,但本质是一样的,其基本原理是相通的)
有了上述知识就可以做项目进行实践了,综合实践才是检验是否掌握相关知识的最佳途径。适当的开发一些项目,去熟练所学的知识。
这是我的一些心得,希望对你有用。
还有就是了解下linux系统本身还是非常有必要的,比如权限知识、线程调度等。
如果是C++的学习,建议先学好C++的基础知识,如虚函数、类的继承等,那些库都是建立在此基础上的
说的很详细,谢谢啦,很有帮助!