第1章 小试牛刀 1
1.1简介 1
1.2终端打印 3
1.2.1实战演练 4
1.2.2工作原理 5
1.2.3补充内容 5
1.3玩转变量和环境变量 6
1.3.1预备知识 6
1.3.2实战演练 7
1.3.3补充内容 9
1.4使用函数添加环境变量 10
1.4.1实战演练 11
1.4.2工作原理 11
1.5使用shell进行数学运算 11
1.5.1预备知识 12
1.5.2实战演练 12
1.6玩转文件描述符及重定向 14
1.6.1预备知识 14
1.6.2实战演练 14
1.6.3工作原理 17
1.6.4补充内容 17
1.7数组和关联数组 19
1.7.1预备知识 19
1.7.2实战演练 20
1.7.3补充内容 20
1.8使用别名 21
1.8.1实战演练 21
1.8.2补充内容 22
1.9获取终端信息 23
1.9.1预备知识 23
1.9.2实战演练 23
1.10获取、设置日期和延时 24
1.10.1预备知识 24
1.10.2实战演练 24
1.10.3工作原理 26
1.10.4补充内容 26
1.11调试脚本 27
1.11.1实战演练 27
1.11.2工作原理 28
1.11.3补充内容 28
1.12函数和参数 29
1.12.1实战演练 29
1.12.2补充内容 30
1.13将命令序列的输出读入变量 31
1.13.1预备知识 31
1.13.2实战演练 32
1.13.3补充内容 32
1.14不使用回车键来读取n个字符 33
1.15运行命令直至执行成功 34
1.15.1实战演练 34
1.15.2工作原理 35
1.15.3补充内容 35
1.16字段分隔符和迭代器 35
1.16.1预备知识 36
1.16.2实战演练 36
1.17比较与测试 38
第2章 命令之乐 42
2.1简介 42
2.2用cat进行拼接 42
2.2.1实战演练 43
2.2.2工作原理 43
2.2.3补充内容 43
2.3录制并回放终端会话 45
2.3.1预备知识 45
2.3.2实战演练 45
2.3.3工作原理 46
2.4文件查找与文件列表 46
2.4.1预备知识 46
2.4.2实战演练 46
2.4.3补充内容 47
2.5玩转xargs 54
2.5.1预备知识 54
2.5.2实战演练 55
2.5.3工作原理 55
2.5.4补充内容 56
2.6用tr进行转换 59
2.6.1预备知识 59
2.6.2实战演练 59
2.6.3工作原理 60
2.6.4补充内容 60
2.7校验和与核实 63
2.7.1预备知识 63
2.7.2实战演练 63
2.7.3工作原理 64
2.7.4补充内容 65
2.8加密工具与散列 65
2.9排序、唯一与重复 68
2.9.1预备知识 68
2.9.2实战演练 68
2.9.3工作原理 69
2.9.4补充内容 69
2.10临时文件命名与随机数 72
2.10.1实战演练 72
2.10.2工作原理 73
2.11分割文件和数据 73
2.11.1工作原理 74
2.11.2补充内容 74
2.12根据扩展名切分文件名 76
2.12.1实战演练 76
2.12.2工作原理 76
2.13批量重命名和移动 78
2.13.1预备知识 78
2.13.2实战演练 78
2.13.3工作原理 79
2.14拼写检查与词典操作 80
2.14.1实战演练 80
2.14.2工作原理 81
2.15 交互输入自动化 82
2.15.1预备知识 82
2.15.2实战演练 82
2.15.3工作原理 82
2.15.4补充内容 83
2.16利用并行进程加速命令执行 84
2.16.1实战演练 84
2.16.2工作原理 85
第3章 以文件之名 86
3.1简介 86
3.2生成任意大小的文件 86
3.3文本文件的交集与差集 88
3.3.1预备知识 88
3.3.2实战演练 88
3.3.3工作原理 90
3.4查找并删除重复文件 90
3.4.1预备知识 90
3.4.2实战演练 91
3.4.3工作原理 92
3.5文件权限、所有权和粘滞位 93
3.5.1实战演练 95
3.5.2补充内容 96
3.6创建不可修改的文件 97
3.6.1预备知识 98
3.6.2实战演练 98
3.7批量生成空白文件 98
3.7.1预备知识 98
3.7.2实战演练 98
3.8查找符号链接及其指向目标 99
3.8.1实战演练 99
3.8.2工作原理 100
3.9列举文件类型统计信息 100
3.9.1预备知识 100
3.9.2实战演练 100
3.9.3工作原理 102
3.10使用环回文件 102
3.10.1实战演练 103
3.10.2工作原理 104
3.10.3补充内容 104
3.11生成ISO文件及混合型ISO 106
3.11.1预备知识 106
3.11.2实战演练 106
3.11.3补充内容 107
3.12查找文件差异并进行修补 108
3.12.1实战演练 108
3.12.2补充内容 110
3.13使用head与tail打印文件的前10行和后10行 110
3.14只列出目录的各种方法 113
3.14.1预备知识 113
3.14.2实战演练 113
3.14.3工作原理 113
3.15在命令行中使用pushd和popd进行快速定位 114
3.15.1预备知识 114
3.15.2实战演练 114
3.15.3补充内容 115
3.16统计文件的行数、单词数和字符数 115
3.17打印目录树 116
3.17.1预备知识 117
3.17.2实战演练 117
3.17.3补充内容 118
第4章 让文本飞 119
4.1简介 119
4.2使用正则表达式 119
4.2.1实战演练 120
4.2.2工作原理 120
4.2.3补充内容 121
4.3用grep在文件中搜索文本 122
4.3.1实战演练 122
4.3.2补充内容 125
4.4用cut按列切分文件 128
4.4.1实战演练 128
4.4.2补充内容 130
4.5使用sed进行文本替换 131
4.5.1实战演练 131
4.5.2补充内容 132
4.6使用awk进行高级文本处理 135
4.6.1预备知识 135
4.6.2实战演练 135
4.6.3工作原理 136
4.6.4补充内容 137
4.7统计特定文件中的词频 141
4.7.1预备知识 141
4.7.2实战演练 141
4.7.3工作原理 142
4.7.4参考 142
4.8压缩或解压缩JavaScript 142
4.8.1预备知识 142
4.8.2实战演练 143
4.8.3工作原理 144
4.8.4参考 145
4.9按列合并多个文件 145
4.9.1实战演练 145
4.9.2参考 146
4.10打印文件或行中的第n个单词或列 146
4.10.1实战演练 146
4.10.2参考 146
4.11打印行或样式之间的文本 146
4.11.1预备知识 146
4.11.2实战演练 147
4.11.3参考 147
4.12以逆序形式打印行 147
4.12.1预备知识 148
4.12.2实战演练 148
4.12.3工作原理 148
4.13解析文本中的电子邮件地址和URL 149
4.13.1实战演练 149
4.13.2工作原理 149
4.13.3参考 150
4.14在文件中移除包含某个单词的句子 150
4.14.1预备知识 150
4.14.2实战演练 150
4.14.3工作原理 151
4.14.4参考 151
4.15对目录中的所有文件进行文本替换 151
4.15.1实战演练 151
4.15.2工作原理 151
4.15.3补充内容 152
4.16文本切片及参数操作 152
4.16.1实战演练 152
4.16.2参考 153
第5章 一团乱麻?没这回事 154
5.1入门 154
5.2 Web页面下载 154
5.2.1预备知识 154
5.2.2实战演练 155
5.2.3工作原理 155
5.2.4补充内容 156
5.3以纯文本形式下载网页 157
5.4 cURL入门 157
5.4.1预备知识 158
5.4.2实战演练 158
5.4.3工作原理 158
5.4.4补充内容 159
5.4.5参考 161
5.5从命令行访问Gmail 161
5.5.1实战演练 162
5.5.2工作原理 162
5.5.3参考 163
5.6解析网站数据 163
5.6.1实战演练 163
5.6.2工作原理 164
5.6.3参考 164
5.7图片抓取器及下载工具 164
5.7.1实战演练 164
5.7.2工作原理 165
5.7.3参考 166
5.8网页相册生成器 167
5.8.1预备知识 167
5.8.2实战演练 167
5.8.3工作原理 169
5.8.4参考 169
5.9 Twitter命令行客户端 169
5.9.1预备知识 169
5.9.2实战演练 171
5.9.3工作原理 173
5.9.4参考 173
5.10基于Web后端的定义查询工具 173
5.10.1预备知识 173
5.10.2实战演练 175
5.10.3工作原理 175
5.10.4参考 175
5.11查找网站中的无效链接 175
5.11.1预备知识 176
5.11.2实战演练 176
5.11.3工作原理 177
5.11.4参考 177
5.12跟踪网站变动 177
5.12.1预备知识 177
5.12.2实战演练 177
5.12.3工作原理 179
5.12.4参考 179
5.13以POST方式发送网页并读取响应 179
5.13.1预备知识 179
5.13.2实战演练 180
5.13.3工作原理 180
5.13.4参考 181
第6章 B计划 182
6.1简介 182
6.2用tar归档 182
6.2.1预备知识 182
6.2.2实战演练 183
6.2.3工作原理 183
6.2.4补充知识 184
6.2.5参考 188
6.3用cpio归档 188
6.3.1实战演练 188
6.3.2工作原理 189
6.4使用gzip压缩数据 189
6.4.1实战演练 189
6.4.2补充内容 190
6.4.3参考 193
6.5用zip归档和压缩 193
6.5.1实战演练 193
6.5.2工作原理 194
6.6更快速的归档工具pbzip2 194
6.6.1预备知识 194
6.6.2实战演练 194
6.6.3工作原理 195
6.6.4补充内容 195
6.7创建压缩文件系统 195
6.7.1预备知识 196
6.7.2实战演练 196
6.7.3补充内容 196
6.8使用rsync备份系统快照 197
6.8.1实战演练 197
6.8.2工作原理 199
6.8.3补充内容 199
6.9用Git进行基于版本控制的备份 200
6.9.1预备知识 200
6.9.2实战演练 201
6.10用fsarchiver创建全盘镜像 203
6.10.1预备知识 203
6.10.2实战演练 203
6.10.3工作原理 204
第7章 无网不利 205
7.1简介 205
7.2网络设置 205
7.2.1预备知识 206
7.2.2实战演练 206
7.2.3补充内容 207
7.2.4参考 210
7.3使用ping 210
7.3.1实战演练 211
7.3.2补充内容 212
7.4列出网络上所有的活动主机 213
7.4.1预备知识 214
7.4.2实战演练 214
7.4.3工作原理 215
7.4.4补充内容 215
7.4.5参考 216
7.5使用SSH在远程主机上运行命令 216
7.5.1预备知识 216
7.5.2实战演练 217
7.5.3补充内容 219
7.5.4参考 220
7.6通过网络传输文件 220
7.6.1预备知识 220
7.6.2实战演练 220
7.6.3补充内容 221
7.6.4参考 223
7.7连接无线网络 223
7.7.1预备知识 223
7.7.2实战演练 223
7.7.3工作原理 224
7.7.4参考 225
7.8用SSH实现无密码自动登录 225
7.8.1预备知识 225
7.8.2实战演练 225
7.9使用SSH进行端口转发 227
7.9.1实战演练 227
7.9.2补充内容 227
7.10在本地挂载点上挂载远程驱动器 228
7.10.1预备知识 228
7.10.2实战演练 228
7.10.3参考 228
7.11网络流量与端口分析 229
7.11.1预备知识 229
7.11.2实战演练 229
7.11.3工作原理 230
7.11.4补充内容 230
7.12创建套接字 230
7.12.1预备知识 231
7.12.2实战演练 231
7.12.3补充内容 231
7.13互联网连接共享 231
7.13.1预备知识 232
7.13.2实战演练 232
7.14使用iptables架设简易防火墙 233
7.14.1实战演练 233
7.14.2工作原理 233
7.14.3补充内容 234
第8章 当个好管家 235
8.1简介 235
8.2监视磁盘使用情况 235
8.2.1预备知识 236
8.2.2实战演练 236
8.2.3补充内容 237
8.3计算命令执行时间 240
8.3.1实战演练 240
8.3.2工作原理 242
8.4收集与当前登录用户、启动日志及启动故障的相关信息 243
8.4.1预备知识 243
8.4.2实战演练 243
8.5列出1小时内占用CPU最多的10个进程 245
8.5.1预备知识 245
8.5.2实战演练 245
8.5.3工作原理 247
8.5.4参考 247
8.6使用watch监视命令输出 247
8.6.1实战演练 247
8.6.2补充内容 248
8.7记录文件及目录访问 248
8.7.1预备知识 248
8.7.2实战演练 248
8.7.3工作原理 249
8.8用logrotate管理日志文件 249
8.8.1预备知识 250
8.8.2实战演练 250
8.8.3工作原理 250
8.9用syslog记录日志 251
8.9.1预备知识 251
8.9.2实战演练 252
8.9.3参考 252
8.10通过监视用户登录找出入侵者 252
8.10.1预备知识 253
8.10.2实战演练 253
8.10.3工作原理 254
8.11监视远程磁盘的健康情况 255
8.11.1预备知识 256
8.11.2实战演练 256
8.11.3工作原理 257
8.11.4参考 258
8.12找出系统中用户的活跃时段 258
8.12.1预备知识 258
8.12.2实战演练 258
8.12.3工作原理 259
8.13电源使用的测量与优化 260
8.13.1预备知识 260
8.13.2实战演练 260
8.14监视磁盘活动 261
8.14.1预备知识 261
8.14.2实战演练 262
8.15 检查磁盘及文件系统错误 262
8.15.1预备知识 262
8.15.2实战演练 262
8.15.3工作原理 263
第9章 管理重任 264
9.1简介 264
9.2收集进程信息 264
9.2.1预备知识 264
9.2.2实战演练 265
9.2.3工作原理 266
9.2.4补充内容 267
9.2.5参考 273
9.3杀死进程以及发送或响应信号 273
9.3.1预备知识 273
9.3.2实战演练 274
9.3.3补充内容 274
9.4向用户终端发送消息 276
9.4.1预备知识 276
9.4.2实战演练 276
9.4.3工作原理 278
9.5采集系统信息 278
9.6使用proc采集信息 279
9.7用cron进行调度 280
9.7.1预备知识 280
9.7.2实战演练 280
9.7.3工作原理 281
9.7.4补充内容 282
9.8从Bash中读写MySQL数据库 283
9.8.1预备知识 283
9.8.2实战演练 283
9.8.3工作原理 286
9.9用户管理脚本 287
9.9.1实战演练 287
9.9.2工作原理 289
9.10图像文件的缩放及格式转换 291
9.10.1预备知识 291
9.10.2实战演练 291
9.10.3工作原理 294
9.10.4参考 294
9.11从终端截图 294
9.11.1预备知识 295
9.11.2实战演练 295
9.12管理多个终端 295
9.12.1预备知识 295
9.12.2实战演练 295