Linux命令、编辑器与Shell编程

Linux命令、编辑器与Shell编程
作 者: Mark Sobell 杨明军;王凤芹
出版社: 清华大学出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Linux
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Mark G. Sobell是Sobell Associates公司的主席,该公司是一个专长于UNIX/Linux培训、技术支持和用户软件开发的咨询公司。他是多本UNIX和Linux畅销书的作者,包括Prentice Hall PTR出版社出版的A Practical Guide to Red Hat Linux: Fedora Core and Red Hat Enterprise Linux第二版,以及Addision-Wesley出版社出版的A Practical Guide to UNIX System, Hands-on UNIX和A Practical Guide to Solaris。作者具有超过25年使用UNIX和Linux的经验。

内容简介

要想真正高效地使用Linux,就必须全面掌握shell和命令行。通常必须购买两本书才能达到精通的目的:一本关于Linux基本概念和技术的指南,再加上一本单独的参考手册。更糟糕的是,大多数Linux参考手册只是对man手册页的稍加整理。而现在有了一个好得多的解决方案。知名Linux专家Mark Sobell编写的这本书,为系统管理员、开发人员和高级用户提供了最需要的全面的深入指导,同时还是一本卓越的日常参考手册。.本书与具体版本无关,可以在任何Linux系统上使用。更重要的是,书中包含数百个高质量的示例,这些示例要比其他任何一本Linux手册中的示例要实用得多。本书全面介绍了Linux:为从文件系统到shell、从编辑器到工具以及从编程工具到正则表达式等方面提供了最清晰的讲解和最有用的知识。并且,当需要立即得到答案时,可以翻到本书的命令参考部分,这部分内容经过精心组织和标注,非常易于快速查找!本书是目前所能找到的最实用、最全面的Linux指南和参考于册,也是唯一一本提供以下全部内容的书籍:更好更实用的示例覆盖了实际:工作中需要执行的任务;基于作者对Linux的渊博知识,本书提供了更加深入的理解;为从aspell到xargs等80多个工具提供厂更加实用的讲解;使用ssh和scp的安全通信实现技术,以及多处让系统更加安个的提示;很好地介绍了Linux编程环境,包括make、gcc、gdb、CVS等;关于使用bash和tcsh进行墓本的椭级的shell编程的专家指南;定制shell以及在命令行卜交互使用shell的提示和技巧;提供了vim和emacs的详细指南,月的足为了帮助读者提高编辑效率;大量练习将有助于提高读者的动手能力并获得自信心;介绍丁如何使用Apt、yum和BitTorrent白动更新系统;还介绍了gawk、sed、find、sort、bzip2和止则表达式等内容。...

图书目录

第Ⅰ部分 Linux操作系统

第1章 欢迎进入Linux世界 3

1.1 GNU-Linux联姻 4

1.1.1 GNU-Linux的历史 4

1.1.2 自由代码 5

1.1.3 Linux的关键 6

1.2 Linux的起源:UNIX 6

1.3 Linux的优点 6

1.3.1 Linux在硬件公司和开发者中

流行的原因 7

1.3.2 Linux的可移植性 8

1.3.3 标准 8

1.3.4 C编程语言 9

1.4 Linux概述 9

1.4.1 Linux具有内核编程接口 10

1.4.2 Linux支持多用户 10

1.4.3 Linux支持多任务 11

1.4.4 Linux支持安全的分层文件

系统 11

1.4.5 shell:命令解释器和编程

语言 12

1.4.6 大量有用的工具集 13

1.4.7 进程间的通信 13

1.4.8 系统管理 14

1.5 Linux的其他特性 14

1.5.1 GUI 14

1.5.2 (互联)网络工具 14

1.5.3 软件开发 15

1.6 本章小结 15

练习 15

第2章 入门 17

2.1 本书约定 18

2.2 登录 19

2.2.1 终端登录 20

2.2.2 远程登录:终端模拟、ssh

和telnet 20

2.3 shell 21

2.3.1 识别当前运行的是哪种

shell 21

2.3.2 校正错误 21

2.4 慎用超级用户权限 24

2.5 文档 24

2.5.1 ——help选项 24

