适合程序员的linux书籍_程序员的linux书籍 - CSDN
  • [整理]程序员一生必读的30本书

    万次阅读 多人点赞 2017-01-05 03:21:48
    程序员一生必读的30本书

    1. 《代码大全》(第二版)

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者:  [美]史蒂夫·迈克康奈尔

    第2版的《代码大全》是著名IT畅销书作者史蒂夫·迈克康奈尔11年前的经典著作的全新演绎:第2版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。这本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。这本书对经验丰富的程序员、技术带头人、自学的程序员及几乎不懂太多编程技巧的学生们都是大有裨益的。可以说,无论是什么背景的读者,阅读这本书都有助于在更短的时间内、更容易地写出更好的程序。

     

    2. 《程序员修炼之道》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

     

    作者: Andrew Hunt /David Thomas 

    《程序员修炼之道》由一系列的独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术。利用许多富有娱乐性的奇闻轶事、有思想性的例子以及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。无论你是初学者,是有经验的程序员,还是软件项目经理,本书都适合你阅读。

     

    3. 《计算机程序的构造和解释》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: Harold Abelson/ Gerald Jay Sussman / Julie Sussman 

    《计算机程序的构造和解释(原书第2版)》1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,1996年修订为第2版。在过去的二十多年里,《计算机程序的构造和解释(原书第2版)》对于计算机科学的教育计划产生了深刻的影响。第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。

     

    4. 《C程序设计语言》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: (美)Brian W.Kernighan / (美)Dennis M. Ritchie 

    在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书原著即为C语言的设计者之一DennisM.Ritchie和著名计算机科学家BrianW.Kernighan合著的一本介绍C语言的权威经典著作。我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。原著第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,World"程序就是由本书首次引入的,现在,这一程序已经成为众多程序设计语言入门的第一课。

    原著第2版根据1987年制定的ANSIC标准做了适当的修订.引入了最新的语言形式,并增加了新的示例,通过简洁的描述、典型的示例,作者全面、系统、准确地讲述了C语言的各个特性以及程序设计的基本方法。对于计算机从业人员来说,《C程序设计语言》是一本必读的程序设计语言方面的参考书。

     

    5. 《算法导论》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: [美] ThomasH.Cormen / Charles E.Leiserson / Ronald L.Rivest / Clifford Stein 

    这本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。书中专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。此书还介绍了对强连通子图算法正确性的证明,对哈密顿回路和子集求和问题的NP完全性的证明等内容。全书提供了900多个练习题和思考题以及叙述较为详细的实例研究。

     

    6. 《重构:改善既有代码的设计》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: Martin Fowler 

    重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。

    本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书最初出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。

     

    7. 《设计模式》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: [美] ErichGamma / Richard Helm / Ralph Johnson / John Vlissides 

    这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。

    书中涉及的设计模式并不描述新的或未经证实的设计,只收录了那些在不同系统中多次使用过的成功设计。

     

    8. 《人月神话》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: [美] 弗雷德里克·布鲁克斯 

    作者为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。书中的内容来自布鲁克斯在IBM公司System360家族和OS360中的项目管理经验。初版的20年后,布鲁克斯重新审视了他原先的观点,增加了一些新的想法和建议。新增加的章节包括:原著中一些核心观点的精华;在经过了一个时代以后,Brooks博士对原先观点新的认识;1986年的经典文章《没有银弹》;对1986年所下论断(在10年内不会出现银弹)现在的认识。

     

    9.《计算机程序设计艺术》(共5册)

    程序员一生必读的30本书 - 远行的风 - 风的驿站

     作者: Donald E.Knuth 

    《计算机程序设计艺术》重译自DonaldE. Knuth的三卷著作:"The Art of Computer Programming: 1. Fundamental Algorithms;2. Seminumerical Algorithms; 3. Sorting andSearching";三卷中文名为《基本算法》、《半数值算法》及《排序与查找》。本书内容博大精深,作者因为三卷书获得美国计算机协会1974年图灵奖(该奖被国际公认为计算机科学领域的最高奖项)。

     

    10. 《编译原理》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: Alfred V. Aho / Monica S.Lam / Ravi Sethi /Jeffrey D. Ullman 

    《编译原理》全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,《编译原理》进行了全面修订,涵盖了编译器开发方面最新进展。每章中都提供了大量的实例及参考文献。

     

    11. 《深入浅出设计模式》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: 弗里曼 

    《深入浅出设计模式》(影印版)的编写运用许多最新的研究,包括神经生物学、认知科学以及学习理论,这使得《深入浅出设计模式》(影印版)能够将这些设计模式深深地烙印在你的脑海中,不容易被遗忘。你将会更擅长于解决软件设计中的问题,并能够和你的团队成员用模式的语言来更好地沟通。

     

    12.《哥德尔、艾舍尔、巴赫书:集异璧之大成》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: [美] 侯世达 

    集异璧-GEB,是数学家哥德尔、版画家艾舍尔、音乐家巴赫三个名字的前缀。《哥德尔、艾舍尔、巴赫书:集异璧之大成》是在英语世界中有极高评价的科普著作,曾获得普利策文学奖。它通过对哥德尔的数理逻辑,艾舍尔的版画和巴赫的音乐三者的综合阐述,引人入胜地介绍了数理逻辑学、可计算理论、人工智能学、语言学、遗传学、音乐、绘画的理论等方面,构思精巧、含义深刻、视野广阔、富于哲学韵味。

    中译本前后费时十余年,译者都是数学和哲学的专家,还得到原作者的直接参与,译文严谨通达,特别是在原作者的帮助下,把西方的文化典故和说法,尽可能转换为中国文化的典故和说法,使这部译本甚至可看作是一部新的创作,也是中外翻译史上的一个创举。

     

    13. 《代码整洁之道》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: [美]Robert C.Martin 

    软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。《代码整洁之道》提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,《代码整洁之道》作者给出了一系列行之有效的整洁代码操作实践。这些实践在《代码整洁之道》中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

    《代码整洁之道》阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。

     

    14. 《EffectiveC++》和《More Effective C++》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: [美]ScottMeyers 

    《EffectiveC++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则,每一条准则描述一个编写出更好的C++的方式。每一个条款的背后都有具体范例支撑。第三版有一半以上的篇幅是崭新内容,包括讨论资源管理和模板(templates)运用的两个新章。为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(designpatterns)和多线程(multithreading)。

    《EffectiveC++》的重要特征包括:

    ·高效的classes、functions、templates 和inheritance hierarchies(继承体系)方面的专家级指导。

    ·崭新的 TR1标准程序库功能应用,以及与既有标准程序库组件的比较。

    ·洞察C++和其他语言(例如Java、C#、C)之间的不同。此举有助于那些来自其他语言阵营的开发人员消化吸收 C++ 式的各种解法。

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: Scott Meyers 

    MoreEffectiveC++的重点包括:

    ·经过验证的一些用来改善程序效率的方法,包括尖锐而犀利地检验C++语言特性所带来的时间和空间上的成本

    ·广泛描述C++专家所使用的高阶技术,包括placement new,virtualconstructors,smart pointers,reference counting,proxy classes,double-dispa

    15. 《编程珠玑》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: JonBentley 

    本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者JonBentley以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。.

    多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位列前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师JonBentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,最终结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。..

    在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以C/C++语言编写,不仅有趣,而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。

     

    16. 《修改代码的艺术》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: MichaelFeathers 

    我们都知道,即使是最训练有素的开发团队,也不能保证始终编写出清晰高效的代码。如果不积极地修改、挽救,随着时间流逝,所有软件都会不可避免地渐渐变得复杂、难以理解,最终腐化、变质。因此,理解并修改已经编写好的代码,是每一位程序员每天都要面对的工作,也是开发程序新特性的基础。然而,与开发新代码相比,修改代码更加令人生畏,而且长期以来缺乏文献和资料可供参考。

    本书是继《重构》和《重构与模式》之后探讨修改代码技术的又一里程碑式的著作,而且从涵盖面和深度上都超过了前两部经典。书中不仅讲述面向对象语言(Java、C#和C++)代码,也有专章讨论C这样的过程式语言。作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等),与解依赖技术和大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,而且常常发前人所未发。书中处处体现出作者独到的洞察力,以及多年开发和指导软件项目所积累的丰富经验和深厚功力。通过这部集大成之作,你不仅能掌握最顶尖的修改代码技术,还可以大大提高对代码和软件开发的领悟力。

     

    17.《编码:隐匿在计算机软硬件背后的语言》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: [美] 佩措尔德(Charles Petzold) 

    本书讲述的是计算机工作原理。作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。更重要的是,你会因此而获得对计算机工作原理较深刻的理解。这种理解不是抽象层面上的,而是具有一定深度的。

     

    18. 《禅与摩托车维修艺术 /Zen and the Art of Motorcycle  Maintenance》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

     

    作者: (美)罗伯特·M.波西格

    在一个炎热的夏天,父子两人和约翰夫妇骑摩托车从明尼苏达到加州,跨越美国大陆,旅行的过程与一个青年斐德洛研修科学技术与西方经典,寻求自我的解脱,以及探寻生命的意义的过程相互穿插。一路上父亲以一场哲学肖陶扩的形式,将见到的自然景色,野外露营的经历,夜晚旅店的谈话,机车修护技术等等日常生活与西方从苏格拉底以来的理性哲学的深入浅出的阐述与评论相结合,进行了对形而上学传统的主客体二元论的反思,以及对科学与艺术,知识与价值,古典主义与浪漫主义,精神与物质,机械论与神秘主义,西方与东方等西方二分法划分下的事物间的关系的思考。并潜入自己的过去,探寻在现代文明下自己精神的分裂的起源,完成了一次自我心灵与人类文明的探索。

     

    19. 《Peopleware /人件集:人性化的软件开发》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: Larry L.Constantine

    《人件集:人性化的软件开发》是人件领域中的经典著作,以专题的形式探讨了软件开发中的人的因素。本书共分九个部分:第一部分介绍团队如何开展工作以及如何为开发更好的软件而更好地工作;第二部分涉及软件开发人员的不同观点;第三部分探讨团队组织和开发的问题;第四部分探讨开发者与其使用的工具之间的关系;第五部分针对提高软件质量提出了建议;第六部分着眼于软件可用性和用户界面设计问题;第七部分解释在用户界面设计和软件可用性方面的相同之处;第八部分探讨软件在沟通中涉及的一些话题;第九部分论述软件开发中的组织文化。

    本书的许多内容收自作者在多本知名计算机杂志的人件专栏文章。本书适合所有开发并使用软件的设计人员、开发人员和管理人员阅读。

     

    20. 《Coders atWork / 编程人生》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

     

    作者: Peter Seibel

    界顶尖的程序员是怎么走上编程道路的?

    他们的编程工作创造和改变了人类历史,在这一过程中都有哪些经验和教训?

    他们对计算机软件行业的过去、现在和未来有什么独到的看法和见解?

    他们对培养、发现、选拔、面试优秀的程序员有什么建议?

    放下手头的工作,听听这些软件先驱们的故事和建议,眼界可以更开阔,思路可以更清晰,方向可以更明确,人生可以更精彩。

    作者PeterSeibel采访了下面这15位世界级编程大师,本书是他在近80个小时的访谈录音基础上整理汇编而成的。

    · JamieZawinski:Lisp程序员,XEmacs开发者,Netscape浏览器和Mozilla核心开发者。

    · BradFitzpatrick:书中唯一的80后,LiveJournal和memcached开发者。现效力于Google。

    · DouglasCrockford:JavaScript权威,JSON之父。现任Yahoo架构师。

    · BrendanEich:JavaScript之父。Mozilla公司CTO。

    · JoshuaBloch:如果说Gosling是Java之父,那Bloch就是使Java真正成熟的教父,Java 2到5的核心架构师。现为Google首席Java架构师。

    · JoeArmstrong:Erlang和OTP(开放电信平台)框架之父。

    · Simon PeytonJones:Haskell先驱。ACM会士。现为微软剑桥研究院研究员。

    · PeterNorvig:Google研发总监。ACM会士。

    · GuySteele:精通多门语言,Common Lisp和Scheme开发者之一,Java语言规范作者之一,CommonLisp、Fortran、C、ECMAScript和Scheme等语言标准化委员会成员。高性能科学计算的语言Fortress设计者。ACM会士,美国工程院院士。Sun公司院士。

    · DanIngalls:与Alan Kay合作开发了Smalltalk,是该语言的真正实现者。现为Sun公司杰出工程师。

    · L. PeterDeutsch:JIT(即时)编译技术发明者之一,PostScript文件浏览器GhostScript的作者。ACM会士。Sun公司院士。

    · KenThompson:图灵奖得主。Unix之父。UTF-8 Unicode编码设计者。

    · FranAllen:图灵奖第一位女得主。编译技术公认权威。IEEE院士,ACM会士,美国工程院院士。IBM院士。

    · BernieCosell:Internet奠基人,ARPANET最早的路由计算机IMP设计者之一。

    · DonaldKnuth:多卷本经典巨著《计算机程序设计艺术》的作者,排版软件TeX的作者,图灵奖得主。

     

    21. 《Surely You’reJoking, Mr. Feynman! / 别闹了,费曼先生!》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: RichardFeynman

    费曼得过诺贝尔奖,是现代最伟大的理论物理学家之一。但他同时也可能是历史上唯一被按摩院请去画裸体画、偷偷打开放着原子弹机密文件的保险箱,在巴西桑巴乐团担任鼓手的科学家。他曾跟爱因斯坦和波尔等大师讨论物理问题,也曾在赌城跟职业赌徒研究输赢机率。

     

    22. 《EffectiveJava 中文版》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: (美)JoshuaBloch

    本书介绍了在Java编程中57条极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。通过对Java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮的高效的代码。

    本书中的每条规则都以简短、独立的小文章形式出现,这些小文章包含了详细而精确的建议,以及对语言中许多细微之处的深入分析,并通过例子代码加以进一步说明。贯穿全书的是通用的语言用法的设计模式,以及一些具有启发意义的技巧的技术。

     

    23. 《Patterns ofEnterprise Application Architecture / 企业应用架构模式》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

     

    作者: Martin Fowler

    《企业应用架构模式》作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。《企业应用架构模式》获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。《企业应用架构模式》分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是《企业应用架构模式》的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并配以详细的Java代码或C#代码示例。此外,整《企业应用架构模式》中还用了大量UML图来进一步阐明有关概念。

    《企业应用架构模式》是为致力于设计和构建企业应用的软件架构师、设计人员和编程人员而写的,同时也可作为高等院校计算机专业及软件学院相关课程的参考教材。

     

    24. 《The LittleSchemer》和《The Seasoned Schemer》nmiranda(尚无中文版)

    程序员一生必读的30本书 - 远行的风 - 风的驿站

     

    作者: Daniel P.Friedman / Matthias Felleisen

    This delightfulbook leads you through the basic elements of programming in Scheme (a Lispdialect) via a series of dialogues with well-chosen questions and exercises.Besides teaching Scheme, The Little Schemer teaches the reader how to thinkabout computation. The authors focus on ten essential concepts of thinkingabout how to compute and demonstrate how to apply these concepts in inventiveways. The Little Schemer is an excellent book both for the beginner and for theseasoned programmer.

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: Daniel P.Friedman / Matthias Felleisen   

     drawings byDuane Bibbyforeword and afterword by Guy L. Steele Jr.The notion that"thinking about computing is one of the most exciting things the humanmind can do" sets both The Little Schemer (formerly known as The LittleLISPer) and its new companion volume, The Seasoned Schemer, apart from otherbooks on LISP. The authors' enthusiasm for their subject is compelling as theypresent abstract concepts in a humorous and easy-to-grasp fashion. Together,these books will open new doors of thought to anyone who wants to find out whatcomputing is really about. The Little Schemer introduces computing as anextension of arithmetic and algebra;things that everyone studies in gradeschool and high school. It introduces programs as recursive functions andbriefly discusses the limits of what computers can do. The authors use theprogramming language Scheme, and interesting foods to illustrate these abstractideas. The Seasoned Schemer informs the reader about additional dimensions ofcomputing: functions as values, change of state, and exceptional cases. TheLittle LISPer has been a popular introduction to LISP for many years. It hadappeared in French and Japanese. The Little Schemer and The SeasonedSchemer areworthy successors and will prove equally popular as textbooks for Schemecourses as well as companion texts for any complete introductory course inComputer Science.

     

    25. 《交互设计之路》(TheInmates Are Running The Asylum: Why  High Tech Products Drive Us Crazy andHow to Restore the Sanity》)

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者:Alan Cooper

    本书是基于众多商务案例,讲述如何创建更好的、高客户忠诚度的软件产品和基于软件的高科技产品的书。本书列举了很多真实可信的实际例子,说明目前在软件产品和基于软件的高科技产品中,普遍存在着“难用”的问题。作者认为,“难用”问题是由这些产品中存在着的高度“认知摩擦”引起的,而产生这个问题的根源在于现今软件开发过程中欠缺了一个为用户利益着想的前期“交互设计”阶段。“难用”的产品不仅损害了用户的利益,最终也将导致企业的失败。本书通过一些生动的实例,让人信服地讲述了由作者倡导的“目标导向”交互设计方法在解决“难用”问题方面的有效性,证实了只有改变现有观念,才能有效地在开发过程中引入交互设计,将产品的设计引向成功。

    本书虽然是一本面向商务人员而编写的书,但也适合于所有参与软件产品和基于软件的高科技产品开发的专业人士,以及关心软件行业和高科技行业现状与发展的人士阅读。

     

    26. 《Why’s(Poignant) Guide to Ruby 》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者:why the lucky stiff 

    The book isunusual among programming books in that it includes quite a lot of strangehumour and narrative side tracks which are sometimes completely unrelated tothe topic. Many motifs have become inside jokes in the Ruby community, such asreferences to the words "chunky bacon". The book includes manycharacters which have become popular as well, particularly the cartoon foxesand Trady Blix, a large black feline friend of why's, who acts as a guide tothe foxes (and occasionally teaches them some Ruby).    

     

    27.《Unix编程艺术》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: Eric S.Raymond

    本书主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一EricS.Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为本书贡献了宝贵的内容。本书内容涉及社群文化、软件开发设计与实现,覆盖面广、内容深邃,完全展现了作者极其深厚的经验积累和领域智慧。

     

    28. 《Practices ofan Agile Developer / 高效程序员的45个习惯:敏捷开发修炼之道》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

     

    作者: VenkatSubramaniam / Andy Hunt  

    “书中‘切身感受’的内容非常有价值——通过它我们可以做到学有所思,思有所悟,悟有所行。”

    ——Nathaniel T.Schutta,《Ajax基础教程》作者

    “此书通过常理和经验,阐述了为什么你应该在项目中使用敏捷方法。最难得的是,这些行之有效的实战经验,竟然从一本书中得到了。”

    ——MatthewJohnson,软件工程师

    十年来,软件行业发生了翻天覆地的变化。敏捷方法大行其道,测试和测试驱动开发在很多开发人员的工作中扮演着重要的角色。作为一名程序员,你应该培养怎样的素质,方能对多变的环境应对自如,始终立于不败之地?

    本书简明实用、见解深刻,总结了高效程序员在开发过程中的45个个人习惯、思想观念和方法,有助于开发人员在开发进程、编码工作、开发者态度、项目和团队管理,以及持续学习等5个方面积极修炼。通过学习这些内容,养成这些好的习惯,你可以极大地提升自己的编程实力,更快速、更可靠地交付更高质量的软件,从而成为真正的高效程序员。

     

    29. 《Test-DrivenDevelopment by Example. / 测试驱动开发》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

    作者: Kent Beck

    《测试驱动开发》(中文版)设想把编程看成是转动曲柄从井里提一桶水上来的过程。如果水桶比较小,那么仅需一个能自由转动的曲柄就可以了。如果水桶比较大而且装满水,那么还没等水桶全部被提上来你就会很累了。你需要一个防倒转的装置,以保证每转一次可以休息一会儿。水桶越重,防倒转的棘齿相距越近。测试驱动开发中的测试程序就是防倒转装置上的棘齿。一旦我们的某个测试程序能工作了,你就知道,它从现在开始并且以后永远都可以工作了。相比于测试程序没有通过,你距离让所有的测试程序都工作又近了一步。现在我们的工作是让下一个测试程序工作,然后再下一个,就这样一直进行。分析表明,要编程解决的问题越难,每次测试所覆盖的范围就应该越小。

     

    30. 《Don’t Make MeThink / 点石成金:访客至上的网页设计秘笈》

    程序员一生必读的30本书 - 远行的风 - 风的驿站

     

    作者: [美]史蒂夫·克鲁克 

    可用性设计是Web设计中最重要也是最困难的一项任务。《点石成金》的作者根据自己多年从业的经验,剖析用户的心理,在用户使用的模式、为浏览进行设计、导航设计、主页布局、可用性测试等方面提出了许多独特的观点,并给出了大量简单、易行的可用性设计的建议。这本书短小精悍,语言轻松诙谐,书中穿插大量色彩丰富的屏幕截图、趣味丛生的卡通插图以及包含大量信息的图表,使枯燥的设计原理变得平易近人。

    此书适合从事Web设计和Web开发的技术人员阅读,特别适合为如何留住访问者而苦恼的网站/网页设计人员阅读。

    展开全文
  • 黑马程序员 linux从入门到精通配套笔记 黑马程序员 linux从入门到精通配套笔记
  • 中国Linux程序员生存现状

    千次阅读 2012-01-06 15:17:39
    Linux,在很多人看来,是一个既熟悉又陌生的名词,好像时时在我们的...不过,当我们为C#还是Java谁更有前途争论的不亦乐乎的时候,希望视线中不要忽视还有一批在Linux上做开发和研究的程序员。虽然相对于Windows平台

    Linux,在很多人看来,是一个既熟悉又陌生的名词,好像时时在我们的周围,但又抓不到它真实的一面。在我们的印象中,Linux同着网络经济的泡沫息息相关。随着网络经济的江河日下,Linux的声音也低沉了下来,只是偶尔挥动几下手臂,便又消失的无影无踪。不过,当我们为C#还是Java谁更有前途争论的不亦乐乎的时候,希望视线中不要忽视还有一批在Linux上做开发和研究的程序员。虽然相对于Windows平台的开发者数量,他们少的可怜,但他们也是一股新力量,同样在为中国软件产业的发展创造着价值。现在就让我们走近这些Linux程序员,了解他们的工作和内心世界吧!

    中国有多少Linux程序员?他们收入高吗?

    谈到Linux程序员的数量,我们很难得到确切的数据。实际上,从宏观上来讲,单以自由软件的范畴,有很多使用Perl、PHP等脚本语言开发的程序员,这些程序能够在Linux系统平台上运行。但大家认为做这些工作的还不能算是Linux程序员,因为这些开发往往也是在Windows平台上进行的。除去此种类型的程序员,真正的Linux程序员的便寥寥无几了。有人这样计算:国内拥有一百名左右开发人员的Linux软件公司不过几家,比如红旗、中软、TurboLinux、冲浪等。除此之外,还有十家左右的冠以Linux名称的小公司,这些公司的程序员一般不超过二三十人,此外还有一些没有使用Linux名称,但事实上也部分从事Linux相关开发的公司,而这样的公司也不会超过几十家。

    当然除了公司之外,还有很大一部分做Linux开发研究的集中高等院校,比如中科院、清华大学、北大大学、浙江大学,还有杭州理工大学等。因为Linux在很大层面上仍是具有科研价值的载体,另一方面,这些学校由于历史的原因或者同国外的Linux机构有很好的合作关系,还有学校也开设了相应的课程。这些院校也是Linux技术发展最为迅速,气氛最为活跃的场所,无论是Linux的讲座还是沙龙都会吸引众多学生和程序员的参与。

    从互联网上看,国内最大的Linux论坛LinuxForum有会员五万名,除去很大一部分参与的爱好者,有人认为国内Linux程序员的数目不超过一万。既然做linux开发的程序员数目很少,物以稀为贵,自然他们的收入也高一些。但绝大部分Linux公司现在还没有盈利,而且随着Dot Com经济的破灭,这些公司也不可能支付天价的工资,所以在我们的采访中,了解到高出的程度也是非常有限的,有位市场人员估计同等水平的开发人员,大概Linux比Windows平台做开发的工资要高30%左右。

    Linux程序员在做什么?

    就此问题我们采访了国内几家最大的Linux软件厂商。红旗Linux嵌入事业部高级经理魏永明说:“公司现在的开发方向有几个:系统安全产品、服务器软件、嵌入式软件开发,此外还有桌面的Linux系统,而嵌入式软件开发部门的人员是最多的。”TurboLinux公司的市场负责人说他们现在的主要在做Linux中文化产品和相应的解决方案,比如Mail和Web系统等,另外也从事一些对操作系统核心的优化、调整,但具体到操作系统的核心机制研究,一般主要是其公司的研究机构在国外做。

    除了这些在公司接触到Linux开发的程序员之外,很多人也在做一些项目的开发。由于Linux属于自由软件(OpenSource)的范畴,所以这些项目也同国际上的OpenSource机构有密切的合作关系。比如魏永明现在就在做一个MiniGUI的项目,此外有国防科技大学的章文嵩也在做一个有国际影响的项目LVS(Linux集群系统),在这些项目的周围,往往团结着很多的Linux程序员,他们从中学习到了很多知识,并以此为乐。

    实际上,国内Linux开发的方向现在仍然存在一些问题,最重要的就是技术和业务方向不专一。在这方面,美国和德国公司要成熟的多,也比我们踏实,每个公司都“术业有专攻”,比如美国HardHat公司,就专门研究Linux嵌入式操作系统的基本系统,并凭此牢牢把握住了自己的技术优势。而芬兰的一家公司Troll TECH就专注于做嵌入式系统的操作界面QT,此外还有很多人都知道的Opera公司也将自己的注意力集中到嵌入操作系统中的浏览器技术。而国内现在还缺少做Linux开发的专业化公司,现实的情况是,很多公司大包大揽,但最终什么也没有做成。

    Linux程序员如何提高自己的技术水平?

    Linux出现的时间很晚,而Linux真正进入到应用层,尤其是进入中国的时间也就是在一九九八年底左右。没有时间和积累,任何事物都不可能完美的发展,所以有人说中国Linux处于初级的初级阶段。在这种现实情况下,很难找到更多高质量的书籍,也没有更多好的老师,Linux程序员的学习途径有哪些呢?在我们采访中,深深体会到了自力更生的含义,也再次领略到了网络带给开发者的好处。

    “国内Linux程序员数目很少,自然圈子也很小。这样也就要求我们不得不从内部更好的挖掘潜能。”在Linux软件公司中,内部会有一些做法,除了内部网上的一些技术交流,他们还经常座谈,某人在某个方面技术有一定的特长或者心得体会,就会上台给大家讲。“此外我们经常性的要求每个人都讲讲自己最近遇到的问题,让所有人都参与解决。这样不仅可以提高大家的技术水平,还凝聚了开发团队。”

    “在公司内部,做项目或者产品开发的过程中,我们也会着重的使用一些软件过程控制方法来促进技术提升。比如有一种软件工程方法Extreme Programming(译:编程风暴或极度编程),其中有几种很好的方法。比如Pair Programming,就是成对编程,从严格意义上讲,这种方法要求两个人在同一台机器上、同一个键盘前、完成同一项开发。而我们把这种方法简化为一种学习方法,并制定了一个规定,就是要求水平比较高的程序员每周都要带领另外的程序员,利用一个或者两个工作时间来做同一件事情,这个方法是很有效的。”

    从外部交流方面,Linux程序员主要参加一些民间的交流团体,比如非常有名的AKA组织。这个组织最早是由清华大学发起、以信息技术研讨为主的协会。他们去年做了两期面向大众的Linux技术培训,并得到了蓝点和IBM的赞助,效果非常不错。现在转向了面向Linux专业的程序员和爱好者的团体。他们举办的讲座也越来越专业,一般采用专题的形式,每周一次,主要讲述Linux内核方面的技术,文件管理等等。每次讲座,能容纳数百人的教室都座无虚席,讲座地点也主要集中在北大,清华,或者中科院。还有一种就是沙龙的形式,在北京大学有一个积极参与的AKA的成员,他经常帮助找场地来举行聚会。另外还有像LinuxForum这样的论坛或者IBM的Linux技术交流站点,很多Linux程序员也经常写一些总结性的技术文章,相互交流。”

    不过在我们的采访中,发现国内大部分Linux程序员和国外的交流非常少,这是我们做的比较弱的一项。要知道Linux起源于国外,Linux技术发展的最成熟的也在国外,如何能更好的同国外的技术同步,应该是每个Linux程序员感到非常头疼的问题,而这个问题的产生想来同国内程序员英文语言的交流能力差有密切的关系。自力更生不是坏事,但学学“拿来主义”应该更有好处!

    中国Linux开发氛围如何?

    一般说来,国外自由软件的氛围非常的好,比如一个人去做某个自由软件项目,很快周围就会聚集一些人关注,并且会帮助他做版本的检错和测试。反观国内,魏永明说自己在开始做MiniGui项目的时候,很长一段时间仍然还是一个人做核心的工作,虽然有一些人也问一些问题,但从总体上看,受关注的程度同国外是没有办法相比的。没有人花费时间和精力来帮他做测试或者编写一些文档的工作,顶多就是写一个心得体会,而这样的人也少的可怜。

    不过目前这种情况正在逐渐好转,国内越来越多的人开始关注自由软件了。“国内整个Linux开发氛围的改进是需要很长的一段时间的。但现在可以看到一点的曙光了。现在只要我们发行一个新版本,立刻就有一些人下载,并帮助测试Bug,发现了错误,就给我写mail,一些用户还写了很多使用的文章,探讨如何解决问题。这样我们在下一个版本发布的时候,便会把解决这些问题并修改我们的核心。所以我认为,自由软件的氛围正在向好的方面转变。”

    谈到软件的协作开发,魏永明认为国内的协同开发还是比较原始的。国外的做法一般是用CVS,把CVS服务器建在网络上,然后大家协同开发,随时可以保持同步。但国内很多是在公司内部有CVS,发布之后,面向大众发放测试的过程中,只是打包成程序之后给用户使用测试,并没有使用CVS来进行控制。“所以我们下一步,准备等版本稳定之后,建立外部的CVS服务器。”

    国内程序员之间交流还有一个奇怪的现象:就是大家都喜爱论坛。但在国外,使用最多的是两种途径:一种是邮件列表,一种是新闻组。国内的开发者并不太喜欢这两种方式。“当然在国内找一种免费的邮件列表服务是很困难的。我曾经找过很多,都不好用,后来我在美国一个网站上建立了一个邮件列表,但很少有人参与进来。但当我开一个论坛的时候,很多人都会在上面发言,踊跃参与。”这个现象后面的深层原因是什么呢?

    Linux开发技术是不是很难?

    TurboLinux公司研发部负责TurboHA开发的项目经理(TurboHA和章文嵩的LVS同属集群软件,不过LVS是负载均衡集群,TurboHA是高可用性集群,分别适用于不同类型的服务。)于潇洋认为:”linux技术的难度未必比windows高多少,实际上,linux开发也分为两个层次:第一个层次,比如做内核、中间件、或者数据库系统,这些要求对系统了解的非常清楚,C语言的功底非常扎实,对系统的开发工具链非常清楚,才能做这些工作。第二个层次就是做Linux上的应用开发,在linux中,有字符界面的开发和X下的开发,现在Linux环境下已经有了比较好的集成开发环境,也包括borland出品的kylix,如果要做应用开发的话,只要迈过了Linux命令的门槛,其他的和windows下面没有什么不同,即便是对于命令,你也会从中感受到linux的强大。比如做文本的字符串,在windows下面,必须要工具打开文本,搜索替换,但在linux下面只需要两个命令就可以实现批量的替换。我认为windows下面的程序员也很容易转移到linux下面的开发工作。任何一个程序员没有必要去害怕技术的堡垒。”

    什么样的人做Linux程序员?

    在我们采访的很多Linux程序员中,主要的有两种心态:一种是自身就看好linux的发展前景,认同linux的发展模式,尤其是自由软件的精神。他们感觉Linux有很好的优势,认为在这个平台上通过自己的努力,可以做出一些成就。而另外的便是很多人都有的游历心态,也就是打工者的心态。他们觉得做什么都一样,做Linux给的高一些,也就做这个好了。

    Linux这种精神,这种开放源代码的方式,对于哪些愿意刨根问底、喜欢钻研探索的程序员有很大的吸引力。他们认为Windows上做开发的程序员,由于所处的层面已经很高,在开放的过程中,实际上并不了解程序是如何运作的。但在基于Linux的开发中,会对系统了解的很深入。水平非常高的hacker,甚至对自己软件代码产生的二进制数据流在计算机中的运行了如指掌。

    另外一个角度上讲,Linux上的开发范围很广,无论是Web服务器,还是MySQL、PHP程序的开发,都离不开Linux。事实上,Linux已经成为了技术交流和发展的一块非常好的土壤。

    所以,如果你喜欢自由(Free)和控制(Control),如果你是一个愿意去探索新技术、新事物的程序员,那可以试着去了解Linux,从中你会发现它会给你带来很多其他平台上没有的东西。

    Linux的发展前景

    国内的Linux没有得到更好的发展,也同反盗版力度不够有一定的关系,由于反盗版的力度不够,现有的企业没有看到windows平台上潜在的资金投入,在这方面,我们要向韩国和德国等国家学习,他们从政策上对linux扶持的力度更大。当然我们国家也在积极的扶持linux的发展。

    此外诸如IBM等大公司投入资金大量的资金来从事Linux研究和推广,他们如此看中Linux,一方面是从自己发展战略考虑,因为微软对其地位产生的巨大挑战,所以要树立一个对手去挑战微软。与此同时,推广Linux也可以促进其服务器的销售,这些投入对linux的发展提供丰富的机会。

    做linux的机会要多一些,比如做windows程序员,数目众多,竞争也越来越激烈了。而相对来说,linux上做开发的程序员很少,只要你做一段时间,就可以做的很好。从提高技术实力方面讲,因为linux更接近底层,因此效果会更好的。

    “从我个人的经历看,开始大家都是由爱好者为主,但现在,专业做Linux的公司比较务实了。去年做的时候,我们还给客户一种没有实力的感觉,但现在从市场的反馈来看,国内的Linux技术提高非常快,前景非常不错,linux在未来的几年会有大的发展。”魏永明对此非常自信。


    后记:记得很多人曾经遗憾中国为什么没有诞生比尔盖茨和Linus这样的软件天才,很多人质问为什么中国的软件技术只能围绕着”中文”两个字。但看看自己的周围,很多人包括在学校期间不用担心收入,课程负担也不重,但就是很少有人参与技术的钻研中,在空闲的时候,更多的是去QQ上聊天,去论坛灌水,很少有人静下心来,花一些时间去钻研技术。Linux现在提供了我们这样一个机会,你有兴趣吗? 

    展开全文
  • 想成为一名合格的Linux程序员,要学习许多东西,所以通过经典书籍的指导,在学习过程中能够达到事半功倍的效果 1、学习Linux,最基本的能力当然是c语言的功底了,作为c语言之父的KR写的书当仁不让的是c语言中的圣经...

    想成为一名合格的Linux程序员,要学习许多东西,所以通过经典书籍的指导,在学习过程中能够达到事半功倍的效果

    1、学习Linux,最基本的能力当然是c语言的功底了,作为c语言之父的KR写的书当仁不让的是c语言中的圣经了

     《C语言程序设计》作者:Brian W. Kernighan & Dennis Ritchie。

    当然,目前大学中使用的教材一般都是谭浩强写的《C程序设计》,毕竟发明c语言的人对其有更深入的了解,本人建议有机会的话,最好读一下KR写的经典著作。

    2、数据结构是一门专业技术的基础课,学好数据结构,对一个程序员是一个很大的提升

    《数据结构》作者:严蔚敏

    3、Linux系统的

    《UNIX环境高级编程》作者:W.Richard Stevens

    4、W.Richard Stevens一生只写了三本书,都被称作经典中的经典,除了上面的一本,还有两本关于网络的书籍。

    《TCP/IP 详解》(三卷本)    作者:W.Richard Stevens

    《UNIX网络编程》(两卷本)作者:W.Richard Stevens

    5、对于较大的工程,Makefile就是必要的了,Linux程序员如果不会Makefile的话,可能不能称为一个真正地Linux程序员

    《Gnu Make》徐海兵译

    6、很多人都迷茫于链接、库的使用与原理上,比如,在使用何种gnu工具链编译内核、应用,静态链接和动态链接等问题

    《程序员的自我修养》作者:俞甲子、石凡、潘爱民

     

    展开全文
  • 程序员藏经阁——Linux兵书

    千次阅读 2014-01-13 11:24:14
    程序员藏经阁 Linux兵书 刘丽霞 杨宇 编  ISBN 978-7-121-21992-4 2014年1月出版 定价:79.00元 536页 16开 内容提要 《Linux兵书》由浅入深,全面、系统地介绍了RedHat管理技术。《Linux兵书》提供了...

    程序员藏经阁

    Linux兵书

    刘丽霞 杨宇 编  

    ISBN 978-7-121-21992-4

    2014年1月出版

    定价:79.00元

    536页

    16开

    内容提要

    Linux兵书由浅入深,全面、系统地介绍了RedHat管理技术。Linux兵书提供了大量实例,供读者实战演练。另外,作者专门为本书编写了PPT课件,以帮助读者更好地学习本书内容。

    全书分4篇共18章。第1篇为Red Hat基础入门,由浅入深地介绍了Linux的历史和不同版本,图文并茂地描述了RedHat Enterprise Linux 6的安装过程。第2篇为Red Hat初步使用,主要介绍Red Hat的软/硬件配置、软件包管理等常用功能,并对网上冲浪做了专题讲解。第3篇为RedHat编程应用,主要讲解Shell的使用和管理,以及常见的编程工具。第4篇为Red Hat高级管理,主要介绍Red Hat下对用户和进程等高级管理的相关知识,并以专题的形式介绍了FTP、DNS、MAIL及各个服务器的搭建和管理。

    Linux兵书内容丰富,深度和广度兼顾,可以作为初学者的入门指南,也可以帮助中、高级读者进一步提高系统管理水平,还可作为学习其他版本Linux或者UNIX等操作系统管理的参考书。

    目录

    第1篇  Red Hat基础入门

    第1章  抛砖引玉:Linux与开源文化   1

    1.1  什么是Linux    2

    1.2  Linux的诞生和发展  2

    1.2.1  4个概念  2

    1.2.2  Linux操作系统的诞生  3

    1.3  Linux的主要版本    4

    1.3.1  Ubuntu   4

    1.3.2  Ylmf OS4.0  5

    1.3.3  Linux Mint   5

    1.4  开源文化   6

    1.5  小结   7

    第2章  以逸待劳:安装Linux 8

    2.1  安装前的准备工作   9

    2.1.1  硬件需求 9

    2.1.2  光盘启动安装 11

    2.2  安装Linux  11

    2.3  卸载Linux  27

    2.4  登录Red Hat Linux  28

    2.4.1  图形化登录   29

    2.4.2  远程登录 29

    2.4.3  图形化环境   30

    2.5  小结   30

    第3章  无中生有:文件和磁盘管理    31

    3.1  Red HatLinux文件系统入门  32

    3.1.1  文件简介 32

    3.1.2  目录简介 33

    3.1.3  文件系统的结构   34

    3.2  文件的基本操作 36

    3.2.1  新建和删除文件   37

    3.2.2  复制和移动文件   38

    3.2.3  查看和创建文件   38

    3.3  压缩文件的生成及解压缩 40

    3.3.1  以zip命令创建.zip文件   40

    3.3.2  以unzip命令进行.zip文件的解压缩 41

    3.3.3  gzip命令的使用   41

    3.3.4  文件打包程序tar  42

    3.3.5  以compress或uncompress处理.Z文件   42

    3.3.6  图形化界面下的压缩与解压缩   43

    3.4  设置文件/目录访问权限  43

    3.4.1  权限的意义   43

    3.4.2  在图形界面下改变文件/目录的权限  45

    3.4.3  使用chmod命令修改文件/目录的访问权限    45

    3.4.4  使用命令chown改变文件/目录的所有权  47

    3.5  管理磁盘存储器 48

    3.5.1  查看系统磁盘使用情况 48

    3.5.2  用户磁盘空间管理 49

    3.5.3  磁盘分区操作 51

    3.5.4  优化Linux系统硬盘   52

    3.6  使用光盘   55

    3.6.1  光盘驱动器的设备文件 55

    3.6.2  挂载和卸载光盘   55

    3.6.3  光驱的弹出与关闭 56

    3.6.4  制作ISO文件 56

    3.6.5  刻录光盘 58

    3.7  本章知识点综合应用 60

    3.7.1  Linux文件系统的常用操作  60

    3.7.2  Linux文件的压缩包管理    61

    3.7.3  本章知识点整理   65

    3.8  小结   65

    第2篇  Red Hat初步使用

    第4章  隔岸观火:系统管理初步  66

    4.1  显示设置   67

    4.1.1  设置分辨率和色彩深度 67

    4.1.2  设置桌面 67

    4.2  硬件配置   68

    4.2.1  配置声卡 69

    4.2.2  配置网卡 70

    4.3  打印机的安装、配置和管理   73

    4.3.1  安装、配置打印机 74

    4.3.2  修改打印机配置   76

    4.3.3  管理打印机   76

    4.4  配置X Window及显卡    77

    4.5  常见硬件的检测 78

    4.5.1  中央处理器状态的检测 78

    4.5.2  硬盘物理坏道的检测   79

    4.5.3  内存的检测   81

    4.6  设置用户界面   82

    4.6.1  KDE桌面系统组成  83

    4.6.2  GNOME桌面系统    83

    4.7  本章知识点综合应用 84

    4.7.1  网络打印机的安装 85

    4.7.2  Linux下的网卡配置    91

    4.7.3  本章知识点综合整理   96

    4.8  小结   96

    第5章  李代桃僵:网上冲浪  97

    5.1  联网设置   98

    5.1.1  互联网配置向导   98

    5.1.2  拨号连接 98

    5.1.3  ISDN连接 99

    5.1.4  局域网连接   99

    5.1.5  测试网络连接 99

    5.2  浏览网页   100

    5.2.1  使用Mozilla浏览器   101

    5.2.2  使用Mozilla帮助内容 104

    5.2.3  使用Mozilla快捷键   105

    5.3  收发E-mail 105

    5.3.1  结识KMail    106

    5.3.2  KMail邮件处理功能    107

    5.3.3  KMail联系人  110

    5.3.4  KMail垃圾邮件管理    112

    5.4  下载工具   113

    5.5  网上聊天   115

    5.5.1  启动Kopete   115

    5.5.2  创建新用户   116

    5.6  本章知识点综合应用 116

    5.6.1  QQ客户端DEB格式安装 117

    5.6.2  QQ压缩包安装 119

    5.6.3  直接使用WebQQ    120

    5.6.4  本章知识点综合整理   121

    5.7  小结   121

    第6章  借刀杀人:软件包管理    122

    6.1  RPM包管理  123

    6.1.1  RPM软件包的查询  123

    6.1.2  RPM软件包的安装  126

    6.1.3  RPM软件包安装可能出现的问题  127

    6.1.4  RPM软件包的卸载  127

    6.1.5  RPM软件包的升级  128

    6.1.6  RPM软件包的验证  128

    6.1.7  Red HatLinux 的添加/删除应用程序    129

    6.2  RPM软件包的密钥管理    131

    6.2.1  下载与安装PGP    131

    6.2.2  RPM使用PGP产生签名所需的配置    132

    6.2.3  配置RPM宏   132

    6.2.4  RPM的PGP签名选项    133

    6.2.5  添加数字签名 133

    6.3  tar包管理  133

    6.3.1  tar命令语法及参数选项    133

    6.3.2  创建tar文件 135

    6.3.3  显示tar文件内容 136

    6.3.4  向tar文件中添加一个文件 137

    6.3.5  从tar文件中取出文件 137

    6.4  Linux下常用的压缩工具  138

    6.4.1  gzip压缩工具 138

    6.4.2  zip/unzip命令    140

    6.4.3  bzip2命令    144

    6.5  本章知识点整理 146

    6.6  小结   146

    第3篇  Red Hat编程应用

    第7章  连环计:Shell的使用 147

    7.1  创建和执行Shell程序   148

    7.2  变量   149

    7.2.1  给变量赋值   150

    7.2.2  访问变量 150

    7.3  位置参数   150

    7.4  内部变量   151

    7.5  特殊字符   152

    7.5.1  双引号   152

    7.5.2  单引号   153

    7.5.3  反斜杠   153

    7.5.4  反引号   154

    7.6  表达式的比较   154

    7.6.1  pdksh和bash环境下的表达式比较   154

    7.6.2  tcsh环境下的表达式比较   157

    7.7  循环语句   159

    7.7.1  for语句  159

    7.7.2  while循环语句    160

    7.7.3  until语句    160

    7.7.4  repeat语句   161

    7.7.5  select语句   161

    7.7.6  shift语句    161

    7.8  条件语句   162

    7.8.1  if语句   162

    7.8.2  case语句 163

    7.9  跳转语句   165

    7.9.1  break语句    165

    7.9.2  exit 语句    166

    7.10  函数  166

    7.11  本章知识点综合应用    167

    7.11.1  编写Shell脚本的一般流程    167

    7.11.2  Shell编程实例   168

    7.11.3  本章知识点整理  174

    7.12  小结  174

    第8章  浑水摸鱼:Linux下的编程 175

    8.1  Linux下常用的开发工具  176

    8.1.1  GCC  176

    8.1.2  CVS  176

    8.1.3  Perl 176

    8.1.4  Linux上的Delphi——Kylix    177

    8.2  Linux下的Vi文本编辑器 177

    8.2.1  Vi编辑器介绍 178

    8.2.2  启动Vi编辑器    179

    8.2.3  显示Vi中的行号  180

    8.2.4  光标移动操作 181

    8.2.5  屏幕命令 182

    8.2.6  文本插入命令 183

    8.2.7  附加(append)命令   183

    8.2.8  打开(open)命令 184

    8.2.9  文本修改命令 184

    8.2.10  退出Vi  187

    8.3  Linux的C编译器——GCC 187

    8.3.1  GCC的编译过程    188

    8.3.2  GCC的基本用法和常用选项  188

    8.3.3  使用gdb调试C程序   191

    8.3.4  编写Makefile文件    195

    8.4  Linux下的PHP编程  201

    8.4.1  PHP简介  201

    8.4.2  配置运行环境 202

    8.4.3  一个简单的PHP例子   203

    8.5  本章知识点综合应用 204

    8.5.1  Linux的C编译器实战  204

    8.5.2  LAMP开发平台环境搭建实战 207

    8.5.3  本章知识点整理   213

    8.6  小结   213

    第4篇  Red Hat高级管理

    第9章  暗度陈仓:Linux 中的进程管理    214

    9.1  Linux进程概述  215

    9.2  Linux进程原理  215

    9.2.1  Linux进程状态    216

    9.2.2  Linux进程工作模式    217

    9.3  Linux守护进程介绍  217

    9.3.1  守护进程简介 218

    9.3.2  重要守护进程介绍 218

    9.3.3  创建自己的守护进程   219

    9.4  启动Linux进程 221

    9.4.1  手工启动 222

    9.4.2  任务计划—— at命令 223

    9.4.3  在资源比较空闲的时候执行命令——  batch命令  226

    9.4.4  不断重复执行某些命令—— cron命令   226

    9.4.5  操作cron后台进程的表格——  crontab命令 226

    9.5  进程的挂起及恢复   229

    9.6  Linux进程管理  230

    9.6.1  使用ps命令查看进程状态  230

    9.6.2  使用top命令查看进程状态 234

    9.6.3  使用kill命令终止进程    235

    9.6.4  使用sleep命令暂停进程   236

    9.7  进程文件系统PROC   236

    9.8  本章知识点综合应用 238

    9.8.1  系统设计 239

    9.8.2  代码实现 239

    9.8.3  本章知识点整理   242

    9.9  小结   242

    第10章  树上开花:Linux用户与组管理    243

    10.1  用户文件和组文件  244

    10.1.1  用户账户文件—— passwd    244

    10.1.2  用户组账号文件—— /etc/group  246

    10.1.3  组账号文件—— /etc/gshadow    247

    10.1.4  使用pwck和grpck命令验证用户及组文件   248

    10.2  管理用户和用户组  250

    10.2.1  启动Linux的用户管理器  250

    10.2.2  添加新用户  250

    10.2.3  编辑用户属性    252

    10.2.4  创建用户组  253

    10.2.5  修改用户组属性  255

    10.3  命令行界面下的用户和组管理    255

    10.3.1  使用useradd命令添加用户    255

    10.3.2  使用usermod命令修改用户信息    257

    10.3.3  使用userdel命令删除用户    257

    10.3.4  使用groupadd命令创建用户组 257

    10.3.5  使用groupmod命令修改用户组属性 258

    10.3.6  使用groupdel命令删除用户组 259

    10.4  本章知识点综合应用    259

    10.4.1  以图形界面对用户账号进行创建和维护  259

    10.4.2  以文本模式对用户账号进行创建和维护  261

    10.4.3  本章知识点整理  267

    10.5  小结  267

    第11章  金蝉脱壳:DNS服务器    268

    11.1  域名原理简介  269

    11.1.1  DNS的组成   269

    11.1.2  DNS的层次结构与域名分配 270

    11.1.3  根域    271

    11.1.4  顶级域  271

    11.1.5  二级域  272

    11.1.6  常见的域名服务器地址    272

    11.2  DNS服务器的安装和配置 274

    11.2.1  获取BIND所需的安装文件 274

    11.2.2  安装DNS服务器  275

    11.2.3  设置/etc/named.conf文件 275

    11.2.4  主DNS服务器    277

    11.2.5  配置解析区文件/var/named/127.0.0    277

    11.2.6  配置/var/named/dodoknight.com.cn文件    278

    11.2.7  配置/var/named/202.202.88文件   279

    11.2.8  从DNS服务器    280

    11.2.9  高速缓存DNS 280

    11.3  DNS服务器的运行和测试 281

    11.3.1  DNS服务器的运行 281

    11.3.2  测试DNS服务器  282

    11.4  域名服务器的安全和优化    285

    11.4.1  限制BIND运行于“虚拟”根环境下 285

    11.4.2  区带(Zone)转移    289

    11.4.3  允许查询    289

    11.4.4  转发限制    290

    11.4.5  域名服务器常见问题  290

    11.5  本章知识点综合应用    290

    11.5.1  基本要求    290

    11.5.2  安装    290

    11.5.3  修改配置文件    291

    11.5.4  辅助DNS服务器配置  293

    11.5.5  日志    295

    11.5.6  本章知识点整理  296

    11.6  小结  296

    第12章  瞒天过海:邮件服务器   297

    12.1  邮件服务器Sendmail简介   298

    12.2  邮件服务器的安装与配置    299

    12.2.1  安装Sendmail    299

    12.2.2  邮件服务器的编译和优化  300

    12.2.3  启动Sendmail服务系统   302

    12.2.4  配置Sendmail    303

    12.3  使用Sendmail服务器   304

    12.3.1  建立电子邮件新账号  304

    12.3.2  设置别名    304

    12.3.3  限制单个用户邮件容量    305

    12.3.4  收取邮件—— POP3服务器安装    305

    12.3.5  收取邮件—— 启动POP3服务 305

    12.3.6  保证Sendmail的安全 306

    12.3.7  Sendmail管理工具    308

    12.3.8  Sendmail用户工具    309

    12.4  本章知识点综合应用    309

    12.4.1  服务器端的搭建  310

    12.4.2  Sendmail服务安装与配置  312

    12.4.3  POP3和IMAP的安装与配置 317

    12.4.4  客户端的搭建    319

    12.4.5  本章知识点整理  323

    12.5  小结  323

    第13章  反客为主:FTP服务器    324

    13.1  FTP服务器简介 325

    13.2  使用Vsftp服务器  325

    13.2.1  安装Vsftp服务器    326

    13.2.2  编译和安装软件  326

    13.3  启动和使用Vsftp服务器    328

    13.3.1  xinetd启动方式  328

    13.3.2  命令行方式启动  329

    13.3.3  使用Vsftp服务器    329

    13.4  配置Vsftp服务器  331

    13.4.1  配置ftpaccess文件  331

    13.4.2  配置ftphosts文件   336

    13.4.3  配置ftpservers文件 337

    13.4.4  配置ftpusers文件   337

    13.4.5  配置ftpgroups文件  338

    13.4.6  配置ftpconversions文件 338

    13.5  服务器的运行和测试    339

    13.5.1  FTP服务器的启动 339

    13.5.2  显示FTP服务器在线人数信息  339

    13.5.3  关闭FTP服务器  339

    13.5.4  FTP内部命令 339

    13.5.5  下载工具wget    341

    13.6  本章知识点综合应用    342

    13.6.1  安装Vsftpd服务软件 343

    13.6.2  FTP常规配置应用案例一   343

    13.6.3  FTP常规配置应用案例二   346

    13.6.4  本章知识点整理  348

    13.7  小结  348

    第14章  空城计:WWW服务器配置  349

    14.1  Apache的安装和启动    350

    14.2  Apache的全局环境配置  352

    14.3  Apache的主服务器配置  355

    14.4  Apache的高级管理配置  358

    14.4.1  访问存取控制    358

    14.4.2  设置Options命令    359

    14.4.3  设置Allow Override命令 360

    14.4.4  设置Order命令  360

    14.4.5  设置Allow/Deny命令 360

    14.4.6  用户访问控制    360

    14.4.7  MIME类型    362

    14.4.8  关于CGI脚本    362

    14.5  使用SSI   363

    14.5.1  编辑服务器配置文件开启SSI   363

    14.5.2  创建.htaccess文件启动SSI   364

    14.5.3  使用SSI 364

    14.5.4  使用config命令 365

    14.5.5  使用include命令    365

    14.5.6  使用echo命令   366

    14.5.7  使用fsize命令  367

    14.5.8  使用flastmod命令   367

    14.5.9  exec命令    367

    14.6  虚拟主机  368

    14.6.1  每个主机名用不同的守护进程来运行    368

    14.6.2  用一个守护进程支持所有的虚拟主机    368

    14.6.3  基于主机名的虚拟主机    369

    14.7  管理日志文件  370

    14.7.1  错误日志    370

    14.7.2  访问日志    372

    14.8  Web服务器安全——SSL  374

    14.9  图形化配置工具    376

    14.9.1  基本配置    376

    14.9.2  配置虚拟主机    376

    14.9.3  服务器配置及性能调整    379

    14.10  本章知识点综合应用   380

    14.10.1  构建测试环境   380

    14.10.2  创建虚拟机 383

    14.10.3  实例说明Apache Web服务器的配置    387

    14.10.4  本章知识点整理 392

    14.11  小结 392

    第15章  假道伐虢:远程登录管理 ——Telnet与SSH 393

    15.1  使用Telnet    394

    15.1.1  Telnet登录简介  394

    15.1.2  Telnet的工作原理    394

    15.1.3  安装和启动Telnet    395

    15.1.4  配置Telnet  396

    15.1.5  Telnet的会话示例    397

    15.2  使用SSH   398

    15.2.1  SSH介绍 398

    15.2.2  安装与启动SSH   399

    15.2.3  简单测试和使用SSH   400

    15.2.4  配置“/etc/ssh/ssh_config”文件 401

    15.2.5  配置“/etc/ssh/sshd_config”文件    402

    15.2.6  SSH的密钥管理   404

    15.2.7  使用scp远程复制文件    405

    15.2.8  使用SSH设置“加密通道”    406

    15.2.9  配置SSH的客户端    407

    15.2.10  配置SSH自动登录   408

    15.3  本章知识点综合应用    410

    15.3.1  Linux SSH安全策略一:关闭无关端口   410

    15.3.2  Linux SSH安全策略二:更改 SSH 端口  410

    15.3.3  Linux SSH安全策略三:限制 IP 登录   411

    15.3.4  Linux SSH安全策略四:使用证书登录 SSH   413

    15.3.5  本章知识点整理  414

    15.4  小结  414

    第16章  盘龙吐信:Samba服务器配置  415

    16.1  Samba服务器简介及安装 416

    16.1.1  Samba的工作原理 416

    16.1.2  Samba服务器的功能   416

    16.1.3  SMB协议 417

    16.1.4  安装Samba   417

    16.2  启动及关闭Samba服务器    418

    16.2.1  Samba的命令行启动和关闭 418

    16.2.2  在System Services中启动和关闭Samba服务 419

    16.2.3  简单测试Samba服务器    420

    16.3  配置Samba服务器的用户信息    421

    16.3.1  创建服务器待认证用户    422

    16.3.2  将用户信息转换为Samba用户信息  422

    16.3.3  用户转换    422

    16.3.4  Samba服务器和主浏览器   423

    16.4  smb.conf配置文件实例详解  423

    16.4.1  设置工作组  424

    16.4.2  设置共享Linux账户主目录    424

    16.4.3  设置公用共享目录    425

    16.4.4  设置一般共享目录    426

    16.4.5  设置共享打印机  427

    16.4.6  打印机配置相关问题  428

    16.5  一个完整的smb.conf文件实例   429

    16.5.1  global段    429

    16.5.2  homes段 432

    16.5.3  printers段  433

    16.5.4  public段    434

    16.5.5  一般共享段  435

    16.5.6  smb.conf文件的更多例子  435

    16.5.7  该配置在Windows系统下的显示结果    436

    16.6  smb.conf中的选项和特定约定    437

    16.7  测试Samba服务器  441

    16.8  Linux和Windows文件互访   442

    16.8.1  Windows客户使用Linux系统共享文件   442

    16.8.2  用smbclient工具访问局域网上的Windows系统  442

    16.8.3  用smbclient工具访问局域网上的其他系统  443

    16.8.4  用LinNeighborhood访问局域网上其他系统的共享文件    444

    16.9  本章知识点综合应用    445

    16.9.1  Samba企业实战与应用 445

    16.9.2  需求分析    446

    16.9.3  解决方案    446

    16.9.4  Samba排错   453

    16.9.5  本章知识点整理  454

    16.10  小结 454

    第17章  霸王举旗:Proxy服务器配置  455

    17.1  Proxy服务器原理简介   456

    17.2  Squid简介 457

    17.3  安装和启动Squid Server    457

    17.3.1  安装Squid Server    458

    17.3.2  启动和关闭Squid Server  458

    17.4  在客户端使用Squid Server  459

    17.4.1  在IE浏览器中设置   459

    17.4.2  在Linux浏览器中设置    460

    17.5  配置Squid Server  461

    17.5.1  配置Squid Server的基本参数 461

    17.5.2  配置Squid Server的访问控制 464

    17.5.3  配置Squid Server的简单实例 467

    17.6  配置基于Squid的透明代理  468

    17.6.1  Linux内核的相关配置 468

    17.6.2  Squid的相关配置选项 469

    17.6.3  iptables的相关配置  470

    17.7  配置多级缓存改善Proxy服务器的性能    470

    17.7.1  多级缓存(Cache)简介   470

    17.7.2  配置多级缓存    471

    17.8  Squid日志管理 472

    17.8.1  配置文件中有关日志的选项    473

    17.8.2  日志管理主文件—— accesss.conf    474

    17.9  使用Webalizer对Squid进行流量分析 475

    17.9.1  Webalizer的特点 476

    17.9.2  安装Webalizer   476

    17.9.3  配置Webalizer   476

    17.9.4  使用Webalizer   477

    17.10  小结 479

    第18章  蛟龙搅浪:数据库服务器 481

    18.1  Linux下数据库系统简介 482

    18.2  MySQL数据库系统简介   482

    18.3  MySQL数据库系统的安装 482

    18.3.1  基于源代码包的MySQL安装    482

    18.3.2  基于RPM包的MySQL安装  485

    18.3.3  在Red Hat Linux 9添加/删除程序中安装MySQL  485

    18.4  启动MySQL数据库系统  487

    18.4.1  建立MySQL的用户组和用户名  487

    18.4.2  建立MySQL的软链接  487

    18.4.3  设置用户访问权限    488

    18.4.4  启动MySQL   488

    18.5  MySQL常用操作 489

    18.5.1  连接MySQL服务器    489

    18.5.2  退出MySQL服务器    489

    18.5.3  密码管理    490

    18.5.4  增加新用户  490

    18.5.5  命令分行    491

    18.5.6  命令历史记录    491

    18.5.7  显示数据库列表  491

    18.5.8  显示数据库中的数据表    491

    18.5.9  显示数据表的表结构  491

    18.5.10  新建数据库 491

    18.5.11  新建数据库表   492

    18.5.12  删除库和表 492

    18.5.13  将表中的记录清空   492

    18.5.14  显示表中的记录 493

    18.5.15  向表中插入记录 493

    18.5.16  MySQL数据导入和备份    493

    18.6  在程序中操作MySQL数据库  494

    18.7  安装Oracle数据库系统 495

    18.7.1  安装Oracle10g的硬件条件    495

    18.7.2  下载Oracle10g的安装文件    495

    18.7.3  安装前的准备工作    495

    18.7.4  安装Oracle  496

    18.8  测试Oracle数据库系统 497

    18.8.1  使用svrmgrl测试安装是否成功    497

    18.8.2  使用sql*plus测试安装是否成功   498

    18.9  设置Oracle服务自动启动   498

    18.10  操作Oracle数据库    498

    18.10.1  创建表空间和创建用户   498

    18.10.2  删除用户   499

    18.10.3  修改用户密码   499

    18.10.4  数据导出   499

    18.10.5  数据导入   499

    18.10.6  其他数据操作   499

    18.11  在程序中操作Oracle数据库    500

    18.11.1  用C语言操作Oracle数据库  500

    18.11.2  用PHP语言访问Oracle数据库 503

    18.12  本章知识点综合应用   507

    18.12.1  C语言操作MySQL    507

    18.12.2  C语言操作Oracle   509

    18.12.3  本章知识点整理 513

    18.13  小结 513

    前言

    Red Hat EnterpriseLinux 6是目前功能最为强大的Linux服务器。作为一个类UNIX系统,它具备很好的稳定性和丰富的扩展能力,可以为中小型企业甚至某些大型企业的项目提供坚如磐石的系统支撑。它支持的服务包括数据库服务、Web服务、FTP服务、域名服务等几乎所有的企业服务,是开发和应用工程师开发软件项目的首选系统。

    笔者结合自己多年的RedHat Enterprise管理经验和心得体会,花费了一年多的时间写作了本书。希望读者能在本书的引领下跨入操作系统管理的大门,成为一名优秀的系统管理员。

    本书以大量丰富的实例,全面、系统、深入地介绍了Red Hat Enterprise Linux 6的安装和管理知识,并以大量截图贯穿于全书的讲解之中,使读者可以快速上手。本书还以专题的形式详细介绍了Red Hat Enterprise Linux 6下各种常见的服务器,如FTP、DNS、Mail的搭建和管理等。学完本书后,读者应该可以具备独立进行操作系统管理的能力。

    本书特色

    1.配备大量系统截图及PPT教学文件,学习效果好

    笔者专门编写了配合本书的PPT教学文件,以便读者可以更加轻松、直观地学习本书内容,提高学习效率。

    2.内容全面、系统、深入

    本书介绍了Red HatEnterprise Linux 6的安装、系统管理、Shell编程、服务器搭建等内容,并详细介绍了远程管理的相关内容。

    3.讲解由浅入深、循序渐进,适合各个层次的读者阅读

    本书从Red HatEnterprise Linux 6的基础开始讲解,逐步深入到Red Hat Enterprise Linux6的高级管理技术及服务应用,内容梯度从易到难,讲解由浅入深、循序渐进,适合各个层次的读者阅读,并均有所获。

    4.贯穿大量的实例和技巧,迅速提升管理水平

    本书在讲解知识点时既注重基础介绍,也以专题的形式有侧重地介绍了管理服务的相关知识,让读者更好地理解各种概念和管理技术,迅速提高管理水平。

    本书内容及体系结构

    第1篇  Red Hat基础入门(第1~3章)

    本篇主要内容包括:由浅入深地介绍了Linux的历史和不同版本,图文并茂地描述了Red Hat EnterpriseLinux 6的安装过程,使读者对该操作系统的文件和磁盘管理有了初步的了解。通过本篇的学习,读者应该能够熟练地掌握Red Hat的安装及磁盘的配置管理。

    第2篇  Red Hat初步使用(第4~6章)

    本篇主要内容包括:介绍RedHat的软/硬件配置、软件包管理等常用功能,并对网上冲浪做了专题讲解。通过本篇的学习,读者应该能够对服务器的软/硬件进行各种常见的配置和软件的管理,并能通过网络对遇到的问题进行搜索,从而自行解决问题。

    第3篇  Red Hat编程应用(第7、8章)

    本篇主要内容包括:讲解Shell的使用和管理,以及常见的编程工具,并以一个PHP的实例作为结束,让读者对Red Hat下的编程有一个实际的认识。通过本篇的学习,读者应该能够对Red Hat下的编程知识有较为全面的掌握,并能够开发出简单的应用程序。

    第4篇  Red Hat高级管理(第9~18章)

    本篇主要内容包括:介绍RedHat下用户和进程等高级管理的相关知识,并以专题的形式介绍FTP、DNS、Mail及各个服务器的搭建和管理。通过本篇的学习,读者能够有效地管理Red Hat服务器,并通过搭建各种系统服务器为开发人员提供有力的支持,使其成为优秀的系统管理员。

    本书读者对象

    ● Red Hat系统管理员。

    ● Red Hat专业管理人员。

    ● Red Hat爱好者。

    ● 大、中专院校的学生。

    ● 社会培训班学员。

    ● 需要一本案头必备手册的程序员。

    本书由武警工程学院的刘丽霞、杨宇共同编写。其中刘丽霞负责编写了第1~8章,杨宇负责编写了第9~18章。

    由于时间仓促,加之水平有限,书中难免存在不足和疏漏之处,敬请广大读者批评指正。

     

    编著者

     

    展开全文
  • Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系 统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了...
  • 程序员入门推荐书籍

    千次阅读 多人点赞 2018-10-15 11:45:03
     推荐指数:★★★★★ ... 书评:编程必须的基础知识,大学计算机专业必修课本,部分内容讲解冗余,但整体讲解很细致,目前市面上未发现更好的此类书籍。(ps:如果准备考研的看下 数据结构...
  • 程序员的技术成长路线:初级程序员-》中级程序员-》高级程序员-》架构师   在初级、中级阶段推荐书:effective c++,windows核心编程,C++ Primer中文版(第4版)   高级阶段推荐书籍:深入浅出MFC,COM本质论,...
  • 所以只推荐最适合书籍,当然推荐的每一本书都非常经典,评分都很高(每本书都带上了豆瓣评分)。所以本文会删减掉很多C/C++书籍,并不代表他们不经典。 C 嗨翻C语言 豆瓣9.2,轻松学习C语言,适合零基础。 C...
  • 1 linux shell脚本攻略 1 人月神话 1 人件集:人性化的软件开发 1 精通正则表达式 1 程序员修炼之道: 从小工到专家 1 程序员的思维修炼:开发认知潜能的九堂课 1 设计模式 1 软件开发者路线图 1 面向对象设计与模式 1...
  • 程序员书籍资源

    2016-11-25 23:44:37
    想整理一篇关于书籍的资源很久了,毕竟做一名程序员,就要做好保持学习的准备,主要是技术更新太快,不学就会被淘汰。 所以废话不多说了,我把我收集的关于书籍的资源整理出来,大概分为三个部分: 1)可以下载...
  • 如何成为一名现代的Linux程序员 近几年来,Linux有了很大的发展,已从一个不起眼的小玩意发展到在越来越多的《财富》500强公司中发挥巨大作用。从人们使用的手机到最大型的超级计算机集群,几乎都在使用Linux内核和...
  • 编程字体有些在普通字体中没有的特点,这五种字体你可以看看。-- Andrew Lekashman什么是最好的编程字体呢?首先,你需要考虑到字体被设计出来的初衷可能并不相同...
  • 程序员必读书籍推荐

    千次阅读 2017-06-09 11:27:18
    作者:Lucida ...本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。 前言  Reading m
  • .Net程序员学习Linux最简单的方法 作者: zock 来源: 博客园 发布时间: 2013-07-02 16:57 阅读: 4091 次 推荐: 60  原文链接 [收藏]   有很多关于Linux书籍、博客。大多数都会比较“粗暴“的将...
  • 本篇文章主要分享以下Linux开发PDF书籍 一、Linux程序设计 二、Unix环境高级编程 三、Unix_Linux编程实践教程 四、鸟哥的私房菜 五、深入理解Linux内核 六、Linux命令行与shell脚本编程大全 七、Linux内核设计与...
  • 程序员必看书籍

    2018-09-19 20:36:46
    这个列表包括了 100 多本经典技术书籍,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试 和 编程相关的经典书籍。...
  • LInux程序员开发指南,书籍相当清淅,欢迎大家下载。内容简要:Linux操作系统、Linux系统调用、Linux内核、Linux libc包、“瑞士军刀”:ioctl、Linux进程间通信、声音编程、字符单元图形、I/O接口编程、把应用程序...
  • 我是一名后端开发者,从一个啥都不知道的小白,跨专业自学了PHP,江湖人称——野生程序员...由此,对于Linux,我可谓是小白一个,我不懂计算机原理,不懂数据结构,自然对Linux的许多概念不理解。直到现在,我对Linux
  • 有很多关于Linux书籍、博客。大多数都会比较“粗暴“的将一大堆的命令塞给读者,从而使很多.NET程序员望而却步。未入其门就路过了。  所以我设想用一种更为平滑的学习方式, 就是在学习命令时,先用纯语言来介绍...
1 2 3 4 5 ... 20
收藏数 35,741
精华内容 14,296
关键字:

适合程序员的linux书籍