Linux Shell编程从入门到精通(第2版)

Linux Shell编程从入门到精通(第2版) pdf epub mobi txt 电子书 下载 2025

张昊,程国钢 著
图书标签:
  • Linux
  • Shell
  • 编程
  • Bash
  • 脚本
  • 系统管理
  • 命令
  • 入门
  • 精通
  • 第2版
  • 实用
想要找书就要到 静思书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115400048
版次:2
商品编码:11775557
包装:平装
开本:16开
出版时间:2015-09-01
用纸:胶版纸
页数:329
正文语种:中文

具体描述

编辑推荐

从基础到精通全面介绍Linux Shell编程
畅销不衰的Linux经典入门图书
适用于各种常见版本的Linux Shell
Linux管理人员的参考手册
丰富典型的实操案例
全程录像的视频讲解光盘

内容简介

本书由浅入深、循序渐进地详细讲解了LinuxShell编程的基本知识。这些基本知识包括Shell编程的基本知识、文本处理的工具和方法、正则表达式、Linux系统知识等。
本书旨在通过理清Linux Shell编程的脉络,从基本概念着手,以丰富、实用的范例作为辅助,使读者能够深入浅出的学习LinuxShell编程。
本书的每一章节都配有综合案例,这些综合案例不仅可以使读者复习前面所学的知识,还可以增加开发项目的经验。这些案例实用性很强,许多代码可以直接应用到Linux系统管理中。
本书配有全程录像的视频讲解光盘,读者可以将视频和书结合起来学习,可以更快、更好地掌握Linux Shell编程技术。
本书适合于Linux Shell编程的初学者,有一定LinuxShell编程基础,但还需要进一步提高的人阅读。本书对于有一定编程经验的程序员也有很好的参考价值。

作者简介

张昊,毕业于南京大学理学院,南京大学开源爱好者组织创始人、南京Linux 使用者组织(NJLUG) 创始人,曾经任职于千橡互动从事底层引擎的开发,编写《Linux Shell编程从入门到精通》。程国钢,北京航空航天大学博士,有丰富的教学科研技术经验,开设单片机教学课程,承担过基于嵌入式的国家863级课题、院级别和国家气象局项目,有多本图书编写经验。

内页插图

目录