2.5.2 man:显示系统手册页 25

2.5.3 info:显示工具信息 27

2.5.4 HOWTO文档 28

2.5.5 利用Internet获取帮助 29

2.6 登录的更多方面 30

2.6.1 如何处理登录失败 30

2.6.2 退出 30

2.6.3 虚拟控制台 31

2.6.4 更改密码 31

2.7 本章小结 32

练习 33

高级练习 33

第3章 命令行工具 35

3.1 特殊字符 36

3.2 基本工具 37

3.2.1 ls:显示文件名 37

3.2.2 cat:显示文本文件内容 37

3.2.3 rm:删除文件 38

3.2.4 less或more:分屏显示

文件 38

3.2.5 hostname:显示系统名 39

3.3 文件操作 39

3.3.1 cp:复制文件 39

3.3.2 mv:更改文件名 40

3.3.3 lpr:打印文件 41

3.3.4 grep:查找字符串 41

3.3.5 head:显示文件头部 42

3.3.6 tail:显示文件尾部 43

3.3.7 sort:按顺序显示文件

内容 43

3.3.8 uniq:忽略文件中的重

复行 44

3.3.9 diff:比较两个文件 45

3.3.10 file:测试文件内容 45

3.4 |(管道):实现进程间的通信 46

3.5 4个有用的工具 46

3.5.1 echo:显示文本 47

3.5.2 date:显示日期和时间 47

3.5.3 script:记录Linux会话

信息 47

3.5.4 unix2dos:将Linux文件

转换为Windows格式 48

3.6 压缩和归档文件 49

3.6.1 bzip2:压缩文件 49

3.6.2 bunzip2和bzcat:解压缩

文件 50

3.6.3 gzip:压缩文件 50

3.6.4 tar:打包和解包文件 51

3.7 定位命令 53

3.7.1 which和whereis:定位

工具 53

3.7.2 apropos:搜索关键字 55

3.7.3 slocate:搜索文件 55

3.8 获取用户和系统信息 56

3.8.1 who:列出系统上的用户 56

3.8.2 finger:列出系统上的

用户 57

3.8.3 w:列出系统上的用户 58

3.9 与其他用户通信 59

3.9.1 write:发送消息 59

3.9.2 mesg:拒绝或接受消息 60

3.10 电子邮件 60

3.11 本章小结 61

练习 63

高级练习 63

第4章 Linux文件系统 65

4.1 分层文件系统 66

4.2 目录文件和普通文件 67

4.2.1 文件名 67

4.2.2 mkdir:创建目录 69

4.2.3 工作目录 70

4.2.4 主目录 71

4.2.5 绝对路径名 72

4.2.6 相对路径名 73

4.2.7 重要的标准目录和文件 74

4.3 目录操作 76

4.3.1 rmdir:删除目录 77

4.3.2 路径名 77

4.3.3 mv/cp:移动/复制文件 78

4.3.4 mv:移动目录 79

4.4 访问权限 79

4.4.1 ls -l:显示访问权限 79

4.4.2 chmod:改变访问权限 80

4.4.3 setuid和setgid权限 81

4.4.4 目录访问权限 82

4.5 链接 83

4.5.1 硬链接 84

4.5.2 符号链接 86

4.5.3 rm:删除链接 88

4.6 本章小结 89

练习 90

高级练习 91

第5章 shell 93

5.1 命令行 93

5.1.1 语法 94

5.1.2 处理命令行 96

5.1.3 执行命令行 98

5.2 标准输入输出 98

5.2.1 作为文件的屏幕 99

5.2.2 作为标准输入的键盘和

作为标准输出的屏幕 100

5.2.3 重定向 101

5.2.4 管道 106

5.3 在后台运行程序 109

5.4 文件名生成/路径名扩展 110

5.4.1 特殊字符? 111

5.4.2 特殊字符* 112

5.4.3 特殊字符[ ] 113

5.5 内置命令 115

5.6 本章小结 115

练习 116

高级练习 117

第Ⅱ部分 编辑器

第6章 vim编辑器 121

6.1 历史 121

6.2 入门:用vim创建和编辑

文件 122

6.2.1 启动vim 123

