
| 《UNIX从入门到精通(第2版)》由浅入深,逐步阐述了UNIX系统的基本概念与原理,同时给出了大量的应用实例。内容丰富、语言流畅,是学习、使用、管理与维护UNIX系统的一本不可多得的工具书,可以作为学习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 |
商品评论(0条)