shell脚本学习材料

本着对linux和shell脚本的极大兴趣,我看了不少shell脚本相关的书和文章,也有了很多学习心得, 回首自己的linux和shell脚本学习历程,不禁发现自己竟也走了不少的弯路,完全是靠着自己的满腔 热情走到今天。为了帮助有缘的朋友少走一点弯路,这里向大家推荐一些学习的资料, 资料包括书,开源免费书,博客和相关网站。这里推荐的材料都属于进阶类型,特别适合已经掌握 了一些shell脚本的基础知识,并希望深入学习shell脚本的朋友。1. 书linux命令行与shell脚本编程大全1这本书是入门级的读物,作为入门材料非常合适。可惜我入门的时侯没有遇到它。虽然很大 部头,其实一天也就能看完了。讲的东西比较全面,也比较简单。三颗星推荐。linux shell脚本攻略2这是我强烈推荐的一本书,我的shell脚本从新手到老手全靠这本书。这本书很薄,也精华。 与上面的那本书不一样,这本书追求的不是全,而是精,是各种各样的奇技淫巧,是老手 天天用却不会告诉你或者他们也没有意识到的技巧。五颗星推荐。此外,这本书的作者是一个印度人,二十岁的时侯写下了这本书,那时他已经是Ubuntu 和Fedora的源码贡献者了。The AWK Programming Language3这本书的作者就是AWK程序语言的设计者,所以,其权威性毋庸置疑。值得注意的是,这本书的第二作者 Brian W. Kernighan是神一样的科学家,他是《The C Programming Language》的作者。 Brian W. Kernighan 的《程序设计实践》也是一本好书。AWK的学习资料网上一搜一大片,其实,只要静下心来把这本书中的代码敲一遍,就可以无视其他所有材料了。 这本书网上有电子版。很奇怪的是,这么好的一本书,国内的出版社怎么没有引入,可能是AWK太老太小众了吧。 总之,学习AWK这是必读的一本书,五颗星推荐。2. 免费电子书高级shell脚本编程指南4高级shell脚本编程指南,也就是传说中的ABS,你如果到论坛里去问有什么好的学习shell脚本 的进阶书籍,大多数人都会推荐这本书。正如这个世界上最珍贵的东西(如:空气,阳光, 亲情与爱)都是免费的一样,这本书也是免费的,是网上开源的免费书籍,任何人都可以获得。 已经有热心的朋友将它翻译成了中文版,不过还是推荐看英文版,专业书籍使用的英文单词都不难, 大家应该尽快习惯看英文版的书籍。四颗星推荐。sed and awk 101 hacks5这是一本印度人写的开源免费书籍(印度人好像比较喜欢也有能力干这事),应该算是入门书籍, 不过作者表达能力太强,交代的东西也很多,所以无论老手还是新手,看这本书都会有一定的收获。此外,该作者还写了另外两本同样有名的开源书籍,即《vim 101 hacks》和《linux 101 hacks》。 这三本书都四颗星推荐。3. 博客 && 网站One-Liners Explained6除了上面推荐的比较好的书以外,网络上也有一些比较好的博文。比如,大名鼎鼎的One-liners Explained 系列。这个系列共有4篇文章,都是进阶级的,需要较强的功底才能看懂。这4篇文章是:Bash One-Liners Explainedsed One-Liners Explainedawk One-Liners Explainedperl One-Liners Explainedcommandlinefu.com7这是一个很有名的网站,专门收集一些很酷很简洁的命令。例如:当你使用vim编辑一个文档,保存的时侯才提示你没有权限,这个时侯怎么办呢? 如果你知道:w !sudo tee %命令就不用烦恼了,这个牛逼的命令我就是在commandlinefu上学会的, 也是我至今觉得最酷的一个命令。Top Ten One-Liners from CommandLineFu Explained One-liners Explained 系列的作者还根据CommandLineFu 写了另外一篇文章,即 Top Ten One-Liners from CommandLineFu Explainedthe unix school8the unix school是一个印度哥们维护的博客,这个博客专注于linux与shell,最大的特色 是尝试使用不同的方法解决同一个问题,对于开阔视野,拓展思路非常有用。the unix school 是我最喜欢的博客之一,里面的每一篇博文我都认真看过,强烈推荐。bash Pitfalls9Bash Pitfalls文章介绍了40多条日常Bash编程中,老手和新手都容易忽略的错误编程习惯。 每条作者在给出错误的范例上,详细分析与解释错误的原因,同时给出正确的改写建议。已经有朋友(网名:团子)将这篇文章翻译成了中文版。简洁bash编程10团子写的简洁bash编程也值得一看。里面虽然有很多知识你可能在其他地方已经见过,但是这么多编程技巧里面,只要有一条你不知道, 并在知道以后长期使用就值得你看了。我第一次写一个较复杂的脚本的时侯,用到了多进程,需要在主进程里面等待子进程结束。当时我的做法 是记录下子进程的pid(sleep 10 &; pid= $!),然后使用while 循环判断进程是否结束(kill -s 0 $pid),进程少还行,子进程多了一后就没法这么干了。 其实有一个很好也很方便的做法,使用wait命令即可。这个命令我就是在简洁bash编程里学到的。4. 后记认真学习完这里推荐的资料,就算得上是shell脚本老手了,不过,凡事都是凭兴趣,我相信这篇文章对 shell脚本感兴趣的新手会有很大的帮助。不过,还是要切记,多用多动手才是学习linux和shell的最佳方法。我真的很佩服印度人,他们非常有才华,也善于表达,还具有开源精神。《linux shell脚本攻略》的 作者一直致力于开源软件,年纪轻轻就向Ubuntu和Fedora贡献源码(我也想,能力不够),还维护了自己的 linux发行版。二十岁时写下的这本《linux shell脚本攻略》,现在已是我必备书籍。101 hack系列的是一个印度人写的,the unix school是我最喜欢的博客之一,博主也是一个印度人, 大名鼎鼎的《a byte of python》与《a byte of vim》(与这篇博客无关)的作者也是印度人, 我就发现这些印度人确实很厉害,他们能用简单易懂的方式传递知识,而且他们也很愿意无偿的贡献自己劳动成果。有感于印度人的才华与表达能力,并且网络上已经有很多优秀的shell脚本学习资料。所以我打消了写shell 相关博客的想法。仅用此文收集一些优秀的书籍和博文,以后发现好的资料还会再补充。也欢迎补充优秀 的学习资料。

  1. linux命令行与shell脚本编程大全1