6.2.2 命令模式和输入模式 124

6.2.3 输入文本 125

6.2.4 获取帮助 126

6.2.5 结束编辑会话 128

6.3 compatible参数 129

6.4 vim的特性介绍 129

6.4.1 联机帮助 129

6.4.2 操作模式 130

6.4.3 显示 131

6.4.4 输入模式下校正文本 131

6.4.5 工作缓冲区 131

6.4.6 行长度与文件大小 132

6.4.7 窗口 132

6.4.8 锁定文件 132

6.4.9 非正常结束编辑会话 133

6.4.10 崩溃后的文本恢复 133

6.5 命令模式下移动光标 134

6.5.1 按字符移动光标 135

6.5.2 将光标移到某个特定

字符 135

6.5.3 按字移动光标 136

6.5.4 按行移动光标 136

6.5.5 按句子和段落移动光标 137

6.5.6 在屏幕内移动光标 137

6.5.7 浏览工作缓冲区的不同

部分 137

6.6 输入模式 138

6.6.1 插入文本 138

6.6.2 追加文本 138

6.6.3 为输入文本打开行 138

6.6.4 文本替换 138

6.6.5 输入模式下转义特殊

字符 139

6.7 命令模式下删除和修改

文本 139

6.7.1 撤销修改 139

6.7.2 删除字符 139

6.7.3 删除文本 140

6.7.4 修改文本 141

6.7.5 替换文本 142

6.7.6 修改大小写 142

6.8 查找和替换 143

6.8.1 查找字符 143

6.8.2 查找字符串 143

6.8.3 字符串的替换 145

6.9 其他命令 148

6.9.1 连接命令 148

6.9.2 状态命令 148

6.9.3 .(句点) 148

6.10 命令Yank、Put和Delete 148

6.10.1 通用缓冲区 149

6.10.2 命名缓冲区 150

6.10.3 编号缓冲区 150

6.11 文件的读写 151

6.11.1 读文件 151

6.11.2 写文件 151

6.11.3 识别当前文件 152

6.12 参数设置 152

6.12.1 在vim中设置参数 152

6.12.2 在初始化文件中设置

参数 152

6.12.3 .vimrc初始化文件 153

6.12.4 参数 153

6.13 高级编辑技巧 156

6.13.1 使用标记 156

6.13.2 编辑其他文件 157

6.13.3 宏与快捷键 158

6.13.4 在vim中执行shell

命令 158

6.14 度量单位 160

6.14.1 字符 160

6.14.2 字 160

6.14.3 空白分隔字 160

6.14.4 行 161

6.14.5 句子 161

6.14.6 段落 161

6.14.7 窗口 162

6.14.8 重复因子 162

6.15 本章小结 162

练习 167

高级练习 168

第7章 emacs编辑器 169

7.1 历史 169

7.1.1 演化 170

7.1.2 emacs与vim 170

7.2 入门:开始使用emacs 171

7.2.1 启动emacs 171

7.2.2 退出emacs 172

7.2.3 插入文本 173

7.2.4 删除字符 173

7.2.5 移动光标 174

7.2.6 在光标处编辑 176

7.2.7 保存和检索缓冲区内容 176

7.3 基本编辑命令 177

7.3.1 按键的表示与使用 177

7.3.2 键序列和命令 178

7.3.3 META+x:运行不带键

绑定的命令 179

7.3.4 数值参数 179

7.3.5 编辑点与光标 179

7.3.6 在缓冲区中滚动 180

7.3.7 删除文本 180

7.3.8 搜索 180

7.4 联机帮助 182

7.5 高级编辑 184

7.5.1 撤销修改 184

7.5.2 标记和区域 185

7.5.3 剪切与粘贴:移出剪切

文本 187

7.5.4 插入特殊字符 188

7.5.5 全局缓冲区命令 189

7.5.6 文件 191

7.5.7 缓冲区 192

7.5.8 窗口 194

7.5.9 前台shell命令 195

7.5.10 后台shell命令 196

7.6 区分语言的编辑 196

7.6.1 选择主模式 197

7.6.2 自然语言模式 197

7.6.3 C模式 200

7.6.4 定制缩进 202

7.6.5 注释 203

