《实用UNIX教程》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:(美)Steve Moritsugu著;安捷,甘泉译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2001
  • ISBN:7302046379
  • 页数:662 页
图书介绍:

第1部分 UNIX基础 1

第1章 UNIX和shell入门 1

1.1 UNIX是一种操作系统 1

1.1.1 计算机硬件综述 1

1.1.2 计算机软件综述 2

1.1.3 UNIX的历史 3

1.1.4 UNIX如何构建Internet 5

1.2 UNIX的变体 5

1.2.1 UNIX系统的类型 5

1.2.2 非AT T的UNIX 6

1.2.3 UNIX与MS-DOS/Windows的不同 7

1.3 UNIX的标准和修订 8

1.3.1 AT T之后的UNIX 9

1.4 首先必须知道的重要的UNIX概念 10

1.4.1 UNIX内核 10

1.4.2 UNIX shell 10

1.4.3 shell提示符 11

1.4.4 shell变量 12

1.4.5 标准输出、标准错误、标准输入 12

1.4.6 管道和过滤器 13

1.4.7 用户和组 13

1.5 UNIX讯问 14

1.6 如何以UNIX和方式工作 14

1.6.1 没有消息就是好消息 14

1.6.2 命令就是组建块 15

1.6.3 使用最小按键 15

第2章 UNIX入门指南 16

2.1 漫游UNIX世界 16

2.2 开始访问UNIX 17

2.2.1 与UNIX连接 17

2.2.2 登录提示 17

2.2.3 shell提示符 18

2.3 简单的命令 18

9.4 为同一文件创建多个名称 19

2.3.1 命令选项 19

2.3.2 操作说明的在线帮助 20

2.4.1 没有消息就是好消息 21

2.4.2 文件名通配符 21

2.4 文件命令 21

2.4.3 绝对路径和完全路径 22

2.4.4 相对路径 22

2.4.5 文件的许可权限 22

2.5 文件系统 23

2.5.1 硬链接和软链接 24

2.6 重定向标准输入/输出 24

2.6.1 重定向的危险 25

2.6.2 管道传送 25

2.6.3 理解标准输入/输出 26

2.6.4 标准输入/输出:一种类比 27

2.7 页面调度程序:一次显示一屏 28

2.7.1 UNIX过滤器 28

2.9 命令就是组建块 29

2.8 引用规则 29

2.7.2 正则表达式 29

2.10 vi文本编辑器 30

2.10.1 vi命令行编辑 30

2.11 脚本 31

第3章 UNIX目录和路径 32

3.1 UNIX目录树结构 32

3.1.1 层次目录结构 33

3.1.3 如何找到一个名字的路径(完全路径) 34

3.1.2 根目录包含所有其他目录 34

3.2 在UNIX中使用目录 36

3.2.1 标准UNIX目录名字 36

3.2.2 新的UNIX系统中的目录 37

3.3 转到另一个目录 37

3.3.1 转到另一个目录并浏览它的内容 37

3.3.2 使用basename和dirname 38

3.3.3 显示当前目录名 39

3.3.4 改变用户的起始目录(home directory)* 39

3.3.6 改变到当前目录下的子目录(相对) 40

3.3.5 用绝对路径改变目录 40

3.3.7 一步一步改变目录 41

3.3.8 访问当前目录 41

3.3.9 向上返回一个目录回到父目录 42

3.3.10 转到父目录的子目录 42

3.3.11 返回到前面的目录 43

3.3.12 使用绝对路径和相对路径 43

3.3.13 允许使用相对路径参数和绝对路径参数的命令 44

3.3.14 只允许使用一个相对路径或绝对路径的命令 45

3.4 创建新的目录 45

3.5 删除已有的目录 45

3.6 删除完整目录的分支 46

3.7 增加访问目录的效率 47

3.7.1 为经常访问的目录设置CDPATH 47

3.7.2 存储/访问常用的目录名 48

第4章 UNIX命令规则 50

4.1 shell提示符概览 50

4.2 UNIX命令行选项、参数和注解 52

4.2.1 在命令行加入注解 53

4.2.2 输入命令选项 53

4.2.3 输入选项的参数 55

4.2.4 命令行参数不允许出现文件名的命令 56

4.3 从哪里得到帮助 56

4.3.1 利用操作说明获得帮助 56

4.3.2 系统子程序中的操作说明 58

4.3.3 在操作说明中快速找到信息 59

4.3.4 如果不知道命令,找到所需要的操作说明 59

4.3.5 使用改变序列的索引 60

4.4 命令没有找到的错误 61

4.4.1 设置命令的路径 61

4.4.2 将当前目录添加到PATH中 62

4.4.3 PATH中隐含的安全性 63

4.4.5 命令在哪里 63

4.4.4 PATH和Add-On包 63

4.5 当用户输入UNIX命令时经常发生的错误 64