第1章 初识Shell程序 
1.1 第一道菜 
1.2 如何运行程序 
1.2.1 选婿:位于第一行的#! 
1.2.2 找茬:程序执行的差异 
1.2.3 shell的命令种类 
1.3 Linux Shell的变量 
1.3.1 变量 
1.3.2 用echo输出变量 
1.3.3 环境变量的相关操作 
1.3.4 shell中一些常用环境变量 
1.4 Linux Shell是解释型语言 
1.4.1 编译型语言与解释型语言 
1.4.2 Linux Shell编程的优势 
1.5 小结   
第2章 Shell编程基础 
2.1 向脚本传递参数 
2.1.1 Shell脚本的参数 
2.1.2 参数的用途 
2.2 I/O重定向 
2.2.1 标准输入、标准输出与标准错误 
2.2.2 管道与重定向 
2.2.3 文件描述符 
2.2.4 特殊文件的妙用 
2.3 基本文本检索 
2.4 UNIX/Linux系统的设计与shell 编程 
2.4.1 一切皆文件 
2.4.2 UNIX编程的基本原则 
2.5 小结   
第3章 编程的基本元素 
3.1 再识变量 
3.1.1 用户变量 
3.1.2 位置变量 
3.1.3 环境变量 
3.1.4 启动文件 
3.2 函数 
3.2.1 函数定义 
3.2.2 函数的参数和返回值 
3.3 条件控制与流程控制 
3.3.1 if/else语句 
3.3.2 退出状态 
3.3.3 退出状态与逻辑操作 
3.3.4 条件测试 
3.4 循环控制 
3.4.1 for循环 
3.4.2 while/until循环 
3.4.3 跳出循环 
3.4.4 循环实例 
3.5 小结  
第4章 正则表达式 
4.1 什么是正则表达式 
4.1.1 正则表达式的广泛应用 
4.1.2 如何学习正则表达式 
4.1.3 如何实践正则表达式 
4.2 正则基础 
4.2.1 元字符 
4.2.2 单个字符 
4.2.3 单个表达式匹配多个字符 
4.2.4 文本匹配锚点 
4.2.5 运算符优先级 
4.2.6 更多差异 
4.3 正则表达式的应用 
4.3.1 扩展 
4.3.2 案例研究:罗马数字 
4.3.3 案例研究:解析电话号码 
4.4 小结   
第5章 基本文本处理 
5.1 排序文本 
5.1.1 sort命令的行排序 
5.1.2 sort命令的字段排序 
5.1.3 sort小结 
5.2 文本去重 
5.3 统计文本行数、字数以及字 符数 
5.4 打印和格式化输出 
5.4.1 使用pr打印文件 
5.4.2 使用fmt命令格式化文本 
5.4.3 使用fold限制文本宽度 
5.5 提取文本开头和结尾 
5.6 字段处理 
5.6.1 字段的使用案例 
5.6.2 使用cut取出字段 
5.6.3 使用join连接字段 
5.6.4 其他字段处理方法 
5.7 文本替换 
5.7.1 使用tr替换字符 
5.7.2 其他选择 
5.8 一个稍微复杂的例子 
5.8.1 实例描述 
5.8.2 取出记录的ip字段和id字段 
5.8.3 将记录按照IP顺序排序 
5.8.4 使用uniq统计重复IP 
5.8.5 根据访问次数进行排序 
5.8.6 提取出现次数最多的100条 
5.9 小结   
第6章 文件和文件系统 
6.1 文件 
6.1.1 列出文件 
6.1.2 文件的类型 
6.1.3 文件的权限 
6.1.4 文件的修改时间 
6.2 寻找文件 
6.2.1 find命令的参数 
6.2.2 遍历文件 
6.3 比较文件 
6.3.1 使用comm比较排序后文件 
6.3.2 使用diff比较文件 
6.3.3 其他文本比较方法 
6.4 文件系统 
6.4.1 什么是文件系统 
6.4.2 文件系统与磁盘分区 
6.4.3 Linux分区格式的选择与安全性 
6.4.4 文件系统与目录树 
6.4.5 文件系统的创建与挂载 
6.5 小结   
第7章 流编辑 
7.1 什么是sed 
7.1.1 挑选编辑器 
7.1.2 sed的版本 
7.2 sed示例 
7.2.1 sed的工作方式 
7.2.2 sed工作的地址范围 
7.2.3 规则表达式 
7.3 更强大的sed功能 
7.3.1 替换 
7.3.2 地址范围的迷惑 
7.4 组合命令 
7.4.1 组合多条命令 
7.4.2 将多条命令应用到一个地址范围 
7.5 实际的例子 
7.6 sed实践 
7.6.1 第一步 替换名字 
7.6.2 第二步 删除前3行 
7.6.3 第三步 显示5~10行 
7.6.4 第四步 删除包含Lane的行 
7.6.5 第五步 显示生日在November-December之间的行 
7.6.6 第六步 把3个星号(***)添加到以Fred开头的行 
7.6.7 第七步 用JOSE HASRETIRED取代包含Jose的行 
7.6.8 第八步 把Popeye的生日改成11/14/46 
7.6.9 第九步 删除所有空白行 
7.6.10 第十步 脚本 
7.7 小结   
第8章 文本处理利器awk 
8.1 来个案例 
8.2 基本语法 
8.2.1 多个字段 
8.2.2 使用其他字段分隔符 
8.3 AWK语言特性 
8.3.1 AWK代码结构 
8.3.2 变量与数组 
8.3.3 算术运算和运算符 
8.3.4 判断与循环 
8.3.5 多条记录 
8.4 用户自定义函数 
8.4.1 自定义函数格式 
8.4.2 引用传递和值传递 
8.4.3 递归调用 
8.5 字符串与算术处理 
8.5.1 格式化输出 
8.5.2 字符串函数 
8.5.3 算术函数 
8.6 案例分析 
8.6.1 生成数据报表 
8.6.2 多文件联合处理 
8.6.3 检验passwd格式的正确性 
8.6.4 sed/awk单行脚本 
8.7 小结   
第9章 进程 
9.1 进程的含义与查看 
9.1.1 理解进程 
9.1.2 创建进程 
9.1.3 查看进程 
9.1.4 进程的属性 
9.2 进程管理 
9.2.1 进程的状态 
9.2.2 shell命令的执行 
9.2.3 进程与任务调度 
9.3 信号 
9.3.1 信号的基本概念 
9.3.2 产生信号 
9.4 Linux的第一个进程init 
9.5 案例分析:Linux系统中管道的实现 
9.6 调度系统任务 
9.6.1 任务调度的基本介绍 
9.6.2 调度重复性系统任务(cron) 
9.6.3 使用at命令 
9.7 进程的窗口/proc 
9.7.1 proc——虚拟文件系统 
9.7.2 查看/proc的文件 
9.7.3 从proc获取信息 
9.7.4 通过/proc与内核交互 
9.8 Linux的线程简介 
9.8.1 Linux线程的定义 
9.8.2 Pthread线程的使用场合 
9.8.3 Linux进程和线程的发展 
9.9 小结   
第10章 超级工具 
10.1 不同的shell 
10.1.1 修改登录shell和切换shell 
10.1.2 选择shell 
10.2 SSH 
10.2.1 SSH的安全验证机制 
10.2.2 使用SSH登录远程主机 
10.2.3 OpenSSH密钥管理 
10.2.4  配置SSH 
10.2.5 使用SSH工具套装拷贝文件 
10.3 screen工具 
10.3.1 任务退出的元凶:SIGHUP信号 
10.3.2 开始使用screen 
10.3.3 screen常用选项 
10.3.4 实例:ssh+screen管理远程会话 
10.4 文本编辑工具Vim 
10.4.1 为什么选择Vim 
10.4.2 从何处获取Vim 
10.4.3 Vim的工作模式 
10.4.4 首次接触:step by step 
10.4.5 鼠标的移动 
10.4.6 基本编辑指令 
10.4.7 复制(yank) 
10.4.8 搜寻、替换 
10.5 小结   
第11章 Linux

