UNIX从入门到精通(第二版)

UNIX从入门到精通(第二版)
作 者: 邢国庆 庞俊华 陈智建
出版社: 电子工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Solaris
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《UNIX从入门到精通(第二版)》作者简介

内容简介

本书从UNIX的基本命令入手,由浅入深,逐步阐述UNIX系统的基本概念与设计原理,同时给出了大量的应用实例。在此基础上,对UNIX的核心精华部分,如Shell编程、进程管理,用户管理,磁盘空间管理、文件系统内部组织、文件系统维护、系统启动与关机、TCP/IP网络维护与应用、软件包的制作与安装等方面进行了深入的讨论。本书内容丰富、重点突出,文字简练、语言流畅,实用性强。本书可作为大专院校师生UNIX操作系统课程的教学参考书,也可作为IT从业者的UNIX自学手册。

图书目录

第1章 UNIX概述与安装 1

1.1 UNIX早期发展过程概述 1

1.1.1 UNIX的缘起 2

1.1.2 UNIX的交替发展 4

1.1.3 UNIX的战国时代 5

1.1.4 策略与标准之争 6

1.1.5 UNIX的黑暗时期 7

1.1.6 AT&T UNIX System V Release 4.0 7

1.1.7 后UNIX时代 8

1.2 UNIX的层次组织结构 9

1.3 UNIX的逻辑组织结构 10

1.3.1 进程管理子系统 11

1.3.2 内存管理子系统 12

1.3.3 文件管理子系统 12

1.3.4 I/O管理子系统 13

1.3.5 硬件系统 13

1.4 安装Solaris操作系统 13

1.4.1 硬件要求 14

1.4.2 安装步骤 14

第2章 命令行基础知识 25

2.1 命令行结构 25

2.2 后台进程 28

2.3 标准输入、标准输出与标准错误输出 28

2.4 输入输出重定向 29

2.5 管道 33

2.6 元字符与文件名生成 35

2.7 转义与引用 38

2.8 命令历史 40

2.8.1 fc命令 41

2.8.2 history命令 43

2.8.3 重复执行先前的命令 44

2.8.4 编辑并执行校正后的命令 46

2.8.5 命令行补充 47

2.9 命令别名 48

2.10 作业控制 51

2.11 会话记录 53

2.12 使用man命令查询系统参考手册 55

第3章 文件系统基础知识 57

3.1 文件系统的层次结构 57

3.1.1 树形层次结构 57

3.1.2 路径名 58

3.2 文件系统的组织结构 59

3.3 文件的类型 62

3.3.1 普通文件 63

3.3.2 目录文件 64

3.3.3 特殊文件 66

3.3.4 链接文件 70

3.3.5 符号链接文件 71

3.3.6 管道文件 73

3.4 文件的安全保护机制 73

3.4.1 显示文件的访问权限 74

3.4.2 修改文件的访问权限 75

3.4.3 设置文件的访问权限 76

3.4.4 其他访问权限设置 78

第4章 文件和目录操作 80

4.1 创建文件 80

4.2 显示文件列表 81

4.2.1 使用ls命令显示文件列表 81

4.2.2 利用通配符显示文件 83

4.2.3 显示隐藏文件 84

4.2.4 递归显示目录与文件 85

4.3 显示文件内容 86

4.3.1 使用cat命令显示文件 86

4.3.2 使用more命令分页显示文件 86

4.3.3 使用head命令显示文件前几行内容 88

4.3.4 使用tail命令显示文件最后几行内容 88

4.4 复制文件 89

4.5 移动文件 89

4.6 删除文件 91

4.7 显示当前工作目录 92

4.8 改换目录 92

4.9 创建目录 94

4.10 移动目录 94

4.11 复制目录 95

4.12 删除目录 96

4.13 比较文件之间的差别 96

4.13.1 使用diff命令比较两个文件 96

4.13.2 使用diff3命令比较三个文件 97

4.14 从系统中检索文件 98

4.14.1 简单检索 100

4.14.2 使用逻辑运算符 100

4.14.3 利用find命令本身实现其他处理功能 101

4.14.4 利用管道实现其他处理功能 101

4.15 检索文件内容 102

4.15.1 利用grep检索文件内容 102

4.15.2 过滤其他命令的输出数据 103

4.15.3 使用grep检索多个文件 103

