前言
《完美应用Ubuntu》第1版出版于2008年,回过头来审视前3版,发现重点一直放在笔者长期倡导的Just For Fun上,侧重于兴趣和乐趣,针对Ubuntu的应用内容不是特别完整,服务器应用的内容相对欠缺(对初学者而言还是足够的)。不敢说十年磨一剑,但凭借对Ubuntu的喜爱、掌握、理解和经验,笔者借此良机将第4版打造成一本兼顾Just For Fun和Just For Business的Ubuntu图书,大幅充实了服务器应用场景的内容,让本书的逻辑和应用更为全面和完整,将笔者多年经验毫无保留地分享给Ubuntu的初学者、爱好者和使用者。希望本书能帮助大家在工作中解决一些实际问题,在学习中少走一些弯路。
本书所有操作都是针对Ubuntu 18.04所定制的,在Ubuntu 18.04系统中反复测试了多次,并提供相关虚拟机,确保读者按照步骤操作就可以得到相同的结果。此外,在线资源提供了与本书相关的资源。
本书核心内容
本书正文分为3篇,总计18章及3个附录。
第1篇是Ubuntu工作站必知必会(第1章~第8章),讲解的是应用Ubuntu所需的基础知识和Ubuntu下的精选应用及应用方案,Linux操作系统涉及多方面的知识,这里根据高频应用精选出必知必会的应用,大家按图索骥即可高效应用。
第2篇是Ubuntu Server必知必会(第9章~第17章),侧重服务器的应用,即精选的Ubuntu服务器方面的应用。从网络最基本的三大服务到最为常用的Web服务和数据库,再到热门的系统和数据库的高可用性技术等,都在最新的Ubuntu LTS版本中得以实现,笔者以最精简的内容将它们实现并呈现给广大读者,将多年经验毫无保留地分享出来。第2篇涉及的高频应用都是企业中最常见和最实用的应用,在本书的基础上进行了适度扩展和优化,完全可以满足企业的需求。
第3篇系统安全(第18章),无论是工作站还是服务器应用,安全第一的铁律是绝不可以被颠覆的。只有系统安全了,上述各种应用才有意义,大家使用时才能安心。此部分内容涉及Ubuntu工作站的安全加固、服务器的硬化及各种网络服务的硬化等。
不忘初心,方得始终,第4版的目的不变,还是帮助大家提高学习兴趣,满满的干货帮助大家将Ubuntu使用好,无论是工作站还是服务器,都是在应用中培养大家不断自我提升和钻研技术的能力,只不过第4版的应用更加丰富,难度及广度有所增加,且富于挑战性。这本书为大家指明了努力的方向,但没有任何一本书能代替大家的选择和努力。
资源获取
本书附赠超值配套资源:
https://pan.baidu.com/s/1zqFq7yX_jzIf-8xpNUL_4Q
图书内容方面的建议或反馈QQ群:11874375(非问答群,仅限图书内容的建议和反馈)。
致谢
首先,感谢自由软件运动的发起人Richard Stallman先生和Linux的创始人Linus先生,是他付出的巨大努力成就了自由软件的今天,才使得Linux操作系统成为今日软件创新之主流。
特别感谢Ubuntu项目的发起人Mark Shuttleworth先生12年来持之以恒地提升Linux桌面的用户体验,使得大家可以通过Ubuntu快速进入开源和自由软件的世界。
感谢分布于全球的各个开源项目的开发者和参与者,正因为你们的无私奉献使得开源世界如此丰富和美妙!
其次,还要感谢电子工业出版社李冰编辑十多年来的支持、鼓励和指点,她极富耐心和责任感,使得本书能够更加完美地呈现给读者。
最后,感谢那些热心读者在各大电商网站对本书中肯的建议、批评、鼓励和指正,使得本书更加完善和完美,也让笔者倍感欣慰,感谢你们!
开源技术的发展一日千里,无论是操作系统本身,还是丰富的开源应用,变动都很快,尽管每个章节都在Ubuntu 18.04中经过反复测试,但由于图书出版周期较长,当图书出版时,难免部分内容发生变更,再加上作者水平的限制,书中出现错误和信息未能及时更新的情况在所难免,希望大家见谅和指正。
何晓龙 于温哥华
Ubuntu4
JustForFunJust For Business Ubun
LD
HVE
eH Ubun
FTE
Ubuntu 18.04 Ubu1n8.04
;iizj-- ni
cen
3183
1 Ubuntu (1 ~8 )m
Ubuntu Linux
2 Ubuntu S (9 ~17 ) UbuntuWeb
. Ubuntu LTS
2
3 (18 )
IV I Ubuntu(4 )
Ubuntu
4
Ubuntu
4
z
ht ://pan.baidu.com/s/1zqFq7yXjzlf-8xpNUL_4Q
QQ: 11874375( )
Linux
Richard StallmLinuxLinus
UbuntuMark Shuttlewo1r2Linux
Ubuntu
!
!
目录
第1章 Ubuntu的进化 001
1.1 GNU/Linux的历史和文化 001
1.1.1 GNU/Linux是Linux的全称 001
1.1.2 Linux的诞生 002
1.2 Linux发行版TOP 10 003
1.3 Ubuntu的起源和版本 004
1.3.1 Ubuntu是什么 004
1.3.2 丰富的Ubuntu版本 005
1.3.3 Ubuntu发展路线图 008
1.3.4 Ubuntu社区 009
1.4 本章小结 010
第2章 从零风险体验到安装Ubuntu系统 011
2.1 与Ubuntu的第一次亲密接触 011
2.1.1 零风险体验Ubuntu系统 011
2.1.2 制作LiveUSB体验Ubuntu 012
2.2 让Ubuntu在硬盘安家落户 013
2.2.1 对Security Boot说不 013
2.2.2 U盘极速安装Ubuntu 015
2.2.3 Ubuntu工作站必要的配置 018
2.3 本章小结 021
第3章 Ubuntu默认和定制桌面环境 022
3.1 默认桌面环境GNOME 3 022
3.1.1 全力拥抱GNOME 3桌面环境 022
3.1.2 GNOME高频操作 026
3.1.3 随心所欲定制GNOME 3 028
3.2 随心所欲定制桌面环境 033
3.2.1 Cinnamon桌面环境 033
3.2.2 KDE Plasma桌面环境 036
3.2.3 Xfce桌面环境 041
3.2.4 Ubuntu经典的桌面环境 042
3.3 本章小结 045
第4章 Ubuntu命令行及应用部署 046
4.1 Ubuntu文件系统 046
4.1.1 Ubuntu文件层次结构 047
4.1.2 绝对路径和相对路径 048
4.1.3 Linux文件类型 049
4.2 令初学者头痛的命令行 050
4.2.1 身份权限管理及开关机 052
4.2.2 复制文件和目录 053
4.2.3 删除文件和目录 053
4.2.4 创建文件和目录 054
4.2.5 移动文件和目录 054
4.2.6 浏览文本文件 054
4.3 命令行软件包管理工具 055
4.3.1 高频软件包管理命令 055
4.3.2 一次安装一组程序 057
4.3.3 全新格式snap令软件安装更便捷 059
4.4 源代码编译安装必知必会 060
4.4.1 源代码文件 060
4.4.2 开源编译器GCC 061
4.4.3 四步从源代码到可执行文件 062
4.4.4 Linux中的编译安装 065
4.5 本章小结 068
第5章 定制Ubuntu应用:只用最优秀的程序 069
5.1 网上冲浪和下载聊天 069
5.1.1 精选优秀应用 070
5.1.2 部署和配置 070
5.2 多媒体及图片文件的创建和编辑 073
5.2.1 精选优秀应用 073
5.2.2 部署和配置 074
5.3 Windows兼容层应用 076
5.3.1 精选优秀应用 076
5.3.2 部署和配置 076
5.4 系统工具 079
5.4.1 精选优秀应用 079
5.4.2 部署和配置 079
5.5 本章小结 081
第6章 开发者Ubuntu工作站应用方案 082
6.1 编辑器 082
6.1.1 Ubuntu平台的Notepad++和Notepadqq 082
6.1.2 当下最流行的代码编辑器Visual Studio Code 083
6.2 集成开发环境(IDE) 088
6.3 版本管理:git和GitHub 090
6.3.1 安装和配置git 091
6.3.2 关联git和GitHub账号 092
6.3.3 使用git将代码推送到GitHub 093
6.4 时间和思维导图管理工具 094
6.5 本章小结 095
第7章 构建Ubuntu全能家庭娱乐中心 096
7.1 构建Ubuntu游戏中心 096
7.1.1 安装N卡驱动的准备工作 096
7.1.2 官方PPA软件仓库安装N卡驱动 099
7.1.3 终端手动安装N卡驱动 099
7.2 构建自己的Ubuntu游戏中心 103
7.2.1 使用及配置游戏手柄 103
7.2.2 PC游戏必备——Steam客户端 104
7.2.3 模拟器游戏 107
7.3 使用Ubuntu构建自己的家庭影院 108
7.3.1 KODI家庭影院 108
7.3.2 KODI手机应用 109
7.4 本章小结 110
第8章 Ubuntu部署和配置TensorFlow深度学习环境 111
8.1 TensorFlow深度学习环境的推荐软硬件 112
8.2 部署TensorFlow及相关软件 113
8.2.1 安装N卡驱动 113
8.2.2 安装CUDA 114
8.2.3 安装cuDNN Toolkit套件 116
8.2.4 部署TensorFlow 119
8.3 本章小结 121
第2篇 Ubuntu Server必知必会
第9章 部署和批量自动化部署Ubuntu Server 122
9.1 服务器端存储设备及技术 122
9.1.1 服务器存储设备 122
9.1.2 服务器端存储技术 124
9.1.3 服务器文件系统选择 125
9.2 单节点部署Ubuntu Server 128
9.2.1 将Ubuntu Server系统安装到服务器 128
9.2.2 配置Ubuntu服务器 130
9.3 PXE批量部署Ubuntu Server 133
9.4 本章小结 140
第10章 揭秘Ubuntu Server的启动过程 141
10.1 Linux最初的启动过程 141
10.1.1 深入BIOS和UEFI固件 141
10.1.2 深入MBR和GPT分区格式 142
10.1.3 加电自检 145
10.2 Linux引导程序 147
10.2.1 GRUB Legacy Boot Loader 148
10.2.2 全新的GRUB 2引导程序 149
10.3 关键的1号进程 154
10.3.1 经典启动方式Sysvinit 154
10.3.2 Sysvinit的替代者Systemd 157
10.3.3 Systemd系统服务管理 159
10.3.4 Systemd带来的操作变化 163
10.4 Linux正常启动之后的系统 167
10.5 本章小结 169
第11章 升级编译Linux内核和模块进程及网络管理 170
11.1 升级及编译Ubuntu内核 170
11.1.1 从官方Mainline升级内核——Mainline和Livepatch Services 170
11.1.2 从内核源码编译内核 173
11.2 管理内核模块 176
11.3 进程和作业管理 177
11.3.1 程序和进程 178
11.3.2 作业管理 178
11.3.3 进程管理 178
11.4 网络配置和管理 179
11.4.1 网络参考模型 179
11.4.2 企业常用网络设备 181
11.4.3 企业环境网络配置 183
11.5 本章小结 190
第12章 驾驭三大基础网络服务 191
12.1 自动分配主机信息的DHCP服务 191
12.1.1 部署DHCP服务 192
12.1.2 配置DHCP服务 192
12.1.3 管理DHCP服务 194
12.2 域名解析服务DNS 194
12.2.1 部署高可用主从架构DNS服务器 196
12.2.2 配置高可用主从架构DNS服务器 197
12.2.3 管理DNS服务 206
12.3 部署NTP网络时间服务 207
12.3.1 安装NTP时间服务 208
12.3.2 配置NTP服务 208
12.3.3 管理NTP服务 209
12.3.4 Chrony实现时间服务 209
12.3.5 NTP客户端时间同步配置 210
12.4 本章小结 211
第13章 征服Web服务双雄 212
13.1 Web服务 212
13.2 部署和配置Apache Web服务器 215
13.2.1 部署Apache服务器 215
13.2.2 深入Apache配置目录 217
13.2.3 配置Apache Web服务 218
13.2.4 启用对Python CGI的支持 222
13.2.5 启用SSL安全加密传输 223
13.2.6 Apache实现反向代理 225
13.2.7 Apache实现七层负载均衡 227
13.2.8 全面管理Apache Web服务 229
13.3 部署和配置Nginx Web服务器 230
13.3.1 部署Nginx Web服务 230
13.3.2 深入Nginx配置目录 231
13.3.3 配置Nginx Web服务 232
13.3.4 启用Python支持 237
13.3.5 SSL加密令Nginx Web服务器更安全 238
13.3.6 Nginx反向代理 239
13.3.7 Nginx实现7层负载均衡 240
13.3.8 全面管理Nginx Web服务 243
13.4 本章小结 243
第14章 最流行的开源数据库MySQL 244
14.1 MySQL数据库大家族 245
14.2 部署和配置MySQL数据库 246
14.2.1 部署MySQL数据库 246
14.2.2 配置MySQL数据库 249
14.2.3 管理MySQL数据库及其衍生版本服务 255
14.3 MySQL数据库运维和管理 255
14.3.1 企业级MySQL数据库的备份和恢复 255
14.3.2 MySQL数据库客户端程序mysql 259
14.3.3 二进制日志查看和导出工具mysqlbinlog 264
14.3.4 MySQL数据库管理程序mysqladmin 265
14.4 本章小结 268
第15章 构建企业级Web Service测试和运行环境 269
15.1 LAMP Stack黄金组合 269
15.1.1 安装LAMP Stack 269
15.1.2 测试LAMP Stack工作状况 270
15.2 LEMP Stack白金组合 271
15.2.1 部署LEMP Stack 271
15.2.2 测试LEMP Stack工作状况 273
15.3 管理LAMP Stack和LEMP Stack 273
15.4 部署Web Service实例——WordPress搭建博客 274
15.4.1 准备WordPress需要的MySQL数据库 275
15.4.2 下载并解压压缩包WordPress的最新版本 275
15.4.3 通过浏览器完成WordPress的安装 275
15.4.4 开始使用WordPress 276
15.5 构建经典的JSP运行环境 278
15.5.1 构建JSP运行环境 278
15.5.2 扩展JSP运行环境 279
15.6 本章小结 281
第16章 高可用集群和负载均衡集群技术 282
16.1 企业常用的高可用集群技术 284
16.1.1 部署Keepalived 286
16.1.2 配置Keepalived的主备模式 288
16.2 负载均衡技术 292
16.2.1 HAProxy实现负载均衡 292
16.2.2 部署HAProxy 293
16.2.3 HAProxy七层负载均衡配置 295
16.2.4 HAProxy基于四层的负载均衡 297
16.3 本章小结 301
第17章 驯服MySQL主从复制高可用集群 302
17.1 MySQL主从复制高可用技术 302
17.1.1 实现一主多从MySQL主从复制 304
17.1.2 实现主从节点的半同步复制 310
17.1.3 实现双节点MySQL双主复制 312
17.1.4 MySQL主从/主主复制高可用常见故障 323
17.2 本章小结 324
第3篇 系统安全
第18章 全方位安全加固Ubuntu 18.04 LTS Server 325
18.1 网络安全 326
18.2 工作站安全精要 327
18.3 服务器安全精要 327
18.3.1 服务器物理安全 327
18.3.2 服务器操作系统安全 328
18.3.3 重视系统的升级包 328
18.3.4 安全加固共享内存 329
18.3.5 Ubuntu服务器的防火墙 329
18.4 Ubuntu Server的SELinux-Apparmor(Application Armor) 342
18.5 各种网络服务的硬化 344
18.6 本章小结 349
附录A Ubuntu Server高频命令 350
A.1 获得在线帮助命令 350
A.2 作业管理命令 352
A.3 进程管理命令 354
A.4 计划任务和服务器性能监控命令 359
A.5 磁盘操作、文件系统和逻辑卷管理命令 366
A.6 硬件管理命令和内核模块管理 376
附录B Ubuntu官方版本国内用户定制 379
B.1 手动修改为国内软件仓库 379
B.2 安装中文版manpage手册 379
B.3 安装使用WPS办公套件 380
B.4 安装使用Foxit PDF阅读器 380
附录C Windows10中使用Ubuntu子系统 381
C.1 安装Ubuntu子系统 381
C.2 使用Ubuntu命令终端 382
C.3 使用Ubuntu丰富的图形应用