4.5.1 不正确的大写和小写 64

4.5.2 不正确的空格 64

4.5.3 错误地使用箭头键、Insert键、翻页键和其他的特殊键 64

4.5.4 使用Backspace键和Delete键改正错误输入 65

4.5.5 错误地使用了三种类型的引号 66

4.6 UNIX告诉了我什么 67

4.6.1 用法错误 67

4.6.2 >符号(PS2提示符) 67

4.6.3 掉到没有提示符的下一行 68

4.6.4 不能stat文件名 68

4.7 会话挂起时怎么办 69

4.8 用一个文件来保存命令输入或输出(重定向) 71

4.7.1 事先检查Intr键和Erase键 71

4.8.1 保存命令或者管道输出到一个文件中 72

4.8.2 做一个空文件 72

4.8.3 Korn shell中的noclobber选项 73

4.8.4 一个输入文件不能同时也是一个输出文件 73

4.8.5 只改变输出而不改变文件的命令 74

4.8.6 把错误消息保存到一个文件中 74

4.8.7 将输出或错误消息添加到一个文件中 74

4.8.8 在一个文件中既保存输出又保存错误消息 75

4.8.9 复制输出到一个文件中和到屏幕上 75

4.8.10 从一个文件中读取程序的输入 76

4.8.11 从Here-Document读取输入 76

4.9 传递命令的输出作为另一个命令的输入 76

4.9.1 管道传送的效率 77

4.9.2 处理文件名参数或标准输入的命令 77

4.10 允许自己的输出被管道传送或被重定向的命令 78

4.11 重定向符号概览 79

4.11.1 何时使用|和> 80

4.12.1 反斜杠关闭了下面字符的特殊含义 81

4.12 引用规则 81

4.12.2 标识引用功能的字符在命令执行之前被删除 82

4.12.3 单引号删除了所有被它括在里面的字符的字符的特殊含义 82

4.12.4 引用规则字符是无害的 83

4.12.5 单引号中不会出现单引号 83

4.12.6 双引号中允许一些特殊字符 83

4.12.7 引用可以忽略单词的分界线 85

4.12.8 在一个命令中可以联合使用不同类型的引用功能 85

4.12.9 引用空格,把它们嵌入在一个参数中 85

4.12.10 在下一行引用新的一行 86

4.12.11 使用引用来访问含有特殊字符的文件名 86

4.12.12 引用正则表达式通配符 87

4.12.13 引用反斜杠允许echo转义顺序 87

4.12.14 cpio和find引用通配符 88

5.1 GUI和X Window系统介绍 90

第5章 UNIX图形及用户界面(GUI) 90

5.1.1 X Window 91

5.1.2 X终端 91

5.1.3 Window管理器 91

5.1.4 控制台GUI 91

5.2 Solaris桌面系统 92

5.3 Open Windows 92

5.4 公用桌面环境(CDE) 94

5.4.1 使用Motif Window 95

5.4.3 CDE支持什么样的应用程序 99

5.4.2 在窗口中传送文本 99

5.4.4 CDE中更多的帮助 100

5.4.5 在CDE中运行shell命令 100

5.4.6 在CDE中编辑文本文件 101

5.4.7 通过CDE文件管理器拷贝和移动文件/目录 103

5.4.8 使用CDE Mailer读取/发送电子邮件 104

第6章 各种UNIX实用程序 108

6.1 定制应用程序 108

6.2 显示日期和时间 108

6.3 日历命令 109

6.4 计算行和其他的信息 110

6.5 算术的整数计算 110

6.6 一个功能更强大的计算器 112

6.7 StarOffice应用程序集 113

6.7.1 下载StatOffice 113

6.7.2 举例说明:下载Solaris版本的StatOffice 114

6.7.3 查找程序 120

6.7.4 创建一个新的数据库 121

7.1 UNIX文件简介 122

第7章 列出及查找目录和文件 122

第2部分 UNIX文件处理 122

7.1.1 隐藏文件 123

7.1.2 怎样确定文件类型 124

7.1.3 确定一个文件的内容属性 125

7.2 列出文件 126

7.2.1 列出所有文件,包含隐藏文件 126

7.2.2 以列的形式列出文件 126

7.2.4 用长格式列出文件,显示文件的类型、所有者、组、大小、日期和时间 127

7.2.3 在列出的文件后附加功能类型指示符 127

7.2.5 按照文件的最后修改日期在排序列出文件 128

7.2.6 按照文件的最后使用排序列出文件 128

7.2.7 按照最后的i节点变化日期排序列出文件 129

7.2.8 递归列出文件 129

7.2.9 列出一个目录的信息 130

7.2.10 列出文件并显示文件名中的所有控制字符 130

7.3 使用find命令 131

7.3.1 查找所有包含给定文件名的目录 131