4.15.4 检索不包含特定字符串的文本行 104

4.15.5 在grep中使用正则表达式 104

4.15.6 检索元字符本身 107

4.15.7 在命令行中使用引号 107

4.16 排序 107

第5章 编辑文件 109

5.1 启动vi编辑器 109

5.1.1 创建文件 109

5.1.2 状态行 109

5.2 vi编辑器的两种工作模式 110

5.2.1 输入模式 110

5.2.2 命令模式 110

5.3 保存编辑的文件并退出vi 111

5.4 vi编辑器的基本命令 112

5.4.1 移动光标位置 112

5.4.2 输入文本 113

5.4.3 修改与替换文本 113

5.4.4 撤销先前的修改 114

5.4.5 删除文本 115

5.4.6 复制、删除与粘贴文本 115

5.4.7 重复执行指定次数的命令 116

5.5 使用ex命令 116

5.5.1 显示行号 116

5.5.2 多行复制 117

5.5.3 移动文本行 117

5.5.4 删除文本行 118

5.6 检索与替换 118

5.6.1 检索字符串 118

5.6.2 模式检索 119

5.6.3 替换字符串 120

5.7 编辑多个文件 120

5.7.1 编辑多个文件 120

5.7.2 合并文件与合并文本行 121

5.8 定制vi编辑器的运行环境 121

5.8.1 临时设定vi的运行环境 121

5.8.2 永久性地定制vi的运行环境 123

5.9 其他特殊说明 124

5.9.1 删除或替换特殊字符 124

5.9.2 在编辑期间运行UNIX命令 124

5.10 vi编辑器命令总结 125

第6章 Shell基础知识 129

6.1 shell与Shell脚本 129

6.1.1 为什么需要Shell编程 129

6.1.2 什么是Shell脚本 130

6.1.3 运行Shell脚本 131

6.1.4 退出与出口状态 131

6.1.5 调用适当的Shell解释程序 133

6.1.6 位置参数 135

6.2 变量与变量替换 137

6.2.1 变量分类 137

6.2.2 变量赋值 138

6.2.3 内部变量 138

6.2.4 变量引用与替换 141

6.2.5 变量的间接引用 143

6.2.6 特殊的变量替换 144

6.2.7 变量声明与类型定义 147

6.3 命令与命令替换 148

6.3.1 Shell内部命令 148

6.3.2 部分命令介绍 151

6.3.3 命令替换 161

6.4 test语句 163

6.4.1 文件测试运算符 164

6.4.2 字符串测试运算符 165

6.4.3 整数值测试运算符 167

6.4.4 逻辑运算符 168

6.5 命令行的解释执行过程 169

6.5.1 读取命令行 170

6.5.2 命令历史替换 171

6.5.3 命令别名替换 171

6.5.4 花括号扩展 171

6.5.5 波浪号替换 172

6.5.6 I/O重定向 173

6.5.7 变量替换 174

6.5.8 算术运算结果替换 174

6.5.9 命令替换 174

6.5.10 单词解析 175

6.5.11 文件名生成 175

6.5.12 引用字符处理 176

6.5.13 进程替换 177

6.5.14 环境处理 178

6.5.15 执行命令 178

6.5.16 跟踪执行过程 179

6.5.17 实例验证 179

第7章 Shell高级编程 181

7.1 if条件语句 181

7.1.1 if语句的表现形式 181

7.1.2 嵌套的if-then条件测试 183

7.2 case分支语句 185

7.3 for循环语句 187

7.4 while循环语句 191

7.5 until循环语句 193

7.6 select循环语句 194

7.7 嵌套的循环 195

7.8 循环控制与辅助编程命令 197

7.8.1 break和continue命令 197

7.8.2 true命令 199

7.8.3 sleep命令 199

7.8.4 shift命令 200

7.8.5 getopt命令 200

7.8.6 getopts命令 202

7.9 循环语句的I/O重定向 204

7.9.1 while循环的I/O重定向 205

7.9.2 until循环的I/O重定向 206

7.9.3 for循环的I/O重定向 206

7.10 here文档 207

7.11 Shell函数 212

7.12 逻辑与和逻辑或并列结构 218

7.12.1 逻辑与命令并列结构 218

7.12.2 逻辑或命令并列结构 219

7.13 Shell数组 220

7.14 信号的捕捉与处理 225

