描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787111482024丛书名: 信息科学与技术丛书
编辑推荐
★强调动手动脑,实践与理论并重。
★不同难度的示例,适合各层次的读者。
★不同难度的示例,适合各层次的读者。
内容简介
本书系统地介绍了在Linux系统中广泛使用的Bash脚本语言。全书内容的安排由浅入深,体系合理。先讲解脚本的概念和学习环境的搭建,接下来介绍Linux的常用命令,然后根据概念之间的依赖关系,讲解Bash环境设置、变量与数组、条件流程控制、循环、函数、正则表达式、文本处理、进程与作业、高级话题等。本书是一本不可多得的shell编程原创读物。
目 录
出版说明
前言
第1章 概述
1.1 为什么要学习Linuxshell脚本
1.2 什么是shell
1.3 什么是shell脚本
1.4 为什么要学习Bash
1.5 Bash学习环境的准备
1.5.1 Linux的准备
1.5.2 Cygwin工具
1.5.3 VVware与Linux虚拟机
1.6 Linux命令格式简介
1.7 如何获得Linux命令的帮助
第2章 Linux基础知识与常用命令
2.1 Linux的文件与目录结构
2.2 查看文件清单命令1s
2.3 浏览文件命令cat、more、less、head和tail
2.4 文件统计命令WC
2.5 改变当前工作目录命令cd
2.6 创建目录命令mkdir
2.7 复制命令cp
2.8 重命名或移动命令mv
2.9 创建符号链接和硬链接命令1n
2.10 显示当前目录命令pwd
2.11 产生空文件或者改变文件时间戳命令touch
2.12 查看账户名及其所属组的命令whoami、id和groups
2.13 文件与目录的权限
2.14 改变权限命令chmod
2.15 SUID与SGID以及粘滞位
2.15.1 SLIID
2.15.2 SGID
2.15.3 粘滞位
2.16 查看文件的三种时间
2.17 删除命令rnl与rmdir
2.18 编辑文件命令vi
2.19 用于显示的命令echo
2.20 查看文件类型命令file
2.21 显示树状目录信息命令tree
2.22 查找命令fmd
第3章 Bash内置命令与环境简介
3.1 内置命令与外部命令
3.2 认识.Bastl环境
3.2.1 命令行提示Ps1
3.2.2 搜索路径PATH
3.2.3 设置和取消别名命令alias和unalias
3.2.4 修改bashrc——设置自己的环境
3.3 权限掩码命令umask
3.4 source命令和点命令
3.5 编写并运行第一个脚本
3.6 命令解释顺序与命令类型的查询
3.6.1 命令的解释顺序
3.6.2 改变命令解释顺序的三条内置命令
3.6.3 命令类型的查询
3.7 命令的退出状态以及命令true和false
3.8 管道
3.9 输入输出重定向
3.9.1 标准输入和标准输出
3.9.2 输入输出重定向与输出追加重定向
3.9.3 预防输出重定向覆盖旧文件
3.9.4 标准错误输出与“黑洞”
3.9.5 同时把结果输出至标准输出与文件的命令tee
3.10 exec命令与文件描述符
3.11 有关命令的进一步讨论
3.11.1 一行多命令
3.11.2 将命令放在后台执行
3.11.3 命令行的续行
3.11.4 命令的补齐与命令历史
3.11.5 操作名含空格的文件
3.11.6 操作名字母为减号的文件
3.11.7 windtows与Linux文件格式的互转
3.11.8 小括号与大括号中的命令
3.11.9 子shell
第4章 变量与数组
4.1 变量的定义与清除
4.2 字符串定义及单双引号与大括号的使用
4.3 将命令执行结果赋给变量——反引号与$()
4.4 键盘输入变量值——内置命令read
4.5 整型变量运算
4.6 浮点运算
4.7 定义只读变量命令readonly和declarer
4.8 定义整型变量命令declare.i
4.9 数组
4.10 关联数组
4.11 导出变量命令export和declare.X
4.12 declare命令总结
4.13 环境变量与特殊变量
4.14 内置变量
4.15 计算表达式值的命令expr.
4.16 变量测试及其相应的赋值
4.17 字符串操作
4.17.1 Bash内置的字符串操作
4.17.2 用命令expt处理字符串
第5章 条件流程控制
5.1 条件判断与test命令
5.1.1 整型数关系运算
5.1.2 字符串关系运算
5.1.3 文件属性条件判断
5.1.4 逻辑的与或非
5.1.5 与或非的优先级
5.1.6 双中括号格式
5.1.7 在双小括号里面进行整数比较
5.1.8 命令的与或非
5.1.9 判断变量是否定义
5.2 条件测试结构if
5.3 if-else结构
5.4 if-elif结构
5.5 分情况选择处理——case命令
5.6 命令exit与if及case命令的配合
5.7 用here文档与case命令生成菜单
5.8 null命令
第6章 循环
6.1 for循环
6.2 算术for循环
6.3 while循环
6.4 until循环
6.5 用break和continue控制循环
6.6 用命令shift控制循环
6.7 选择命令select
6.8 循环命令与I/O重定向及管道的配合
6.9 脚本的选项与参数
6.9.1 命令shift
6.9.2 命令getopts
第7章 函数
7.1 函数定义
7.2 给函数传递参数
7.3 函数的局部与全局变量
7.4.当前的函数名FUNCNAME
7.5 在命令行执行函数
7.6 查看当前shell的函数定义
7.7 选项一f与函数的导出、清除与只读设置
7.8 返回命令return
7.9 递归函数
第8章 正则表达式与文本处理
8.1 文件名替换
8.1.1 多字符替换
8.1.2 单字符替换?
8.1.3 范围替换□与[!]
8.2 正则表达式与grep
8.2.1 过滤器grep
8.2.2 扩展的egrep
8.2.3 POSIX字符类
8.2.4 Bash扩展模式匹配
8.3 剪取内容命令cut
8.4 合并相应行的命令paste.
8.5 转换或删除字符命令tr
8.6 排序命令sort
8.7 流编辑器sed
8.7.1 替换命令s
8.7.2 其他命令
8.7.3 一行多条命令与保存匹配&
8.7.4 sed的退出状态
8.7.5 sed脚本
8.8 文本处理工具awk
8.9 格式化打印命令printf
第9章 进程与作业
9.1 查看进程命令ps
9.2 挂起进程(Ctrl+Z)键
9.3 前台fg与后台bg
9.4 发送信号命令kill
9.5 等待命令wait
9.6 捕获信号命令trap
9.7 移除作业的命令disown
9.8 暂停shell的命令suspend
第10章 高级话题
10.1 二次扫描命令eval
10.2 目录栈操作命令pushd、popd与dirs
10.3 波浪号扩展
10.4 (非)登录及(非)交互shell
10.5 Bashshell选项
10.6 用命令set设置shell
10.7 用命令shopt设置shell
10.8 终端行设置命令stty
10.9 不在脚本和函数内使用别名
10.10 Bash调试
10.11 并行命令parallel
10.12 模拟旋转型进度指示
10.13 删除文件空行
10.14 完善while.shift循环
附录 Bash安全漏洞shellshock
参考文献
前言
第1章 概述
1.1 为什么要学习Linuxshell脚本
1.2 什么是shell
1.3 什么是shell脚本
1.4 为什么要学习Bash
1.5 Bash学习环境的准备
1.5.1 Linux的准备
1.5.2 Cygwin工具
1.5.3 VVware与Linux虚拟机
1.6 Linux命令格式简介
1.7 如何获得Linux命令的帮助
第2章 Linux基础知识与常用命令
2.1 Linux的文件与目录结构
2.2 查看文件清单命令1s
2.3 浏览文件命令cat、more、less、head和tail
2.4 文件统计命令WC
2.5 改变当前工作目录命令cd
2.6 创建目录命令mkdir
2.7 复制命令cp
2.8 重命名或移动命令mv
2.9 创建符号链接和硬链接命令1n
2.10 显示当前目录命令pwd
2.11 产生空文件或者改变文件时间戳命令touch
2.12 查看账户名及其所属组的命令whoami、id和groups
2.13 文件与目录的权限
2.14 改变权限命令chmod
2.15 SUID与SGID以及粘滞位
2.15.1 SLIID
2.15.2 SGID
2.15.3 粘滞位
2.16 查看文件的三种时间
2.17 删除命令rnl与rmdir
2.18 编辑文件命令vi
2.19 用于显示的命令echo
2.20 查看文件类型命令file
2.21 显示树状目录信息命令tree
2.22 查找命令fmd
第3章 Bash内置命令与环境简介
3.1 内置命令与外部命令
3.2 认识.Bastl环境
3.2.1 命令行提示Ps1
3.2.2 搜索路径PATH
3.2.3 设置和取消别名命令alias和unalias
3.2.4 修改bashrc——设置自己的环境
3.3 权限掩码命令umask
3.4 source命令和点命令
3.5 编写并运行第一个脚本
3.6 命令解释顺序与命令类型的查询
3.6.1 命令的解释顺序
3.6.2 改变命令解释顺序的三条内置命令
3.6.3 命令类型的查询
3.7 命令的退出状态以及命令true和false
3.8 管道
3.9 输入输出重定向
3.9.1 标准输入和标准输出
3.9.2 输入输出重定向与输出追加重定向
3.9.3 预防输出重定向覆盖旧文件
3.9.4 标准错误输出与“黑洞”
3.9.5 同时把结果输出至标准输出与文件的命令tee
3.10 exec命令与文件描述符
3.11 有关命令的进一步讨论
3.11.1 一行多命令
3.11.2 将命令放在后台执行
3.11.3 命令行的续行
3.11.4 命令的补齐与命令历史
3.11.5 操作名含空格的文件
3.11.6 操作名字母为减号的文件
3.11.7 windtows与Linux文件格式的互转
3.11.8 小括号与大括号中的命令
3.11.9 子shell
第4章 变量与数组
4.1 变量的定义与清除
4.2 字符串定义及单双引号与大括号的使用
4.3 将命令执行结果赋给变量——反引号与$()
4.4 键盘输入变量值——内置命令read
4.5 整型变量运算
4.6 浮点运算
4.7 定义只读变量命令readonly和declarer
4.8 定义整型变量命令declare.i
4.9 数组
4.10 关联数组
4.11 导出变量命令export和declare.X
4.12 declare命令总结
4.13 环境变量与特殊变量
4.14 内置变量
4.15 计算表达式值的命令expr.
4.16 变量测试及其相应的赋值
4.17 字符串操作
4.17.1 Bash内置的字符串操作
4.17.2 用命令expt处理字符串
第5章 条件流程控制
5.1 条件判断与test命令
5.1.1 整型数关系运算
5.1.2 字符串关系运算
5.1.3 文件属性条件判断
5.1.4 逻辑的与或非
5.1.5 与或非的优先级
5.1.6 双中括号格式
5.1.7 在双小括号里面进行整数比较
5.1.8 命令的与或非
5.1.9 判断变量是否定义
5.2 条件测试结构if
5.3 if-else结构
5.4 if-elif结构
5.5 分情况选择处理——case命令
5.6 命令exit与if及case命令的配合
5.7 用here文档与case命令生成菜单
5.8 null命令
第6章 循环
6.1 for循环
6.2 算术for循环
6.3 while循环
6.4 until循环
6.5 用break和continue控制循环
6.6 用命令shift控制循环
6.7 选择命令select
6.8 循环命令与I/O重定向及管道的配合
6.9 脚本的选项与参数
6.9.1 命令shift
6.9.2 命令getopts
第7章 函数
7.1 函数定义
7.2 给函数传递参数
7.3 函数的局部与全局变量
7.4.当前的函数名FUNCNAME
7.5 在命令行执行函数
7.6 查看当前shell的函数定义
7.7 选项一f与函数的导出、清除与只读设置
7.8 返回命令return
7.9 递归函数
第8章 正则表达式与文本处理
8.1 文件名替换
8.1.1 多字符替换
8.1.2 单字符替换?
8.1.3 范围替换□与[!]
8.2 正则表达式与grep
8.2.1 过滤器grep
8.2.2 扩展的egrep
8.2.3 POSIX字符类
8.2.4 Bash扩展模式匹配
8.3 剪取内容命令cut
8.4 合并相应行的命令paste.
8.5 转换或删除字符命令tr
8.6 排序命令sort
8.7 流编辑器sed
8.7.1 替换命令s
8.7.2 其他命令
8.7.3 一行多条命令与保存匹配&
8.7.4 sed的退出状态
8.7.5 sed脚本
8.8 文本处理工具awk
8.9 格式化打印命令printf
第9章 进程与作业
9.1 查看进程命令ps
9.2 挂起进程(Ctrl+Z)键
9.3 前台fg与后台bg
9.4 发送信号命令kill
9.5 等待命令wait
9.6 捕获信号命令trap
9.7 移除作业的命令disown
9.8 暂停shell的命令suspend
第10章 高级话题
10.1 二次扫描命令eval
10.2 目录栈操作命令pushd、popd与dirs
10.3 波浪号扩展
10.4 (非)登录及(非)交互shell
10.5 Bashshell选项
10.6 用命令set设置shell
10.7 用命令shopt设置shell
10.8 终端行设置命令stty
10.9 不在脚本和函数内使用别名
10.10 Bash调试
10.11 并行命令parallel
10.12 模拟旋转型进度指示
10.13 删除文件空行
10.14 完善while.shift循环
附录 Bash安全漏洞shellshock
参考文献
评论
还没有评论。