HTML代码
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title>用CSS3动画给一个小球创建跳跃的动画效果</title>
<link rel="stylesheet" type="text/css" href="index.css" />
</head>
<body>
<section class="main">
<div id="ballWrapper">
<div id="ball"></div>
<div id="ballShadow"></div>
</div>
</section>
</body>
</html>
CSS代码(创建一个与html同目录的index.css文件)
#ballWrapper{position:fixedtop:35%left:50%z-index:100margin-left:-70pxwidth:140pxheight:300pxcursor:pointer-webkit-transition:all 5s linear 0s-moz-transition:all 5s linear 0stransition:all 5s linear 0s-webkit-transform:scale(1)-moz-transform:scale(1)-o-transform:scale(1)transform:scale(1)-ms-transform:scale(1)}#ballWrapper:active{cursor:pointer-webkit-transform:scale(0)-moz-transform:scale(0)-o-transform:scale(0)transform:scale(0)-ms-transform:scale(0)}
#ball{position:absolutetop:0z-index:11width:140pxheight:140pxborder-radius:70pxbackground:#bbbbackground:url(data:image/svg+xml background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(187,187,187,1)), color-stop(99%,rgba(119,119,119,1))) background: -webkit-linear-gradient(top, rgba(187,187,187,1) 0%,rgba(119,119,119,1) 99%) background: -o-linear-gradient(top, rgba(187,187,187,1) 0%,rgba(119,119,119,1) 99%) background: -ms-linear-gradient(top, rgba(187,187,187,1) 0%,rgba(119,119,119,1) 99%) background: linear-gradient(top, rgba(187,187,187,1) 0%,rgba(119,119,119,1) 99%) box-shadow: inset 0 -5px 15px rgba(255,255,255,0.4), inset -2px -1px 40px rgba(0,0,0,0.4), 0 0 1px #000 cursor: pointer base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JiYmJiYiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9Ijk5JSIgc3RvcC1jb2xvcj0iIzc3Nzc3NyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=)background:-moz-linear-gradient(top,rgba(187,187,187,1) 0,rgba(119,119,119,1) 99%)filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#bbbbbb', endColorstr='#777777', GradientType=0 )-webkit-animation:jump 1s infinite-moz-animation:jump 1s infinite-o-animation:jump 1s infinite-ms-animation:jump 1s infiniteanimation:jump 1s infinite}
#ball::after{position:absolutetop:10pxleft:30pxz-index:10width:80pxheight:40pxborder-radius:40px/20pxbackground:url(data:image/svg+xml background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(232,232,232,1)), color-stop(1%,rgba(232,232,232,1)), color-stop(100%,rgba(255,255,255,0))) background: -webkit-linear-gradient(top, rgba(232,232,232,1) 0%,rgba(232,232,232,1) 1%,rgba(255,255,255,0) 100%) background: -o-linear-gradient(top, rgba(232,232,232,1) 0%,rgba(232,232,232,1) 1%,rgba(255,255,255,0) 100%) background: -ms-linear-gradient(top, rgba(232,232,232,1) 0%,rgba(232,232,232,1) 1%,rgba(255,255,255,0) 100%) background: linear-gradient(top, rgba(232,232,232,1) 0%,rgba(232,232,232,1) 1%,rgba(255,255,255,0) 100%) content: "" base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2U4ZThlOCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjElIiBzdG9wLWNvbG9yPSIjZThlOGU4IiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=)background:-moz-linear-gradient(top,rgba(232,232,232,1) 0,rgba(232,232,232,1) 1%,rgba(255,255,255,0) 100%)filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#e8e8e8', endColorstr='#00ffffff', GradientType=0 )}
#ballShadow{position:absolutebottom:0left:50%z-index:10margin-left:-30pxwidth:60pxheight:75pxborder-radius:30px/40pxbackground:rgba(20,20,20,.1)box-shadow:0 0 20px 35px rgba(20,20,20,.1)-webkit-transform:scaleY(.3)-moz-transform:scaleY(.3)-o-transform:scaleY(.3)transform:scaleY(.3)-ms-transform:scaleY(.3)-webkit-animation:shrink 1s infinite-moz-animation:shrink 1s infinite-o-animation:shrink 1s infinite-ms-animation:shrink 1s infiniteanimation:shrink 1s infinite}
@-webkit-keyframes jump{0%{top:0-webkit-animation-timing-function:ease-in}
50%{top:140pxheight:140px-webkit-animation-timing-function:ease-out}
55%{top:160pxheight:120pxborder-radius:70px/60px-webkit-animation-timing-function:ease-in}
65%{top:120pxheight:140pxborder-radius:70px-webkit-animation-timing-function:ease-out}
95%{top:0-webkit-animation-timing-function:ease-in}
100%{top:0-webkit-animation-timing-function:ease-in}
}
@-moz-keyframes jump{0%{top:0-moz-animation-timing-function:ease-in}
50%{top:140pxheight:140px-moz-animation-timing-function:ease-out}
55%{top:160pxheight:120pxborder-radius:70px/60px-moz-animation-timing-function:ease-in}
65%{top:120pxheight:140pxborder-radius:70px-moz-animation-timing-function:ease-out}
95%{top:0-moz-animation-timing-function:ease-in}
100%{top:0-moz-animation-timing-function:ease-in}
}
@-o-keyframes jump{0%{top:0-o-animation-timing-function:ease-in}
50%{top:140pxheight:140px-o-animation-timing-function:ease-out}
55%{top:160pxheight:120pxborder-radius:70px/60px-o-animation-timing-function:ease-in}
65%{top:120pxheight:140pxborder-radius:70px-o-animation-timing-function:ease-out}
95%{top:0-o-animation-timing-function:ease-in}
100%{top:0-o-animation-timing-function:ease-in}
}
@-ms-keyframes jump{0%{top:0-ms-animation-timing-function:ease-in}
50%{top:140pxheight:140px-ms-animation-timing-function:ease-out}
55%{top:160pxheight:120pxborder-radius:70px/60px-ms-animation-timing-function:ease-in}
65%{top:120pxheight:140pxborder-radius:70px-ms-animation-timing-function:ease-out}
95%{top:0-ms-animation-timing-function:ease-in}
100%{top:0-ms-animation-timing-function:ease-in}
}
@keyframes jump{0%{top:0animation-timing-function:ease-in}
50%{top:140pxheight:140pxanimation-timing-function:ease-out}
55%{top:160pxheight:120pxborder-radius:70px/60pxanimation-timing-function:ease-in}
65%{top:120pxheight:140pxborder-radius:70pxanimation-timing-function:ease-out}
95%{top:0animation-timing-function:ease-in}
100%{top:0animation-timing-function:ease-in}
}
@-webkit-keyframes shrink{0%{bottom:0margin-left:-30pxwidth:60pxheight:75pxborder-radius:30px/40pxbackground:rgba(20,20,20,.1)box-shadow:0 0 20px 35px rgba(20,20,20,.1)-webkit-animation-timing-function:ease-in}
50%{bottom:30pxmargin-left:-10pxwidth:20pxheight:5pxborder-radius:20pxbackground:rgba(20,20,20,.3)box-shadow:0 0 20px 35px rgba(20,20,20,.3)-webkit-animation-timing-function:ease-out}
100%{bottom:0margin-left:-30pxwidth:60pxheight:75pxborder-radius:30px/40pxbackground:rgba(20,20,20,.1)box-shadow:0 0 20px 35px rgba(20,20,20,.1)-webkit-animation-timing-function:ease-in}
}
@-moz-keyframes shrink{0%{bottom:0margin-left:-30pxwidth:60pxheight:75pxborder-radius:30px/40pxbackground:rgba(20,20,20,.1)box-shadow:0 0 20px 35px rgba(20,20,20,.1)-moz-animation-timing-function:ease-in}
50%{bottom:30pxmargin-left:-10pxwidth:20pxheight:5pxborder-radius:20pxbackground:rgba(20,20,20,.3)box-shadow:0 0 20px 35px rgba(20,20,20,.3)-moz-animation-timing-function:ease-out}
100%{bottom:0margin-left:-30pxwidth:60pxheight:75pxborder-radius:30px/40pxbackground:rgba(20,20,20,.1)box-shadow:0 0 20px 35px rgba(20,20,20,.1)-moz-animation-timing-function:ease-in}
}
@-o-keyframes shrink{0%{bottom:0margin-left:-30pxwidth:60pxheight:75pxborder-radius:30px/40pxbackground:rgba(20,20,20,.1)box-shadow:0 0 20px 35px rgba(20,20,20,.1)-o-animation-timing-function:ease-in}
50%{bottom:30pxmargin-left:-10pxwidth:20pxheight:5pxborder-radius:20pxbackground:rgba(20,20,20,.3)box-shadow:0 0 20px 35px rgba(20,20,20,.3)-o-animation-timing-function:ease-out}
100%{bottom:0margin-left:-30pxwidth:60pxheight:75pxborder-radius:30px/40pxbackground:rgba(20,20,20,.1)box-shadow:0 0 20px 35px rgba(20,20,20,.1)-o-animation-timing-function:ease-in}
}
@-ms-keyframes shrink{0%{bottom:0margin-left:-30pxwidth:60pxheight:75pxborder-radius:30px/40pxbackground:rgba(20,20,20,.1)box-shadow:0 0 20px 35px rgba(20,20,20,.1)-ms-animation-timing-function:ease-in}
50%{bottom:30pxmargin-left:-10pxwidth:20pxheight:5pxborder-radius:20pxbackground:rgba(20,20,20,.3)box-shadow:0 0 20px 35px rgba(20,20,20,.3)-ms-animation-timing-function:ease-out}
100%{bottom:0margin-left:-30pxwidth:60pxheight:75pxborder-radius:30px/40pxbackground:rgba(20,20,20,.1)box-shadow:0 0 20px 35px rgba(20,20,20,.1)-ms-animation-timing-function:ease-in}
}
@keyframes shrink{0%{bottom:0margin-left:-30pxwidth:60pxheight:75pxborder-radius:30px/40pxbackground:rgba(20,20,20,.1)box-shadow:0 0 20px 35px rgba(20,20,20,.1)animation-timing-function:ease-in}
50%{bottom:30pxmargin-left:-10pxwidth:20pxheight:5pxborder-radius:20pxbackground:rgba(20,20,20,.3)box-shadow:0 0 20px 35px rgba(20,20,20,.3)animation-timing-function:ease-out}
100%{bottom:0margin-left:-30pxwidth:60pxheight:75pxborder-radius:30px/40pxbackground:rgba(20,20,20,.1)box-shadow:0 0 20px 35px rgba(20,20,20,.1)animation-timing-function:ease-in}
}
我是过来人,我现在能写出符合W3C的XHTML+CSS代码.我的路是从书本+实践走过来的.推荐你几本书,如果你看完的话已经看什么CSS都没问题了.做上一两个中小型网站你就能独立写出很好且规范的代码。以下是网络公认的优秀CSS书籍.不信你去豆瓣查一下就知道了.
入门:《CSS网站布局实录》看完这本你已经能写CSS hack了.
学有所成:《精通CSS》
深入研究:《超越CSS》
除了CSS,接下来最好顺便学一下SEO。因为网站的SEO做好会带来很大的流量。不过前提是你的网站内容丰富。
学有所成:《精通CSS》
深入研究:《超越CSS》
除了CSS,接下来最好顺便学一下SEO。因为网站的SEO做好会带来很大的流量。不过前提是你的网站内容丰富。
[美] 马丁·福勒(Martin Fowler) 著,徐昊,郑晔,熊节 译
领域特定语言DSL,通过Java和C语言分析具体案例,讲解DSL的构造方式和通用原则,软件开发程序员的教程,马丁·福勒新的力作。
《领域特定语言》是领域特定语言(Domain-Specific Language,DSL)领域的丰碑之作,由软件开发大师马丁·福勒(Martin Fowler)历时多年写作而成。
全书共57章,分为6个部分,全面介绍了DSL概念、DSL常见主题、外部DSL主题、内部DSL主题、备选计算模型以及代码生成等内容,揭示了与编程语言无关的通用原则和模式,阐释了如何通过DSL有效提高开发人员的生产力以及增进与领域专家的有效沟通,能为开发人员选择和使用DSL提供有效的决策依据和指导方法。
本书适合想要了解各种DSL及其构造方式,理解其通用原则、模式和适用场景,以提高开发生产力和沟通能力的软件开发人员阅读。
[美] 肯尼思·,A.兰伯特(Kenneth,A.,Lambert,) 著,肖鉴明 译
数据结构算法入门教程,基于Python语言进行讲解,国外高等院校教材升级,书中包含大量习题和编程项目,随书赠送配套资源。
本书用 Python 语言来讲解数据结构及实现方法。全书首先概述 Python 编程的功能—这些功能是实际编程和解决问题时所必需的;其次介绍抽象数据类型的规范、实现和应用,多项集类型,以及接口和实现之间的重要差异;随后介绍线性多项集、栈、队列和列表;最后介绍树、图等内容。本书附有大量的复习题和编程项目,旨在帮助读者巩固所学知识。
本书不仅适合高等院校计算机专业师生阅读,也适合对 Python 感兴趣的读者和程序员阅读。
乔恩·克莱因伯格(Jon Kleinberg) 著,王海鹏 译
用实际示例阐明枯燥的算法理论,更注重算法设计思维的培养,适合作为算法入门书。
这是一本被众多名校采用的算法设计课程教材,强调用实际示例阐明枯燥的算法理论,更注重算法设计思路而非算法复杂度分析。本书采用新颖的教学方式,通过分析真实世界的问题来激发算法思想。两位作者以一种清晰、直接的方式,指导学生自己分析和定义问题,并从中找出适用于给定场景的算法设计原则。本书鼓励读者更深入地理解算法设计过程, 探索 算法在计算机科学的更广阔领域中的应用。
本书具有以下特色:
王争著
20个数据结构与算法,100个真实项目场景案例,300多幅算法手绘图解
本书分为11章。第1章介绍复杂度分析方法。第2章介绍数组、链表、栈和队列这些基础的线性表数据结构。第3章介绍递归编程技巧、8种经典排序、二分查找及二分查找的变体问题。第4章介绍哈希表、位图、哈希算法和布隆过滤器。第5章介绍树相关的数据结构,包括二叉树、二叉查找树、平衡二叉查找树、递归树和B+树。第6章介绍堆,以及堆的各种应用,包括堆排序、优先级队列、求Top K、求中位数和求百分位数。第7章介绍跳表、并查集、线段树和树状数组这些比较高级的数据结构。第8章介绍字符串匹配算法,包括BF算法、RK算法、BM算法、KMP算法、Trie树和AC自动机。第9章介绍图及相关算法,包括深度优先搜索、广度优先搜索、拓扑排序、Dijkstra算法、Floyd算法、A*算法、Z小生成树算法、Z大流算法和Z大二分匹配等。第10章介绍4种算法思想,包括贪心、分治、回溯和动态规划。第11章介绍4个经典项目中的数据结构和算法的应用,包括Redis、搜索引擎、鉴权限流和短网址服务。另外,附录A为书中的思考题的解答。
[美] 阿尔·斯维加特(Al Sweigart) 著
Python编程从入门到实践姊妹篇,零基础自学Python教程书籍,提供配套同步教学视频、在线编程环境!针对Python3.X版本更新
在本书中,你将学习利用Python编程在几分钟内完成手动需要几小时的工作,无须事先具备编程经验。通过阅读本书,你会学习Python的基本知识, 探索 Python丰富的模块库,并完成特定的任务(例如,从网站抓取数据,读取PDF和Word文档等)。本书还包括有关输入验证的实现方法,以及自动更新CSV文件的技巧。一旦掌握了编程的基础知识,你就可以毫不费力地创建Python程序,自动化地完成很多繁琐的工作,包括:
何华平 著
Python编程零基础入门实践教程,用Python处理Excel、Word、PPT、PDF、图像文件,提升职场办公效率,解决办公难题,附赠学习资源和教学视频
这是一本关于如何利用Python提高日常办公效率的书,书中凝聚了作者多年的实践经验和独特思考,旨在帮助读者准确、高效地完成大量高重复度的工作。
《学Python,不加班:轻松实现办公自动化》汇集了日常办公和处理文档时常见的问题,通过实例的演示与讲解,帮助读者灵活有效地使用Python处理工作中遇到的问题。全书共11章,涵盖Python的各种应用场景,具体包括文件管理自动化,网络信息自动获取,TXT、XLS/XLSX、DOC/DOCX、PPT、PDF、图片文件的自动化处理,模拟鼠标、键盘操控本地软件,自动化运行管理等。本书力图淡化编程中的抽象概念,贴合工作场景,注重实战效果,通过对Python技术的巧妙讲解,帮助读者成为高效率的办公室“超人”。
雷明 著
人工智能深度学习领域教程,AI程序员的数学参考书,透彻理解机器学习算法,从数学层面搞懂核心算法原理的逻辑,python程序讲解
本书的目标是帮助读者全面、系统地学习机器学习所必须的数学知识。全书由8章组成,力求精准、最小地覆盖机器学习的数学知识。包括微积分,线性代数与矩阵论,最优化方法,概率论,信息论,随机过程,以及图论。本书从机器学习的角度讲授这些数学知识,对它们在该领域的应用举例说明,使读者对某些抽象的数学知识和理论的实际应用有直观、具体的认识。 本书内容紧凑,结构清晰,深入浅出,讲解详细。可用作计算机、人工智能、电子工程、自动化、数学等相关专业的教材与教学参考书。对人工智能领域的工程技术人员与产品研发人员,本书也有很强的参考价值。对于广大数学与应用的数学爱好者,本书亦为适合自学的读本。
张逸 著
DDD领域驱动设计教程,进一步精化领域驱动设计方法体系,通过实战案例演示统一过程的实施,可帮助读者提高领域建模及软件设计能力。
本书全面阐释了领域驱动设计(domain-driven design,DDD)的知识体系,内容覆盖领域驱动设计的主要模式与主流方法,并在此基础上提出“领域驱动设计统一过程”(domain-driven design unified process,DDDUP),将整个软件构建过程划分为全局分析、架构映射和领域建模3个阶段。除给出诸多案例来阐释领域驱动设计统一过程中的方法与模式之外,本书还通过一个真实而完整的案例全面展现了如何进行领域驱动设计统一过程的实施和落地。为了更好地运用领域驱动设计统一过程,本书还开创性地引入了业务服务、菱形对称架构、领域驱动架构、服务驱动设计等方法与模式,总结了领域驱动设计能力评估模型与参考过程模型。本书提出的一整套方法体系已在多个项目中推广和落地。
刘遄 著
Linux入门教程书籍,基于Linux系统RHEL8编写,每章带有图表及习题,知识点覆盖红帽认证RHCE考试要求。
1.本书耗时近3年时间,修订1500余次,内容源自国内每天访问量近60000人次的同名Linux培训课程
2.在上一版的基础上进行了系统的更新,基于Linux系统RHEL 8编写,适用于CentOS、Fedora、Ubuntu等主流衍生版本
3.面向零基础读者,从Linux基础知识讲起,渐进式地提高内容难度。
《Linux就该这么学(第2版)》在上一版的基础上进行了大量的更新,基于红帽RHEL 8系统编写,且内容适用于CentOS、Fedora等系统。本书共分为20章,内容涵盖了部署Linux系统,常用的Linux命令,与文件读写操作有关的技术,使用Vim编辑器编写和修改配置文件,用户身份与文件权限的设置,硬盘设备分区、格式化以及挂载等操作,部署RAID磁盘阵列和LVM,firewalld防火墙与iptables防火墙的区别和配置,使用ssh服务管理远程主机,使用Apache服务部署静态网站,使用vsftpd服务传输文件,使用Samba或NFS实现文件共享,使用BIND提供域名解析服务,使用DHCP动态管理主机地址,使用Postfix与Dovecot部署邮件系统,使用Ansible服务实现自动化运维,使用iSCSI服务部署网络存储,使用MariaDB数据库管理系统,使用PXE+Kickstart无人值守安装服务,使用LNMP架构部署动态网站环境等。此外,本书的配套站点还深度点评了红帽RHCSA、RHCE、RHCA认证,方便读者备考。
张鑫旭 著
CSS3.0入门到进阶教程,前端博客"鑫空间-鑫生活"博主十年经验沉淀之作,大量实战案例且具有在线Demo演示,配套官方网站,随时与作者沟通学习。
本书是“CSS世界三部曲”的最后一部。这是一本关于CSS的进阶读物,专门讲CSS3及其之后版本的新特性。在本书中,作者结合自己多年的从业经验,讲解CSS基础知识,并充分考虑前端开发者的需求,以CSS新特性的 历史 背景为线索,去粗取精,注重细节,深入浅出地介绍了上百个CSS新特性。此外,作者专门还为本书开发了配套网站,用于书中实例效果的在线展示和问题答疑。
本书的所有内容都是作者经过深入思考和 探索 后提炼出来的,知识点多且内容丰富,注重技术细节、经验分享和解决问题的思路。本书的主要目标是帮助前端开发者突破CSS技能提升的瓶颈,非常适合具有一定CSS基础的前端开发者阅读。
[美] 威廉·肖特斯(William Shotts) 著,门佳,李伟 译
手把手教你学Linux操作系统,脚本shell编程代码书写,系统管理编程运维,学习使用bash(LinuxShell)编写完整的程序。
本书对Linux命令行进行详细的介绍,全书内容包括4个部分,第一部分由Shell的介绍开启命令行基础知识的学习之旅;第二部分讲述配置文件的编辑,如何通过命令行控制计算机;第三部分探讨常见的任务与必备工具;第四部分全面介绍Shell编程,读者可通过动手编写Shell脚本掌握Linux命令的应用,从而实现常见计算任务的自动化。通过阅读本书,读者将对Linux命令有更加深入的理解,并且可以将其应用到实际的工作中。
本书适合Linux初学人员、Linux系统管理人员及Linux爱好者阅读。
[美] 布莱恩·W.克尼汉(Brian,W.,Kernighan) 著,韩磊 译
UNIX的诞生记与发展史,计算机先驱布莱恩·W.克尼汉继C程序设计语言后又一力作,讲述贝尔实验室的幕后故事,C/C++等重要发明的起源,探寻计算科学之光!
自1969年在贝尔实验室的阁楼上诞生以来,Unix操作系统的发展远远超出其创造者们的想象。它带动了许多创新软件的开发,影响了无数程序员,改变了整个计算机技术的发展轨迹。
本书不但书写Unix的 历史 ,而且记录作者的回忆,一探Unix的起源,试图解释什么是Unix,Unix是如何产生的,以及Unix为何如此重要。除此之外,本书以轻松的口吻讲述了一群在贝尔实验室工作的发明天才的有趣往事,本书中每一个故事都是鲜为人知却又值得传播的宝贵资源。
本书适合对计算机或相关 历史 感兴趣的人阅读。读者不需要有太多的专业技术背景,就可以欣赏Unix背后的思想,了解它的重要性。
[印] 拉胡尔·沙玛(Rahul Sharma)[芬]韦萨·凯拉维塔 著,邓世超 译
Rust系统编程指南自学教程书籍,学习Rust编程语言基础,掌握更高端的编程范式,成就高段位的编程极客。
本书内容共17章,由浅入深地讲解Rust相关的知识,涉及基础语法、软件包管理器、测试工具、类型系统、内存管理、异常处理、高级类型、并发模型、宏、外部函数接口、网络编程、HTTP、数据库、WebAssembly、GTK+框架和GDB调试等重要知识点。
本书适合想学习Rust编程的读者阅读,希望读者能够对C、C++或者Python有一些了解。书中丰富的代码示例和详细的讲解能够帮助读者快速上手,高效率掌握Rust编程。