LINUX 与 UNIX SHELL编程指南
文件大小: 21627k
源码售价: 10 个金币 积分规则     积分充值
资源说明:第 1 章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod 命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod 命令的其他例子 6 1.4.5 可以选择使用符号模式或绝对模式 7 1.5 目录 7 1.6 suid/guid 7 1.6.1 为什么要使用 suid/guid 8 1.6.2 设置 suid/guid 的例子 8 1.7 chown 和 chgrp 9 1.7.1 chown 举例 9 1.7.2 chgrp 举例 9 1.7.4 找出其他用户所属于的组 10 1.8 umask 10 1.8.1 如何计算 umask 值 10 1.8.2 常用的 umask 值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 第 2 章 使用 find 和 xargs 14 2.1 find 命令选项 14 2.1.1 使用 name 选项 15 2.1.2 使用 perm 选项 16 2.1.3 忽略某个目录 16 2.1.4 使用 user 和 nouser 选项 16 2.1.5 使用 group 和 nogroup 选项 16 2.1.6 按照更改时间查找文件 17 2.1.7 查找比某个文件新或旧的文件 17 2.1.8 使用 type 选项 17 2.1.9 使用 size 选项 18 2.1.10 使用 depth 选项 18 2.1.11 使用 mount 选项 18 2.1.12 使用 cpio 选项 18 2.1.13 使用 exec 或 ok 来执行 shell 命令 19 2.1.14 find 命令的例子 20 2.2 xargs 20 2.3 小结 21 第 3 章 后台执行命令 22 3.1 cron 和 crontab 22 3.1.1 crontab 的域 22 3.1.2 crontab 条目举例 23 3.1.3 crontab 命令选项 23 3.1.4 创建一个新的 crontab 文件 24 3.1.5 列出 crontab 文件 24 3.1.6 编辑 crontab 文件 24 3.1.7 删除 crontab 文件 25 3.1.8 恢复丢失的 crontab 文件 25 3.2 at 命令 25 3.2.1 使用 at 命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用 ps 命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup 命令 29 3.4.1 使用 nohup 命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第 4 章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第 5 章 shell 输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准输出 41 5.7.2 重定向标准输入 42 5.7.3 重定向标准错误 42 5.8 结合使用标准输出和标准错误 43 5.9 合并标准输出和标准错误 43 5.10 exec 44 5.11 使用文件描述符 44 5.12 小结 45 第 6 章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第 7 章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复序列 51 7.5 使用\屏蔽一个特殊字符的含义 52 7.6 使用[]匹配一个范围或集合 52 7.7 使用\{\}匹配模式结果出现的次数 53 7.8 小结 55 第 8 章 grep 家族 56 8.1 grep 57 8.1.1 双引号引用 57 8.1.2 grep 选项 57 8.1.3 查询多个文件 57 8.1.4 行匹配 57 8.1.5 行数 58 8.1.6 显示非匹配行 58 8.1.7 精确匹配 58 8.1.8 大小写敏感 58 8.2 grep 和正则表达式 58 8.2.1 模式范围 59 8.2.2 不匹配行首 59 8.2.3 设置大小写 59 8.2.4 匹配任意字符 59 8.2.5 日期查询 59 8.2.6 范围组合 60 8.2.7 模式出现机率 60 8.2.8 使用 grep 匹配“与”或者“或”模式 61 8.2.9 空行 61 8.2.10 匹配特殊字符 61 8.2.11 查询格式化文件名 61 8.2.12 查询 IP 地址 61 8.3 类名 62 8.4 系统 grep 命令 62 8.4.1 目录 63 8.4.2 passwd 文件 63 8.4.3 使用 ps 命令 63 8.4.4 对一个字符串使用 grep 64 8.5 egrep 64 8.6 小结 65 第 9 章 AWK 介绍 66 9.1 调用 awk 66 9.2 awk 脚本 67 9.2.1 模式和动作 67 9.2.2 域和记录 67 9.2.3 awk 中正则表达式及其操作 70 9.2.4 元字符 70 9.2.5 条件操作符 70 9.2.6 awk 内置变量 73 9.2.7 NF、NR 和 FILENAME 74 9.2.8 awk 操作符 75 9.2.9 内置的字符串函数 78 9.2.10 字符串屏蔽序列 80 9.2.11 awk 输出函数 printf 81 9.2.12 printf 修饰符 81 9.2.13 awk 数组 86 9.3 小结 88 第 10 章 sed 用法介绍 89 10.1 sed 怎样读取数据 89 10.2 调用 sed 89 10.2.1 保存 sed 输出 90 10.2.2 使用 sed 在文件中查询文本的方式 90 10.2.3 基本 sed 编辑命令 90 10.3 sed 和正则表达式 91 10.4 基本 sed 编程举例 91 10.4.1 使用 p(rint)显示行 91 10.4.2 打印范围 91 10.4.3 打印模式 92 10.4.4 使用模式和行号进行查询 92 10.4.5 匹配元字符 92 10.4.6 显示整个文件 92 10.4.7 任意字符 92 10.4.8 首行 92 10.4.9 最后一行 93 10.4.10 打印行号 93 10.4.11 附加文本 93 10.4.12 创建 sed 脚本文件 94 10.4.13 插入文本 94 10.4.14 修改文本 95 10.4.15 删除文本 96 10.4.16 替换文本 96 10.5 使用替换修改字符串 97 10.6 将 sed 结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统 sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从 shell 向 sed 传值 102 10.10.6 从 sed 输出中设置 shell 变量 102 10.11 快速一行命令 102 10.12 小结 103 第 11 章 合并与分割 104 11.1 sort 用法 104 11.1.1 概述 104 11.1.2 sort 选项 104 11.1.3 保存输出 105 11.1.4 sort 启动方式 105 11.1.5 sort 对域的参照方式 105 11.1.6 文件是否已分类 105 11.1.7 基本 sort 106 11.1.8 sort 分类求逆 106 11.1.9 按指定域分类 106 11.1.10 数值域分类 106 11.1.11 唯一性分类 107 11.1.12 使用 k 的其他 sort 方法 108 11.1.13 使用 k 做分类键排序 108 11.1.14 指定 sort 序列 108 11.1.15 pos 用法 108 11.1.16 使用 head 和 tail 将输出分类 109 11.1.17 awk 使用 sort 输出结果 109 11.1.18 将两个分类文件合并 110 11.2 系统 sort 110 11.3 uniq 用法 111 11.4 join 用法 112 11.5 cut 用法 114 11.5.1 使用域分隔符 115 11.5.2 剪切指定域 115 11.6 paste 用法 116 11.6.1 指定列 116 11.6.2 使用不同的域分隔符 116 11.6.3 paste 命令管道输入 117 11.7 split 用法 117 11.8 小结 118 第 12 章 tr 用法 119 12.1 关于 tr 119 12.1.1 字符范围 119 12.1.2 保存输出 120 12.1.3 去除重复出现的字符 120 12.1.4 删除空行 120 12.1.5 大写到小写 121 12.1.6 小写到大写 121 12.1.7 删除指定字符 121 12.1.8 转换控制字符 122 12.1.9 快速转换 122 12.1.10 匹配多于一个字符 123 12.2 小结 123 第三部分 登录环境 第 13 章 登录环境 125 13.1 /etc/profile 125 13.2 用户的$HOME.profile 128 13.3 stty 用法 129 13.4 创建.logout 文件 131 13.5 小结 131 第 14 章 环境和 shell 变量 132 14.1 什么是 shell 变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地 shell 变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 14.2.6 使用变量来保存系统命令参数 135 14.2.7 设置只读变量 135 14.3 环境变量 136 14.3.1 设置环境变量 136 14.3.2 显示环境变量 136 14.3.3 清除环境变量 137 14.3.4 嵌入 shell 变量 137 14.3.5 其他环境变量 139 14.3.6 set 命令 140 14.3.7 将变量导出到子进程 140 14.4 位置变量参数 141 14.4.1 在脚本中使用位置参数 142 14.4.2 向系统命令传递参数 142 14.4.3 特定变量参数 143 14.4.4 最后的退出状态 144 14.5 小结 145 第 15 章 引号 146 15.1 引用必要性 146 15.2 双引号 146 15.3 单引号 147 15.4 反引号 147 15.5 反斜线 148 15.6 小结 149 第四部分 基础shell编程 第 16 章 shell 脚本介绍 151 16.1 使用 shell 脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第 17 章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 expr 用法 157 17.5.1 增量计数 158 17.5.2 数值测试 158 17.5.3 模式匹配 158 17.6 小结 159 第 18 章 控制流结构 160 18.1 退出状态 160 18.2 控制结构 160 18.2.1 流控制 161 18.2.2 循环 161 18.3 if then else 语句 161 18.3.1 简单的 if 语句 162 18.3.2 变量值测试 162 18.3.3 grep 输出检查 163 18.3.4 用变量测试 grep 输出 163 18.3.5 文件拷贝输出检查 164 18.3.6 当前目录测试 164 18.3.7 文件权限测试 165 18.3.8 测试传递到脚本中的参数 165 18.3.9 决定脚本是否为交互模式 165 18.3.10 简单的 if else 语句 166 18.3.11 变量设置测试 166 18.3.12 检测运行脚本的用户 166 18.3.13 将脚本参数传入系统命令 167 18.3.14 null:命令用法 167 18.3.15 测试目录创建结果 168 18.3.16 另一个拷贝实例 169 18.3.17 多个 if 语句 169 18.3.18 测试和设置环境变量 169 18.3.19 检测最后命令状态 170 18.3.20 增加和检测整数值 171 18.3.21 简单的安全登录脚本 172 18.3.22 elif 用法 173 18.3.23 使用 elif 进行多条件检测 173 18.3.24 多文件位置检测 174 18.4 case 语句 175 18.4.1 简单的 case 语句 175 18.4.2 对匹配模式使用| 176 18.4.3 提示键入 y 或 n 177 18.4.4 case 与命令参数传递 177 18.4.5 捕获输入并执行空命令 178 18.4.6 缺省变量值 179 18.5 for 循环 180 18.5.1 简单的 for 循环 181 18.5.2 打印字符串列表 181 18.5.3 对 for 循环使用 ls 命令 181 18.5.4 对 for 循环使用参数 182 18.5.5 使用 for 循环连接服务器 183 18.5.6 使用 for 循环备份文件 183 18.5.7 多文件转换 183 18.5.8 多sed 删除操作 184 18.5.9 循环计数 184 18.5.10 for 循环和本地文档 184 18.5.11 for 循环嵌入 185 18.6 until 循环 186 18.6.1 简单的 until 循环 186 18.6.2 监视文件 187 18.6.3 监视磁盘空间 187 18.7 while 循环 188 18.7.1 简单的 while 循环 188 18.7.2 使用 while 循环读键盘输入 188 18.7.3 用 while 循环从文件中读取数据 189 18.7.4 使用 IFS 读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7.7 每次读一对记录 193 18.7.8 忽略#字符 193 18.7.9 处理格式化报表 194 18.7.10 while 循环和文件描述符 196 18.8 使用 break 和 continue 控制循环 197 18.8.1 break 197 18.8.2 跳出 case 语句 197 18.8.3 continue 197 18.8.4 浏览文件行 198 18.9 菜单 199 18.10 小结 201 第 19 章 shell 函数 202 19.1 在脚本中定义函数 203 19.2 在脚本中使用函数 203 19.3 向函数传递参数 203 19.4 从调用函数中返回 203 19.5 函数返回值测试 204 19.6 在 shell 中使用函数 204 19.7 创建函数文件 204 19.8 定位文件 205 19.9 检查载入函数 205 19.10 执行 shell 函数 205 19.10.1 删除 shell 函数 206 19.10.2 编辑 shell 函数 206 第 26 章 shell 工具 289 26.1 创建保存信息的文件 289 26.1.1 使用 date 命令创建日志文件 289 26.1.2 创建唯一的临时文件 290 26.2 信号 291 26.2.1 杀死一个进程 292 26.2.2 检测信号 293 26.3 trap 294 26.3.1 捕获信号并采取相应的行动 294 26.3.2 捕获信号并采取行动的另一个例子 295 26.3.3 锁住终端 297 26.3.4 忽略信号 298 26.4 eval 300 26.4.1 执行含有字符串的命令 300 26.4.2 给每个值一个变量名 301 26.5 logger 命令 302 26.5.1 使用 logger 命令 303 26.5.2 在脚本中使用 logger 命令 303 26.6 小结 305 第 27 章 几个脚本例子 306 27.1 pingall 306 27.2 backup_gen 306 27.3 del.lines 312 27.4 access.deny 313 27.5 logroll 316 27.6 nfsdown 317 27.7 小结 317 第 28 章 运行级别脚本 318 28.1 怎么知道系统中是否含有运行级别目录 318 28.2 确定当前的运行级别 319 28.3 快速熟悉 inittab 319 28.4 运行级别 320 28.4.1 各种运行级别 321 28.4.2 运行级别脚本的格式 321 28.4.3 安装运行级别脚本 322 28.5 使用 inittab 来启动应用程序 323 28.6 启动和停止服务的其他方法 324 28.7 小结 324 第 29 章 cgi 脚本 325 29.1 什么是 Web 页面? 325 29.2 cgi 325 29.3 连接 Web 服务器 326 29.4 cgi 和 HTM 脚本 326 29.4.1 基本 cgi 脚本 326 29.4.2 显示 shell 命令输出 328 29.4.3 使用 SSI 330 29.4.4 访问计数器 330 29.4.5 使用一个链接来显示当前 Web 环境变量 332 29.4.6 其他常用的环境变量 334 29.5 get 和 post 方法简介 335 29.5.1 get 方法 335 29.5.2 post 方法 340 29.5.3 填充列表项 347 29.5.4 自动刷新页面 348 29.6 小结 349 附录 常用 shell 命令 350
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。