- 浏览: 215537 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (144)
- Python (6)
- Java (15)
- Project management (2)
- DB (11)
- Spring (1)
- Mobile (3)
- 互联网 (10)
- Maven (2)
- SCM (5)
- linux (24)
- Mac (14)
- UCD / UED (6)
- Tools (1)
- Test (1)
- iPhone (1)
- 新产品&新工具 (8)
- OAuth (4)
- Java Script (5)
- HTML5 (2)
- Lucene / Solr (7)
- nginx (1)
- Product Manager (1)
- Design (1)
- Office (1)
- RegExp (0)
- 性能调优 (2)
- 读书笔记 (2)
- NodeJs (2)
最新评论
-
410163269:
看不清楚 蛋疼
基于 OAuth 安全协议的 Java 应用编程 -
xufun:
路过,拜读学习了。谢谢!
未来的授权标准 -- OAuth 2.0 -
xufun:
好文!路过拜读了,谢谢!
NoSQL - CouchDB入门 -
mimicom:
牛b......
最牛B的 Linux Shell 命令(三) -
as3291363:
你有一些 中文資料嗎????
Java Script 代码生成器: CoffeeScript
入门类
一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用。鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于这绝大部分人来说,如果要学习Linux开发,学会使用这个系统都是必不可少的一个环节。
现在的Linux初学者是幸福的,随着Linux桌面环境越来越易用,入门一个新的系统是非常容易的事情。虽然命令行对于提高工作效率更加有
效,但我们完全可以把熟悉命令的过程放到日常使用中进行。无论学习什么知识,在实践中学习都是高效而且有趣的。在这个阶段,我们也未必一定需要书籍。现在
很多Linux发行版的Wiki写得都非常详细,在使用某一种发行版时找到相应的Wiki阅读查询就可以了。而且,桌面环境变化太快,关于桌面的介绍类书
籍几乎都没有必要看,这类书籍大多刚一出版就过时了。
那入门类书籍里哪些比较有价值呢?我比较推荐涉及的技术相对比较稳定的书。比如,Linux基本的体系结构和命令一般都是经久不变的,甚至从上古时期的Unix开始就没太多变化,这类书籍讲解的知识也是以后大幅提高我们的生产力的基础。比如《鸟哥的Linux私房菜
》,比如《Unix Power Tools
》(中译名是“UNIX超级工具”),或者是为Linux+认证考试准备的《Linux+ Study Guide
》。当然,这一类书籍其实都不必精读,快速浏览之后作为工具书备查就可以了。
编程类
类Unix系统的编程书籍里,最经典的莫过于简称为APUE的《Advanced Programming in the UNIX Environment
》(中
译名是“Unix环境高级编程”),这本书被广大Unix程序员(包括Linux)捧为“圣经”。借用葛大爷的广告词:“这就像进馆子一样,一条街上,哪
家人多我进哪家”。APUE对类Unix系统的编程接口讲解的非常全面详细,对于这本书,我们不仅要精读,还应该放在案头常备。
但是,APUE对于Linux编程初学者似乎稍深了一点,而且很多细节在Linux中并不会用到。讲述Linux编程的书籍里,《Advanced Linux Programming
》应该更加适合初学者。不要被书名中的“Advanced”吓到,书里的内容还是很容易理解的。看完这本书再看APUE应该效果会更好。
如果要开发GUI程序,上面两本书就无能为力了。在Linux世界里,最常用的GUI Toolkit是GTK+和QT。
GTK+的书籍并不多,在线文档只适合查阅,并不是一个完整的学习体系。《Foundations of GTK+ Development
》是其中很不错的一本书,喜欢GTK+的开发者可以拿来作为入门书籍。
相对来说,QT的书籍就很丰富了,这和QT具有良好的跨平台能力有很大关系,QT的书籍并不只是写给Linux程序员看的,在Windows和MAC OSX下同样可以使用QT开发程序。比较值得一看的QT类书籍有《C++ GUI Programming with QT4
》、《Foundations of QT Development
》、《The Art of Building QT Applications
》,这三本都比较适合QT初学者阅读。另外,《Advanced Qt Programming
》会介绍到QT一些比较高级的用法,适合有一定QT基础的读者阅读。
内核类
对于Linux内核或者设备驱动的开发者,最全面最直接的学习资料一定是Linux内核代码及其文档。Linux内核的发布周期很短,相关书籍
的出版完全跟不上脚步。但随着内核代码的日益庞大,学习曲线越来越陡峭,入门者又非常需要书籍来作为指导,这确实是非常矛盾的事情。所幸,很多Linux
内核技术作家也是很勤奋的,经常会更新自己的作品。就像Robert Love,以2.6内核为蓝本的《Linux Kernel Development
》已经更新到第三版了。LKD是非常适合内核初学者阅读的一本好书,对它的评价可以引用陈莉君老师的译者序:
相对于 Daniel P. Bovet 和 Marco Cesati 的内核巨著《 Understand the Linux Kernel 》,它少了五分细节,相对于实践经典《 Linux Device Drivers 》,它多了五分说理。可以说,本书填补了 Linux 内核理论和实践之间的鸿沟,“一桥飞架南北,天堑变通途”。
谢谢陈老师,她的译者序帮我引出了另外要谈到的两本经典书籍,对,就是《Understanding the Linux Kernel
》和《Linux Device Drivers
》。对于这两本书,如果要挑它们的缺点,我只能说,内容有点老,很多知识点都需要更新了,除此之外,我要说的是,是它们把我带上了内核驱动开发这条路上来,当然,还有LKD。
最近,我又发现一本分析Linux内核的优秀书籍,就是《Professional Linux Kernel Architecture
》。这本书我目前正在读,写得非常好,而且因为此书相对较新(只是相对,2.6.24内核在现在看来也很老了),没有看过ULK的同学可以直接看这本书。
工具类
工欲善其事,必先利其器。进行Linux开发,相关工具还是需要熟练使用的。比如,GNU Tool Chain、自动构建工具、编辑器、版本控制工具等等。
这里有一本包罗万象的书,叫做《Handbook of Open Source Tools
》,书中介绍了各种各样的开源工具,可称之为开源技术的总决式。这本书试图面面俱到,因此并不深入,粗读即可。
GNU Tool Chain参考Redhat的《The GNUPro Toolkit
》已经足够了,如果单独把makefile拎出来,还可以参考《Managing Projects with GNU Make
》。
说到编辑器,在Linux里最著名的莫过于Vim和Emacs,关于这两者的背景,可以去看看《为何Emacs和Vim被称为两大神器
》。我几乎没用过Emacs,曾经在当当做活动时花9块钱买了一本《学习GNU Emacs
》,有这本书作为Emacs的入门我想应该够了。Vim是我经常使用的编辑器之一(另一个是Kate,最初喜欢上Kate的原因之一就是它提供了Vim编辑模式),相关的书籍有两本值得一读:《A Byte of Vim
》和《Hacking Vim 7.2
》,但是对于初学者,首先跟着Vim自带的vimtutor练习效果会更好。
Linux下的版本控制工具很多,有传统的Subversion,也有现在非常流行分布式工具如Git等。Subversion可以参考这本《Version Control with Subversion
》,Git可以参考《Version Control with Git
》或者《Git Internals
》或者《Pro Git
》。
其它
除了以上几个类别,还有一些书籍值得推介。
比如《The Art of Unix Programming
》,主要介绍了Unix系统领域中的设计开发哲学、思想文化体系以及社群文化等,覆盖面非常广。书中的一些内容和《Revolution OS
》有相似之处,大家可以自己印证一下。对于这本书,我们也
完全可以把它当做小说或者历史书来看,可以躺在床上看,也可以瘫在沙发上看,或者像怪怪
那样坐在马桶上看,总之,不必一定要端坐在书桌前。
《Computer Systems: A Programmer's Perspective
》
很多人都推荐过,这是一本非常经典的计算机体系方面的教材。CSAPP的内容基础全面,讲解简明扼要,易于理解,仔细读完之后对理清计算机体系结构甚至是
Linux内核都非常有帮助的。虽然中文名被译为《深入理解计算机系统》(这个译名很不贴切),但相比之下,为什么会让人感觉国内的同类教材更加“深奥”
呢?也许,这就是作者功力的差距吧。
发表评论
-
HowTo: Add Jobs To cron Under Linux or UNIX?
2011-04-27 14:24 1090How do I add cron job under Lin ... -
wget下载网站目录下的所有文件
2011-04-26 14:18 2895wget是linux下命令行的下载工具,功能很强大。 ... -
用wget爬取网站
2011-04-26 14:10 3962下载单独页面: wget xxx.com/a.htm 下 ... -
从 screen 切换到 tmux
2011-04-17 12:12 1328对于各个终端控来说,screen 是几乎每天都会使用的 ... -
linux下远程管理利器-tmux
2011-04-01 20:07 1126在使用无论哪种软件 ... -
Linux 下常用的 CLI 软件
2011-04-01 19:56 938作为Linuxer,必须具备一定的CLI操作能力。有时候用 ... -
Vi删除操作大全
2011-04-01 15:04 773:%s/r//g ... -
在Linux系统下递归删除文件或目录的方法
2011-03-23 15:30 1023在linux下没有类似DOS下 del/s *.dep 的 ... -
Linux中如何让进程在后台运行
2011-03-23 11:11 880在Linux中,如果要 ... -
Linux系统信息查看命令大全
2010-09-03 14:05 789系统 # uname -a ... -
linux下解压命令大全
2010-09-03 14:02 759.tar 解包:tar xvf FileName.tar ... -
最牛B的 Linux Shell 命令(四)
2010-09-01 13:58 10781.查看ASCII码表 man 7 ascii ... -
使用grep恢复被删文件内容
2010-08-24 16:24 787在Unix/Linux下,最危险的命令恐怕就属rm命令了,每次 ... -
最牛B的 Linux Shell 命令(三)
2010-08-23 17:40 10951. 更友好的显示当前挂 ... -
最牛B的 Linux Shell 命令(二)
2010-08-23 16:57 8601.用你最喜欢的编辑器来敲命令 command < ... -
最牛B的 Linux Shell 命令(一)
2010-08-20 15:11 9341.以SUDO运行上条命令 $ s ... -
Cygwin 的轻量级替代品 Gow: 可让你在 Windows 上使用 Linux 命令
2010-08-20 11:09 1124如果你是 Linux 及 Windows 的双料用户,而且是深 ... -
第二部分 Linux 文件、目录与磁盘格式 - Chapter 9 文件的压缩与打包
2009-08-24 16:45 908Chapter 9 文件的压缩与打 ... -
第二部分 Linux 文件、目录与磁盘格式 - Chapter 7 Linux文件和目录管理
2009-08-19 17:46 1078# 目录与路径 * 相对路径与绝对路径 (略) ... -
第二部分 Linux 文件、目录与磁盘格式 - Chapter 6 linux的文件属性与目录配置
2009-08-10 14:42 1158# 文件属性 Linux 文件的基本属性就有九个,分别是 o ...
相关推荐
linux系统调整分区大小,用惯了传统调整硬盘工具的人可能会认为文件系统和硬盘的分区之间是统一的,实际上他们之间并不是完整的整体(这也就是为什么BSD可以在一个硬盘分区里面制作多个文件系统分区)。想像一下带有...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...
《UNIX环境高级编程》是 Unix/ Linux 程序员案头必备的一本书籍。...哦,忘了告诉大家,上次 CNN 采访 Google 总裁佩林的时候,水煮鱼看到佩林的书架上就有这本书的英文版,可见它真的是一本全球开发者必备的一本书。
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...
《UNIX环境高级编程》是 Unix/ Linux 程序员案头必备的一本书籍。...哦,忘了告诉大家,上次 CNN 采访 Google 总裁佩林的时候,水煮鱼看到佩林的书架上就有这本书的英文版,可见它真的是一本全球开发者必备的一本书。
Koodo Reader 是一个跨平台的...支持目录,书签,笔记,书摘,书架,标签 自定义字体,字体大小,行间距,段落间距,阅读背景色,文字颜色,屏幕亮度,文字下划线、斜体、文字阴影、字体粗细 黑夜模式和主题色设置
Koodo Reader 是一个跨平台的...支持目录,书签,笔记,书摘,书架,标签 自定义字体,字体大小,行间距,段落间距,阅读背景色,文字颜色,屏幕亮度,文字下划线、斜体、文字阴影、字体粗细 黑夜模式和主题色设置
可在Mac,Linux或Windows上使用docker启动Alma Inventory API设置。 可以在以下位置找到该应用程序的详细信息及其运行方式: : 设置 对于生产用途,应将此应用程序部署到您所在机构PHP Web服务器环境中。 该存储库...
2.建议安装宝塔linux系统环境,搭建网站在伪静态加入文件夹tool下的nginx.conf内容: if (!-e $request_filename) { rewrite ^/(.*) /index.php?s=$1 last; } 3.搭建好之后直接打开你的网址,按照提示填写...
操作系统:LInux、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信...
5、书架功能 7、评论功能 8、会员功能 9、最近阅读功能 10、顶踩功能 11、小说管理功能 12、自适应小说阅读器 13、模版标签功能 14、用户管理 15、模版编辑 16、在线升级 17、API接口 18、支持小说多条件筛选 19、...
学习DOS不仅可以使你解决一些常见的故障,并且可以提高你对事物的探索能力,同时也为学习Linux、UNIX等操作系统打下了一定的基础。随着Windows系统的普及,书店书架上的DOS书籍渐渐地被Windows书籍所替代,使得人们...