一、linux之路,路漫漫其修远兮,吾将上下而求索!先上经典书籍!
1.入门篇
《LINUX权威指南》书不错,写的很全面也比较广,涉及的不深,做为入门书籍不错,可以比较全面的了解linux 。另外比较热门的也可以看看《鸟哥的私房菜》等书,偏管理类的书。如果想做server方向的可以找来看看。
2.驱动篇
《LINUX设备驱动程序 》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码 分析比较多,基于2440的,对linux外围驱动有很全面的讲解。
3.内核篇
浙江大学的《LINUX内核源代码情景分析》,外国的《UNIX源代码分析》还有《深入理解linux内核》都是出名的经典巨作。
4.shell篇
《LINUX与UNIX Shell编程指南》
5.应用编程
不用说了肯定是《unix环境高级编程》被称为unix编程的圣经。
6.TCP/IP篇
《TCP/IP详解》作者W.Richard Stevens也是《unix环境高级编程》的作者,牛人出的书没有一本不是经典的。但是英年早逝,默哀一下。
7.c语言
《The C Programming Language》正是作者造出来的c语言,书能垃圾就怪了。
《c和指针》和《c缺陷和陷阱》两本必备。包含了c语言最容易出错的地方,加深c语言功力的好材料。
c专家编程,c语言技术手册, Practice c Programming 等。
8.算法
《算法导论》,床头必备喝
注:这些经典的书是经得起反复琢磨的,知识并不是一蹴而就的,需要反复实践,反复理解!千万不要妄想一口吃个胖子!
二、如何学习linux
Linux操作系统主要就是一些配置文件(/etc)和命令行工具(/bin /sbin /usr/bin /usr/sbin),要掌握操作系统的主要目录结构和配置文件,运用系统的命令行工具(shell脚本)完成常规的操作系统维护工作,监控工作。进而可以安装部署一些企业应用,进行监控、管理等等。
1.重要的命令:find,sed,awk,正则……
2.工具:gnu下的著名软件 gcc,gdb,vi,make……
3.unix编程,编译等。xwin开发方式,gtk,qt……
4.文件系统,/dev下的设备(会用),/var下重要的东西,/etc 下的配置(常用服务配置apache, ftpd, sshd, xinetd, squid, natd, named),系统启动顺序,配置相应服务等……
5.c,python,php等高级语言……
三、个人水平定位
1.初级:熟练使用命令、熟悉Shell编程、能配置简单的服务,清楚各类服务相关的配置文件的位置, 能看懂并可修改系统提供的配置脚本(/etc/.)。推荐书籍:
《鸟哥的私房菜基础篇、高级篇》
《Advanced Bash Shell》
2.中级:熟悉TCP/IP原理、OS原理、熟练使用C语言、Linux系统编程、网络编程。 推荐书籍:
《The C Programming Language》
《Unix环境高级编程》
《Linux程序设计》
《TCP/IP协议详解卷一》
《Unix网络高级编程》
3.高级: 内核,驱动级别。推荐书籍:
《Linux Device Driver》
《深入理解Linux内核》
《深入理解计算机系统》
《深入理解LINUX网络内幕》
四、学习途径
1.Help System 帮助文档(man)
2.online books 在线文档(wiki ,blogs)
3.Training Guide 培训教程
4.Topic Collections 专题
5.Forms 论坛
6.名家的书籍
7.IRC,邮件列表等
8.理论与理论中的实践的差别并不如理论与实践中的实践差别那样大!
五、其他的书
javascript基础教程,~高级程序设计,~权威指南,~DOM编程艺术,~设计模式,~入门经典
UNIX in a Nutshell,The unix programming environment,unix技术手册
managing projects with make
applying RCS and SCCS
六、自己的路
linux/unix (c , bash(shell) , 工具(vi, gcc, make) , 内核机制 , python(高级语言) , 开源)
设计理念,系统管理,unix环境,服务器,嵌入式,桌面,移动设备