7.3.2 指定一个起始目录以加快find命令的查找速度 132

7.3.3 在find命令中使用相对路径 132

7.3.4 在find命令中使用多个起始目录 133

7.3.5 用find命令搜索整个系统 134

7.3.6 消除find命令的错误消息:不能访问某些目录 134

7.3.7 考查find命令选项的类型 135

7.3.8 当你只知道部分文件名时查找文件 135

7.3.9 按照指定级别查找文件 139

7.3.10 使用要求+n,n或者-n的find选项 140

7.3.11 查找没有本地所有者或所属组的文件 142

7.3.12 使用find控制选项(包括逻辑或和分组) 143

7.3.13 find命令的动作选项 146

7.3.14 对每个找到的文件执行多个命令 147

第8章 显示文件、打印文件和管道 149

8.1 显示文件和管道 149

8.1.1 显示一个小文件 150

8.1.2 一次一屏显示文件和管道 150

8.1.3 只显示文件或者管道的起始行 153

8.1.4 只显示文件或者管道的结尾行 154

8.1.5 为输出加上行号 155

8.1.6 显示包含控制字符的文件 156

8.1.7 用大横幅字母显示文本 158

8.1.8 显示DOS文件 158

8.1.9 清除操作说明 159

8.2 打印文件和管道 160

8.2.1 介绍UNIX假脱机(spooling)系统 160

8.2.2 确定你的系统打印机名称 161

8.2.3 打印一个文件或者管道 162

8.2.4 检查打印队列 163

8.2.5 取消一个打印作业 164

8.2.6 从一台坏掉的打印机上移走打印请求 165

8.2.7 规范打印输出的格式 165

第9章 拷贝、移动、重命名、删除和链接文件 168

9.1 选择目的文件 168

9.1.1 处理许可权限拒绝错误 169

9.2 拷贝、移动和重命名文件 169

9.2.1 在当前目录中拷贝某个文件 169

9.2.2 在当前目录下重命名某个文件 170

9.2.3 cp和mv错误 170

9.2.4 拷贝、移动和重命名文件到一个不同的目录 171

9.2.5 确定你的文件指向何方 173

9.2.7 处理确认请求 174

9.2.6 拷贝/移动一个文件列表到一个目录 174

9.2.8 移动或者重命名一个目录 175

9.2.9 拷贝整个目录子树 175

9.3 删除文件 177

9.3.1 删除一个文件列表 177

9.3.2 难以删除的文件名 178

9.3.3 删除整个目录树 179

9.4.1 使用硬链接创建多个名称 180

9.4.2 找出一个文件的所有硬链接 180

9.4.4 使用软(符号)链接 182

9.4.3 删除一个硬链接 182

第10章 比较、排序、修改、组合和分割文件 184

10.1 比较文件 184

10.1.1 显示两个文件的差异 184

10.1.2 允许用短划线(-)代表标准输入的命令 186

10.1.3 分两列显示差异 186

10.1.4 显示三个文件的不同 187

10.1.5 在排序文本文件中查找公共行和独有的行 188

10.1.6 按照内容比较任意文件类型 190

10.1.7 比较不同系统中的文件 190

10.1.8 查找不同名称的相同文件 192

10.2 排序文件或者管道 192

10.2.1 决定行如何被排序(ASCII) 193

10.2.2 在排序时忽略起始空格 194

10.2.3 按大小对数字进行排序 194

10.2.4 小写/大写合并在一起 195

10.2.5 逆序排序 196

10.2.6 在排序时忽略标点符号 196

10.2.7 组合sort选项 197

10.2.8 对基于行中的域进行排序 197

10.2.9 按照主排序键和次排序键排列 199

10.2.10 全局sort选项 200

10.2.11 域sort选项 200

10.3 修改文件或者管道 201

10.3.1 加密一个文件或者管道 201

10.3.2 压缩文件 203

10.3.3 将文件编码为可以传送的简单文本 205

10.4 组合文件 207

10.4.1 将多个文件排序拼接在一起 207

10.4.2 一个接着一个地链接文件 207

10.4.3 将文件并肩粘贴在一起 207

10.4.4 按照一个连接域来合并排序后的文件 208

10.5 将一个文件分割为多个较小的文件 210

10.5.1 将文件分割为等长的块 210

10.5.2 按照部分标题分割一个文件 211

第11章 生成和使用文件列表 212

11.1 使用文件名生成通配符 212

11.1.1 生成以某个模式开头、结尾或者包含该模式的名字 213

11.1.2 检查操作说明查看是否允许文件列表和通配符 214

11.1.3 减少长文件名的输入量 215

11.1.4 的Bourne shell重定向中不允许使用文件名通配符 216

11.1.5 在你的文件列表中忽略目录 217

11.1.6 由多个模式产生一个文件列表 217