前言/序言


Linux Shell 编程:掌握命令行的强大力量 在当今技术飞速发展的时代,掌握强大的命令行工具已成为提升效率、解决复杂问题以及深入理解操作系统运作机制的关键。Linux Shell 编程,作为连接用户与 Linux 内核的桥梁,更是现代 IT 专业人士不可或缺的技能。本书旨在为读者提供一个全面而深入的学习路径,从 Shell 的基础概念出发,逐步引导读者掌握各种命令、脚本编写技巧,最终成为能够独立解决问题的 Shell 编程达人。 第一部分:Shell 基础与命令行的艺术 本部分将从最基础的概念入手,为读者构建坚实的 Shell 编程基础。我们将详细介绍 Shell 的概念,包括什么是 Shell、常见的 Shell 类型(如 Bash、Zsh),以及 Shell 在 Linux 系统中的重要作用。读者将学习如何与 Shell 进行交互,包括输入命令、理解命令的执行过程、以及如何利用 Shell 的历史命令功能来提高效率。 随后,我们将深入讲解 Linux 系统中常用的基础命令。这些命令是 Shell 编程的基石,掌握它们能够极大地扩展我们在命令行下的操作能力。我们将涵盖文件和目录管理命令(如 `ls`、`cd`、`mkdir`、`rm`、`cp`、`mv`),文本处理命令(如 `cat`、`less`、`more`、`head`、`tail`、`grep`、`sed`、`awk`),进程管理命令(如 `ps`、`top`、`kill`、`nice`),以及权限管理命令(如 `chmod`、`chown`)。对于每一个命令,我们都会详细解释其语法、常用选项以及实际应用场景,并通过丰富的示例来加深读者的理解。 此外,本部分还将介绍 Shell 的一些核心概念,如环境变量、通配符、I/O 重定向、管道以及命令的组合。理解这些概念对于编写更复杂、更强大的 Shell 脚本至关重要。我们将解释环境变量如何影响命令的执行,如何利用通配符简化文件匹配,如何通过重定向将命令的输出或输入导向文件,以及如何利用管道将多个命令的输出连接起来,实现数据的流水线处理。 第二部分:Shell 脚本编程的进阶之路 在掌握了 Shell 的基础知识和常用命令后,本部分将带领读者进入 Shell 脚本编程的精彩世界。我们将从编写简单的 Shell 脚本开始,逐步学习如何使用各种控制结构来构建逻辑清晰、功能强大的脚本。 首先,我们将介绍 Shell 脚本的基本结构,包括 Shebang(`!`)的使用、脚本的注释、以及如何使脚本可执行。然后,我们将深入讲解 Shell 脚本中的变量,包括变量的定义、赋值、使用以及常见的变量类型。理解变量是编写动态脚本的关键。 接下来,我们将详细介绍 Shell 脚本中的控制流结构,这是实现脚本逻辑的核心。我们将学习条件判断语句(如 `if`、`else`、`elif`、`case`),包括如何使用比较运算符、逻辑运算符以及文件测试运算符来构建复杂的条件判断。然后,我们将学习循环结构(如 `for`、`while`、`until`),包括如何迭代遍历文件列表、执行重复性任务,以及如何使用 `break` 和 `continue` 来控制循环的执行。 函数在 Shell 脚本编程中扮演着重要的角色,它们可以提高代码的复用性和模块化。本部分将详细讲解函数的定义、调用、参数传递以及返回值。通过函数,我们可以将复杂的任务分解成更小的、可管理的单元。 此外,我们还会介绍 Shell 脚本中常用的命令替换和命令替换的方式,以及如何使用它们来捕获命令的输出并将其作为变量使用。正则表达式在文本处理和模式匹配方面具有强大的能力,本部分将对其进行深入介绍,并展示如何在 Shell 脚本中使用 `grep`、`sed`、`awk` 等命令结合正则表达式来处理文本数据。 第三部分:高级 Shell 脚本技术与实践 在本部分,我们将进一步拓展读者的 Shell 脚本编程技能,学习更高级的技术和解决实际问题的策略。 我们将深入探讨 Shell 脚本中的错误处理机制。了解如何捕获和处理命令执行过程中可能出现的错误,以及如何使用 `exit` 命令来指定脚本的退出状态码,对于编写健壮的脚本至关重要。 信号处理是另一个重要的主题,我们将介绍如何使用 `trap` 命令来捕获和响应系统信号,从而实现更精细化的脚本控制,例如在脚本退出前执行清理操作。 数组在 Shell 脚本中提供了存储和操作多个数据项的能力。我们将详细介绍数组的声明、访问、以及常用的数组操作,例如数组元素的添加、删除和遍历。 我们将介绍如何使用 `read` 命令从用户输入或文件中读取数据,以及如何将这些数据用于脚本的逻辑判断和处理。 函数库的创建和使用也是本部分的重要内容。学习如何将常用的函数封装成库,然后在不同的脚本中引用和调用,可以极大地提高开发效率。 此外,我们还将介绍一些实用的 Shell 脚本编写技巧,例如如何调试 Shell 脚本、如何提高脚本的性能、以及如何编写可移植的 Shell 脚本。 第四部分:Shell 脚本在实际应用中的案例分析 理论结合实践是掌握任何技能的关键。本部分将通过一系列精心设计的实际应用案例,帮助读者巩固所学知识,并将 Shell 脚本的威力应用到实际工作中。 我们将从文件备份和归档的脚本开始,展示如何利用 `tar`、`gzip` 等命令结合 Shell 脚本实现自动化备份。 接着,我们将学习如何编写系统监控脚本,例如监控 CPU 使用率、内存占用、磁盘空间等,并实现异常情况的报警。 网络管理也是 Shell 脚本的常用领域,我们将展示如何编写脚本来自动化配置网络接口、检查网络连通性、以及进行端口扫描。 日志分析是系统管理中的重要环节,我们将学习如何利用 `grep`、`awk`、`sed` 等命令编写脚本来提取和分析日志文件中的关键信息。 此外,我们还将探讨如何利用 Shell 脚本与 `cron` 任务调度器结合,实现定时执行任务,以及如何编写脚本来管理用户和权限。 第五部分:Shell 编程的未来与扩展 在掌握了 Shell 编程的基础和进阶技能后,本部分将展望 Shell 编程的未来发展方向,并为读者提供进一步学习的建议。 我们将简要介绍一些更高级的 Shell 功能,例如 Shell 的一些内建命令和特殊的 Shell 变量。 我们将探讨 Shell 脚本与其它编程语言(如 Python、Perl)的集成,以及如何利用它们各自的优势来构建更复杂的系统。 最后,我们将提供一些学习资源和社区支持的建议,帮助读者在 Shell 编程的道路上不断成长,充分发挥 Linux Shell 编程的强大力量。 本书的编写力求通俗易懂,辅以大量生动形象的示例,旨在让每一位读者都能在掌握 Shell 编程的精髓后,自信地应对各种技术挑战,提升工作效率,并更深入地理解 Linux 操作系统的强大之处。无论您是初次接触 Linux 的新手,还是希望提升自身技术水平的 IT 专业人士,本书都将是您不可或缺的学习伙伴。

