内容简介
第一部分 认识Linux及Linux主机规划与安装第1章 什么是Linux
1.1 什么是Linux
1.1.1 计算机:计算的辅助工具
1.1.2 什么是操作系统
1.1.3 Linux之前UNIX的历史
1.1.4 关于GNU计划
1.2 Torvalds的Linux开发
1.2.1 与Minix之间
1.2.2 386硬件的多任务测试
1.2.3 初次发布Linux 0.02
1.2.4 Linux的开发:虚拟团队的产生
1.2.5 Linux版本
1.3 Linux的特性
1.3.1 Linux的特性
1.3.2 Linux的优缺点
1.3.3 其他相关信息
1.4 习题
1.5 参考资料
第2章 如何学习Linux
2.1 Linux的应用
2.2 基础学习
2.2.1 从头学习
2.2.2 选择工具书
2.2.3 实践再实践
2.3 学习方法
2.3.1 X Window还是命令行
2.3.2 主机/网络数据查询
2.3.3 向别人提问
2.3.4 笔者的建议
2.4 习题
第3章 Linux主机的规划
3.1 认识主机硬件组件
3.1.1 认识计算机的硬件配置
3.1.2 选择适合Linux系统的主机配置
3.1.3 Linux中的硬件设备号
3.2 安装Linux前的规划
3.2.1 选择适当的版本
3.2.2 主机服务规划与硬件的关系
3.2.3 主机硬盘的主要规划
3.2.4 练习机的安装建议
3.3 实际案例
3.4 习题
3.5 参考资料
第4章 安装FC4与多重启动技巧
4.1 安装Linux的第一步:规划
4.1.1 练习机的规划
4.1.2 硬盘连接与硬盘号
4.1.3 识别硬盘分区
4.1.4 Linux安装模式中硬盘分区的选择(极重要)
4.2 开始安装Fedora Core Release Ⅳ
4.2.1 选择启动顺序并启动
4.2.2 选择安装模式
4.2.3 选择安装程序的语系与键盘配置
4.2.4 安装的系统类型与磁盘分区
4.2.5 选择引导程序
4.2.6 设置网络与防火墙
4.2.7 选择时区与设置root密码
4.2.8 选择软件包
4.2.9 其他注意事项
4.3 多重启动安装流程与技巧
4.4 大硬盘导致无法启动的问题
4.5 习题
第5章 启动关机、在线求助与执行命令的方式
5.1 首次登入系统
5.1.1 首次登入FC图形界面
5.1.2 KDE的简单操作
5.1.3 切换X Window与命令行模式
5.2 用命令行模式登入Linux
5.3 在命令行模式执行命令
5.3.1 开始执行命令
5.3.2 基础命令操作
5.3.3 重要的热键[Tab]、[Ctrl]-c、[Ctrl]-d
5.3.4 查看错误信息
5.4 在线帮助:man page/info page
5.4.1 man page
5.4.2 info page
5.4.3 其他有用的文档
5.5 正确的关机方法(shutdown、reboot、init、halt)
5.5.1 数据同步写入磁盘:sync
5.5.2 常用的关机命令:shutdown
5.5.3 重新启动和关机:reboot、halt、poweroff
5.6 启动过程的故障排除
5.6.1 扇区错乱的问题
5.6.2 忘记root密码
5.7 习题
第二部分 Linux文件、目录与磁盘格式第6章 Linux的文件属性与目录配置
6.1 用户与用户组
6.2 Linux文件权限
6.2.1 Linux文件属性
6.2.2 更改文件权限
6.2.3 目录属性的意义
6.2.4 Linux文件类型与扩展名
6.3 Linux目录配置
6.3.1 Linux目录配置标准FHS
6.3.2 目录配置的内容
6.3.3 特殊目录
6.3.4 一般主机分区与目录的配置
6.4 Linux支持的文件系统
6.5 参考资料
6.6 习题
第7章 Linux文件和目录管理
7.1 目录与路径
7.1.1 相对路径与绝对路径
7.1.2 目录的相关操作
7.1.3 执行文件路径的变量:$PATH
7.2 管理文件与目录
7.2.1 查看文件和目录:ls
7.2.2 复制、移动和删除:cp、rm、mv
7.2.3 获取路径的文件名与目录名
7.3 查看文件内容
7.3.1 直接查看文件内容
7.3.2 翻页查看
7.3.3 数据选取
7.3.4 非纯文本文件:od
7.3.5 修改文件时间与创建新文件:touch
7.4 文件与目录的默认权限与隐藏权限
7.4.1 文件默认权限:umask
7.4.2 文件隐藏属性
7.4.3 文件特殊权限:SUID/SGID/Sticky Bit
7.4.4 文件类型:file
7.5 搜索文件
7.6 习题
第8章 Linux磁盘与文件系统管理
8.1 认识EXT2文件系统
8.1.1 硬盘物理组成
8.1.2 分区
8.1.3 文件系统
8.1.4 Linux的EXT2文件系统(inode)
8.1.5 EXT2/EXT3文件的访问与日志文件系统的功能
8.1.6 Linux文件系统的运行
8.1.7 载入点
8.1.8 Linux支持的其他文件系统
8.2 文件系统的简单操作
8.2.1 磁盘与目录的容量
8.2.2 连接文件:ln
8.3 磁盘的分区、格式化、检验与载入
8.3.1 分区:fdisk
8.3.2 磁盘格式化
8.3.3 磁盘检验:fsck、badblocks
8.3.4 磁盘载入与卸载
8.3.5 修改磁盘参数
8.4 设置启动载入
8.4.1 载入磁盘、中文编码和U盘
8.4.2 启动载入/etc/fstab和/etc/mtab
8.5 建立虚拟内存
8.5.1 建立虚拟内存设备
8.5.2 建立虚拟内存文件
8.6 参考资料
8.7 习题
第9章 文件的压缩与打包
9.1 压缩文件的用途与技术
9.2 Linux系统常见的压缩命令
9.2.1 compress
9.2.2 gzip、zcat
9.2.3 bzip2、bzcat
9.2.4 tar
9.2.5 dd
9.2.6 cpio
第三部分 学习Shell和Shell脚本
第10章 vi文字处理器
10.1 vi与vim
10.2 vi的使用
10.2.1 简单执行范例
10.2.2 命令行内容说明
10.2.3 案例练习
10.2.4 文件的恢复与暂存盘
10.3 vim的附加功能
10.3.1 块选择(Visual Block)
10.3.2 多文件编辑
10.3.3 多窗口功能
10.3.4 vim环境设置
10.4 使用vi进行编辑的练习
10.5 DOS与Linux的换行符
10.6 本章与LPI的关系
10.7 参考资料
10.8 习题
第11章 认识Bash Shell
11.1 Bash Shell
11.1.1 什么是Shell
11.1.2 系统的shell与/etc/shells功能
11.1.3 Bash Shell的功能
11.1.4 Bash Shell的内置命令:type
11.1.5 执行命令
11.2 Shell的变量功能
11.2.1 变量的获取与设置:echo、变量设置规则、unset
11.2.2 变量的用途
11.2.3 环境变量的功能
11.2.4 语系文件的变量(locale)
11.2.5 变量的有效范围
11.2.6 变量键盘读取、数组与声明:read、array、declare
11.2.7 与文件系统及程序的限制关系:ulimit
11.2.8 附加的变量设置功能
11.3 命令别名与历史命令
11.3.1 命令别名设置:alias、unalias
11.3.2 历史命令:history
11.4 Bash Shell使用环境
11.4.1 绝对路径与相对路径
11.4.2 登录消息显示数据:/etc/issue、/etc/motd
11.4.3 环境设置文件:bashrc、~/.bashrc、~/.profile、profile...、/etc/inputrc、source
11.4.4 终端的环境设置:stty、set
11.4.5 通配符与特殊符号
11.4.6 数据流重导向
11.4.7 什么是数据流重导向
11.4.8 命令执行的判断根据:;、&&、丨丨
11.5 管道命令(pipe)
11.5.1 选取命令:cut、grep
11.5.2 排序命令:sort、wc、uniq
11.5.3 双向重导向:tee
11.5.4 字符转换命令:tr、col、join、paste、expand
11.5.5 拆分命令:split
11.5.6 参数代换:xargs
11.5.7 减号(-)的用途
11.6 参考资料
11.7 习题
第12章 正则表达式
12.1 简介
12.1.1 什么是正则表达式
12.1.2 系统管理员使用正则表达式
12.1.3 正则表达式的广泛用途
12.1.4 正则表达式与Shell在Linux中的角色定位
12.1.5 扩展的正则表达式
12.2 基础正则表达式
12.2.1 通过grep选取字符串
12.2.2 重要特殊字符(characters)
12.3 扩展正则表达式
12.4 格式化显示:printf
12.5 sed工具简介
12.6 awk工具简介
12.7 文件数据比较与显示的相关功能
12.7.1 文件比较
12.7.2 文件打印准备:pr
12.8 重点回顾
12.9 参考资料
12.10 习题
第13章 学习Shell脚本
13.1 什么是Shell脚本
13.1.1 为什么学习Shell脚本
13.1.2 第一个脚本的编写与执行
13.1.3 编写Shell脚本的良好习惯
13.2 简单的Shell脚本练习
13.3 善用判断条件
13.3.1 使用test命令的测试功能
13.3.2 使用判断符号[]
13.3.3 Shell脚本的默认变量($0,$1...)
13.4 条件判断
13.4.1 使用if...then
13.4.2 使用case...esac判断
13.4.3 使用函数功能
13.5 循环
13.5.1 while do done、until do done
13.5.2 for...do...done
13.6 Shell脚本的追踪与调试
13.7 习题
第四部分 Linux用户管理
第14章 Linux账号与身份管理
14.1 Linux的账号与用户组
14.1.1 用户识别:UID与GID
14.1.2 用户账号:/etc/passwd,/etc/shadow
14.1.3 关于用户组:有效与初始用户组、groups、newgrp
14.2 账号管理
14.2.1 新增与删除用户:useradd、相关设置文件、passwd、usermod、userdel
14.2.2 用户功能:chfn,chsh
14.2.3 新增与删除用户组
14.2.4 密码管理:passwd
14.3 切换用户身份
14.3.1 su
14.3.2 sudo
14.4 用户的特殊Shell与PAM模块
14.4.1 特殊的shell、/sbin/nologin
14.4.2 PAM模块:/etc/nologin、/etc/securetty
14.5 Linux系统的用户对话与邮件的使用
14.5.1 查询用户:w、who、last、lastlog
14.5.2 用户对话:talk、mesg、wall
14.5.3 用户邮件信箱:mail
14.6 手动增加用户
14.6.1 一些检查工具
14.6.2 特殊账号,如纯数字账号的建立
14.6.3 不开放终端登录的账号(ex>mail account)
14.6.4 建立账号的范例
14.7 习题
第15章 Linux磁盘配额
15.1 什么是磁盘配额
15.2 基本磁盘配额命令
15.3 磁盘配额实例
15.4 不更改现有系统的磁盘配额实例
15.5 习题
第16章 例行性命令的建立
16.1 什么是例行性命令
16.1.1 Linux工作任务分配的种类:at、cron
16.1.2 系统常见的例行性命令
16.2 仅进行一次的工作任务分配:at
16.3 循环执行的例行性命令
16.3.1 用户的设置:crontab
16.3.2 系统的设置:/etc/crontab
16.4 一些使用特性
16.5 习题
第17章 程序与资源管理
17.1 什么是进程
17.1.1 进程与程序
17.1.2 Linux的多用户、多任务环境
17.2 作业管理:&、[ctrl]-z、jobs、fg、bg、kill
17.3 进程管理
17.3.1 进程的观察
17.3.2 进程的删除
17.3.3 系统资源的观察
17.4 进程的执行顺序
17.5 特殊文件与进程
17.5.1 SUID/SGID/SBIT的概念
17.5.2 /proc/*的意义
17.5.3 查询已打开的文件或已执行进程打开的文件
17.6 参考资料
17.7 习题
第五部分 Linux系统管理员
第18章 启动关机的流程与加载程序
18.1 启动流程
18.1.1 引导加载程序与核心载入
18.1.2 第一个程序init及设置文件/etc/inittab与runlevel
18.1.3 init处理系统初始化流程(/etc/rc.d/rc.sysinit)
18.1.4 启动系统服务与相关启动设置文件(/etc/rc.d/rc.n与/etc/sysconfig)
18.1.5 用户自定义引导启动程序(/etc/rc.d/rc.local)
18.1.6 根据/etc/inittab设置加载终端或X-Window界面
18.1.7 其他启动相关事项
18.1.8 变换运行等级
18.2 核心与核心模块
18.2.1 核心模块与依赖性
18.2.2 核心模块的观察:lsmod、modinfo
18.2.3 核心模块的加载与删除:insmod、modprobe、rmmod
18.2.4 核心模块的额外参数设置:/etc/modprobe.conf
18.3 引导加载程序:Grub
18.3.1 引导加载程序的功能与意义
18.3.2 grub的设置文件/boot/grub/menu.lst与安装类型
18.3.3 测试与安装grub
18.3.4 启动前的额外功能修改
18.3.5 核心功能中的vga设置
18.3.6 大硬盘的问题
18.4 引导加载程序:LILO
18.4.1 LILO的设置文件/etc/lilo.conf
18.4.2 测试与安装LILO引导加载程序
18.4.3 问题与解决方法
18.5 解决启动过程的问题
18.5.1 忘记root密码的解决方案
18.5.2 设置错误无法启动
18.5.3 利用chroot切换到另一个硬盘
18.6 参考资料
18.7 习题
第19章 源码与Tarball套件管理程序
19.1 简介
19.1.1 什么是开放源码、编译器与可执行文件
19.1.2 什么是函数库
19.1.3 什么是make与configure
19.1.4 什么是Tarball的套件
19.1.5 安装与升级套件
19.2 一个简单的范例
19.2.1 显示Hello World
19.2.2 编译子程序
19.2.3 加入函数库
19.2.4 使用gcc
19.3 make的简单用法
19.3.1 为什么要用make
19.3.2 make的基本语法与变量
19.4 Tarball的管理与建议
19.4.1 使用源码管理套件所需要的基础套件
19.4.2 Tarball安装的基本步骤
19.4.3 Tarball套件安装的注意事项(如何删除、升级)
19.4.4 简单的范例:使用ntp
19.4.5 使用patch更新源码
19.5 函数库管理
19.5.1 动态与静态函数库
19.5.2 ldconfig与/etc/ld.so.conf
19.5.3 ldd
19.6 检验软件正确性:md5sum
19.7 重点回顾
19.8 参考资料
第20章 RPM与SRPM套件管理程序
20.1 简介
20.1.1 什么是RPM与SRPM
20.1.2 什么是i386、i586、i686、noarch
20.1.3 RPM的优点
20.1.4 解决RPM属性依赖问题
20.2 RPM套件管理程序
20.2.1 RPM的默认安装路径
20.2.2 RPM安装(install)
20.2.3 RPM升级与更新
20.2.4 RPM查询
20.2.5 RPM验证与数字签名
20.2.6 RPM卸载与重建数据库
20.3 SRPM的使用
20.3.1 使用系统默认值安装SRPM文件
20.3.2 SRPM使用的路径与需要的套件
20.3.3 配置文件的主要内容
20.3.4 SRPM的编译命令
20.4 范例:打包套件
20.5 选择RPM还是Tarball
20.6 重点回顾
20.7 参考资料
20.8 习题
第21章 系统服务守护程序
21.1 什么是守护程序与服务
21.1.1 守护程序的主要分类
21.1.2 与服务有关的端口信息:/etc/services
21.1.3 守护程序的命名规则
21.1.4 系统的守护程序位置
21.1.5 守护程序的启动方式:service
21.2 解析超级守护程序的设置文件
21.2.1 解析xinetd.conf
21.2.2 简单的telnet范例设置
21.3 TCP_Wrappers
21.4 系统打开的服务
21.4.1 观察系统启动的服务
21.4.2 设置开机后立即启动服务
21.4.3 一个服务的简单说明
21.5 习题
第22章 认识与分析登录文件
22.1 什么是登录文件
22.2 登录文件的记录:syslogd
22.2.1 登录文件内容的一般格式
22.2.2 登录文件的配置文件:/etc/syslog.conf
22.2.3 登录文件的安全性设置
22.2.4 登录文件主机的简单设置
22.3 登录文件的轮替(logrotate)
22.3.1 logrotate的设置文件
22.3.2 实际测试logrotate的操作
22.4 分析登录文件
22.4.1 常见命令:last、lastlog、dmesg
22.4.2 登录文件分析工具
第23章 Linux备份策略
23.1 谁需要备份数据
23.2 备份哪些Linux数据
23.3 选择备份设备
23.4 备份的种类
23.5 选择备份工具
23.6 备份策略实例
23.6.1 日常备份行为
23.6.2 每日备份数据脚本
23.6.3 远程备份系统
23.7 还原系统的考虑因素
23.8 习题
第24章 X Window简单设置
24.1 什么是X Window系统
24.1.1 是否需要启用X Window系统
24.1.2 X Window的发展历史
24.1.3 X服务器/X客户端/窗口管理器的关系
24.1.4 X Window启用的流程
24.2 与X服务器有关的设置文件
24.2.1 手动修改xorg.conf或XF86Config
24.2.2 X字体服务器(Font Server,XFS)
24.2.3 /etc/inittab
24.2.4 使用Xorg/XFree86设置默认的设置文件
24.3 更新显卡驱动程序的范例:NVidia驱动程序
24.4 解决问题
24.5 参考资料
24.6 习题
第25章 Linux硬件检测与维护
25.1 准备硬件
25.1.1 硬件信息的收集:lspci、iostat
25.1.2 驱动USB设备
25.1.3 使用lm_sensors取得温度、电压等信息
25.2 FC4的系统操作:setup功能
25.3 利用CUPS架构打印机
25.4 特殊的文件系统:LVM
25.4.1 什么是LVM:PV、PE、VG、LV
25.4.2 制作LVM磁盘的流程
25.4.3 加大原有的LVM磁盘:resize2fs
25.4.4 注意事项
25.5 额外的存储设备iSCSI协议的磁盘阵列
25.5.1 什么是磁盘阵列
25.5.2 iSCSI磁盘阵列的架设与使用
25.6 参考资料
25.7 习题
第26章 Linux核心编译与管理
26.1 简介
26.1.1 什么是核心
26.1.2 更新核心的原因
26.1.3 核心的版本与下载最新核心的位置
26.2 核心源码的获取与升级
26.2.1 获取原版本提供的核心源码
26.2.2 获取最新的核心
26.2.3 保留原设置:利用补丁升级核心源码
26.2.4 核心目录下的子目录信息
26.3 设置核心的编译设置(Makefile)
26.3.1 编辑核心的生成文件
26.3.2 设置核心内容与模块
26.4 核心的编译与安装
26.4.1 编译的流程
26.4.2 模块安装注意事项
26.4.3 安装旧版与新版的核心成多重启动系统
26.5 额外(单一)模块编译
26.5.1 单一模块编译
26.5.2 核心模块管理:lsmod、modinfo、modprobe、insmod、rmmod
附录A GNU的GPL条款
A.1 序言
A.2 GNU通用公共许可证有关复制、发布和修改的条款和条件
附录B ext2/ext3文件系统
B.1 第二扩展文件系统(EXT2)
B.2 为何选择EXT3