7.15 其他Shell课题 229

7.15.1 子Shell 229

7.15.2 Shell脚本的调试 230

7.15.3 系统性能考虑 235

第8章 进程管理 237

8.1 ps命令概述 237

8.2 查询进程及其状态信息 239

8.2.1 查询当前活动的进程 239

8.2.2 查询系统中所有的进程 240

8.2.3 显示进程的重要状态信息 241

8.2.4 显示进程的详细状态信息 241

8.3 监控进程及系统资源 242

8.4 终止进程的运行 245

8.5 调整进程的调度类别及优先级 248

8.5.1 显示进程的调度类别与优先级 248

8.5.2 按照指定的调度类别与优先级运行进程 249

8.5.3 调整进程的调度类别与优先级 250

8.5.4 设置实时进程的时间片 250

8.6 调整分时进程的优先级 251

8.6.1 nice命令 251

8.6.2 renice命令 252

8.6.3 调整进程优先级的作用 252

8.7 定时运行系统任务和用户程序 253

8.7.1 cron守护进程的调度过程 253

8.7.2 调度定时重复执行的任务 255

8.7.3 提交一次性定时执行的任务 255

8.8 调度重复执行的任务 255

8.8.1 crontab的工作原理 256

8.8.2 创建和编辑crontab文件 257

8.8.3 显示crontab文件 258

8.8.4 删除crontab文件 258

8.8.5 crontab命令的访问控制 259

8.8.6 应用实例——数据库定时备份 260

8.9 调度一次性执行的作业 261

8.9.1 提交at作业 261

8.9.2 显示at作业及作业队列 263

8.9.3 删除at作业 263

8.9.4 at命令的访问控制 263

8.9.5 应用实例——系统定时关机 264

第9章 用户管理 266

9.1 增加与删除用户 266

9.1.1 /etc/passwd文件 266

9.1.2 /etc/shadow文件 267

9.1.3 用户管理实例 268

9.2 定制用户的工作环境 272

9.2.1 选择命令解释程序 272

9.2.2 设置用户初始化文件 273

9.2.3 定制Shell工作环境 275

9.3 增加与删除用户组 280

9.4 监控用户 281

9.4.1 利用who命令查询系统中的用户 282

9.4.2 利用finger命令查询系统中的用户 283

9.4.3 利用w命令查询系统中的用户活动 283

9.4.4 向注册用户发送消息 284

9.5 以不同用户的身份访问系统 284

第10章 软件包的制作与管理 287

10.1 软件包组成简介 287

10.1.1 基本组成部分 287

10.1.2 选用的信息文件 288

10.1.3 选用的Shell脚本文件 288

10.2 软件包的相关文件和命令 288

10.2.1 pkginfo文件 289

10.2.2 prototype文件 290

10.2.3 pkgmap文件 293

10.2.4 copyright文件 293

10.2.5 depend文件 294

10.2.6 space文件 294

10.2.7 compver文件 295

10.2.8 软件包的相关工具 295

10.3 制作软件包 295

10.3.1 制作软件包的步骤 296

10.3.2 创建pkginfo文件 301

10.3.3 利用pkgproto命令创建prototype文件 301

10.3.4 利用pkgmk命令制作软件包 304

10.3.5 pkgtrans命令 308

10.4 安装软件包 310

10.5 查询软件包 312

10.6 检测软件包 313

10.7 卸载软件包 315

第11章 磁盘空间管理 318

11.1 查询磁盘空间信息 318

11.1.1 常用的磁盘空间管理工具 318

11.1.2 使用df命令检查存储空间的使用情况 318

11.1.3 使用du命令检查存储空间占用情况 321

11.1.4 使用quot命令查询每个用户占用的存储空间 323

11.1.5 使用find命令找出超大容量的文件 324

11.1.6 使用find命令找出长期闲置的文件 324

11.1.7 使用find命令找出并删除core文件 325

11.1.8 使用ls命令检测文件的大小 325

11.2 采用标准工具备份与恢复数据 326

11.2.1 利用cpio实现备份和恢复 327

11.2.2 利用tar实现备份和恢复 333

11.2.3 利用dd实现数据的复制 337

11.3 文件系统限额管理 339

11.3.1 限额概述 339

11.3.2 设置限额 341

11.3.3 限额的维护 343

第12章 TCP/IP网络管理 347