用户评价

评分

作为一个刚踏入IT领域的新手,选择一本好的入门书籍至关重要,而《Linux Shell编程从入门到精通(第2版)》就是我开启Shell编程之旅的绝佳伙伴。这本书的内容详实,讲解生动,完全没有我想象中技术书籍的那种枯燥乏味。作者用非常形象的比喻和贴近生活的例子来解释每一个概念,让我这个初学者也能轻松理解。比如,在讲解变量和数据类型时,它不仅仅是简单地罗列语法,而是通过模拟日常生活中的场景,比如“存放物品的盒子”、“数字的运算”等,让我很快就抓住了核心要点。我对书中关于条件判断和循环语句的介绍印象特别深刻,它通过一些小巧的脚本示例,直观地展示了这些语句在实际应用中的强大功能。看着屏幕上那些简单的代码行,却能完成一系列复杂的任务,我感到无比的兴奋和成就感。这本书让我觉得,原来Shell编程并没有那么遥不可及,它是一种非常实用的技能,能够极大地提高我的工作效率。我非常期待在接下来的学习过程中,能够通过书中提供的练习题,真正地掌握Shell脚本的编写技巧,为将来的职业发展打下坚实的基础。

评分

这本《Linux Shell编程从入门到精通(第2版)》的封面设计就带着一股浓浓的技术范儿,深邃的蓝色背景,搭配着简洁有力的白色字体,让人一眼就能感受到其专业性。翻开书页,一股淡淡的纸墨香扑鼻而来,瞬间拉近了与技术的距离。我是一名在IT行业摸爬滚打多年的老兵,虽然日常工作接触Linux的场景不少,但对于Shell编程的深入理解一直觉得有所欠缺,总是感觉隔靴搔痒。这次入手这本书,纯粹是抱着“查漏补缺”的心态,希望能系统性地梳理一下我对Shell语言的认知。我尤其关注书中关于文件 I/O 操作、正则表达式在Shell中的应用,以及如何编写健壮、高效的Shell脚本来自动化日常运维任务的部分。我知道Shell脚本的威力在于其强大的自动化能力,能将繁琐重复的工作变得轻松高效,所以希望这本书能在这个方面给我带来实质性的提升。书的排版也相当舒服,代码块清晰明了,注释也写得比较到位,这对于快速理解和消化内容至关重要。我喜欢它那种循序渐进的讲解方式,不会上来就抛出过于复杂的概念,而是从最基础的命令讲起,逐步深入。