11.1.7 在文件列表中包含隐藏文件 217

11.1.8 生成其他目录下的文件列表 218

11.1.9 在某些模式位置允许任意字符 218

11.1.10 指定固定长度的文件名 219

11.1.11 在文件名中的某些位置指定模式 219

11.1.12 指定模式位置中允许的字符 219

11.1.13 在模式位置中指定不允许的字符 221

11.1.15 通配符习语:“or more”或者“at least” 222

11.1.14 匹配隐藏和非隐藏文件 222

11.1.17 匹配固定长度或者可变长度的文件名 223

11.1.16 通配符习语:在当前目录中 223

11.1.18 关闭文件名生成 224

11.1.19 处理参数列表太长的错误 224

11.2 使用反引号生成文件列表 225

11.2.1 处理没有空格的反引号错误 226

11.3 允许一个文件和文件名通配符列表的命令 226

11.4 使用xargs来处理一个项列表 227

第3部分 系统管理 230

第12章 在家中安装UNIX 230

12.1 理解一般的UNIX安装问题 230

12.1.2 个人电脑分区 231

12.1.1 谁不应该安装UNIX 231

12.1.3 让Windows放弃磁盘空间 233

12.1.4 1024个柱面的限制 233

12.1.5 打开你的机器,写下标记 234

12.1.6 避免使用通过声卡连接的CD-ROM驱动器 234

12.1.7 UNIX和Linux 234

12.2 在家中安装SCO UnixWare 7 235

12.2.1 定购UnixWare 7 235

12.2.2 UnixWare 7.0.1组件 237

12.2.3 制作要求的软盘 237

12.2.4 开始安装 237

12.3 在家中安装Sun Solaris 7 246

12.2.7 启动UnixWare 7或者Windows 246

12.2.5 得到SCO UNIX的帮助 246

12.2.6 在切断电源之前关机 246

12.3.1 定购Solaris 7 247

12.3.2 Solaris 7组件 247

12.3.3 安装文档 247

12.3.4 硬件兼容性 248

12.3.5 开始安装Solaris 7 249

12.3.6 Solaris 7中的CDE 1.3 258

12.3.7 在切断Solaris 7 系统的电源之前关机 258

12.3.8 启动Solaris或者Windows 259

12.3.9 隐藏Solaris 260

13.1 UNIX用户帐号 261

第13章 用户、组和登录 261

13.1.1 id命令 262

13.1.2 起始目录(Home Directory) 262

13.1.3 finger命令 263

13.2 显示关于UNIX口令文件的信息 264

13.2.1 改变你的口令 265

13.3 组 265

13.4 登当会话 266

13.4.1 tty命令 266

13.4.2 $TERM变量 266

13.4.3 $et/View tty 设置 267

13.4.4 查看已登录用户的命令 268

13.4.5 uptime命令 269

13.4.6 w命令 269

13.4.7 给所有的用户发一条消息 270

13.4.8 给所有远程用户发送消息 270

13.5 用户帐号管理 270

13.5.1 删除和引退(Retire) 270

13.5.2 成为一个超级用户 271

13.5.3 在IBM公司的AIX UNIX下创建一个新用户 271

13.5.4 在Solaris 7下创建一个新用户 273

13.5.5 在SCO UNIX下创建一个新用户 274

14.1.1 非法登录后的延迟 276

14.1 登录安全 276

第14章 文件许可权限和系统安全 276

14.1.2 次级口令 277

14.1.3 口令期限 277

14.1.4 改变你的口令 277

14.1.5 谁可以看到你的口令 278

14.1.6 允许用户成为其他用户或者系统管理员 279

14.2 为系统规划组 279

14.3 理解文件模式(许可权限) 280

14.3.1 目录许可权限 281

14.3.2 setuid/setgid程序 282

14.3.4 setgid位设置新文件的组 283

14.3.5 目录的读权限和执行权限 283

14.3.3 目录sticky位 283

14.4 改变许可权限/所有者/组 284

14.4.1 使用数值模式设置许可权限 284

14.4.2 使用符号模式设置许可权限 286

14.4.3 改变一个文件的组 288

14.4.4 改变一个文件的所有者 288

14.5 设置新文件的缺省许可权限 288

14.6 查看危险的setuid和setgid许可权限 289

14.6.1 安装文件系统时的setuid/setgid文件 290

第15章 系统启动、关闭和管理作业 291

15.1 启动系统 291

15.1.4 将UNIX内核加载到内存中 292

15.1.5 安装根磁盘并检查它 292

15.1.2 在打开主计算机前打开辅助子系统的电源 292

15.1.3 运行加电诊断 292

15.1.1 拿走所有可启动的媒质 292

15.1.6 单用户模式 293

15.1.7 多用户模式 293

15.1.8 System V的运行级别 294

15.2 关闭系统 294