12.1 TCP/IP简介 347

12.1.1 TCP/IP协议的层次结构 347

12.1.2 TCP/IP协议如何处理数据通信 349

12.2 网络接口设置 351

12.3 主机名字解析 353

12.4 网络路由设置 354

12.4.1 静态路由 354

12.4.2 动态路由 355

12.5 配置网络服务 356

12.6 网络管理与维护 358

12.6.1 使用ifconfig命令维护网络接口 358

12.6.2 使用netstat命令监控网络状态 359

12.6.3 使用ping命令测试远程主机的连通性 363

12.6.4 使用ftp命令检测网络主机的传输性能 364

12.6.5 使用traceroute命令跟踪路由信息 365

第13章 TCP/IP网络应用 367

13.1 OpenSSH 367

13.1.1 sshd_config配置文件 367

13.1.2 ssh_config配置文件 370

13.1.3 使用SSH注册到远程系统 372

13.1.4 使用SSH执行远程系统中的命令 373

13.1.5 使用SCP替代FTP 373

13.1.6 使用SFTP替代FTP 374

13.1.7 SSH与SCP的无密码注册 375

13.1.8 OpenSSH的安全考虑 377

13.2 Telnet远程系统注册 378

13.3 FTP文件传输 379

13.3.1 连接FTP服务器 381

13.3.2 FTP应用 382

13.3.3 FTP访问控制 384

13.3.4 FTP自动注册 384

第14章 网络文件系统 386

14.1 NFS简述 386

14.2 配置NFS服务器 387

14.3 配置NFS客户系统 390

14.3.1 安装远程文件系统 390

14.3.2 设置/etc/vfstab文件 392

14.4 NFS自动安装 392

14.4.1 主映射文件 393

14.4.2 直接映射文件 394

14.4.3 间接映射文件 394

第15章 系统启动与关机 396

15.1 磁盘分区与初始引导 396

15.1.1 磁盘分区 396

15.1.2 初始引导过程 399

15.1.3 系统初始化 400

15.2 init进程与系统生成 402

15.2.1 运行级 403

15.2.2 /etc/inittab文件 405

15.2.3 处理方式 405

15.2.4 /etc/inittab文件举例 406

15.2.5 启动用户定义的应用程序 409

15.3 用户注册过程 409

15.3.1 用户注册的处理过程 409

15.3.2 utmpx和wtmpx文件 410

15.4 系统关机过程 411

15.4.1 使用shutdown命令关闭系统 411

15.4.2 使用init命令关闭系统 412

15.4.3 使用其他命令关机 412

15.5 应用实例 413

第16章 文件系统内部组织 415

16.1 文件系统的组织结构 415

16.2 超级块 417

16.3 信息节点 418

16.3.1 特权标志位 418

16.3.2 数据块地址数组 420

16.4 数据区与空闲数据存储块的组织 421

16.5 信息节点的分配与释放 421

16.6 数据块的分配与释放 422

16.7 信息节点与目录和文件的关系 424

16.8 UFS文件系统 424

16.8.1 UFS文件系统的组织结构 424

16.8.2 引导块 425

16.8.3 超级块 425

16.8.4 柱面组信息块 426

16.8.5 信息节点区与信息节点 428

16.8.6 数据块区 429

16.8.7 数据块的分配与释放过程 429

16.8.8 信息节点的分配与释放过程 430

第17章 文件系统管理 432

17.1 创建文件系统 432

17.1.1 使用mkfs命令创建UFS文件系统 432

17.1.2 使用newfs命令创建文件系统 436

17.2 使用labelit命令命名文件系统 438

17.3 安装、卸载文件系统 438

17.3.1 安装文件系统 438

17.3.2 /etc/vfstab文件 439

17.3.3 安装文件系统 441

17.3.4 卸载文件系统 442

17.4 确定文件系统的类型 444

17.5 检测与修复文件系统 446

17.5.1 何时需要检测文件系统 447

17.5.2 文件系统检测的内容 448

17.5.3 交互检测与修复UFS文件系统 452

17.5.4 自动检测与修复UFS文件系统 454

17.5.5 恢复严重受损的超级块 454

17.5.6 解决fsck命令无法修复的UFS文件系统问题 455

17.5.7 fsck的阶段处理方式 456

17.5.8 利用其他工具修复文件系统 463

参考文献 466