评分

这本书的书名就很吸引人,《Linux Shell编程从入门到精通(第2版)》,听起来就充满了挑战性和全面性。我一直对Linux的底层工作原理很感兴趣,而Shell编程无疑是理解和操作Linux系统的核心技能之一。我最期待的是书中能够深入剖析Shell脚本的执行过程,以及它与操作系统内核之间的交互原理。我希望能够理解为什么某些命令会那样工作,而不是仅仅停留在“照猫画虎”的层面。作者在讲解过程中,是否能穿插一些关于Shell设计哲学和发展历史的介绍,那会让我对这个领域有更深层次的理解。此外,书中关于进程管理、用户权限控制以及系统资源监控等方面的Shell脚本实践,也是我非常感兴趣的内容。我希望能通过学习这些,更好地理解和管理Linux系统,确保其稳定高效地运行。这本书的价值在于,它不仅仅教授“如何做”,更重要的是解释“为什么这样做”,这种深度是我在其他一些零散的教程中很难获得的。

评分

我是一名在云计算领域工作的工程师,日常工作中频繁需要与Linux服务器打交道,而Shell脚本更是实现自动化部署、监控和管理的关键工具。我选择《Linux Shell编程从入门到精通(第2版)》,是希望能够系统地提升自己在Shell脚本开发方面的能力,特别是在处理复杂场景和优化脚本性能方面。书中对于函数、参数传递、错误处理机制的讲解,对我来说非常有价值。我经常遇到需要封装重复性任务的情况,而函数的概念能够很好地解决这个问题,提高代码的可维护性和复用性。另外,作者对于Shell脚本性能优化的探讨,也让我眼前一亮。我知道,在处理大规模数据或者高并发场景时,脚本的效率至关重要,一点点的优化都可能带来巨大的收益。书中提到的一些高级技巧,比如管道、重定向的深入应用,以及如何利用awk、sed等工具进行文本处理,都让我看到了提升效率的希望。这本书的案例分析也相当到位,能够让我将理论知识与实际工作相结合,迅速解决生产环境中的实际问题。