15.3 在系统启动或关闭时自动执行的作业 296

15.3.1 System V UNIX系统启动时自动执行的作业 296

15.3.2 System V UNIX系统关闭时自动执行的作业 298

15.3.3 BSD UNIX系统启动时自动执行的作业 298

15.4.1 在用户登录时自动执行作业和设置命令 299

15.4 任何用户都能自动执行的作业 299

15.4.2 调度作业以定期返回 300

15.4.3 在Crontabs中使用星号(*)能配符 304

15.4.4 每天早上执行工作日作业 304

15.4.5 在指定日期/时间调度一次性的作业 305

15.4.6 在负载轻时调度一次性的作业 306

15.4.7 由用户开启和关闭crontab/at/batch 306

15.5 分配作业优先级 307

15.5.1 查看作业和它们的优先级 307

15.5.2 以低优先级启动一个作业 307

15.5.3 改变某个已有作业的优先级 308

15.6.1 启动后台作业 309

15.6 管理后台作业 309

15.5.4 比较cron、at、batch、nice和renice 309

15.6.2 防止退出杀死后台作业 310

15.6.3 杀死一个后台作业 310

15.7 使用Korn shell进行额外的作业控制 312

15.7.1 列出后台作业 312

15.7.2 挂起和继续执行作业 312

15.7.3 在Korn shell下杀死一个后台作业 313

15.7.4 在后台作业输出前暂停它们 313

第16章 系统和文件备份 314

16.1 备份用户文件 314

16.1.1 UNIX设备文件 315

16.1.3 UNIX磁盘设备名称 320

16.1.2 磁盘驱动器 320

16.2 选择tar、cpio或其他备份程序 322

16.3 使用tar备份和恢复文件 323

16.3.1 备份一个目录子树 323

16.3.2 备份选择的目录或者文件 324

16.3.3 列出一个tar存档的内容表 324

16.3.4 恢复存档 325

16.3.5 设置并使用tar备份设备表 331

16.3.6 设置tar的块大小 332

16.3.7 tar的局限性 332

16.4 使用cpio备份和恢复文件 332

16.4.1 备份一个目录子树 332

16.4.2 备份选择的目录或者文件 334

16.4.3 列出一个cpio存档的内容表 335

16.4.4 恢复存档 336

16.4.5 设置cpio块大小 341

16.5 将文件保存到DOS格式化的磁盘上然后再恢复它们 341

16.6 备份和恢复操作系统 342

16.6.1 传统的UNIX完全恢复 342

16.6.2 AIX系统中的mksysb 342

16.6.3 UnixWare 7的紧急恢复 343

16.6.4 BackupEKGE和LoneTar 343

第17章 管理系统资源 344

17.1 管理磁盘空间 344

17.1.1 什么是文件系统 344

17.1.4 安装文件系统 346

17.1.2 文件系统表 346

17.1.3 根文件系统 346

17.1.5 卸载文件系统 347

17.1.6 磁盘空间信息 348

17.1.7 如何确定一个文件属于哪个文件系统 349

17.1.8 限制用户的磁盘空间 350

17.1.9 查看并清除lost+found目录 351

17.1.10 磁盘管理的其他一些命令 352

17.2 管理系统性能 353

17.2.1 系统活动报告 353

17.2.2 sar历史文件 356

17.2.3 vmstat命令 356

17.2.4 iostat命令 357

18.1 查找/显示包含某个模式的行 359

第4部分 UNIX文本处理 359

第18章 在一个文件或者管道输出中查找行 359

18.1.1 在选择行时忽略大小写 361

18.1.2 将选择的行保存在文件中 361

18.1.3 将选择的行通过管道输出给其他命令 361

18.1.4 选择你的模式 362

18.1.5 显示不包含模式的行 363

18.1.6 给找到的行添加行号 363

18.1.7 只显示包含某个模式的文件名 363

18.1.8 查找包含两个模式的行 364

18.2 通配符模式在行中的匹配(正则表达式) 365

18.2.2 选择以某个模式开始的行 366

18.2.1 选择包含某个模式的行 366

18.2.3 选择以某个模式结尾的行 367

18.2.4 指明整行的内容 367

18.2.5 在正则表达式中包含shell变量 368

18.2.6 在正则表达式中包含命令替换 368

18.2.7 用引号括住正则表达式以免出现问题 369

18.2.8 允许使用正则表达式的UNIX命令 370

18.2.9 比较文件名通配符和正则表达式通配符 370

18.2.10 在某个模式位置允许任意字符 370

18.2.11 在模式位置指定允许的字符 371

18.2.12 的模式位置指定不允许的字符 372

18.2.13 指定一个正则表达式元素的出现次数 372

18.2.14 指定一个正则表达式元素的零次或者多次出现 373

18.2.15 去掉正则表达式中无限制的“或者更多”(or more) 374

