书籍详情
Efficient Linux命令行
作者:[美]丹尼尔·J. 巴雷特(Daniel J. Barrett)马晶慧
出版社:中国电力出版社
出版时间:2022-12-01
ISBN:9787519872076
定价:¥88.00
购买这本书可以去
内容简介
本书将介绍一系列中高级命令的构建技巧,其中包括:选择或构建命令,帮助用户快速完成工作。高效运行命令,轻松浏览Linux文件系统。从简单的命令出发,构建强大且复杂的命令。通过文本文件的转换与类似于数据库的查询技术实现业务目标。通过Linux命令行实现鼠标点击的功能。
作者简介
Daniel J. Barrett拥有30多年在工业界和学术界教授Linux以及相关技术的经验。出版书籍包括《Linux Pocket Guide》《Linux Security Cookbook》(合著者)以及《SSH, The Secure Shell: The Definitive Guide》。他是一名软件工程师、重金属歌手、系统管理员、大学讲师、网页设计师,还是一名幽默作家。目前就职于谷歌。
目录
目录
前言. 1
第一部分 核心概念
第 1 章 组合命令11
1.1 输入、 输出与管道12
1.2 六个命令14
1.2.1 命令一: wc15
1.2.2 命令二: head 17
1.2.3 命令三: cut 18
1.2.4 命令四: grep 21
1.2.5 命令五: sort .22
1.2.6 命令六: uniq 25
1.3 检测重复文件 .28
1.4 小结 .30
第 2 章 Shell 简介 31
2.1 Shell 的含义.32
2.2 文件名的模式匹配33
2.3 变量求值36
2.3.1 变量来自何方37
2.3.2 变量及其背后的神秘逻辑 38
2.3.3 模式与变量 38
2.4 利用别名简化命令40
2.5 重定向输入与输出41
2.6 利用引用和转义阻止 shell 计算 44
2.7 查找程序46
2.8 环境与初始化文件49
2.9 小结 .50
第 3 章 重复运行历史命令 51
3.1 查看命令的历史记录 52
3.2 重复调用历史记录中的命令53
3.2.1 通过方向键浏览历史记录 54
3.2.2 历史记录展开55
3.2.3 避免删除错误的文件.59
3.2.4 命令历史记录的增量搜索 61
3.3 命令行编辑 63
3.3.1 在命令内移动光标 .63
3.3.2 历史记录展开的脱字符表示法.64
3.3.3 Emacs 或 Vim 风格的命令行编辑 65
3.4 小结 .67
第 4 章 浏览文件系统. 69
4.1 快速访问特定目录70
4.1.1 快速回到根目录 70
4.1.2 Tab 键自动补齐 71
4.1.3 利用别名或变量跳转到经常访问的目录.72
4.1.4 利用 CDPATH 快速浏览大型文件系统 75
4.1.5 合理地组织根目录加快浏览文件系统的速度 77
4.2 快速返回特定目录80
4.2.1 通过“cd -” 在两个目录之间来回切换 80
4.2.2 通过 pushd 和 popd 在多个目录之间来回切换 81
4.3 小结 .88
第二部分 高级技巧
第 5 章 扩充工具箱 . 91
5.1 生成文本92
5.1.1 date 命令 .93
5.1.2 seq 命令93
5.1.3 大括号扩展(shell 特性) .95
5.1.4 find 命令 .96
5.1.5 yes 命令98
5.2 分离文本99
5.2.1 深入了解 grep 99
5.2.2 tail 命令.104
5.2.3 awk {print} 命令 105
5.3 组合文本.107
5.3.1 tac 命令 .108
5.3.2 paste 命令.109
5.3.3 diff 命令 110
5.4 文本转换. 111
5.4.1 tr 命令 112
5.4.2 rev 命令. 113
5.4.3 awk 与 sed 命令. 114
5.5 进一步扩展工具箱.124
5.6 小结 126
第 6 章 父、 子与环境 127
6.1 shell 是可执行文件128
6.2 父子进程.130
6.3 环境变量.132
6.3.1 创建环境变量.133
6.3.2 警惕“全局” 变量 134
6.4 子进程 shell 与子 shell.136
6.5 配置环境.137
6.5.1 重新读取配置文件 139
6.5.2 统一获取配置文件 140
6.6 小结 140
第 7 章 运行命令的 11 种方法 141
7.1 列表技巧.141
7.1.1 技巧一: 条件列表 142
7.1.2 技巧二: 无条件列表144
7.2 替换技巧.145
7.2.1 技巧三: 命令替换 145
7.2.2 技巧四: 进程替换 148
7.3 命令作为字符串的技巧 151
7.3.1 技巧五: 将命令作为字符串传递给 bash .152
7.3.2 技巧六: 通过管道将命令传递给 bash 153
7.3.3 技巧七: 利用 ssh 远程执行字符串.156
7.3.4 技巧八: 通过 xargs 运行一组命令 .157
7.4 进程控制技巧 162
7.4.1 技巧九: 后台命令 162
7.4.2 技巧十: 显式子 shell.168
7.4.3 技巧十一: 进程替换170
7.5 小结 172
第 8 章 构建单行命令 175
8.1 准备就绪.177
8.1.1 不要死板 177
8.1.2 考虑从何处着手 179
8.1.3 熟练掌握测试工具 180
8.2 插入一个文件名到序列中181
8.3 检查匹配的文件 .184
8.4 生成主目录的 CDPATH 188
8.5 生成测试文件 190
8.6 生成空文件194
8.7 小结 195
第 9 章 处理文本文件 197
9.1 示例: 查找文件 .199
9.2 检查域名的有效期限201
9.3 建立区号数据库 .204
9.4 构建密码管理器 .207
9.5 小结 214
第三部分 专业化主题
第 10 章 提高键盘输入的效率 217
10.1 窗口管理217
10.1.1 即时启动 shell 和浏览器 218
10.1.2 一次性窗口219
10.1.3 浏览器键盘快捷键 219
10.1.4 切换窗口和桌面 .220
10.2 通过命令行访问网页 .221
10.2.1 通过命令行启动浏览器窗口 221
10.2.2 利用 curl 和 wget 获取 HTML.223
10.2.3 利用 HTML-XML-utils 处理 HTML.225
10.2.4 利用基于文本的浏览器获取网页内容.229
10.3 通过命令行控制剪贴板 231
10.3.1 将选择连接到标准输入和标准输出 .232
10.3.2 改进密码管理器 .234
10.4 小结 237
第 11 章 节省时间的小技巧 239
11.1 速效方案239
11.1.1 从 less 跳转到编辑器 239
11.1.2 编辑包含特定字符串的文件.240
11.1.3 输入错误 240
11.1.4 快速创建空文件 .241
11.1.5 一次处理文件中的一行 241
11.1.6 支持递归的命令 .242
11.1.7 查阅帮助文档 243
11.2 长期的学习 .243
11.2.1 阅读 bash 帮助文档 243
11.2.2 学习 cron、 crontab 以及 at244
11.2.3 学习 rsync245
11.2.4 学习脚本语言 246
11.2.5 利用 make 处理非编程任务247
11.2.6 利用版本控制管理日常文件.249
11.3 结束语250
附录 A Linux 基本命令的复习 251
附录 B bash 之外的 shell 263
前言. 1
第一部分 核心概念
第 1 章 组合命令11
1.1 输入、 输出与管道12
1.2 六个命令14
1.2.1 命令一: wc15
1.2.2 命令二: head 17
1.2.3 命令三: cut 18
1.2.4 命令四: grep 21
1.2.5 命令五: sort .22
1.2.6 命令六: uniq 25
1.3 检测重复文件 .28
1.4 小结 .30
第 2 章 Shell 简介 31
2.1 Shell 的含义.32
2.2 文件名的模式匹配33
2.3 变量求值36
2.3.1 变量来自何方37
2.3.2 变量及其背后的神秘逻辑 38
2.3.3 模式与变量 38
2.4 利用别名简化命令40
2.5 重定向输入与输出41
2.6 利用引用和转义阻止 shell 计算 44
2.7 查找程序46
2.8 环境与初始化文件49
2.9 小结 .50
第 3 章 重复运行历史命令 51
3.1 查看命令的历史记录 52
3.2 重复调用历史记录中的命令53
3.2.1 通过方向键浏览历史记录 54
3.2.2 历史记录展开55
3.2.3 避免删除错误的文件.59
3.2.4 命令历史记录的增量搜索 61
3.3 命令行编辑 63
3.3.1 在命令内移动光标 .63
3.3.2 历史记录展开的脱字符表示法.64
3.3.3 Emacs 或 Vim 风格的命令行编辑 65
3.4 小结 .67
第 4 章 浏览文件系统. 69
4.1 快速访问特定目录70
4.1.1 快速回到根目录 70
4.1.2 Tab 键自动补齐 71
4.1.3 利用别名或变量跳转到经常访问的目录.72
4.1.4 利用 CDPATH 快速浏览大型文件系统 75
4.1.5 合理地组织根目录加快浏览文件系统的速度 77
4.2 快速返回特定目录80
4.2.1 通过“cd -” 在两个目录之间来回切换 80
4.2.2 通过 pushd 和 popd 在多个目录之间来回切换 81
4.3 小结 .88
第二部分 高级技巧
第 5 章 扩充工具箱 . 91
5.1 生成文本92
5.1.1 date 命令 .93
5.1.2 seq 命令93
5.1.3 大括号扩展(shell 特性) .95
5.1.4 find 命令 .96
5.1.5 yes 命令98
5.2 分离文本99
5.2.1 深入了解 grep 99
5.2.2 tail 命令.104
5.2.3 awk {print} 命令 105
5.3 组合文本.107
5.3.1 tac 命令 .108
5.3.2 paste 命令.109
5.3.3 diff 命令 110
5.4 文本转换. 111
5.4.1 tr 命令 112
5.4.2 rev 命令. 113
5.4.3 awk 与 sed 命令. 114
5.5 进一步扩展工具箱.124
5.6 小结 126
第 6 章 父、 子与环境 127
6.1 shell 是可执行文件128
6.2 父子进程.130
6.3 环境变量.132
6.3.1 创建环境变量.133
6.3.2 警惕“全局” 变量 134
6.4 子进程 shell 与子 shell.136
6.5 配置环境.137
6.5.1 重新读取配置文件 139
6.5.2 统一获取配置文件 140
6.6 小结 140
第 7 章 运行命令的 11 种方法 141
7.1 列表技巧.141
7.1.1 技巧一: 条件列表 142
7.1.2 技巧二: 无条件列表144
7.2 替换技巧.145
7.2.1 技巧三: 命令替换 145
7.2.2 技巧四: 进程替换 148
7.3 命令作为字符串的技巧 151
7.3.1 技巧五: 将命令作为字符串传递给 bash .152
7.3.2 技巧六: 通过管道将命令传递给 bash 153
7.3.3 技巧七: 利用 ssh 远程执行字符串.156
7.3.4 技巧八: 通过 xargs 运行一组命令 .157
7.4 进程控制技巧 162
7.4.1 技巧九: 后台命令 162
7.4.2 技巧十: 显式子 shell.168
7.4.3 技巧十一: 进程替换170
7.5 小结 172
第 8 章 构建单行命令 175
8.1 准备就绪.177
8.1.1 不要死板 177
8.1.2 考虑从何处着手 179
8.1.3 熟练掌握测试工具 180
8.2 插入一个文件名到序列中181
8.3 检查匹配的文件 .184
8.4 生成主目录的 CDPATH 188
8.5 生成测试文件 190
8.6 生成空文件194
8.7 小结 195
第 9 章 处理文本文件 197
9.1 示例: 查找文件 .199
9.2 检查域名的有效期限201
9.3 建立区号数据库 .204
9.4 构建密码管理器 .207
9.5 小结 214
第三部分 专业化主题
第 10 章 提高键盘输入的效率 217
10.1 窗口管理217
10.1.1 即时启动 shell 和浏览器 218
10.1.2 一次性窗口219
10.1.3 浏览器键盘快捷键 219
10.1.4 切换窗口和桌面 .220
10.2 通过命令行访问网页 .221
10.2.1 通过命令行启动浏览器窗口 221
10.2.2 利用 curl 和 wget 获取 HTML.223
10.2.3 利用 HTML-XML-utils 处理 HTML.225
10.2.4 利用基于文本的浏览器获取网页内容.229
10.3 通过命令行控制剪贴板 231
10.3.1 将选择连接到标准输入和标准输出 .232
10.3.2 改进密码管理器 .234
10.4 小结 237
第 11 章 节省时间的小技巧 239
11.1 速效方案239
11.1.1 从 less 跳转到编辑器 239
11.1.2 编辑包含特定字符串的文件.240
11.1.3 输入错误 240
11.1.4 快速创建空文件 .241
11.1.5 一次处理文件中的一行 241
11.1.6 支持递归的命令 .242
11.1.7 查阅帮助文档 243
11.2 长期的学习 .243
11.2.1 阅读 bash 帮助文档 243
11.2.2 学习 cron、 crontab 以及 at244
11.2.3 学习 rsync245
11.2.4 学习脚本语言 246
11.2.5 利用 make 处理非编程任务247
11.2.6 利用版本控制管理日常文件.249
11.3 结束语250
附录 A Linux 基本命令的复习 251
附录 B bash 之外的 shell 263
猜您喜欢