7.6.6 专用模式 203

7.7 定制emacs 205

7.7.1 .emacs初始化文件 206

7.7.2 重映射键 206

7.7.3 .emacs文件示例 208

7.8 更多信息 209

7.9 本章小结 210

练习 216

高级练习 218

第Ⅲ部分 shell

第8章 Bourne Again Shell 221

8.1 背景知识 222

8.2 shell基础 222

8.2.1 初始化文件 223

8.2.2 符号命令 225

8.2.3 重定向标准错误输出 226

8.2.4 编写一个简单的shell

脚本 228

8.2.5 命令分隔和命令分组 232

8.2.6 作业控制 235

8.2.7 操作目录栈 238

8.3 参数和变量 240

8.3.1 用户创建的变量 242

8.3.2 变量属性 244

8.3.3 关键字变量 246

8.3.4 特殊字符 254

8.4 进程 255

8.4.1 进程结构 255

8.4.2 进程标识 255

8.4.3 执行命令 257

8.5 命令历史机制 257

8.5.1 控制历史机制的变量 258

8.5.2 重新执行和编辑命令 259

8.5.3 Readline库 266

8.6 别名 273

8.6.1 别名中的单引号和双

引号 273

8.6.2 别名示例 274

8.7 函数 276

8.8 控制bash的特性和选项 279

8.8.1 命令行选项 279

8.8.2 shell特性 279

8.9 处理命令行 282

8.9.1 历史扩展 282

8.9.2 别名替换 283

8.9.3 解析和扫描命令行 283

8.9.4 命令行扩展 283

8.10 本章小结 291

练习 293

高级练习 294

第9章 TC Shell 297

9.1 shell脚本 298

9.2 进入和退出TC Shell 299

9.3 Bourne Again Shell与TC

Shell的共性 301

9.3.1 命令行扩展(替换) 301

9.3.2 作业控制 305

9.3.3 文件名替换 306

9.3.4 操作目录栈 306

9.3.5 命令替换 306

9.4 重定向标准错误输出 306

9.5 操作命令行 308

9.5.1 字补全 308

9.5.2 编辑命令行 310

9.5.3 校正拼写 311

9.6 变量 312

9.6.1 变量替换 313

9.6.2 字符串变量 313

9.6.3 字符串变量数组 314

9.6.4 数值变量 315

9.6.5 花括号 317

9.6.6 特殊的变量形式 318

9.6.7 shell变量 318

9.7 控制结构 323

9.7.1 if 324

9.7.2 goto 326

9.7.3 中断处理 326

9.7.4 if...then...else 327

9.7.5 foreach 328

9.7.6 while 330

9.7.7 break和continue 331

9.7.8 switch 331

9.8 内置命令 332

9.9 本章小结 335

练习 336

高级练习 337

第Ⅳ部分 编程工具

第10章 C的编程 341

10.1 C语言编程 341

10.1.1 检查编译器 342

10.1.2 C编程示例 343

10.1.3 C程序的编译和连接 346

10.2 使用共享库 349

10.2.1 修复不完整的二进制

文件 350

10.2.2 创建共享库 351

10.3 make:保持一组程序

最新 351

10.3.1 隐含的依赖关系 353

10.3.2 宏 356

10.4 调试C程序 359

10.4.1 gcc:编译器警告选项 361

10.4.2 符号调试器 362

10.5 线程 368

10.6 系统调用 368

10.6.1 strace:跟踪系统调用 368

10.6.2 控制进程 369

10.6.3 访问文件系统 369

10.7 源代码管理 370

10.8 本章小结 379

练习 380

高级练习 381

第11章 BASH程序设计 383

11.1 控制结构 384

11.1.1 if…then 384

11.1.2 if...then...else 388

11.1.3 if...then...elif 389

11.1.4 for...in 396

11.1.5 for 397

11.1.6 while 399

11.1.7 until 402

11.1.8 break与continue 404

11.1.9 case 405

11.1.10 select 412

11.1.11 Here文档 414

11.2 文件描述符 416

11.3 参数和变量 419

11.3.1 数组变量 419

11.3.2 变量局部性 421

11.3.3 特殊参数 423