这本书是入门级的读物,作为入门材料非常合适。可惜我入门的时侯没有遇到它。虽然很大 部头,其实一天也就能看完了。讲的东西比较全面,也比较简单。三颗星推荐。

  1. linux shell脚本攻略2

这是我强烈推荐的一本书,我的shell脚本从新手到老手全靠这本书。这本书很薄,也精华。 与上面的那本书不一样,这本书追求的不是全,而是精,是各种各样的奇技淫巧,是老手 天天用却不会告诉你或者他们也没有意识到的技巧。五颗星推荐。 此外,这本书的作者是一个印度人,二十岁的时侯写下了这本书,那时他已经是Ubuntu 和Fedora的源码贡献者了。

  1. The AWK Programming Language3

这本书的作者就是AWK程序语言的设计者,所以,其权威性毋庸置疑。值得注意的是,这本书的第二作者 Brian W. Kernighan是神一样的科学家,他是《The C Programming Language》的作者。 Brian W. Kernighan 的《程序设计实践》也是一本好书。 AWK的学习资料网上一搜一大片,其实,只要静下心来把这本书中的代码敲一遍,就可以无视其他所有材料了。 这本书网上有电子版。很奇怪的是,这么好的一本书,国内的出版社怎么没有引入,可能是AWK太老太小众了吧。 总之,学习AWK这是必读的一本书,五颗星推荐。

2. 免费电子书

  1. 高级shell脚本编程指南4

高级shell脚本编程指南,也就是传说中的ABS,你如果到论坛里去问有什么好的学习shell脚本 的进阶书籍,大多数人都会推荐这本书。正如这个世界上最珍贵的东西(如:空气,阳光, 亲情与爱)都是免费的一样,这本书也是免费的,是网上开源的免费书籍,任何人都可以获得。 已经有热心的朋友将它翻译成了中文版,不过还是推荐看英文版,专业书籍使用的英文单词都不难, 大家应该尽快习惯看英文版的书籍。四颗星推荐。

  1. sed and awk 101 hacks5

这是一本印度人写的开源免费书籍(印度人好像比较喜欢也有能力干这事),应该算是入门书籍, 不过作者表达能力太强,交代的东西也很多,所以无论老手还是新手,看这本书都会有一定的收获。 此外,该作者还写了另外两本同样有名的开源书籍,即《vim 101 hacks》和《linux 101 hacks》。 这三本书都四颗星推荐。