18.3 egrep中可用的额外正则表达式通配符 375

18.3.1 在egrep中指定一个元素的一次或者多次出现 376

18.3.2 在egrep中使用一个正则表达式通配符零次或者多次 376

18.3.3 查找若干模式中的一个 376

18.4 只在Perl中可用的额外正则表达式通配符 377

18.4.1 查找不是更大单词一部分的单词 378

18.5 关闭正则表达式通配符 378

18.6 只检查指定域来选择一行 379

18.6.1 显示恰好匹配一个域的行 379

18.6.4 根据多个条件来显示一行 380

18.6.2 根据某个域的值显示一行 380

18.6.3 显示一个正则表达式匹配某个域的行 380

第19章 从一个文件或者管道输出中替换或者删除文本 382

19.1 按照列位置抽取/删除字符 382

19.2 替换或者删除字符串(使用正则表达式) 384

19.2.1 用一个字符串替换另一个字符串 384

19.2.2 每行只进行一次替换 385

19.2.3 改变限制符 386

19.2.4 从一行中删除字符串 387

19.2.5 使用选择替换或者删除 387

19.2.6 在sed查找串中使用正则表达式通配符 388

19.2.8 在查找或者替换串中使用shell变量 393

19.2.7 使用特殊字符 393

19.2.9 避免替换零次或者多次出现 394

19.2.10 在替换串中使用一个匹配到的通配符 395

19.2.11 删除查找模式之外的所有内容 396

19.2.12 记住以下规则:正则表达式通配符匹配最长可能间距 397

19.3 使用Perl来替换或者删除字符串 398

19.3.1 匹配最短的可能间距 398

19.3.2 为了提高可读性而扩展模式 399

19.3.3 替换不在更大单词中的单词 399

19.3.4 替换一个字符串或者另一个字符串 399

19.4.1 基于域的替换或删除 400

19.4 使用awk来替换或者删除字符串 400

19.3.5 在匹配正则表达式模式时忽略大小写 400

19.3.6 选择性替换或者删除 400

19.4.2 只显示选择的域 401

19.4.3 有条件地替换一个特殊的域值 403

19.4.4 将域格式化为直列 403

19.5 决定何时使用awk或者cut来抽取域 405

19.6 从一个文件或者管道输出中替换/删除字符 406

19.6.1 确定你的UNIX系统中使用的是哪种tr命令 406

19.6.2 将大写字母改变为小写字母,或者将小写字母改变为大写字母 407

19.6.3 将每个字符的第8位置1/置0 408

19.6.4 删除选择的字符 408

19.6.5 将大多数控制字符转换为一个错误字符 408

19.7.2 删除包含某个正则表达式模式的行 409

19.7.3 删除重复的行 409

19.7 替换/删除整行 409

19.7.1 替换整行 409

第20章 使用vi编辑一个文本文件 412

20.1 介绍vi文本编辑器 412

20.2 启动vi 413

20.2.1 为了练习vi创建一个文件 413

20.3 只用10条vi命令编辑任何内容 414

20.3.1 使用h、j 、k和l命令到处移动 414

20.3.2 让vi在出错进发出蜂鸣 415

20.3.3 使用一个重复计数 415

20.3.4 使用i命令插入 415

20.3.5 使用x和dd进行删除 416

20.3.7 使用:wq保存并退出 417

20.3.8 使用:q!放弃更改 417

20.3.6 使用J命令来合并行 417

20.4 在vi中添加帮助功能 418

20.5 学习8个vi命令 419

20.5.1 按Ctrl+l和Ctrl+R刷新屏幕 419

20.5.2 使用u命令来取消更改 419

20.5.3 使用A命令在行末添加文本 420

20.5.4 使用:w定期保存你的工作 420

20.5.5 使用:w命令将文件存入另一个文件 420

20.5.6 处理写权限错误 420

20.5.9 使用lG/G移动到一个文件的开头/结尾 421

20.5.10 使用:f查看文件名、文件大小和你所在的位置 421

20.5.8 使用cW来改变单词 421

20.5.7 使用r命令替换一个字符 421

20.6 帮助你使用vi的小技巧 422

20.6.1 使用U命令恢复整个行 422

20.6.2 使用spell命令来查找拼写错误的单词 422

20.6.3 格式化段落 423

20.6.4 恢复一个丢失了的编辑操作 424

20.6.5 用只读模式启动vi 425

20.7 在vi中移动 425

20.7.1 使用分隔单词、包含单词和非单词 425

20.7.2 通过查找字符串来进行移动 426

20.8 删除文本时使用的vi命令表 427

20.7.5 设置一个标志以便能够回到那里 427

20.7.3 在行中移动到一个指定的字符 427

20.7.4 查找一个匹配的括号符 427

20.9 恢复被删除的文本 428

20.10 改变文本的vi命令表 428