11.3.4 位置参数 425

11.3.5 扩展空变量和未设置

变量 430

11.4 内置命令 431

11.4.1 type:显示命令相关

信息 431

11.4.2 read:接受用户输入 432

11.4.3 exec:执行命令 435

11.4.4 trap:捕获信号 438

11.4.5 kill:终止进程 441

11.4.6 getopts:解析选项 441

11.4.7 部分内置命令 444

11.5 表达式 445

11.5.1 算术表达式 445

11.5.2 逻辑表达式(条件表

达式) 446

11.5.3 字符串模式匹配 447

11.5.4 操作符 448

11.6 shell程序 452

11.6.1 一个递归的shell脚本 453

11.6.2 quiz shell脚本 456

11.7 本章小结 463

练习 464

高级练习 465

第12章 gawk模式处理语言 469

12.1 语法 470

12.2 参数 470

12.3 选项 470

12.4 注意 471

12.5 语言基础 471

12.5.1 模式 471

12.5.2 动作 472

12.5.3 注释 472

12.5.4 变量 472

12.5.5 函数 473

12.5.6 算术操作符 474

12.5.7 关联数组 474

12.5.8 printf 475

12.5.9 控制结构 475

12.6 示例 477

12.7 gawk高级编程 495

12.7.1 getline:控制输入 495

12.7.2 协进程:双向I/O 497

12.7.3 从网络获取输入 499

12.8 错误消息 500

12.9 本章小结 501

练习 501

高级练习 501

第13章 sed编辑器 503

13.1 语法 503

13.2 参数 504

13.3 选项 504

13.4 编辑器基础 504

13.4.1 地址 505

13.4.2 指令 505

13.4.3 控制结构 506

13.4.4 Pattern区和Hold区 507

13.5 示例 507

13.6 本章小结 517

练习 517

第Ⅴ部分 命令参考

第14章 命令参考 521

14.1 显示和操作文件的工具 522

14.2 网络工具 523

14.3 显示和修改状态的工具 523

14.4 编程工具 524

14.5 其他工具 524

14.6 标准倍数后缀 524

14.7 常见选项 525

14.8 sample工具 525

14.9 sample 526

14.10 aspell 527

14.11 at 531

14.12 bzip2 534

14.13 cat 537

14.14 cd 539

14.15 chgrp 540

14.16 chmod 541

14.17 chown 545

14.18 cmp 546

14.19 comm 548

14.20 configure 550

14.21 cp 551

14.22 cpio 554

14.23 crontab 558

14.24 cut 561

14.25 date 563

14.26 dd 565

14.27 df 567

14.28 diff 569

14.29 du 574

14.30 echo 576

14.31 expr 578

14.32 file 582

14.33 find 584

14.34 finger 588

14.35 fmt 590

14.36 fsck 592

14.37 ftp 596

14.38 gcc 602

14.39 grep 606

14.40 gzip 610

14.41 head 612

14.42 kill 614

14.43 killall 616

14.44 less 617

14.45 ln 621

14.46 lpr 623

14.47 ls 625

14.48 make 630

14.49 man 635

14.50 mkdir 638

14.51 mkfs 639

14.52 Mtools 641

14.53 mv 644

14.54 nice 646

14.55 nohup 647

14.56 od 648

14.57 paste 652

14.58 pr 654

14.59 ps 656

14.60 rcp 659

14.61 rlogin 661

14.62 rm 662

14.63 rmdir 664

14.64 rsh 665

14.65 scp 666

14.66 sleep 668

14.67 sort 669

14.68 split 678

14.69 ssh 679

14.70 strings 683

14.71 stty 684

14.72 tail 688

14.73 tar 690

14.74 tee 695

14.75 telnet 696

14.76 test 698

14.77 top 701

14.78 touch 703

14.79 tr 706

14.80 tty 708

14.81 tune2fs 709

14.82 umask 711

14.83 uniq 712

14.84 w 714

14.85 wc 716

14.86 which 717

14.87 who 718

14.88 xargs 720

第Ⅵ部分 附录

附录A 正则表达式 725

附录B 获取帮助 733

附录C 保持系统最新获取帮助 741

附录D 术语表 753