评分

拿到《Linux Shell编程从入门到精通(第2版)》这本书,首先映入眼帘的是它精炼且极具吸引力的封面设计,深邃的蓝色调,搭配着清晰锐利的文字,无不散发着技术书籍特有的严谨与力量感。我是一名对Linux操作系统及其周边技术有着浓厚兴趣的自学者,平日里常常会在各种技术论坛和社区中泡着,但总感觉自己对Shell编程的掌握还停留在“浅尝辄止”的阶段,缺乏系统性的指导。这次选择这本书,很大程度上是看中了其“从入门到精通”的定位,我希望它能够引导我循序渐进地掌握Shell脚本开发的方方面面,从最基础的命令语法,到构建复杂、高效的自动化解决方案。我尤其期待书中在“精通”阶段能够提供一些真正能够提升实际工作效率的“杀手级”应用技巧,例如如何利用Shell脚本进行大规模日志分析,如何实现跨服务器的任务调度和管理,以及如何编写具有高可用性和容错性的脚本。书的编排结构和内容深度,是我最为关注的,我希望它能做到理论与实践并重,既有清晰的原理阐述,又有丰富的实战案例,让我能够将所学知识迅速转化为解决实际问题的能力。

评分

入门书,定价贵,

评分

不错。。京东还是不错滴。速度快,我喜欢

评分

好~

评分

讲解很细致,知识面也很广,正在学习中。

评分

书很不错,学起来有点吃力,因为光盘读取不了(??益?)

评分

不错。集中精力的话,一个月应该能看完。

评分

不错。集中精力的话,一个月应该能看完。

评分

不错。。京东还是不错滴。速度快,我喜欢

评分

优美的10个字。优美的10个字。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有