具体描述
UNIX是一个功能强大、性能完善的多用户、多任务操作系统,可应用在巨型机(如CRAY)到PC机等不同的平台上。本书由四大部分和附录组成,详细介绍了UNIX。本书主要内容有UNIX的基础知识、如何管理UNIX、用UNIX建立和配置TCP/IP网络、在UNIX下配置和使用各种Internet服务,以及与UNIX相关的RFC和TCP-UDP端口等知识。
本书适合科技人员、大专院校师生及广大计算机开发和应用人员使用。
作者简介
目录信息
译者序
前言
第一部分 基础知识
第1章 UNIX环境概述
1.1UNIX的起源
1.1.1历史
1.1.2UNIX的版本
1.1.3谁拥有什么
1.2UNIX操作系统
1.2.1UNIX内核
1.2.2UNIX硬件
1.2.3UNIX都有的特点
1.2.4UNIX网络
1.3市场上的UNIX服务
1.4开放式系统标准
1.5小结
第2章 登录
2.1了解登录过程
2.1.1用户登录名
2.1.2超级用户
2.1.3登录提示符
2.1.4登录错误
2.1.5登录进入以后
2.1.6修改口令
2.1.7退出系统
2.2UNIX口令管理
2.2.1安全的必要性
2.2.2选择一个好口令
2.2.3实行口令换代
2.3小结
第3章 UNIXShell和系统命令
3.1什么是UNIXShell
3.2使用哪种Shel1
3.3选择Shell
3.4查找目录
3.4.1psw命令
3.4.2cd命令
3.5列文件名和目录名
3.5.1ls命令
3.5.2产生文件名
3.5.3特殊字符
3.6显示文件
3.6.1使用cat显示文件
3.6.2使用more显示文件
3.6.3使用head查看文件头部
3.6.4使用tail查看文件尾部
3.6.5转储文件
3.7使用文件和目录
3.7.1使用cp拷贝文件和目录
3.7.2使用mv移动和重命名文件
3.7.3使用rm删除文件和目录
3.7.4创建和删除目录
3.7.5使用find查找文件
3.8管道、I/O重定向和过滤
3.8.1理解I/O
3.8.2理解文件描述符
3.8.3使用I/O重定向
3.8.4使用管道
3.9过滤命令
3.9.1使用cut和paste
3.9.2sort工具
3.9.3tee工具
3.9.4grep命令
3.9.5awk命令
3.10与用户一起工作
3.10.1查看登录用户
3.10.2获取用户信息
3.10.3使用su切换到另一个用户
3.10.4给用户发送消息
3.10.5与其他用户对话
3.10.6向所有用户发送消息
3.10限制消息
3.11UNIX进程
3.12小结
第4章 vi编辑器
4.1vi简介
4.2vi操作模式
4.3使用vi编辑文本
4.3.1理解编辑进程
4.3.2终端类型
4.3.3启动vi
4.3.4退出vi
4.3.5创建第一个vi文件
4.3.6在vi中定位
4.3.7添加和插入文本
4.3.8删除文本
4.3.9修改和替换文本
4.3.10连接一行
4.3.11撤消修改
4.3.12重复命令
4.3.13管理文件
4.3.14在崩溃后恢复文本
4.3.15基本vi命令汇总
4.4高级vi技巧
4.4.1拷贝和粘贴文本
4.4.2搜索文本
4.4.3搜索和替换文本
4.4.4退出到Shell
4.4.5高级vi命令汇总
4.5设置vi选项
4.5.1在vi内设置选项
4.5.2选项列表
4.5.3在vi外设置选项
4.6其它UNIX编辑器
4.7小结
第5章 文件、目录和权限
5.1UNIX文件和目录结构
5.1.1文件和目录名
5.1.2路径名
5.2目录树的组织
5.2.1根目录
5.2.2系统目录
5.3文件类型
5.3.1检查文件类型
5.3.2标准文件
5.3.3目录
5.3.4符号链
5.3.5设备文件
5.3.6命名管道
5.4拥有者、分组和权限
5.4.1查看权限
5.4.2定义权限
5.4.3改变文件和目录权限
5.5改变拥有者和分组
5.5.1改变拥有权
5.5.2改变分组拥有权
5.6i节点表
5.7小结
第6章 UNIX进程
6.1简介
6.2进程
6.3进程的创建
6.4进程状态
6.5查看进程/程序信息的命令
6.6小结
第7章 Shell脚本基础
7.1Shell编程简介
7.1.1KornShell
7.1.2管道
7.1.3列表
7.1.4重定向
7.1.5子Sbell
7.1.6注解
7.2变量
7.2.1数组变量
7.2.2环境变量
7.2.3Shell变量
7.2.4取消变量设置
7.3替换和引用
7.3.1命令替换
7.3.2算术替换
7.3.3引用
7.4控制结构
7.4.1流控
7.4.2循环
7.5小结
第8章 高级Shell脚本
8.1使Shell脚本可执行
8.2特殊变量和变量替换
8.2.1特殊变量
8.2.2变量替换
8.3函数
8.4Shell脚本中的选项分析
8.4.1getopts命令
8.4.2一个使用getopts的例子
8.5处理信号
8.5.1信号
8.5.2trap命令
8.6调试和记录Shell脚本
8.6.1调试
8.6.2记录
8.7小结
第9章 UNIX窗口系统
9.1通用桌面环境概述
9.2CDE的特点
9.2.1登录
9.2.2CDE前台面板概述
9.2.3图形工作区管理器
9.2.4CDE前台面板的功能
9.3CDE工具
9.3.1dtterm
9.3.2dtpad
9.3.3文件管理器
9.3.4日历管理器
9.4定制窗口环境
9.4.1格式管理器
9.4.2创建及安装新动作和子面板
9.4.3编辑配置文件
9.5其它窗口系统
9.5.1OpenWindows
9.5.2HP-VUE
9.5.3KDE
9.6小结
第二部分 系统管理
第10章 用户帐号和组管理
10.1理解用户和组的概念
10.1.1Passwd文件
10.1.2Shadow文件
10.1.3AIX的不同
10.1.4group文件
10.2理解UID和GID
10.3创建用户帐号
10.4删除用户帐号
10.5更改用户帐号
10.6编写Shell脚本创建用户帐号
10.7创建组
10.8修改组
10.9删除组
10.10定制用户环境
10.11UNIX口令
10.12小结
第11章 启动和关闭
11.1启动进程
11.2UNIX引导进程
11.2.1运行级
11.2.2引导阶段
11.3init进程
11.3.1inittab文件
11.3.2运行控制脚本
11.3.3运行控制目录
11.3.4启动和杀死脚本
11.3.5/etc/init.d目录
11.3.6改变运行级
11.3.7验证运行级
11.3.8初始化命令:init
11.4关机进程
11.5为引导和启动进程查找故障
11.5.1第一阶段―――POST检测引导错误
――硬件问题
11.5.2 第二阶段―――引导程序错误
11.5.3第三阶段―――执行向多用户
模式的引导
11.6 小结
第12章 设备管理
12.1什么是设备管理
12.2设备文件
12.2.1硬盘和CD-ROM
12.2.2磁带设备
12.2.3串口/伪(SerialPorst/pseudo)
端口
12.2.4其它外围设备
12.3加入硬盘设备
12.3.1SunOS4.x
12.3.2Solaris2.x
12.3.3HP/UX10/11
12.3.4AIX4.x
12.4检验硬盘的存在
12.4.1SunOS4.x
12.4.2Solaris2.x
12.4.3HP/UX10/11
12.4.4AIX4
12.5配置设备
12.5.1SunOS4.x
12.5.2Solaris2.x
12.5.3HP/UX10/11
12.5.4AIX4.x
12.6测试驱动器
12.6.1SunOS4.x
12.6.2Solaris2.x
12.6.3HP/UX10/11
12.6.4AIX4.x
12.7增加一个CD-ROM
12.7.1SunOS4.x和So1aris2.x
12.7.2HP/UX10/11和AIX4.x
12.8验证CD-ROM的存在
12.8.1SunOS4.x
12.8.2Solaris2.x
12.8.3HP/UX10/11
12.8.4AIX4.x
12.9终端和调制解调器
12.9.1终端设置
12.9.2连接终端设备
12.9.3SunOS4.x
12.9.4Solaris2.x
12.9.5HP/UX10/11
12.9.6AIX4.x
12.9.7终端处理
12.9.8对终端问题的故障检测
12.10 小结
第13章 文件系统
13.1简介
13.2理解文件系统
13.2.1文件类型
13.2.2inodes和superblocks
13.3不同类型的文件系统
13.3.1ext2文件系统
13.3.2ufs文件系统
13.3.3iso9660文件系统
13.3.4msdos文件系统
13.3.5proc和swap文件系统
13.4创建文件系统
13.4.1磁盘定位―――设备入口
13.4.2格式化磁盘和为磁盘分区
13.5安装和拆卸文件系统
13.5.1安装一个文件系统
13.5.2安装选项
13.5.3拆卸文件系统
13.5.4配置文件
13.6监视文件系统
13.6.1监视整体使用
13.6.2磁盘限额
13.7用fsck维护文件系统
13.7.1fsck的阶段
13.7.2运行fsck
13.8小结
第14章 打印
14.1简介
14.2BSD(lpr/1pd)打印系统
14.2.11pr命令:将文件送去打印
14.2.2在假脱机目录创建的数据
文件:cf,df
14.2.31pddaemon:控制打印进程
14.3管理打印队列
14.41prm命令:从打印队列中删除文件
14.4.1使用1pc命令
14.4.2用pac命令收集打印统计信息
14.4.3在BSD系统安装和配置打印机
14.5SVR4打印系统
14.5.1什么是目的和类
14.5.2对打印文件使用1p和cancel命令
14.5.3lpadmin命令
14.6小结
第15章 备份和恢复
15.1理解数据的重要性
15.2备份策略一览
15.3选择合适的备份设备
15.3.1磁带驱动器
15.3.2硬盘
15.3.3其它介质
15.4执行备份策略
15.4.1祖父-父-子方法
15.4.2汉诺塔方法
15.4.3提示和一些小技巧
15.5备份和恢复工具
15.5.1使用volcopy和labelit
15.5.2使用dump和restore
15.5.3使用tar
15.5.4使用cpio
15.5.5使用dd
15.5.6商业备份产品
15.6用fsck维护文件系统
15.6.1/etc/fstab文件
15.6.2运行fsck
15.6.3P_fsck――并行fsck
15.7恢复根文件系统
15.8 小结
第16章 任务自动化
16.1简介
16.2运行多个作业
16.2.1jobs命令
16.2.2把作业取到前台
16.2.3将作业放到后台
16.3在指定的时间执行命令
16.3.1at命令
16.3.2控制对at的访问
16.4在周期性间隔时间调度命令的执行
16.4.1cron进程
16.4.2cron配置文件
16.4.3依照cron的高级时间规格说明
16.4.4增加和更改cron任务
16.4.5从cron中删除任务
16.4.6控制对cron的访问
16.4.7为cron进行故障检测
16.5 小结
第三部分 TCP/IP网络管理
第17章 网络基础
17.1网络综述
17.2主机名和IP地址
17.3网络连接命令
17.3.1使用telnet
17.3.2使用ftp
17.3.3r-utilities
17.3.4使用ping
17.3.5使用finger
17.3.6使用talk
17.4小结
第18章 网络互连技术
18.1定义连接
18.2不同的网络模型
18.2.1探索OSI模型
18.2.2网络层次如何创建网络模型
18.3看一看DOD模型
18.3.1TCP/IP简史
18.3.2协议和RFC
18.3.3进程/应用层
18.3.4主机-主机层
18.3.5Internet层
18.3.6IP地址分类
18.4子网
18.4.1子网掩码
18.4.2网络访问层
18.5不同类型的网络互连硬件
18.5.1什么是中继器
18.5.2什么是网桥
18.5.3什么是交换器
18.5.4什么是路由器
18.5.5什么是桥式路由器
18.5.6什么是网关
18.6 小结
第19章 配置TCP/IP
19.1TCP/IP安装概述
19.1.1预安装信息
19.1.2安装硬件
19.1.3编译新内核
19.1.4配置网卡
19.1.5测试TCP/IP连接
19.2TCP/IP网络配置
19.2.1hosts文件
19.2.2netmasks文件
19.2.3networks文件
19.2.4services文件
19.2.5resolve.conf文件
19.2.6RPC服务
19.2.7/etc/inetd.conf文件
19.3不同类型的网络接口
19.4使用网络接口
19.4.1查看接口
19.4.2改变网络接口参数
19.5netstat命令
19.5.1解释netstat-a的输出
19.5.2解释netstat-r的输出
19.5.3解释netstat-i的输出
19.5.4 协议统计
19.6小结
第20章IP路由选择
20.1概述
20.2怎样传输IP数据报
20.2.1IP包格式
20.2.2本地网段
20.2.3单路由网段
20.2.4多路由网段
20.3为什么使用路由选择协议
20.4路由选择协议概述
20.4.1路由选择协议分类
20.4.2距离向量和链路状态路由
选择的比较
20.4.3路由选择信息协议
20.4.4开放式最短路径优先
20.4.5内部网关路由选择协议
20.4.6路由器发现协议
20.4.7其它路由选择协议
20.5维护内核路由选择表
20.5.1主机路由
20.5.2网络路由
20.5.3缺省路由
20.5.4 维护路由选择表
20.5.5静态路由
20.5.6动态路由
20.5.7route命令
20.6UNIX路由选择协议Daemon
20.6.1gated配置文件
20.6.2routed配置文件
20.6.3使用routed执行RIPI
20.6.4使用gated执行RIPI
20.6.5使用gated执行RIPⅡ
20.6.6使用gated执行OSPF
20.6.7使用in.rdisc和irdd执行RDISC
20.7小结
第21章 高级网络技术
21.1什么是高级网络
21.2实现点到点协议
21.2.1什么是PPP
21.2.2UNIX中的PPP
21.2.3安装PPP
21.2.4测试PPP
21.3专用网络、防火墙和NAT
21.3.1专用网络
21.3.2防火墙
21.3.3代理服务器
21.3.4Socks5代理服务器
21.4Mbone
21.4.1Mbone如何工作
21.4.2在Mbone上可以利用的资源
21.4.3怎样加入Mbone
21.4.4在UNIX上使用Mbone工具
21.5下一代Internet协议(第六版)
21.5.1什么是IPng
21.5.2IPv6的主要特点
21.5.3IPv6对UNIX系统的影响
21.6小结
第四部分 网络服务
第22章 NFS
22.1分布式文件系统简介
22.2NFS环境
22.2.1远程过程呼叫协议
22.2.2是UDP还是TCP
22.2.3用XDR交换数据
22.2.4NFS协议和Mount协议
22.3NFS客户机
22.3.1客户机Daemon
22.3.2安装远程文件系统
22.3.3使用fstab文件
22.3.4许可和选项
22.3.5拆卸远程文件系统
22.4NFS服务器
22.4.1服务器方Daemon
22.4.2共享和非共享的文件系统
22.4.3配置文件
22.4.4使用share命令
22.5NFS文件系统的监控、故障
检测及恢复
22.6自动安装文件系统
22.6.1automount命令
22.6.2master映像
22.6.3直接映像
22.6.4间接映像
22.7设置NFS服务器和客户机
22.8在非UNIX客户机上使用NFS
22.9小结
第23章 DNS
23.1Internet简史
23.2域名服务概述
23.2.1域结构
23.2.2正式域名
23.2.3域和区
23.3DNS域名服务器
23.3.1主域名服务器
23.3.2辅域名服务器
23.3.3CachingOnly域名服务器
23.3.4DNS询问举例
23.4资源记录
23.4.1授权起始(SOA)节
23.4.2域名服务器(NS)节
23.4.3数据库节
23.4.4完整的区文件
23.5配置DNS客户机
23.6配置DNS服务器
23.6.1伯克利网际命名域(BIND)
23.6.2启动BIND
23.6.3测试域名服务器
23.6.4配置辅域名服务器
23.6.5委托子域
23.6.6设置邮件交换机
23.7DNS的故障检测 恢复和调试
23.8小结
第24章 ApacheWe b服务器
24.1理解Web服务器
24.1.1HTTP
24.1.2URL
24.1.3 CGI
24.2Apache服务器的安装
24.2.1准备安装服务器
24.2.2获得Apache服务器软件
24.2.3Apache模块
24.2.4编译和安装服务器
24.3基本Apache配置
24.3.1Apache配置文件
24.3.2只用一个配置文件
24.4高级Apache配置
24.4.1用户访问控制
24.4.2用户个人的Web服务器
24.4.3虚拟主机
24.4.4代理服务器
24.5启动和终止Apache服务器
24.6小结
第25章 Sendmail和POP
25.1电子邮件简介
25.2使用Email(MUA)
25.2.1使用基于文本的MUA(mailx)
25.2.2使用基于GUI的MUA
(NetscapeMessenger)
25.3理解Email协议
25.3.1SMTP协议简介
25.3.2SMTP传输过程
25.3.3邮件头语法
25.3.4使用DNS进行邮件寻址和
路由选择
25.3.5SMTP服务扩展
25.3.6多用途的网际邮件扩充协议
25.4Sendmail简介
25.4.1编译sendmail
25.4.2sendmail中DNS的角色
25.4.3sendmail别名
25.4.4sendmail配置文件
25.4.5使用M4宏处理器
25.4.6运行sendmail
25.4.7sendmai1的故障检测与恢复
25.5邮局协议
25.5.1服务器上的POP
25.5.2客户机上的POP
25.6小结
第26章 安全
26.1物理级安全和安全策略
26.2操作系统安全
26.3使用好的口令
26.3.1保护/etc/passwd文件
26.3.2伪造登录:口令窃贼
26.3.3非必须的系统服务
26.3.4拨入/拨出安全
26.4审查和系统注册文件
26.5网络安全
26.5.1网络探查者
26.5.2电子欺骗法
26.5.3拒绝服务攻击
26.5.4报文过滤是第一道防线
26.5.5什么是应用网关
26.6使用ssh保障远程管理的安全
26.6.1Cops
26.6.2Satan
26.7PGP
26.7.1理解用公共和私有密钥加密
26.7.2如何获得、编译、配置PGP
26.7.3使用PGP
26.7.4解密PGP消,息
26.8CERT和其它Internet资源
26.9小结
第27章 性能调整
27.1性能调整过程
27.1.1性能定义
27.1.2分析数据
27.1.3产生假设
27.1.4测试和验证
27.1.5实现解决方案
27.2性能策略
27.2.1容量计划
27.2.2用RAID磁盘系统获得最大性能
27.2.3使用限额
27.2.4用计帐方法跟踪使用情况
27.3常见性能瓶颈
27.3.1系统硬件和外设
27.3.2应用程序
27.3.3内核
27.3.4网络
27.4收集统计结果:可用的工具
27.4.1用ps和uptime获取通用系统信息
27.4.2用vmstat监视CPU和内存
27.4.3用iostat监视磁盘
27.4.4用netstat监视网络接口
27.4.5用nfstat监视NFS
27.4.6用tcpdump或snoop监视网络
27.4.7top命令
27.5其它性能工具
27.5.1DigitalUNIX的性能管理器4.0D
27.5.2SUN公司的SETookit和
VirtualAdrian
27.6 小结
第五部分 附 录
附录A RFC
A.0前言
A.1RFC的有关信息
A.1.1寻找RFC
A.1.2Internet标 准化过程
A.2参考RFC (FYI)
A.3RFC分类
A.3.1有关RFC的RFC
A.3.2一般InternetRFC
A.3.3文件传输协议RFC
A.3.4FingerRFC
A.3.5FirewallRFC
A.3.6InternetProtocolVersion6RFC
A.3.7MailRFC
A.3.8网络文件系统RFC
A.3.9点到点协议RFC
A.3.10TelnetRFC
A.3.11WorldWideWebRFC
附录B TCP-UDP公用端口
B.1简介
B.2公用端口号
B.2.1注册的端口号
B.2.2协议和服务名
附录C 词汇表
附录D CD-ROM上的内容
D.1CD-ROM的顶层文件
D.2CD-ROM上的软件
· · · · · · (收起)
读后感
用户评价
这本书的封面设计简直是古板到家了,那种深沉的蓝配上略显过时的宋体字,让我一度怀疑自己是不是买到了一本上个世纪的遗物。打开书页,扑面而来的是那种油墨味和纸张的粗糙感,让我对阅读体验打了个大大的问号。更别提那目录结构,简直像迷宫一样复杂,章节的划分毫无逻辑可言,想找个特定的主题,简直比徒手攀岩还费劲。而且,书中随处可见的术语解释,简直是故弄玄虚,明明可以用更直白的方式阐述,偏偏要用一堆晦涩难懂的行话来堆砌,让人看了就想合上书本,去泡杯热茶冷静一下。对于一个期待能快速上手实践的读者来说,这本书简直是灾难,它更像是一份厚重的历史文献,而不是一本实用的开发指南。读了前面几章,我感觉自己像是在啃一块又硬又冷的石头,丝毫没有找到任何可以下咽的美味之处。这本书的排版也极其不友好,大段的文字堆积在一起,连个喘息的空隙都没有,看着就让人头晕目眩,真不知道设计它的人是不是对“阅读舒适度”这个概念一无所知。
这本书的语言风格极其的生硬和说教,通篇下来,感觉不像是在阅读一本技术书籍,倒像是在听一个老教授用他那套固化的思维模式对你进行灌输。句子结构冗长而拗口,充满了各种从句和复杂的修饰语,读起来需要反复回味,才能勉强捕捉到作者想表达的核心意思。举个例子,对于一个简单的系统调用,书中能用三段话来描述其历史背景、设计哲学以及各种边缘情况的理论推导,但真正关键的参数用法和返回值处理,却只是一笔带过,含糊不清。这种详略不当的处理方式,极大地影响了学习效率。我需要的是清晰、简洁的指导,而不是一场无休止的哲学辩论。此外,全书的插图少得可怜,即便有,也是那种低分辨率的、难以辨认的流程图,完全无法起到辅助理解的作用。这本书似乎更偏向于知识的记录,而非知识的传授。
让我感到最沮丧的是,这本书的“时效性”问题暴露无遗。虽然它冠以“最新”的头衔,但内容中反映出的技术栈,明显滞后于当前的主流开发环境。例如,在讨论进程间通信时,书中花费了大量篇幅介绍了一些传统IPC机制,而对于现代系统广泛使用的消息队列或更高级的内存共享技术,却一带而过,或者根本没有提及。对于我们这些需要面向未来开发的人来说,这些过时的知识点不仅无用,甚至可能误导我们的技术选型。阅读这本书的过程,就像是强迫自己去适应一套已经生锈的工具箱,里面大部分工具都因为年代久远而不再适用。而且,书中提到的很多实用工具和库的版本号,都停留在好几年前的阶段,如果你试图在最新的发行版上复现书中的环境,必然会遇到大量的兼容性错误。这本书的价值,可能仅限于了解UNIX历史的某个侧面,但作为一本“开发使用手册”,它的指导意义已经微乎其微了。
我尝试着去理解这本书的某种深奥之处,毕竟名字听上去是那么“权威”和“全面”,但实际内容却充斥着大量的理论堆砌和过时的案例。举个例子,书中花了大量的篇幅去介绍某些早已被现代操作系统替代的底层机制,那些代码片段,拿到现在的环境里去编译,估计能报错到你怀疑人生。我本想学习一些关于现代并发处理的技巧,结果翻来覆去,看到的都是几十年前的锁机制和信号量,讲得虽然细致,但脱离了实际应用场景,就成了空中楼阁。作者似乎沉醉于展示自己知识的广度,却忽略了读者最迫切的需求——解决眼前的问题。更令人抓狂的是,全书的示例代码质量参差不齐,有些甚至存在明显的逻辑错误,需要我自己动手去调试和修正,这对于一本号称“手册”的书来说,简直是不可原谅的失误。我感觉自己不是在学习,而是在进行一场考古挖掘,试图从这些泛黄的文字中淘出几粒有用的金子。
这本书的组织结构简直是反人类的设计。它似乎是把所有关于UNIX开发相关的知识点,不分主次、不顾关联地一股脑地塞进了这个厚重的躯壳里。你可能在前一页还在讨论文件系统的主存映射,下一页就跳到了网络套接字的配置细节,两者之间没有任何平滑的过渡。每次我试图建立一个完整的知识体系时,这本书都会用这种跳跃式的编排方式把我打回原点。想要查找某个特定命令的选项,你可能需要在索引和正文中来回奔波,因为作者似乎认为“关联性”是读者需要自己去建立的东西。更令人气愤的是,书中对一些关键概念的解释往往是分散在不同的章节里,你必须阅读大量不相关的内容,才能拼凑出一个完整的概念图景。这本书更像是某个程序员多年笔记的电子化存档,缺乏专业编辑的梳理和提炼,读起来痛苦不堪,完全没有现代技术书籍应有的逻辑性和流畅性。