从《循序渐进Linux》第一版发布,到现在已经近6年了,6年的时间,技术发生了很大的变化,Linux系统的内核版本从2.6.9(RHEL4.x)已经更新到了现在的3.10(Centos7.x),第一版中的部分内容已经陈旧,Linux系统部分运行机制也发生了很大变化,为了适应技术发展潮流,也为了所有支持这本书的读者,我决定重新修订本书,推出《循序渐进Linux》第二版。
第二版基本继承了第一版中的内容结构,基本以Redhat Linux、Centos两个Linux发行版为主进行介绍,采用的具体版本为Centos7.x/RHEL7.x;在章节上会更加突出重点,理论结合实际,企业案例和应用实战部分会增多;
在基础知识部分,简单介绍了现在Linux的应用领域,接着介绍掌握Linux学习的一些方法和技巧,然后开始介绍Linux的安装以及系统结构,当然还要介绍Linux下常用命令和使用技巧,以及Linux下软件的安装方法。
在服务器搭建篇,除去原来的内容,还增加了Mysql数据库的内容,主要介绍高性能Mysql数据库的应用,同时也增加了LAMP服务环境的搭建,然后在服务器安全策略和故障排查方面增加了很多经验和技术总结,非常值得一看。
在系统管理篇,这部分内容基本没有变化,主要修订了文件系统管理和内存管理方面的一些内容,增加了一些最新的Linux技术特性。
在性能调优篇,在原来理论的基础上增加了系统优化的案例,通过理论与实践相结合方法介绍系统优化经验。
在虚拟化、集群应用篇,这部分是本书的亮点,基本完全修订了原来的内容,三个章节分别介绍了proxmox VE虚拟化关平平台,以及高可用软件Keepalived,负载均衡软件LVS和HAproxy,介绍的方法由浅入深,前面介绍软件应用,后面通过具体的企业案例,从生产应用角度,介绍了企业环境下常用的两个高可用集群应用案例,也可以说本篇是全书的内容综合应用部分,从应用的角度全方位的介绍了企业高可用集群环境的搭建和维护过程。
封面照
循序渐进Linux第二版目录
第一部分 基础知识篇
第1章学习Linux的经验与技巧
1.1 Linux在各领域发展的现状和趋势
1.1.1 Linux与开源软件
1.1.2 Linux在服务器领域的发展
1.1.3 Linux在桌面领域的发展
1.1.4 Linux在移动嵌入式领域的发展
1.1.5 Linux在云计算/大数据领域的发展
1.2 选择适合自己的Linux发行版
1.2.1常见的Linux发行版
1.2.2初学者入门首选——Centos系列
1.2.3桌面平台首选——Ubuntu Linux
1.2.4企业级应用首选——Red Hat/Centos系列
1.3 养成良好的Linux操作习惯
1.3.1一定要习惯命令行方式
1.3.2理论结合实践
1.3.3学会使用Linux联机帮助
1.3.4学会独立思考问题,独立解决问题
1.3.5学习专业英语
1.3.6Linux学习路线图
1.4 用虚拟化技术学习Linux
1.4.1什么是虚拟机软件
1.4.2使用虚拟机技术的好处
1.4.3虚拟机的运行环境和硬件需求
1.4.4虚拟机的安装与使用
1.5 Linux学习资源
1.5.1网络资源、搜索引擎、论坛
1.5.2有本书在身边
第2章多种方式安装Linux系统
2.1 安装需求
2.2 Linux的几种安装方式
2.2.1硬盘安装方式
2.2.2U盘安装方式
2.2.3网络安装方式
2.2.4光驱安装方式
2.3 光驱安装过程
2.3.1分区命名方案
2.3.2开始安装
2.4 U盘安装过程
第3章 Linux系统基本结构
3.1 Linux控制台的使用
3.2 系统与硬件
3.2.1Linux硬件资源管理
3.2.2Linux外在设备的使用
3.3 文件系统结构介绍
3.3.1目录结构
3.3.2系统核心组成
3.4 运行机制介绍
3.4.1Linux初始化init系统
3.4.2runlevel到target的改变
3.4.3系统关机过程
3.5系统服务管理工具systemd
3.5.1 启动、停止、重启服务
3.5.2 查看、禁止、启用服务
3.5.3 systemd命令和sysvinit命令对比
3.6 Linux与SecureCRT
3.6.1 SecureCRT概述
3.6.2 SecureCR的安装与使用
3.6.3 与SecureCRT相关的Linux命令
第4章 Linux常用命令及使用技巧
4.1 Linux下的shell简介
4.1.1什么是shell
4.1.2shell命令的语法分析
4.2 系统管理与维护
4.2.1显示指定工作目录下内容的命令ls
4.2.2显示当前工作目录的命令pwd
4.2.3改变当前工作目录的命令cd
4.2.4显示或修改系统时间与日期的命令date
4.2.5设置用户口令的命令passwd
4.2.6改变身份的命令su
4.2.7清除屏幕信息的命令clear
4.2.8显示指定命令的帮助信息的命令man
4.2.9显示目前登录到系统的用户的命令who
4.2.10显示登录到系统的用户信息的命令w
4.2.11显示操作系统相关信息的命令uname
4.2.12输出系统任务队列信息的命令uptime
4.2.13列出目前与过去登入系统的用户相关信息的命令last
4.2.14显示开机信息的命令dmesg
4.2.15显示系统内存状态的命令free
4.2.16显示系统进程瞬间的运行动态的命令ps
4.2.17实时监控系统处理器状态的命令top
4.3 文件管理与编辑
4.3.1创建目录的命令mkdir
4.3.2逐屏显示内容的命令more
4.3.3将文件的内容打印到标准输出的命令cat
4.3.4比较文件的差异的命令diff
4.3.5过滤文本的命令grep
4.3.6删除某个目录及其所有文件及子目录的命令rm
4.3.7改变指定文件的访问时间和修改时间的命令touch
4.3.8在文件或目录之间创建链接的命令ln
4.3.9显示文件类型的命令file
4.3.10拷贝文件或目录的命令cp
4.3.11在指定的路径下查找指定文件的命令find
4.3.12分割文档的命令split
4.3.13文件/目录改名或变更存储位置的命令mv
4.4 压缩与解压
4.4.1压缩/解压缩文件或者目录的命令zip/unzip
4.4.2压缩/解压缩文件的命令gzip/gunzip
4.4.3压缩/解压缩文件的命令bzip2/bunzip2
4.4.4将文件或者目录打包归档的命令tar
4.4.5转换或拷贝文件的命令dd
4.4.6重定向方式打包备份、还原恢复文件的命令cpio
4.5 磁盘管理与维护
4.5.1检查磁盘空间占用情况的命令df
4.5.2显示文件或目录所占用的磁盘空间的命令du
4.5.3检查文件系统并尝试修复错误的命令fsck
4.5.4强制把内存中的数据写回硬盘的命令sync
4.5.5退出抽取式设备的命令eject
4.5.6挂载/卸载指定的文件系统的命令mount/umount
4.6 网络设置与维护
4.6.1配置网络或显示当前网络接口状态的命令ifconfig
4.6.2将文件或目录拷贝到另一个Linux系统的命令scp
4.6.3显示本机网络连接、运行端口和路由表等信息的命令netstat
4.6.4显示网络数据包传输到指定主机的路径信息的命令traceroute
4.6.5与远程的主机通信或获取远程主机对应端口的信息命令telnet
4.6.6从网络上下载软件的命令wget
4.7 文本编辑工具vi
第5章 Linux下软件的安装与管理
5.1 源码安装方式
5.1.1下载解压源码
5.1.2分析安装平台环境
5.1.3编译安装软件
5.1.4源码安装Apache Http server
5.2 RPM工具安装方式
5.2.1RPM包管理工具介绍
5.2.2RPM包种类和命令
5.2.3RPM工具的使用
5.3 yum安装方式
5.3.1 yum的安装与配置
5.3.2 yum的特点与基本用法
5.3.3 几个不错的yum源
5.4 二进制包安装方式
5.4.1安装“*.tar.gz”、“*.bz2”二进制软件包
5.4.2提供安装程序的软件包
第二部分 服务器搭建篇
第6章 Linux服务器网络管理
6.1 网卡驱动的安装
6.1.1 网卡驱动安装的一般思路
6.1.2 编译安装网卡
6.2 配置linux网络
6.2.1 不同linux发行版的网络配置文件
6.2.2 网络配置文件详解
6.3 linux网络应用
6.3.1 Linux下的IP Alias功能
6.3.2 开启linux代理转发功能
6.3.3 路由的概念与配置
6.3.4 linux路由器的架设
第7章 Linux下常用服务器的架设
7.1 使用OpenSSH远程管理Linux服务器
7.2 Web服务器的搭建
7.2.1 apache与tomcat整合的必要性
7.2.2 Apache和Tomcat连接器
7.2.3 Apache与tomcat以及JK模块的安装
7.2.4 apache与tomcat整合配置
7.3 LAMP服务器的搭建
7.3.1 LAMP与WordPress概述
7.3.2 LAMP服务环境的搭建
7.3.3 测试LAMP环境安装的正确性
7.4 DNS服务器的搭建
7.4.1DNS服务概述
7.4.2DNS服务的搭建
7.5 Samba服务器的搭建
7.5.1Samba的概念和功能
7.5.2Samba的安装与配置
第8章构建高性能Mysql数据库系统
8.1 MySQL与MariaDB
8.2 常见的高可用MySQL解决方案
8.1.1 主从复制解决方案
8.1.2 MMM高可用解决方案
8.1.3 Heartbeat/SAN高可用解决方案
8.1.4 Heartbeat/DRBD高可用解决方案
8.1.5 MySQL Cluster高可用解决方案
8.2 通过KeepAlived搭建MySQL双主模式的高可用集群系统
8.2.1 MySQL Replication介绍
8.2.2 MySQL Replication实现原理
8.2.3 MySQL Replication常用架构
8.2.4 MySQL主主互备模式架构图
8.2.5 MySQL主主互备模式配置
8.2.6 配置KeepAlived实现MySQL双主高可用
8.2.7 测试MySQL主从同步功能
8.2.8 测试KeepAlived实现MySQL故障转移
8.3 通过MMM构建MySQL高可用集群系统
8.3.1 MMM高可用MySQL方案简介
8.3.2 MMM典型应用方案
8.3.3 MMM高可用MySQL方案架构图
8.3.4 MMM的安装与配置
8.3.5 MMM的管理
8.3.6 测试MMM实现MySQL高可用功能
8.4 MySQL读写分离解决方案
8.4.1 常见的MySQL读写分离方案
8.4.2 通过Amoeba实现MySQL读写分离
第9章 Linux服务器安全策略
9.1 网络安全概述
9.1.1常见攻击类型
9.1.2防范攻击策略
9.2 操作系统常用安全策略
9.2.1软件的升级
9.2.2端口与服务
9.2.3密码登录安全
9.2.4其他安全设置
9.3 Linux软件防火墙iptables
9.3.1iptables的使用环境
9.3.2iptables的使用规范与语法
9.4 Linux系统的备份
9.4.1为何要备份Linux系统
9.4.2Linux系统需要备份的数据
9.4.3备份的介质与方式
9.4.4制定备份策略
9.4.5备份工具的选择
第10章Linux故障排查思路与案例
10.1 Linux下常见系统故障的处理
10.1.1处理Linux系统故障的思路
10.1.2忘记Linux root密码
10.1.3Linux系统无法启动的解决办法
10.2 Linux下常见网络故障处理
10.3 Linux服务器常见故障处理案例
10.3 “Read-onlyfile system”错误与解决案例
10.4 su命令切换用户带来的困惑
10.5 因NAS存储故障引起的Linux系统恢复案例
10.5.1 故障现象描述
10.5.2 问题判断思路
10.5.3 问题处理过程
10.5.4 解决问题
第三部分 系统管理篇
第11章 Linux用户权限管理
11.1 用户与用户组管理概述
11.1.1用户与组的概念
11.1.2用户配置文件概述
11.2 用户管理工具介绍
11.2.1添加、切换和删除用户组命令groupadd/newgrp/groupdel
11.2.2添加、修改和删除用户命令useradd/usermod/userdel
11.3 文件与权限的设定
11.3.1查看文件的权限属性
11.3.2利用chown改变属主和属组
11.3.3利用chmod改变访问权限
第12章 Linux磁盘存储管理
12.1 磁盘管理的基本概念
12.1.1磁盘设备在Linux下的表示方法
12.1.2设备的挂载与使用
12.1.3磁盘分区的划分标准
12.2 利用fdisk工具划分磁盘分区
12.2.1 fdisk参数含义介绍
12.2.2 fdisk实例讲解
12.3利用parted工具规划磁盘分区
12.3.1 parted简介
12.3.2 parted使用方法
12.3.3 parted应用实例
12.4 LVM(逻辑卷管理)
12.4.1LVM的基本概念
12.4.2LVM的使用术语
12.4.3安装LVM工具
12.4.4LVM的创建与管理
第13章 Linux文件系统管理
13.1 文件系统概述
13.1.1什么是文件系统
13.1.2为什么要使用文件系统
13.1.3文件系统的使用流程
13.2 Linux下常用文件系统介绍
12.2.1 ext3和ext4文件系统
13.2.2 Reiserfs文件系统
13.2.3 XFS文件系统
13.3 选择文件系统的标准
13.4 网络文件系统(NFS)的使用
13.4.1NFS简介
13.4.2NFS的实现原理
13.4.3NFS的安装与配置
13.5 ext3/ext4文件系统上恢复误删除文件
13.5.1 如何使用“rm -rf”命令
13.5.2 extundelete与ext3grep的异同
13.5.3 extundelete的恢复原理
13.5.4 安装extundelete
13.5.5 extundelete用法详解
13.5.6 实战:extundelete恢复数据的过程
第14章 Linux内存管理
14.1 物理内存和虚拟内存
14.2 内存的监控
14.3 交换空间swap的使用
14.4 查看进程占用内存
第15章 Linux系统进程管理
15.1 进程的概念和分类
15.2 进程的监控与管理
15.2.1利用ps命令监控系统进程
15.2.2利用pstree监控系统进程
15.2.3利用top监控系统进程
15.2.4 利用lsof监控系统进程与程序
15.2.5 利用pgrep查询进程ID
15.3 任务调度进程crond的使用
15.3.1crond简介
15.3.2crontab工具的使用
15.3.3使用crontab工具的注意事项
15.4 关闭进程
15.4.1用kill终止一个进程
15.4.2用killall终止一组进程
第四部分 性能调优篇
第16章 Linux系统性能优化原则
16.1 性能问题综述
16.2影响Linux性能的因素
16.2.1系统硬件资源
16.2.2 操作系统相关资源
16.2.3 应用程序软件资源
16.3 分析系统性能涉及的人员
16.3.1 Linux运维人员
16.3.2 系统架构设计人员
16.3.3 软件开发人员
16.4 系统性能分析工具
16.5 系统性能分析标准
16.6 本章总结
第17章 Linux系统性能评估与优化案例
17.1 CPU性能评估
17.2 内存性能评估
17.3 磁盘I/O性能评估
17.4 网络性能评估
17.4.1通过ping命令检测网络的连通性
17.4.2通过netstat -i组合检测网络接口状况
17.4.3通过netstat -r组合检测系统的路由表信息
17.4.4通过sar -n组合显示系统的网络运行状态
17.4.5本节总结
17.5 基于Web应用的性能分析及优化案例
17.5.1 基于动态内容为主的网站优化案例
17.5.2 基于动态、静态内容结合的网站优化案例
第五部分 虚拟化、集群应用篇
第18章虚拟化云计算平台Proxmox VE
18.1 OpenVZ简介
18.2 KVM简介
18.3 ProxmoxVE简介
18.4 安装Proxmox VE
18.5 ProxmoxVE的使用
18.5.1 Proxmox VE功能选项说明
18.5.2 创建openVZ虚拟机
18.5.3 创建KVM虚拟机
第19章高性能集群软件Keepalived
19.1 集群的定义
19.2 集群的特点与功能
19.2.1高可用性与可扩展性
19.2.2负载均衡与错误恢复
19.2.3心跳检测与漂移IP
19.3 集群的分类
19.3.1高可用集群
19.3.2负载均衡集群
19.3.3科学计算集群
19.4 HA集群中的相关术语
19.5 Keepalived介绍
19.5.1 Keepalived的用途
19.5.2 VRRP协议与工作原理
19.5.3 Keepalived工作原理
19.5.4 Keepalived的体系结构
19.6 Keepalived安装与配置
19.6.1 Keepalived的安装过程
19.6.2 Keepalived的全局配置
19.6.3 Keepalived的VRRPD配置
19.6.4 Keepalived的LVS配置
19.7 Keepalived基础功能应用实例
19.7.1 Keepalived基础HA功能演示
19.7.2 通过vrrp_script实现对集群资源的监控
19.7.3 Keepalived集群中Master和Backup角色选举策略
第20章 负载均衡集群LVS与Haproxy
20.1 LVS简介
20.2 LVS体系结构
20.3 LVS集群的特点
20.4 LVS的安装与使用
20.4.1安装IPVS管理软件
20.4.2 ipvsadm的用法
20.5 通过Keepalived搭建LVS高可用性集群系统
20.5.1 实例环境
20.5.2配置Keepalived
20.5.3配置Real server节点
20.5.4启动Keepalived+LVS集群系统
20.6 测试高可用LVS负载均衡集群系统
20.6.1 高可用×××测试
20.6.2 负载均衡测试
20.6.3 故障切换测试
20.7 高性能负载均衡软件HAProxy
20.7.1 HAProxy简介
20.7.2 四层和七层负载均衡的区别
20.7.3 HAProxy与LVS的异同
20.8 HAProxy基础配置与应用实例
20.8.1 快速安装HAProxy集群软件
20.8.2 HAProxy基础配置文件详解
20.8.3 通过HAProxy的ACL规则实现智能负载均衡
20.8.4 管理与维护HAProxy
20.8.5 使用HAProxy的Web监控平台
20.9 搭建HAproxy+KeepAlived高可用负载均衡系统
20.9.1 搭建环境描述
20.9.2 配置HAproxy负载均衡服务器
20.9.3 配置主、备KeepAlived服务器
20.10 测试HAproxy+KeepAlived高可用负载均衡集群
20.10.1 测试KeepAlived的高可用功能
20.10.2 测试负载均衡功能