20.11 替换文本 429

第21章 让vi编辑器为你工作 430

21.1 简化重复编辑 430

21.1.1 使用.来重复编辑 430

21.1.2 使用n和.来查找和选择性地重复一个编辑操作 432

21.1.3 映射一个键到一个经常使用的命令序列 433

21.1.4 防止J把你的文本搞乱 435

21.2.1 在文件中替换正则表达式模式 436

21.2 全局和局部文本替换 436

21.2.2 在文件中的某部分替换正则表达模式 437

21.2.3 有条件地替换vi中的文本 437

21.2.4 改变行的缩进 439

21.3 在vi中移动/拷贝部分文本 439

21.3.1 在同一个文件中移动/拷贝文本 439

21.3.2 在不同文件之间移动/拷贝文本 440

21.4 设置插入文本的选项 441

21.4.1 使用/或者?在查找过程中忽略大小写 441

21.4.2 设置vi为总显示输入模式 441

21.4.5 打开自动写选项 442

21.4.4 打开行首自动缩进 442

21.4.3 打开行尾自动回卷 442

21.4.6 使用长字符串的缩写 443

21.4.7 打开行号 443

21.4.8 在.exrc中保存你的选项 443

21.5 使其他UNIX命令在vi中工作 444

21.5.1 在vi中检查其他的UNIX命令 444

21.5.2 在你的文件中插入其他UNIX命令的输出 444

21.5.3 对整个文件或者部分文件进行排序 444

21.5.4 删除和某个模式匹配的行 445

21.5.6 在你的文档中插入一个标题行 446

21.5.7 打印文件的一部分 446

21.5.5 加密/解密文件的所有或部分内容 446

21.5.8 在文件中的某部分对行/单词/字符进行计数 447

21.5.9 编辑多个文件 447

第22章 Korn shell中的命令行编辑 449

22.1 在Korn shell或者Bash shell中的命令行编辑 449

22.1.1 Linux中的命令行编辑 450

22.1.2 打开命令行编辑 450

22.2 vi命令行编辑 450

22.2.1 如何重新执行前面的命令 451

22.2.2 如何编辑一个前面的命令 451

22.2.3 如何纠正当前行 452

22.2.4 命令的历史 452

22.3 使用命令行编辑功能编辑复杂的管道 454

22.2.5 在命令区中移动 454

22.4 别名 457

第23章 Emacs编辑器 458

23.1 技术术语 459

23.2 启动Emacs 459

23.2.1 打开/保存文件以及退出Emacs 460

23.2.2 使用取消功能 461

23.2.3 剪切和粘贴 461

23.2.4 自动备份 463

23.3 绑定键 463

23.4 定义宏 465

23.4.1 重复宏 466

23.5.1 增量查找 467

23.5 查找和替换文本 467

23.5.2 普通查找 468

23.5.3 普通查找和替换 468

23.5.4 规则查找和替换 468

23.5.5 编辑一个匹配项的列表 469

23.5.6 查找中的大小写 470

23.6 拼写检查文档 471

23.7 大模式和小模式 472

23.7.1 载入小模式 472

23.7.2 载入大模式 473

23.8 获得帮助 474

23.8.1 信息页面 474

23.9 继续学习Emacs 475

23.9.1 额外的Emacs软件包 476

23.9.2 有用的Emacs函数 476

23.9.3 网络上的Emacs信息 476

第5部分 网络连接 477

第24章 通过调制解调器访问其他UNIX系统 477

24.1 通过调制解调器访问其他 UNIX系统 477

24.1.1 在UNIX/Linux下不要使用Windows调制解调器 478

24.2 调制解调器通信概述 478

24.3 UNIX串行设备 479

24.3.1 检查串行设备文件 479

24.3.2 检查串行通信配置 480

24.3.3 检查串行通信拨入配置 480

24.3.4 为拨出检查串行设备配置 482

24.3.5 使用cu程序登录 483

24.3.6 配置cu 484

24.3.7 使用cu程序 486

24.3.8 通过uucp传输文件 488

24.3.9 运行远程命令 489

24.3.10 检查uucp任务的状态 489

24.3.11 取消uucp请求 490

24.4 通过调制解调器(PPP)扩展网络 490

24.4.1 配置一个简单的PPP连接 490

24.4.2 停止PPP连接 492

24.5 小结 492

25.1 一些重要的网络连接概念 494

第25 章 在网络上或者Internet上访问其他UNIX系统 494

25.1.1 检查自己的网络连接 495

25.1.2 检查IP地址 496

25.1.3 命名一个UNIX主机 499

25.1.4 使用ping检测连接 500

25.1.5 检查是否正在运行域名服务 501

25.1.6 检查是否连接到Internet 503

25.2 通过网络登录到UNIX 503

25.2.1 使用Telnet登录 503

