具体描述
《Shell脚本学习指南》将告诉你这些有关UNIX主流工具的知识。除此之外,《Shell脚本学习指南》还会帮助你解决UNIX命令与标准的差异。
作者熟知UNIx程序使用的基本技巧与操作上细微的差异。他们不但会告诉你如何构建一个绝佳的脚本,还会教你如何避免落入让你功亏一篑的陷阱。有了《Shell脚本学习指南》,你可以节省很多力气。
我们要学习的不只是如何写出有用的Shell脚本,你还得了解如何迅速、确实地定制Shell,让程序的可移植性达到最佳状态,脱离对特定系统的依赖。这些技巧对任何操作与维护UNIX及Linux系统的人而言都很重要。《Shell脚本学习指南》所提供的知识,将可以帮助你掌握基本的Shell脚本编写技巧。Shell脚本编程(scripting)的技巧永远不会过时:它们可以让UNIX充分发挥其真实的潜能。对uNIx的用户与系统管理者而言,编写shell脚本是必须的工作,它可以让你快速地控制与定制任何UNIX系统的强大功能。有了Shell脚本,你可以结合基本的UNIX文本与文件处理命令来消化数据,以及自动化重复的工作。一旦你对Shell脚本的编写掌控自如,在接下来的几年,这些技巧将对你相当有帮助。
编写shell脚本所需要的不只是对shell语言的认识,还必须熟知单个的uNIx程序:你必须知道每个程序为什么会放在那儿,以及如何使用该程序或如何将其与其他程序结合。
作者简介
目录信息
前言
第1章 背景知识
1.1 UNIX简史
1.2 软件工具的原则
1.3 小结
第2章 入门
2.1 脚本编程语言与编译型语言的差异
2.2 为什么要使用Shell脚本
2.3 一个简单的脚本
2.4 自给自足的脚本:位于第一行的#!
2.5 Shell的基本元素
2.6 访问Shell脚本的参数
2.7 简单的执行跟踪
2.8 国际化与本地化
2.9 小结
第3章 查找与替换
3.1 查找文本
3.2 正则表达式
3.3 字段处理
3.4 小结
第4章 文本处理工具
4.1 排序文本
4.2 删除重复
4.3 重新格式化段落
4.4 计算行数、字数以及字符数
4.5 打印
4.6 提取开头或结尾数行
4.7 小结
第5章 管道的神奇魔力
5.1 从结构化文本文件中提取数据
5.2 针对Web的结构型数据
5.3 文字解谜好帮手
5.4 单词列表
5.5 标签列表
5.6 小结
第6章 变量、判断、重复动作
6.1 变量与算术
6.2 退出状态
6.3 case 语句
6.4 循环
6.5 函数
6.6 小结
第7章 输入/输出、文件与命令执行
7.1 标准输入、标准输出与标准错误输出
7.2 使用read读取行
7.3 关于重定向
7.4 printf的完整介绍
7.5 波浪号展开与通配符
7.6 命令替换
7.7 引用
7.8 执行顺序与eval
7.9 内建命令
7.10 小结
第8章 产生脚本
8.1 路径查找
8.2 软件构建自动化
8.3 小结
第9章 awk的惊人表现
9.1 awk命令行
9.2 awk程序模型
9.3 程序元素..
9.4 记录与字段
9.5 模式与操作
9.6 在awk里的单行程序
9.7 语句
9.8 用户定义函数
9.9 字符串函数
9.10 数值函数
9.11 小结
第10章 文件处理
10.1 列出文件
10.2 使用touch更新修改时间
10.3 临时性文件的建立与使用
10.4 寻找文件
10.5 执行命令:xargs
10.6 文件系统的空间信息
10.7 比较文件
10.8 小结
第11章 扩展实例:合并用户数据库
11.1 问题描述
11.2 密码文件
11.3 合并密码文件
11.4 改变文件所有权
11.5 其他真实世界的议题
11.6 小结
第12章 拼写检查
12.1 spell程序
12.2 最初的UNIX拼写检查原型
12.3 改良的ispell与aspell
12.4 在awk内的拼写检查程序
12.5 小结
第13章 进程
13.1 进程建立
13.2 进程列表
13.3 进程控制与删除
13.4 进程系统调用的追踪
13.5 进程账
13.6 延迟的进程调度
13.7 /proc文件系统
13.8 小结
第14章 Shell可移植性议题与扩展
14.1 迷思
14.2 bash的shopt命令
14.3 共通的扩展
14.4 下载信息
14.5 其他扩展的Bourne式Shell
14.6 Shell版本
14.7 Shell初始化与终止
14.8 小结
第15章 安全的Shell脚本:起点
15.1 安全性Shell脚本提示
15.2 限制性Shell
15.3 特洛伊木马
15.4 为Shell脚本设置setuid:坏主意
15.5 ksh93与特权模式
15.6 小结
附录A 编写手册页
附录B 文件与文件系统
附录C 重要的UNIX命令
参考书目
· · · · · · (收起)
读后感
这本书不错,总体上感觉还好,讲的有些地方还是相当有深度的,不过感觉这本书还是面比较窄,可以作为一本补充读物,系统性的书不是太适合。总体上,书还是本好书,有很多的使用技巧,shell语言其实就是个拼凑,什么东西都有,各种,用来做主要的编程语言不是个好选择,不过作为...
刚开始学shell的时候买的,硬着头皮读了两章,读不下去了,Shell这种东西感觉还是从实践中学来的快,用过半年之后,再回头来看这本书,发现,其实写的还不算那么不好,写的时候遇到问题,翻一翻,多数时候还是能有点用的。
5星级的书+4星级的台湾奥莱理翻译,被济公那帮家伙的印刷和删减给完全弄砸了.我真怀疑他们自己是否也读书,那么稀薄的纸张看着眼睛不疼么?! 编辑似乎对原稿修改时还做过全局替换"-"为"-", 然后校订又没做工作, 比如p24,-5行: 原文: $ cat nusers Sho...
在linux下,shell脚本是非常强大的工具,每个linux使用者都应该至少了解简单的脚本编写。这本书中,对shell脚本所需要用到的知识做了大量详尽的介绍,包括许多技巧、注意事项。但是作为一个普通用户(而不是程序员),脚本知识够用就可以了,毕竟有500页那,而且还包含诸多...
比知识更重要的是应用知识的能力,这本书从基本概念讲起,穿插大量实用的例子。非常推荐。建议有一定基础的,有些工作经验的人阅读吧,不太适合初学者和牛人。 评论很短么,要多少个字啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
用户评价
说实话,我是在一个周末的清晨,泡着咖啡,抱着“随便翻翻”的心态开始阅读这本书的。结果,我发现自己完全被里面的“故事性”给吸引住了。作者在讲解每个新概念时,都会先引入一个典型的“痛点”场景,比如“你是否厌倦了每天手动备份三个目录?”或者“为什么你的脚本在夜里跑就会失败?”。这种代入感极强的方式,让我感觉不是在学习一门编程语言,而是在跟随一位老前辈解决他曾经遇到的实际难题。书中对`trap`命令的深入讲解尤其让我印象深刻,它教会我如何优雅地处理脚本的中断和退出,确保在异常发生时,临时文件能被清理,资源能被释放,这是过去我一直头疼却找不到系统解决方案的问题。此外,书中关于“函数库的构建”和“脚本的版本控制集成”的讨论,虽然看似是进阶内容,但作者的讲解方式极为循序渐进,让我有信心去构建更加模块化、易于维护的脚本集。这本书不仅是一本工具书,更像是一本关于“如何写出专业、负责任的自动化代码”的哲学指南。
我是一个资深的Java后端开发者,过去对Shell脚本的认知仅限于写点简单的启动停止服务命令,深知这块短板会拖慢我的日常效率。这次下定决心要系统学习一下,最终选择了这本被誉为“老兵推荐”的指南。这本书最让我欣赏的一点是它没有陷入那种空泛的理论说教,而是非常务实地从生产环境的需求出发。它花了相当大的篇幅讲解了错误处理和健壮性构建,这对于我们这种需要编写长期运行、要求高可靠性的自动化脚本的开发者来说至关重要。书中关于管道(Piping)和输入/输出重定向的章节,简直是打开了新世界的大门,我以前写脚本总是用一堆嵌套的`if`语句来处理状态,现在学会了如何用更简洁的Shell特性来优雅地处理数据流。而且,这本书对不同Shell版本(比如Bash和Zsh)之间细微差异的说明也非常到位,这避免了我在不同服务器环境间迁移脚本时遇到的各种莫名其妙的兼容性问题。读完后,我立刻动手重构了我们团队几个关键的部署脚本,效率提升是肉眼可见的,这种从“能跑”到“写得好”的质变,这本书功不可没。
我是一名长期从事数据分析工作的数据科学家,虽然日常主要使用Python,但在处理海量原始日志文件和进行服务器间数据迁移时,Shell依然是最高效的工具。我关注到这本书的一个特点是,它非常侧重于“如何处理文本数据”,这正是我最需要的。书中关于正则表达式在`grep`, `sed`, `awk`中的高级应用,远超出了我之前接触到的任何资料。它不仅告诉你语法是什么,更重要的是告诉你“在什么场景下使用哪种工具效率最高”。比如,如何用`awk`进行复杂的列式数据聚合和统计,用管道串联多个轻量级工具来替代一个臃肿的Python脚本,这些实用的技巧极大地优化了我的数据预处理流程。这本书的语言风格非常平实,没有过多花哨的修辞,直奔主题,每一句话都似乎都蕴含着实战经验。对于我们这种需要快速验证想法、对效率有极高要求的群体来说,这种高效的知识传递方式是极其宝贵的。它让我明白,Shell脚本不是过时的技术,而是现代数据处理流水线中不可或缺的“粘合剂”。
这本书的封面设计简直是直击灵魂的吸引力,那种带着一丝粗粝感的黑色背景,中间用醒目的橙色字体勾勒出书名,立刻给人一种“这是硬核干货”的预感。我是在一个技术论坛上偶然看到有人推荐这本书的,当时正好在为自己的自动化脚本编写头疼,所以毫不犹豫地入手了。打开书本,首先映入眼帘的是清晰的目录结构,作者显然花了不少心思在逻辑梳理上,从最基础的变量、控制流讲起,逐步深入到函数、系统调用,再到更复杂的进程管理和日志处理。特别是书中对`awk`和`sed`的讲解部分,简直是教科书级别的清晰,以往总觉得这两个工具很玄乎,但这本书用大量的实例和图示,将那些复杂的正则表达式和操作符拆解得明明白白。我记得我花了整整一个下午,就是对着书里的练习题敲代码,那种亲手解决实际问题的成就感,是看那些零散在线教程完全无法比拟的。这本书的排版也做得很好,代码块与正文的区分度很高,阅读起来非常流畅,长时间阅读也不会觉得眼睛疲劳。总的来说,它成功地搭建了我从一个脚本初学者到一个可以自信处理日常系统维护任务的工程师之间的桥梁。
作为一个刚毕业,需要快速融入运维团队的应届生,我急需一本既能打基础又能快速上手的工具书。市面上很多Shell书籍要么过于学术化,充满了晦涩的POSIX标准描述,要么就是只罗列命令,缺乏上下文。这本《学习指南》的定位非常精准,它更像是一位经验丰富的师父在手把手教你。最让我感到惊喜的是其中关于“调试技巧”的章节,作者细致地讲解了如何使用`set -x`,以及如何逐步隔离问题,这在处理那些在生产环境中一跑就出岔子的复杂脚本时,提供了极大的信心支撑。此外,书中对“脚本安全”的探讨也非常深入,如何避免常见的注入风险,如何正确处理用户输入,这些内容在很多入门书籍中都是被忽略的。我特别喜欢它在讲解数组和关联数组时,所采用的那种“先演示一个常见的错误用法,再给出正确的、更高效的解决方案”的对比教学法,这种反向学习法极大地加深了我的理解和记忆。这本书为我提供了扎实的内功心法,让我不再是那个只会复制粘贴命令的新人。
译文不好。当工具书用吧。
译文不好。当工具书用吧。
尼玛这个翻译让我怨念无比啊。第一次看的时候看到第五章崩溃了。。这次第二次看,看到地7章崩溃了。。。
学LINUX必读, 没有出去转,懒得看那人山人海,敬业地在家把这本书又啃了一遍,总有新收获
内容先不说,这薄如蝉翼的纸张跟价钱比起来,真是遥相呼应。机械工业出版社,毁书不倦。