3. 博客 && 网站

  1. One-Liners Explained6 除了上面推荐的比较好的书以外,网络上也有一些比较好的博文。比如,大名鼎鼎的One-liners Explained 系列。这个系列共有4篇文章,都是进阶级的,需要较强的功底才能看懂。 这4篇文章是:
    • Bash One-Liners Explained
    • sed One-Liners Explained
    • awk One-Liners Explained
    • perl One-Liners Explained
  2. commandlinefu.com7 这是一个很有名的网站,专门收集一些很酷很简洁的命令。 例如:当你使用vim编辑一个文档,保存的时侯才提示你没有权限,这个时侯怎么办呢? 如果你知道:w !sudo tee %命令就不用烦恼了,这个牛逼的命令我就是在commandlinefu上学会的, 也是我至今觉得最酷的一个命令。
    • Top Ten One-Liners from CommandLineFu Explained One-liners Explained 系列的作者还根据CommandLineFu 写了另外一篇文章,即 Top Ten One-Liners from CommandLineFu Explained
  3. the unix school8 the unix school是一个印度哥们维护的博客,这个博客专注于linux与shell,最大的特色 是尝试使用不同的方法解决同一个问题,对于开阔视野,拓展思路非常有用。 the unix school 是我最喜欢的博客之一,里面的每一篇博文我都认真看过,强烈推荐。
  4. bash Pitfalls9 Bash Pitfalls文章介绍了40多条日常Bash编程中,老手和新手都容易忽略的错误编程习惯。 每条作者在给出错误的范例上,详细分析与解释错误的原因,同时给出正确的改写建议。 已经有朋友(网名:团子)将这篇文章翻译成了中文版。
  5. 简洁bash编程10 团子写的简洁bash编程也值得一看。 里面虽然有很多知识你可能在其他地方已经见过,但是这么多编程技巧里面,只要有一条你不知道, 并在知道以后长期使用就值得你看了。 我第一次写一个较复杂的脚本的时侯,用到了多进程,需要在主进程里面等待子进程结束。当时我的做法 是记录下子进程的pid(sleep 10 &; pid= $!),然后使用while 循环判断进程是否结束(kill -s 0 $pid),进程少还行,子进程多了一后就没法这么干了。 其实有一个很好也很方便的做法,使用wait命令即可。这个命令我就是在简洁bash编程里学到的。

4. 后记 认真学习完这里推荐的资料,就算得上是shell脚本老手了,不过,凡事都是凭兴趣,我相信这篇文章对 shell脚本感兴趣的新手会有很大的帮助。不过,还是要切记,多用多动手才是学习linux和shell的最佳方法。 我真的很佩服印度人,他们非常有才华,也善于表达,还具有开源精神。《linux shell脚本攻略》的 作者一直致力于开源软件,年纪轻轻就向Ubuntu和Fedora贡献源码(我也想,能力不够),还维护了自己的 linux发行版。二十岁时写下的这本《linux shell脚本攻略》,现在已是我必备书籍。 101 hack系列的是一个印度人写的,the unix school是我最喜欢的博客之一,博主也是一个印度人, 大名鼎鼎的《a byte of python》与《a byte of vim》(与这篇博客无关)的作者也是印度人, 我就发现这些印度人确实很厉害,他们能用简单易懂的方式传递知识,而且他们也很愿意无偿的贡献自己劳动成果。 有感于印度人的才华与表达能力,并且网络上已经有很多优秀的shell脚本学习资料。所以我打消了写shell 相关博客的想法。仅用此文收集一些优秀的书籍和博文,以后发现好的资料还会再补充。也欢迎补充优秀 的学习资料。

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2014-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BestSDK

【七夕佳节】今晚我们还是谈谈Bug好了

最近看了「简书」上的一篇文章《女生如何优雅的上下车》,可是,额,我腿短,下车时依然是艰难得一点点‘挪’出去,正如懂得很多道理,却依然过不好这一生,啧啧,又如程序...

27250
来自专栏编程一生

多服务器终端交互利器--polysh和atnodes到高逼格日志中心

22440
来自专栏编程一生

Redis各种数据结构性能数据对比和性能优化实践

18020
来自专栏编程一生

一款低延迟的分布式数据库同步系统--databus

45660
来自专栏Jerry的SAP技术分享

SAP成都研究院廖婧:SAP C4C社交媒体集成概述

当时,我的回答提到一点,SAP注重工作与生活的平衡,这也是SAP中国官网强调的一点。

10220
来自专栏镁客网

YOUMO,幽默?如今连插线板都这么会玩!

14630
来自专栏Jerry的SAP技术分享

金庸和古龙,Netweaver和微服务,以及SAP Hybris Revenue Cloud

这周Jerry在长沙客户现场待了几天,感谢易总和彩亮的款待。终于有机会和关注这个公众号的一些CRM顾问们进行线下互动,感觉很不错。得知公众号里某些文章帮助顾问们...

18230
来自专栏IT大咖说

程序员15条生存法则

12850
来自专栏数据和云

DBA入门之路:学习与进阶之经验谈

初入数据库之门的朋友们,总是关心如何能够快速提高,不断进步,事实上任何一个技术方向,都没有太多的捷径可走,勤奋与坚持必不可少,但是有一些方法和他人的经验可做借鉴...

32160
来自专栏申龙斌的程序人生

搞定GTD - 项目分类

GTD中管理的是一堆Action,比如我的OmniFocus中当前有695个Action,包括已完成的、暂停的和未完成的。为了有效地管理这些Action,在GT...

406110

扫码关注云+社区

领取腾讯云代金券