LinuxOS在服务器以及近来引发热议的嵌入式系统中都得到广泛应用,《Linuxshell脚本编程入门》介绍的就是该程序必备的shell编程要素。尤其还收录了现在门户网站、企业等使用的主流套件CentOS(CommunityENTerpriseOperatingSystem)为基础的各种Linux命令,并以此为基础编写了Linuxshell脚本编程示例,使读者可以亲自测试。
通过《Linuxshell脚本编程入门》,读者可以了解到Linux学习中必知的shell(Bourneshell、Bashshell)指令,学习Linux整体系统要素,熟悉Linux服务器和嵌入式Linux的基础知识。另外,通过对Linux服务器运行中的必要因素——shell脚本编程的理解和示例,读者可以成长为善于思考的管理员、程序员,提高自己的知识水平。
第1章 Linux shell和基本指令
1.1 Linux和shell
1.2 Linux环境
1.2.1 Linux诞生
1.2.2 Linux的特征
1.2.3 vi(m)编辑器
1.2.4 Linux中的文件和文件系统
1.3 shell脚本编程基础知识
1.3.1 简介
1.3.2 帮助页面
1.3.3 Linux默认指令格式
1.3.4 shell的编辑模式
1.3.5 指定变量和消息输出(printf、echo)
1.3.6 使用多重指令(;、&&、||)
1.3.7 历史命令(.history、↓、↑、!)
1.4 Linux目录操作
1.4.1 pwd:显示当前工作目录位置
1.4.2 ls:显示当前文件和目录内容
1.4.3 cd:切换工作目录
1.4.4 less、more、cat:浏览文本文件
1.4.5 file:显示文件类型
1.4.6 Linux的默认目录结构
1.4.7 文件和目录操作
1.5 I/O重定向和管道
1.5.1 标准输出
1.5.2 标准输入
1.5.3 管道
1.5.4 过滤器
1.6 文件访问权限
1.6.1 文件/目录许可
1.6.2 chmod
1.6.3 chown、chgrp
1.6.4 lsattr、chattr
1.7 作业控制
1.7.1 bg
1.7.2 jobs、ps、kill
1.8 系统管理员指令总结
1.8.1 用户和组
1.8.2 终端
1.8.3 信息与统计
1.8.4 系统日志
1.8.5 作业控制
1.8.6 进程管理和启动
1.8.7 网络
1.8.8 文件系统
1.8.9 备份
1.8.10 系统资源
1.8.11 模块
1.8.12 其他指令
第2章 shell脚本示例解析
2.1 Linux启动过程和登录shell
2.1.1 Linux启动、终止与重启
2.1.2 shell初始化文件
2.2 命令行解析
2.3 指令类型
2.4 进程与shell
2.4.1 运行中的进程类型
2.4.2 系统调用
2.4.3 进程创建和系统调用
2.5 变量(Bourne shell)
2.5.1 变量类型
2.5.2 生成变量
2.5.3 局部变量转为环境变量
2.5.4 预定义变量
2.5.5 特殊参数变量
2.6 Bourne shell
2.6.1 shbang行
2.6.2 注释
2.6.3 通配符
2.6.4 显示器显示
2.6.5 局部变量
2.6.6 全局变量
2.6.7 从变量读取值
2.6.8 读取用户输入信息
2.6.9 参数
2.6.10 数组
2.6.11 替换命令
2.6.12 算术运算
2.6.13 运算符
2.6.14 条件语句
2.6.15 循环语句
2.6.16 文件测试
2.6.17 函数
2.7 Bash shell语法和结构
2.7.1 Bash shell介绍
2.7.2 Bash shell环境及初始化文件
2.7.3 Bash shell选项设置命令set、shopt
2.7.4 shell提示符
2.7.5 搜索路径
2.7.6 hash命令
2.7.7 source或dot(.)命令
2.8 命令行
2.8.1 命令处理顺序
2.8.2 内置命令和help命令
2.8.3 改变命令行处理顺序
2.8.4 终止状态
2.8.5 命令行中的多个指令
2.8.6 命令整合
2.8.7 执行命令条件
2.8.8 通过后台执行命令
2.9 作业控制
2.10 命令行快捷方式
2.10.1 完成命令和文件名
2.10.2 历史
2.10.3 访问历史文件的命令
2.10.4 命令行的编辑
2.11 别名
2.11.1 别名目录
2.11.2 创建别名
2.11.3 删除别名
2.12 操作目录栈
2.12.1 dirs命令
2.12.2 pushd和popd命令
2.13 元字符集
2.14 替换文件名
2.14.1 星号(*)
2.14.2 问号(?)
2.14.3 方括号([ ])
2.14.4 花括号扩展({ })
2.14.5 转义元字符(\)
2.14.6 波浪线(~)和连字符(-)扩展
2.14.7 通配符管理
2.14.8 扩展文件名通配
2.15 变量(Bash shell)
2.15.1 变量类型
2.15.2 变量名
2.15.3 declare命令
2.15.4 局部变量和使用范围
2.15.5 环境变量
2.15.6 清除变量设置
2.15.7 显示变量值
2.15.8 变量扩展修饰符
2.15.9 截取字符串的变量扩展名
2.15.10 位置参数
2.15.11 其他特殊变量
2.16 引用符号
2.16.1 反斜杠(\)
2.16.2 单引号(' ')
2.16.3 双引号(" ")
2.17 替换命令
2.18 算数扩展
2.19 shell扩展顺序
2.20 数组
2.21 函数
2.21.1 函数定义
2.21.2 清除函数目录和设置
2.22 标准I/O和重定向
2.23 管道
2.24 shell调用选项
第3章 正则表达式和模式检索
3.1 正则表达式
3.2 正则表达式的元字符集
第4章 grep模式检索
4.1 grep
4.2 egrep
4.3 fgrep
第5章 sed实用工具
5.1 sed
5.2 sed版本和帮助页面
5.3 sed工作原理
5.4 正则表达式的使用
第6章 awk编程
6.1 awk
6.2 awk编程格式
6.2.1 从文件输入
6.2.2 从指令输入
6.2.3 awk工作原理
6.2.4 print函数
6.2.5 OFMT变量
6.2.6 printf函数
6.2.7 awk -f选项
6.2.8 记录和字段
6.2.9 模式和动作
6.3 awk和正则表达式
6.4 脚本文件中的awk
6.5 比较表达式
6.5.1 条件表达式
6.5.2 算术运算符
6.5.3 逻辑运算符和混合模式
6.6 awk变量
6.6.1 数值与字符串常数
6.6.2 用户自定义变量
6.6.3 BEGIN模式
6.6.4 END模式
6.7 awk重定向
6.7.1 输出重定向
6.7.2 输入重定向
6.8 awk管道
6.9 条件语句
6.9.1 if条件语句
6.9.2 if/else 条件语句
6.9.3 if/else if/else条件语句
6.10 loop循环语句
6.10.1 while循环语句
6.10.2 for循环语句
6.10.3 管理循环语句
6.11 程序管理语句
6.11.1 next语句
6.11.2 exit函数
6.12 数组
6.12.1 针对关联数组的子脚本
6.12.2 命令处理参数
6.13 awk内置函数(1)
6.14 awk内置数学函数
6.14.1 整数型函数
6.14.2 生成随机数
6.15 用户自定义函数
6.16 其他
6.16.1 固定宽度字段
6.16.2 多行记录
6.17 awk内置函数(2)
6.17.1 字符串函数
6.17.2 时间函数
6.17.3 命令行参数
6.17.4 读取输入值
6.17.5 控制函数
6.17.6 用户自定义函数
6.17.7 awk命令行选项
第7章 Bash shell编程
7.1 简介
7.2 读取用户输入
7.2.1 变量
7.2.2 read命令
7.3 算数运算
7.3.1 整数算数运算
7.3.2 实数型算数运算
7.4 位置参数和命令行参数
7.4.1 位置参数
7.4.2 set命令和位置参数
7.5 条件语句和分支语句
7.5.1 终止状态
7.5.2 test命令和let命令
7.5.3 if/then/else命令
7.5.4 if/then/elif/then/else命令
7.5.5 文件测试
7.5.6 null命令
7.5.7 case命令
7.6 循环语句命令
7.6.1 for循环语句命令
7.6.2 $*和$@
7.6.3 while循环语句命令
7.6.4 until循环语句命令
7.6.5 select命令和菜单
7.6.6 循环语句管理命令
7.6.7 I/O重定向和子shell
7.6.8 在后台使用循环语句
7.6.9 IFS和循环语句
7.7 函数
7.7.1 解除函数设置
7.7.2 导出函数
7.7.3 函数参数和返回值
7.7.4 函数和source命令
7.8 捕获信号
7.8.1 信号重置
7.8.2 忽略信号
7.8.3 trap目录
7.8.4 trap和函数
7.9 调试Bash脚本
7.10 命令行
7.10.1 使用getops的命令行处理
7.10.2 特殊的getopts变量
7.10.3 eval命令和命令行解析
7.11 Bash选项
7.11.1 shell调用选项
7.11.2 set命令和选项
7.12 shell内置命令
7.13 shell对照表
7.14 Linux启动脚本分析
7.15 利用Bash脚本创建Text GUI
7.15.1 安装dialog实用工具
7.15.2 dialog用法
7.15.3 消息框(MsgBox)
7.15.4 yes/no消息框
7.15.5 输入框
7.15.6 单选列表
7.15.7 编写dialog示例
第8章 vi(m)编辑器和有用的实用工具
8.1 vi(m)编辑器:vi improved
8.1.1 vi(m)
8.1.2 vi(m)启动
8.1.3 常用编辑命令
8.1.4 高级编辑命令
8.1.5 使用多个编辑窗口
8.2 vi(m)教程
8.3 有用的实用工具
8.3.1 cut
8.3.2 paste
8.3.3 join
8.3.4 tr
8.3.5 uniq
8.3.6 split
8.3.7 col
8.3.8 xarg
8.3.9 find
8.3.10 tee
索引