新書推薦:
《
摆脱强迫的人生(修订版)
》
售價:HK$
88.5
《
知宋·宋代之司法
》
售價:HK$
99.7
《
空间与政治
》
售價:HK$
87.4
《
少年读三国(全套12册)
》
售價:HK$
490.6
《
不完美之美:日本茶陶的审美变
》
售價:HK$
87.4
《
现代化的迷途
》
售價:HK$
98.6
《
钛经济
》
售價:HK$
77.3
《
甲骨文丛书·无垠之海:世界大洋人类史(全2册)
》
售價:HK$
322.6
編輯推薦:
本书详尽介绍Linux的方方面面。全书共分为6部分,包括“入门”“成为一名Linux高级用户”“成为一名Linux系统管理员”“成为--名Linux服务器管理员”“学习Linux安全技术”和“将Linux拓展到云”。从讲述基本的Linux概念、shell 基本命令以及图形用户界面开始,一直到后介绍Linux 编程环境,每一部分都提供了主要命令的详细解释和流程说明。本书的一个显著特点是安排了很多章节介绍各种流行的Linux发行版。
本书并没有追求大而全地罗列所有命令,而是选择性地讲解较常用的命令:对于新手而言,选择出版日期较近、版本较新的更好,不然,单是花在解决版本不同问题上的精力就容易让人失去兴趣。本书是近年来学习Linux的图书,架构清晰,用语准确。你可以边学习边解决问题,逐步构建完整的知识体系。
本书适合打算系统、全面地学习Linux 技术的初中级用户、开源软件爱好者和大专院校的师生阅读,也非常适合准备从事Linux 平台开发的各类人员阅读,具有一定Linux使用经验的用户也可通过本书温习Linux知识。
內容簡介:
精通Linux的**指南
《Linux系统管理、服务器设置、安全、云数据中心(第10版)》在上一版的基础上全面更新,旨在帮助Linux新手及中级用户将Linux知识和技能提升到新水平。知名Linux专家、畅销书作家Christopher Negus在本书中浓墨重彩地描述Red Hat Enterprise Linux、Fedora和Ubuntu**版本及命令行工具,并通过分步的详明演示和精选习题引导读者悟透Linux操作系统的工作原理。本书还为各类Linux认证考试提供备考资料。
Linux是云计算中大多数技术进步的核心,这意味你必须扎实掌握Linux技术,从而在未来的数据中心高效工作。本书开篇介绍Linux基础知识,接着演示如何运用这些知识将Linux系统部署为虚拟机管理程序、云控制器和虚拟机,并讲述如何管理虚拟网络和网络存储。
本书指引你获取、安装和开始使用Linux,并终驾轻就熟地管理和保护Linux。对于那些希望将Linux用作开发工作站的软件开发人员来说,本书也是优秀的参考资源。
關於作者:
Christopher Negus是Red Hat公司的首席技术作家。在Red Hat工作的十多年里,Christopher为数百名有志于成为RHCE(Red Hat Certified Engineer,Red Hat认证工程师)的IT专业人士进行了授课。他还编写了大量文档,涉及从Linux到虚拟化、云计算和容器化等各个方面。
在加入Red Hat公司之前,Christopher独自编写或者与他人合著了几十本关于Linux和UNIX的书籍,包括Red Hat Linux Bible(所有版本)、Docker Containers、CentOS Bible、Fedora Bible、Linux Troubleshooting Bible、Linux Toys、 Linux Toys Ⅱ和本书的第9版。此外,他还与别人合作为高级用户编写了几本关于Linux工具箱系列的书:Fedora Linux Toolbox、SUSE Linux Toolbox、Ubuntu Linux Toolbox、Mac OS X Toolbox和BSD UNIX Toolbox。
在成为一名独立作者之前,Christopher与别人合作在开发UNIX操作系统的AT&T公司工作了8年,然后在20世纪90年代初搬到犹他州,为Novell的UnixWare项目作出贡献。在业余时间,Christopher喜欢踢足球以及和妻儿一起享受家庭的乐趣。
目錄 :
第1章 开始使用Linux 3
1.1 理解什么是Linux 4
1.2 了解如何区分Linux和其他
操作系统 5
1.3 探讨Linux历史 6
1.3.1 Bell实验室中自由的UNIX
文化 6
1.3.2 商业化的UNIX 8
1.3.3 GNU将UNIX转变为免费 9
1.3.4 BSD失去了一些动力 10
1.3.5 Linus弥补了缺失的部分 11
1.3.6 OSI开源定义 11
1.4 理解Linux发行版本是
如何出现的 12
1.4.1 选择Red Hat发行版本 13
1.4.2 选择Ubuntu或者其他Debian
发行版本 15
1.5 利用Linux找到职业机会 15
1.5.1 了解如何利用Linux挣钱 16
1.5.2 获得Red Hat认证 17
1.6 小结 19
第2章 创建完美的Linux桌面 21
2.1 了解Linux桌面技术 22
2.2 开始使用Fedora GNOME
桌面Live镜像 23
2.3 使用GNOME 3桌面 24
2.3.1 计算机启动后 24
2.3.2 设置GNOME 3桌面 29
2.3.3 扩展GNOME 3桌面 30
2.3.4 启动桌面应用程序 31
2.3.5 停止GNOME 3桌面 35
2.4 使用GNOME 2桌面 35
2.4.1 使用Metacity窗口管理器 36
2.4.2 更改GNOME的外观 37
2.4.3 使用GNOME面板 37
2.4.4 使用AIGLX添加3D效果 41
2.5 小结 42
2.6 习题 43
第II部分 成为一名Linux高级用户
第3章 使用shell 47
3.1 shell和Terminal窗口 48
3.1.1 使用shell提示符 48
3.1.2 使用Terminal窗口 49
3.1.3 使用虚拟控制台 50
3.2 选择shell 50
3.3 运行命令 51
3.3.1 了解命令语法 52
3.3.2 查找命令 54
3.4 使用命令历史记录重复执行
命令 56
3.4.1 命令行编辑 56
3.4.2 命令行补齐 58
3.4.3 命令行重复执行 59
3.5 连接和扩展命令 60
3.5.1 命令之间的管道 60
3.5.2 连续命令 61
3.5.3 后台命令 61
3.5.4 扩展命令 62
3.5.5 扩展算术表达式 62
3.5.6 扩展变量 62
3.6 使用shell变量 63
3.6.1 创建和使用别名 64
3.6.2 退出shell 65
3.7 创建自己的shell环境 65
3.7.1 配置shell 65
3.7.2 设置提示符 66
3.7.3 添加环境变量 67
3.8 获取关于命令的信息 68
3.9 小结 70
3.10 习题 70
第4章 在文件系统中移动 73
4.1 使用基本的文件系统命令 75
4.2 使用元字符和运算符 77
4.2.1 使用文件匹配元字符 77
4.2.2 使用文件重定向元字符 78
4.2.3 使用括号扩展字符 79
4.3 列出文件和目录 80
4.4 了解文件权限和所有权 83
4.4.1 使用命令chmod(数字)更改
权限 84
4.4.2 使用chmod(字母)更改权限 85
4.4.3 使用umask设置默认的文件
权限 85
4.4.4 更改文件所有权 86
4.5 移动、复制和删除文件 86
4.6 小结 88
4.7 习题 88
第5章 使用文本文件 89
5.1 使用vim和vi编辑文件 89
5.1.1 开始使用vi 90
5.1.2 在文件中跳过 94
5.1.3 搜索文本 94
5.1.4 使用ex模式 94
5.1.5 学习更多关于vi和vim的知识 95
5.2 查找文件 95
5.2.1 使用locate命令根据名称
查找文件 95
5.2.2 使用find命令搜索文件 96
5.2.3 使用grep命令在文件中搜索 101
5.3 小结 102
5.4 习题 102
第6章 管理运行中的进程 105
6.1 理解进程 105
6.2 列出进程 106
6.2.1 使用ps命令列出进程 106
6.2.2 使用top命令列出和更改
进程 107
6.2.3 使用System Monitor列出
进程 108
6.3 管理后台和前台进程 110
6.3.1 启动后台进程 110
6.3.2 使用前台和后台命令 111
6.4 杀死和改变进程 112
6.4.1 使用kill和killall命令杀死
进程 112
6.4.2 使用nice和renice命令设置
处理器优先级 113
6.5 使用cgroups限制进程 114
6.6 小结 115
6.7 习题 115
第7章 编写简单的shell脚本 117
7.1 理解shell脚本 117
7.1.1 执行和调试shell脚本 118
7.1.2 理解shell变量 118
7.1.3 在shell脚本中执行算法 121
7.1.4 在shell脚本中使用编程结构 122
7.1.5 使用一些有用的文本操作
程序 127
7.1.6 使用简单的shell脚本 129
7.2 小结 130
7.3 习题 130
第III部分 成为一名Linux系统管理员
第8章 学习系统管理 135
8.1 理解系统管理 135
8.2 使用图形化管理工具 136
8.2.1 使用system-config-*工具 138
8.2.2 使用基于浏览器的管理工具 139
8.3 使用root用户账户 140
8.3.1 通过shell成为root用户
(su命令) 140
8.3.2 通过GUI允许管理访问权限 141
8.3.3 使用sudo获取管理访问权限 141
8.4 探索管理命令、配置文件和
日志文件 143
8.4.1 管理命令 143
8.4.2 管理配置文件 144
8.4.3 管理日志文件和
Systemd Journal 147
8.5 使用其他管理账号 148
8.6 检查和配置硬件 149
8.6.1 检查硬件 149
8.6.2 管理可移动硬件 151
8.6.3 使用可加载模块 152
8.7 小结 154
8.8 习题 154
第9章 安装Linux 157
9.1 选择计算机 158
9.2 从Live介质安装Fedora 159
9.3 从安装介质安装Red Hat
Enterprise Linux 161
9.4 了解基于云的安装 163
9.5 在企业中安装Linux 164
9.6 探索共同的安装主题 165
9.6.1 升级或者从头开始安装 165
9.6.2 双启动 166
9.6.3 安装Linux并以虚拟方式
运行 167
9.6.4 使用安装启动选项 167
9.6.5 使用专门的存储器 170
9.6.6 对硬盘进行分区 171
9.6.7 使用GRUB启动加载程序 173
9.7 小结 175
9.8 习题 175
第10章 获取和管理软件 177
10.1 在桌面管理软件 177
10.2 超越Software窗口 178
10.3 了解Linux RPM和DEB
软件包 179
10.3.1 理解DEB包 180
10.3.2 理解RPM包 180
10.4 使用yum管理RPM软件包 182
10.4.1 从yum到dnf的转换 183
10.4.2 了解yum的工作原理 183
10.4.3 借助第三方软件库
使用yum 185
10.4.4 使用yum命令管理软件 186
10.5 使用rpm命令安装、查询和
验证软件 192
10.5.1 使用rpm安装和删除
软件包 193
10.5.2 查询rpm信息 193
10.5.3 验证rpm软件包 195
10.6 在企业中管理软件 196
10.7 小结 197
10.8 习题 197
第11章 获取用户账户 199
11.1 创建用户账户 199
11.1.1 使用useradd命令添加
用户 201
11.1.2 设置用户默认值 203
11.1.3 使用usermod修改用户 205
11.1.4 使用userdel删除用户 205
11.2 了解组账户 206
11.2.1 使用组账户 206
11.2.2 创建组账户 207
11.3 在企业中管理用户 208
11.3.1 使用ACL设置权限 208
11.3.2 为用户添加目录以便
进行协作 212
11.4 集中用户账户 214
11.5 小结 215
11.6 习题 215
第12章 管理磁盘和文件系统 217
12.1 了解磁盘存储器 217
12.2 对硬盘进行分区 218
12.2.1 理解分区表 219
12.2.2 查看磁盘分区 219
12.2.3 创建单分区磁盘 220
12.2.4 创建一个多分区磁盘 223
12.3 使用逻辑卷管理分区 227
12.3.1 检查现有的LVM 227
12.3.2 创建LVM逻辑卷 230
12.3.3 扩大LVM逻辑卷 231
12.4 挂载文件系统 232
12.4.1 被支持的文件系统 232
12.4.2 启用交换区 233
12.4.3 禁用交换区 234
12.4.4 使用fstab文件定义可挂载的
文件系统 235
12.4.5 使用mount命令挂载
文件系统 237
12.4.6 以环回方式挂载磁盘镜像 238
12.4.7 使用umount命令 238
12.5 使用mkfs命令创建文件
系统 239
12.6 使用Cockpit管理存储 240
12.7 小结 241
12.8 习题 242
第IV部分 成为一名Linux服务器管理员
第13章 了解服务器管理 245
13.1 开始学习服务器管理 246
13.2 检查和设置服务器 252
13.3 使用Secure Shell服务管理
远程访问 252
13.3.1 启动openssh-server服务 253
13.3.2 使用SSH客户端工具 254
13.3.3 使用基于密钥(无密码)的
身份验证 259
13.4 配置系统日志 260
13.4.1 使用rsyslog启用系统
日志 260
13.4.2 使用logwatch查看日志 264
13.5 使用sar检查系统资源 265
13.6 检查系统空间 266
13.6.1 使用df显示系统空间 266
13.6.2 使用du检查磁盘使用
情况 267
13.6.3 使用find确定磁盘消耗 267
13.7 管理企业中的服务器 268
13.8 小结 268
13.9 习题 269
第14章 管理网络 271
14.1 配置桌面网络 272
14.1.1 检查网络接口 273
14.1.2 配置网络接口 278
14.1.3 配置网络代理连接 280
14.2 使用命令行配置网络 282
14.2.1 使用nmtui命令来配置
网络 282
14.2.2 编辑NetworkManager TUI
连接 282
14.2.3 了解网络配置文件 283
14.2.4 设置别名网络接口 287
14.2.5 设置Ethernet通道捆绑 288
14.2.6 设置自定义路由 289
14.3 配置企业中的网络 290
14.3.1 将Linux配置为一个
路由器 290
14.3.2 将Linux配置为DHCP
服务器 290
14.3.3 将Linux配置为DNS
服务器 291
14.3.4 将Linux配置为代理
服务器 291
14.4 小结 292
14.5 习题 292
第15章 启动和停止服务 293
15.1 了解初始化守护进程
(init或systemd) 294
15.1.1 了解经典的init守护进程 295
15.1.2 了解systemd初始化
守护进程 300
15.2 检查服务的状态 306
15.3 停止和启动服务 308
15.4 启用持续性服务 312
15.5 配置默认的运行级别或者
目标单元 314
15.6 添加新的或自定义服务 316
15.6.1 向SysVinit添加新服务 316
15.6.2 向systemd添加新服务 318
15.7 小结 320
15.8 习题 321
第16章 配置打印服务器 323
16.1 通用UNIX打印系统(CUPS) 323
16.2 设置打印机 325
16.2.1 自动添加打印机 325
16.2.2 使用基于Web的CUPS
管理 325
16.2.3 使用Print Settings窗口 327
16.3 使用CUPS打印 332
16.3.1 配置CUPS服务器
(cupsd.conf) 332
16.3.2 启动CUPS服务器 333
16.3.3 手动配置CUPS打印机
选项 334
16.4 使用打印命令 335
16.4.1 使用lp命令进行打印 335
16.4.2 使用lpstat -t命令列出状态 335
16.4.3 使用lprm命令删除打印
作业 336
16.5 配置打印服务器 336
16.5.1 配置共享的CUPS打印机 336
16.5.2 配置共享Samba打印机 338
16.6 小结 339
16.7 习题 340
第17章 配置Web服务器 341
17.1 了解Apache Web服务器 341
17.2 获取和安装Web服务器 342
17.2.1 了解httpd软件包 342
17.2.2 安装Apache 344
17.3 启动Apache 345
17.3.1 确保Apache安全 346
17.3.2 了解Apache配置文件 348
17.3.3 向Apache添加虚拟主机 351
17.3.4 允许用户发布自己的
Web内容 353
17.3.5 使用SSL/TLS保护Web
流量 354
17.4 对Web服务器进行故障排除 358
17.4.1 检查配置错误 358
17.4.2 禁止访问和服务器内部
错误 360
17.5 小结 361
17.6 习题 361
第18章 配置FTP服务器 363
18.1 了解FTP 363
18.2 安装vsftpd FTP服务器 364
18.3 启动vsftpd服务 366
18.4 确保FTP服务器安全 368
18.4.1 为FTP打开防火墙 368
18.4.2 为FTP服务器配置
SELinux 370
18.4.3 使Linux文件权限与
vsftpd相关联 371
18.5 配置FTP服务器 371
18.5.1 设置用户访问 372
18.5.2 允许上传 372
18.5.3 为Internet设置vsftpd 373
18.6 使用FTP客户端连接服务器 375
18.6.1 通过Firefox访问FTP
服务器 375
18.6.2 使用lftp命令访问FTP
服务器 376
18.6.3 使用gFTP客户端 377
18.7 小结 378
18.8 习题 378
第19章 配置Windows文件
共享(Samba)服务器 379
19.1 了解Samba 379
19.2 安装Samba 380
19.3 启动和停止Samba 381
19.3.1 启动Samba(smb)服务 381
19.3.2 启动NetBIOS(nmbd)名称
服务器 383
19.3.3 停止Samba(smb)和
NetBIOS(nmb)服务 384
19.4 确保Samba的安全 385
19.4.1 为Samba配置防火墙 385
19.4.2 为Samba配置SELinux 386
19.4.3 配置Samba主机/用户
权限 388
19.5 配置Samba 388
19.6 访问Samba共享 394
19.6.1 在Linux中访问Samba
共享 394
19.6.2 在Windows中访问Samba
共享 396
19.7 在企业中使用Samba 397
19.8 小结 397
19.9 习题 397
第20章 配置NFS服务器 399
20.1 安装NFS服务器 401
20.2 启动NFS服务 401
20.3 共享NFS 402
20.3.1 配置/etc/exports文件 403
20.3.2 导出共享文件系统 405
20.4 确保NFS服务器安全 406
20.4.1 为NFS打开防火墙 406
20.4.2 在TCP Wrappers中允许
NFS访问 408
20.4.3 为NFS服务器配置
SELinux 408
20.5 使用NFS 409
20.5.1 查看NFS共享 409
20.5.2 手动挂载NFS 410
20.5.3 在启动时挂载NFS 410
20.5.4 使用autofs按需挂载NFS 413
20.6 卸载NFS 416
20.7 小结 416
20.8 习题 416
第21章 Linux的故障排除 419
21.1 启动故障排除 419
21.1.1 了解启动方法 420
21.1.2 从固件(BISO或UEFI)
开始 421
21.1.3 为GRUB启动加载程序
进行故障排除 423
21.1.4 GRUB 2启动加载程序 424
21.1.5 启动内核 425
21.2 排除软件包的故障 433
21.3 排除网络故障 437
21.3.1 排除传出连接的故障 437
21.3.2 排除传入连接的故障 440
21.4 解决内存问题 442
21.5 在救援模式中进行故障排除 446
21.6 小结 447
21.7 习题 448
第V部分 学习Linux安全技术
第22章 理解基本的Linux安全 451
22.1 实现物理安全 451
22.1.1 实现灾难恢复 452
22.1.2 保护用户账户的安全 452
22.1.3 保护密码 455
22.1.4 保护文件系统 459
22.1.5 管理软件和服务 462
22.1.6 高级执行 463
22.2 监视系统 463
22.2.1 监视日志文件 463
22.2.2 监视用户账户 466
22.2.3 监视文件系统 469
22.3 审核和审查Linux 475
22.3.1 进行合规审查 475
22.3.2 进行安全审查 476
22.4 小结 476
22.5 习题 476
第23章 理解高级的Linux安全 479
23.1 利用加密实现Linux安全 479
23.1.1 理解哈希 480
23.1.2 理解加密/解密 481
23.1.3 实现Linux加密 488
23.2 使用PAM实现Linux安全 494
23.2.1 理解PAM身份验证过程 495
23.2.2 在Linux系统上管理PAM 497
23.2.3 获取更多关于PAM的
信息 505
23.3 小结 506
23.4 习题 506
第24章 使用SELinux增强Linux
安全 507
24.1 了解SELinux的优点 507
24.2 了解SELinux的工作原理 508
24.2.1 了解类型强制 509
24.2.2 了解多层次安全 510
24.2.3 实现SELinux安全模型 510
24.3 配置SELinux 515
24.3.1 设置SELinux模式 515
24.3.2 设置SELinux策略类型 517
24.3.3 管理SElinux安全上下文 517
24.3.4 管理SELinux策略规则包 520
24.3.5 通过布尔值管理SELinux 521
24.4 监视和排除SELinux故障 522
24.4.1 了解SELinux日志 522
24.4.2 排除SELinux日志记录
故障 524
24.4.3 解决常见的SELinux问题 525
24.5 汇总起来 526
24.6 获取更多关于SELinux的
信息 527
24.7 小结 527
24.8 习题 527
第25章 保护网络上的Linux 529
25.1 审核网络服务 529
25.1.1 使用nmap评估对网络
服务的访问 530
25.1.2 使用nmap审核网络
服务广告 533
25.2 使用防火墙 536
25.2.1 了解防火墙 537
25.2.2 实现防火墙 538
25.3 小结 549
25.4 习题 549
第VI部分 将Linux扩展到云
第26章 转移到云和容器 553
26.1 了解Linux容器 554
26.1.1 名称空间 554
26.1.2 容器的注册 555
26.1.3 基本映像和图层 555
26.2 从Linux容器开始 556
26.2.1 牵引和运行容器 556
26.2.2 启动和停止容器 559
26.2.3 构建容器映像 560
26.3 小结 564
26.4 习题 564
第27章 使用Linux进行云计算 565
27.1 Linux和云计算概述 565
27.1.1 云管理程序(也称为
计算节点) 566
27.1.2 云控制器 566
27.1.3 云存储 566
27.1.4 云身份验证 567
27.1.5 云开发和配置 567
27.1.6 云平台 567
27.2 尝试基础的云技术 568
27.3 建立一个小型的云 569
27.3.1 配置管理程序 569
27.3.2 配置存储 572
27.3.3 创建虚拟机 574
27.3.4 管理虚拟机 577
27.3.5 迁移虚拟机 577
27.4 小结 579
27.5 习题 579
第28章 将Linux部署到云 581
28.1 在云中运行Linux 581
28.2 创建Linux云镜像 582
28.2.1 配置和运行cloud-init云
实例 583
28.2.2 对云实例进行研究 584
28.2.3 克隆云实例 585
28.2.4 扩展cloud-init配置 586
28.2.5 在企业计算中使用
cloud-init 588
28.3 使用OpenStack来部署
云镜像 589
28.4 使用Amazon EC2部署
云镜像 592
28.5 小结 594
28.6 习题 594
第29章 使用Ansible自动部署、 管理
应用程序和基础设施 597
29.1 理解Ansible 597
29.2 探索Ansible组件 598
29.2.1 清单 599
29.2.2 剧本 599
29.3 逐步完成Ansible部署 600
29.3.1 先决条件 600
29.3.2 为每个节点设置SSH
密钥 601
29.4 安装Ansible 602
29.4.1 创建清单 603
29.4.2 对主机进行身份验证 603
29.4.3 创建剧本 603
29.4.4 运行剧本 605
29.5 运行特殊的Ansible命令 606
29.6 使用Ansible Tower自动化
框架 608
29.7 小结 608
29.8 习题 609
第30章 使用Kubernetes将应用程序
部署为容器 611
30.1 理解Kubernetes 612
30.1.1 Kubernetes主节点 612
30.1.2 Kubernetes工作节点 612
30.1.3 Kubernetes应用程序 613
30.1.4 Kubernetes接口 613
30.2 尝试Kubernetes 613
30.2.1 获取Kubernetes 614
30.2.2 运行Kubernetes基础指南 615
30.3 企业质量的Kubernetes
平台OpenShift 624
30.4 小结 625
30.5 习题 625
第VII部分 附录
附录A 介质 629
附录B 习题答案 637
內容試閱 :
“如果不使用Linux,将无法真正学习Linux。”
以上的结论是根据我20多年来教人们学习Linux总结出来的。要学好Linux,不能仅靠阅读一本书,也不能仅靠聆听一次讲座,而是需要有人引导,还需要亲手实践。
在1999年,Wiley出版社出版了我的Red Hat Linux Bible一书。该书取得的巨大成功使我有机会成为一名全职的、独立的Linux作者。在大约10年的时间里,我在安静的家庭办公室中编写了多本关于Linux的书籍,并用好的方法讲解Linux。
在2008年,我开启了人生的新航程。我被Red Hat公司聘为一名专职讲师,为那些想要获取RHCE(Red Hat Certified Engineer)认证的专业系统管理员讲授Linux。在担任Linux讲师的3年里,我不断提升自己的教学技能,使那些没有任何Linux经验的学员逐步成为经验丰富的专家。随着时间的推移,我获得了大约10个认证,包括Red Hat架构师(RHCA)认证,从而扩大了自己对Linux的了解。
在本书的上一版本中,我将这些教学经验转换为文字,使一些从未用过Linux的门外汉成为拥有丰富经验的Linux专家。从那个版本获得的技能在这个版本中仍然有效。其中包括以下内容。
● 使初学者成为一名认证的专家:只要你使用过计算机、鼠标和键盘,就可以开始学习本书。我将讲授如何获取和使用Linux,并一步步介绍关键主题,后学习如何管理Linux并确保其安全性。
● 以系统管理员为重点对象:学完本书后,你将会知道如何使用Linux以及如何修改和维护Linux。本书介绍的所有主题都是成为一名RHCE所需掌握的内容。此外,许多软件开发人员也在使用本书,从而知道如何将Linux系统作为开发平台进行开发或者在Linux系统中运行自己的应用程序。
● 重点介绍命令行工具:虽然在近几年,用来管理Linux的point-and-click接口得到了极大改进,但如果想要使用一些高级功能,则只能手动输入命令并编辑配置文件。我将介绍如何熟练使用Linux命令行shell。此外,在必要时,还会使用图形工具完成相同的任务,将shell功能与图形工具进行比较。
● 旨在介绍更少的Linux发行版本:在以前的版本中,大概介绍了18种不同的Linux发行版本。除了少数的例外,大部分流行的Linux发行版本都基于Red Hat(Red Hat Enterprise Linux、Fedora、CentOS等)或者基于Debian(Ubuntu、Linux Mint、KNOPPIX等)。虽然本书主要介绍了Red Hat发行版本,但部分章节将增加对Ubuntu的介绍,因为许多Linux爱好者是从Ubuntu开始学习Linux的。
● 更多演示和练习:首先,实际演示Linux能够做什么,而不是只告诉你Linux能够做什么。其次,为了能够确保掌握所学的内容,你还有机会亲自完成相关练习。每个程序和练习都将在Red Hat Enterprise Linux和Fedora中进行测试,以保证可以正常运行。此外,大多数程序和练习也可在Ubuntu中运行。
对于第10版,主要增强包括简化Linux管理、自动化任务和管理容器应用程序(单独或大规模)。
● Cockpit管理Web UI:自从创建Linux以来,人们一直试图开发简单的图形化或基于浏览器的界面来管理Linux系统。我相信,Cockpit是有史以来为管理基本的Linux特性而创建的好的Web UI。在本书中,我用那些关注Cockpit的工具代替了大多数旧的系统配置工具描述。使用Cockpit,现在可以通过单个界面添加用户、管理存储、监视活动和执行其他许多管理任务。
● 引入云技术:在上一版中介绍了云技术后,这里对其进行了扩展。这个范围包括设置自己的Linux主机来运行虚拟机,和在云环境(如Amazon Web Services)中运行Linux。如今在云计算方面,Linux是大多数技术进步的核心。这意味着需要深入了解Linux,从而在以后的数据中心中更有效地工作。首先,在本书的前几章学习Linux的基本知识,然后在后几章学习如何尝试将Linux系统作为虚拟机管理程序、云控制器和虚拟机,以及如何管理虚拟网络和网络存储空间。
● Ansible:自动化管理系统的任务在现代数据中心变得越来越重要。使用Ansible,可以创建定义Linux系统状态的剧本。这包括设置安装哪些包、运行哪些服务以及如何配置特性等。一个剧本可以配置一个或上千个系统,组合成一组系统服务,并再次运行以使系统返回到已定义的状态。这个版本介绍Ansible,帮助创建个Ansible剧本,并展示如何运行特别的Ansible命令。
● 容器:在容器中打包和运行应用程序正成为部署、管理和更新小型、可扩展的软件服务和特性的方法。本书将描述如何将容器拉到系统中,运行它们,停止它们,甚至使用podman和docker命令构建自己的容器映像。
● Kubernetes和OpenShift:虽然容器本身很好,但要想在大型企业中部署、管理和升级容器,就需要一个编排平台。Kubernetes项目提供了这个平台。对于受支持的商业Kubernetes平台,可以使用OpenShift之类的产品。
本书组织结构
本书能够让你从基本的Linux基础开始学起,并逐步成为一个专业的Linux系统管理员和高级用户。
第Ⅰ部分“入门”包括2章,主要帮助你了解什么是Linux,并从一个Linux桌面开始学习。
● 第1章“开始使用Linux”介绍若干主题,比如Linux操作系统是什么,Linux的起源以及如何开始使用Linux。
● 第2章“创建完美的Linux桌面”提供关于如何创建一个桌面系统以及如何使用一些流行的桌面功能的相关内容。
第Ⅱ部分“成为一名Linux高级用户”深入详细地介绍如何使用Linux shell、使用文件系统、操作文本文件、管理进程以及使用shell脚本。
● 第3章“使用shell”介绍如何访问shell、运行命令、撤回命令(使用历史)以及完成标记。此外,该章还描述如何使用变量、别名以及man手册(即传统的Linux命令参考手册)。
● 第4章“在文件系统中移动”包含用来列举、创建、复制和移动文件和目录的命令。此外,该章还包括更高级的主题,比如文件系统安全性(文件的所有权、权限以及访问控制列表等)。
● 第5章“使用文本文件”包含使用文本文件需要的所有知识,从基本的文本编辑器到用来查找文件以及在文件中搜索文本所需的工具。
● 第6章“管理运行中的进程”描述如何查看正在系统上运行的进程以及如何更改这些进程。其中,更改进程的方法包括终止、暂停以及发送其他类型的信号。
● 第7章“编写简单的shell脚本”介绍一些shell命令和函数,可以将它们放在一个文件中并作为一个命令运行。
第Ⅲ部分“成为一名Linux系统管理员”,将学习如何管理Linux系统。
● 第8章“学习系统管理”提供关于基本图形工具、命令以及用来管理Linux系统的配置文件的相关内容。它介绍了用于简化、集中的Linux管理的Cockpit Web UI。
● 第9章“安装Linux”介绍常见安装任务,如磁盘分区和初始软件包选择,以及更高级的安装工具,比如从启动文件开始安装。
● 第10章“获取和管理软件”解释软件包的工作原理以及如何获取和管理软件包。
● 第11章“获取用户账户”讨论用来添加和删除用户和组的工具,以及如何集中管理用户账户。
● 第12章“管理磁盘和文件系统”提供关于添加分区、创建文件系统、安装文件系统以及使用逻辑卷管理的相关内容。
第Ⅳ部分“成为一名Linux服务器管理员”,将学习如何创建功能强大的网络服务器以及用来管理这些服务器的工具。
● 第13章“了解服务器管理”介绍远程登录、监视工具以及Linux启动过程。
● 第14章“管理网络”讨论如何配置网络。
● 第15章“启动和停止服务”提供启动和停止服务的相关内容。
● 第16章“配置打印服务器”描述如何配置打印机,以便在Linux系统本地使用,或者通过网络在另一台计算机上使用。
● 第17章“配置Web服务器”描述如何配置一个Apache Web服务器。
● 第18章“配置FTP服务器”介绍设置vsftpd FTP服务器所需的步骤。通过使用该服务,可以让他人通过网络从你的Linux系统中下载文件。
● 第19章“配置Windows文件共享(Samba)服务器”介绍如何使用Samba进行Windows文件服务器配置。
● 第20章“配置NFS服务器”描述如何利用网络文件系统功能通过网络在不同系统之间共享文件夹。
● 第21章“Linux的故障排除”介绍用于Linux系统故障排除的流行工具。
第Ⅴ部分“学习Linux安全技术”,将学习如何确保Linux系统和服务的安全。
● 第22章“理解基本的Linux安全”介绍基本的安全概念和技术。
● 第23章“理解高级的Linux安全”介绍如何使用PAM(Pluggable Authentication Modules,可插拔验证模块)和密码工具加强系统安全和验证。
● 第24章“使用SELinux增强Linux安全”演示如何使用SELinux(Security Enhanced Linux)确保系统服务的安全。
● 第25章“保护网络上的Linux”介绍用来确保系统服务安全的网络安全功能,如firewalld和iptables防火墙。
第VI部分“将Linux扩展到云”,从单一系统转向容器化、云计算和自动化。
● 第26章“转移到云和容器”描述如何拉、推、启动、停止、标记和创建容器图像。
● 第27章“使用Linux进行云计算”通过描述如何设置虚拟机管理程序、构建虚拟机以及跨网络共享资源,介绍Linux系统中云计算的相关概念。
● 第28章“将Linux部署到云”描述如何将Linux镜像部署到不同的云环境,包括OpenStack、Amazon EC2或者进行了虚拟化配置的本地Linux系统。
● 第29章“使用Ansible自动部署、管理应用程序和基础设施”说明如何创建Ansible剧本,并运行即时 Ansible命令自动配置Linux系统和其他设备。
● 第30章“使用Kubernetes将应用程序部署为容器”描述Kubernetes项目,以及它是如何用于编排容器图像的,从而有可能大规模扩展到大型数据中心。
第Ⅶ部分包含了两个附录,帮助你学习关于Linux的更多知识。附录A“介质”提供关于下载Linux发行版本的相关指导。附录B“习题答案”提供第2~30章所有习题的参考答案。
本书的约定
在本书中使用了特殊的排版表示代码和命令。代码和命令以等宽字体显示。例如:
This is how code looks
在示例所包含的输入和输出事件中,仍然使用了等宽字体。但为了区分输入和输出字符,输入字符还使用了粗体显示。例如:
$ ftp ftp.handsonhistory.com
Name (home:jake): jake
Password: ******
下面所示的各项提醒你应该注意的重要知识点。
注意:
注意框提供了需要额外注意的相关信息。
提示:
提示框显示了执行某一特定任务的特殊方法。
警告:
当执行某一程序时,警告框会提醒你特别注意,否则会对计算机硬件和软件造成损害。
进入Linux
如果你是一名Linux的初学者,那么可能会对什么是Linux以及Linux的起源只具有模糊的概念。你可能听说过Linux是免费的(在使用成本方面)或者开放的(可以按照自己的意愿自由使用)。在开始学习Linux之前(后面,你将学习Linux方面的所有相关知识),第1章将回答关于Linux的起源以及特点的相关问题。
你需要多花些时间认真阅读本书,这样才可以加快学习Linux的进度,并使用它满足自己的需求。这是进入Linux并成为一名Linux专家的步。