25.2.2 使用rlogin代替Telnet 504

25.2.3 配置hosts.equiv和.rhosts 504

25.3 通过网络传输文件 506

25.3.1 使用FTP传输多个文件 507

25.3.2 使用rcp传输文件 509

25.4 在网络中的另一个系统上执行命令 509

25.5 在两个UNIX系统(NFS)之间共享目录 510

25.6 使用mailx命令 511

25.6.1 举例 513

25.7 小结 515

第26章 从Windows访问UNIX 516

26.1 Windowst和TCP/IP 516

26.1.1 用ping检测连接 518

26.1.2 查看本地TCP/IP设置 519

26.1.3 从UNIX使用FTP传输文件 520

26.1.4 使用telnet登录到UNIX 522

26.2.1 通过Internet访问UNIX主机 523

26.2 拨号网络连接 523

26.2.2 通过终端连接访问UNIX主机 526

26.2.3 在远程主机与自己的机器之间传输文件 528

26.2.4 使用Windows上的Netscape读取和发送UNIX电子邮件 528

26.3 SMB共享目录和打印机 530

第27章 UNIX和Internet 531

27.1 通过UNIX在Internet上冲浪 531

27.2 从Internet上下载软件 533

27.2.1 下载Lynx 534

27.2.2 在Lynx上运行make 538

27.4 找到UNIX销售商Web站点 539

27.3 使用基于字符的浏览器(Lynx) 539

27.5 访问UNIX技术支持 540

27.6 访问免费(非支持)软件 542

27.6.1 检查补丁/更新 542

27.6.2 检查安全公告 543

27.6.3 检查2000年问题 543

27.7 在UNIX上阅读网络新闻 543

第6部分 脚本编程 547

第28章 编写Bourne shell脚本 547

28.1 编写/执行一个简单的脚本 548

28.2 不用路径就能运行脚本 549

28.3 创建和使用自己的变量 550

28.3.1 用反引号设置变量 551

28.4 与用户交互 552

28.4.1 显示标头和提示 553

28.4.2 在shell变量中使用用户的输入 554

28.5 在命令行提供脚本输入 556

28.6 执行基于测试结果的代码 557

28.6.1 检查文件类型、大小或许可权限 559

28.6.2 检查变量的值 562

28.6.3 在test条件中什么时候需要引号 564

28.6.4 为安全起见$变量要使用双引号括起来 566

28.6.5 检查命令结果 566

28.7 执行算术计算 568

28.8.2 检查最后一个命令的状态 569

28.8 特殊的shell变量 569

28.8.1 检查命令行参数所给的数值 569

28.8.3 使用非冲突的临时文件 570

28.8.4 把所有的参数传递给另一个命令 571

28.9 终止写脚本并设置完成状态 571

28.10 提供适当的UNIX用法错误消息 572

28.10.1 使用exit避免太多的嵌套 573

28.11 调试脚本 575

28.12 循环 577

28.12.1 处理一个目录下的所有文件 578

28.12.2 处理目录树中的所有文件 579

28.13 从项目菜单中选择 580

第29章 编写Perl程序 584

29.1 编写/执行一个简单的Perl脚本 585

29.1.1 一种快捷的终止备注 586

29.2 Perl数据类型 586

29.2.1 文字 587

29.2.2 变量 587

29.2.3 数组和散列 587

29.2.4 全局、局部和自定义变量 588

29.2.5 代码引用 589

29.2.6 文件句柄 589

29.2.7 here文档 589

29.3 特殊的Perl变量 590

29.4.2 在命令行提供脚本输入 592

29.4.1 把脚本输入作为一个参数来提供 592

29.4 与用户进行交互 592

29.5 控制结构 593

29.5.1 什么是真(true) 593

29.5.2 根据测试结果执行代码 594

29.5.3 做决定 595

29.5.4 在一系列代码中循环 596

29.5.5 在整体中循环执行某个操作 596

29.6 Perl中的常用函数 597

29.7 数组处理 598

29.7.1 Push和Pop函数 598

29.7.2 shift和unshift函数 599

29.8.1 close命令 600

29.7.3 splicd函数 600

29.8 文件处理 600

29.8.2 open命令 601

29.9 散列处理 601

29.9.1 each函数 602

29.9.2 keys函数 602

29.9.3 values函数 602

29.10 系统处理 603

29.10.1 time函数 603

29.10.2 localtime函数 603

29.10.3 system命令 604

29.11 变量处理 605

29.11.3 join函数 606

29.11.1 替换 606

29.11.2 split函数 606

29.11.4 chomp函数 607

29.12 调试脚本 607

29.12.1 列表代码 608

29.12.2 执行代码行 609

29.12.3 打印变量的值 609

29.12.4 断点 609

29.13 小结 612

第7部分 附录 613

附录A UNIX命令参考 613

附录B 词汇表 648