内容简介
精通Linux的指南 《Linux系统管理、服务器设置、、云数据中心(第10版)》在上一版的基础上更新,旨在帮助Linux新手及中级用户将Linux知识和技能提升到新水平。知名Linux专家、书作家Christopher Negus在本书中浓墨重彩地描述Red Hat Enterprise Linux、Fedora和Ubuntu本及命令行工具,并通过分步的详明演示和习题引导读者悟透Linux操作系统的工作原理。本书还为各类Linux认证考试提供备考资料。 Linux是云计算中大多数技术进步的核心,这意味你必须扎实掌握Linux技术,从而在未来的数据中心工作。本书开篇介绍Linux基础知识,接着演示如何运用这些知识将Linux系统部署为虚拟机管理程序、云控制器和虚拟机,并讲述如何管理虚拟网络和网络存储。 本书指引你获取、安装和开始使用Linux,并终驾轻熟地管理和保护Linux。对于那些希望将Linux用作开发工作站的软件开发人员来说,本书也是的参考资源。
目录
目 录第1章 开始使用Linux 31.1 理解什么是Linux 41.2 了解如何区分Linux和其他操作系统 51.3 探讨Linux历史 61.3.1 Bell实验室中自由的UNIX文化 61.3.2 商业化的UNIX 81.3.3 GNU将UNIX转变为免费 91.3.4 BSD失去了一些动力 101.3.5 Linus弥补了缺失的部分 111.3.6 OSI开源定义 111.4 理解Linux发行版本是如何出现的 121.4.1 选择Red Hat发行版本 131.4.2 选择Ubuntu或者其他Debian发行版本 151.5 利用Linux找到职业机会 151.5.1 了解如何利用Linux挣钱 161.5.2 获得Red Hat认证 171.6 小结 19第2章 创建的Linux桌面 212.1 了解Linux桌面技术 222.2 开始使用Fedora GNOME桌面Live镜像 232.3 使用GNOME 3桌面 242.3.1 计算机启动后 242.3.2 设置GNOME 3桌面 292.3.3 扩展GNOME 3桌面 302.3.4 启动桌面应用程序 312.3.5 停止GNOME 3桌面 352.4 使用GNOME 2桌面 352.4.1 使用metacity窗口管理器 362.4.2 更改GNOME的外观 372.4.3 使用GNOME面板 372.4.4 使用AIGLX添加3D效果 412.5 小结 422.6 习题 43第II部分 成为一名Linux用户第3章 使用shell 473.1 shell和Terminal窗口 483.1.1 使用shell提示符 483.1.2 使用Terminal窗口 493.1.3 使用虚拟控制台 503.2 选择shell 503.3 运行命令 513.3.1 了解命令语法 523.3.2 查找命令 543.4 使用命令历史记录重复执行命令 563.4.1 命令行编辑 563.4.2 命令行补齐 583.4.3 命令行重复执行 593.5 连接和扩展命令 603.5.1 命令之间的管道 603.5.2 连续命令 613.5.3 后台命令 613.5.4 扩展命令 623.5.5 扩展算术表达式 623.5.6 扩展变量 623.6 使用shell变量 633.6.1 创建和使用别名 643.6.2 退出shell 653.7 创建自己的shell环境 653.7.1 配置shell 653.7.2 设置提示符 663.7.3 添加环境变量 673.8 获取关于命令的信息 683.9 小结 703.10 习题 70第4章 在文件系统中移动 734.1 使用基本的文件系统命令 754.2 使用元字符和运算符 774.2.1 使用文件匹配元字符 774.2.2 使用文件重定向元字符 784.2.3 使用括号扩展字符 794.3 列出文件和目录 804.4 了解文件权限和所有权 834.4.1 使用命令chmod(数字)更改权限 844.4.2 使用chmod(字母)更改权限 854.4.3 使用umask设置默认的文件权限 854.4.4 更改文件所有权 864.5 移动、和删除文件 864.6 小结 884.7 习题 88第5章 使用文本文件 895.1 使用vim和vi编辑文件 895.1.1 开始使用vi 905.1.2 在文件中跳过 945.1.3 搜索文本 945.1.4 使用ex模式 945.1.5 学习更多关于vi和vim的知识 955.2 查找文件 955.2.1 使用locate命令根据名称查找文件 955.2.2 使用find命令搜索文件 965.2.3 使用grep命令在文件中搜索 1015.3 小结 1025.4 习题 102第6章 管理运行中的进程 1056.1 理解进程 1056.2 列出进程 1066.2.1 使用ps命令列出进程 1066.2.2 使用top命令列出和更改进程 1076.2.3 使用System Monitor列出进程 1086.3 管理后台和前台进程 1106.3.1 启动后台进程 1106.3.2 使用前台和后台命令 1116.4 杀死和改变进程 1126.4.1 使用kill和killall命令杀死进程 1126.4.2 使用nice和renice命令设置处理器优先级 1136.5 使用cgroups限制进程 1146.6 小结 1156.7 习题 115第7章 编写简单的shell脚本 1177.1 理解shell脚本 1177.1.1 执行和调试shell脚本 1187.1.2 理解shell变量 1187.1.3 在shell脚本中执行算法 1217.1.4 在shell脚本中使用编程结构 1227.1.5 使用一些有用的文本操作程序 1277.1.6 使用简单的shell脚本 1297.2 小结 1307.3 习题 130第III部分 成为一名Linux系统管理员第8章 学习系统管理 1358.1 理解系统管理 1358.2 使用图形化管理工具 1368.2.1 使用system-config-*工具 1388.2.2 使用基于浏览器的管理工具 1398.3 使用root用户账户 1408.3.1 通过shell成为root用户(su命令) 1408.3.2 通过GUI允许管理访问权限 1418.3.3 使用sudo获取管理访问权限 1418.4 探索管理命令、配置文件和日志文件 1438.4.1 管理命令 1438.4.2 管理配置文件 1448.4.3 管理日志文件和Systemd Journal 1478.5 使用其他管理账号 1488.6 检查和配置硬件 1498.6.1 检查硬件 1498.6.2 管理可移动硬件 1518.6.3 使用可加载模块 1528.7 小结 1548.8 习题 154第9章 安装Linux 1579.1 选择计算机 1589.2 从Live介质安装Fedora 1599.3 从安装介质安装Red Hat Enterprise Linux 1619.4 了解基于云的安装 1639.5 在企业中安装Linux 1649.6 探索共同的安装主题 1659.6.1 升级或者从头开始安装 1659.6.2 双启动 1669.6.3 安装Linux并以虚拟方式运行 1679.6.4 使用安装启动选项 1679.6.5 使用专门的存储器 1709.6.6 对硬盘进行分区 1719.6.7 使用GRUB启动加载程序 1739.7 小结 1759.8 习题 175第10章 获取和管理软件 17710.1 在桌面管理软件 17710.2 Software窗口 17810.3 了解Linux RPM和DEB软 17910.3.1 理解DE 18010.3.2 理解RP 18010.4 使用yum管理RPM软 18210.4.1 从yum到dnf的转换 18310.4.2 了解yum的工作原理 18310.4.3 借助第三方软件库使用yum 18510.4.4 使用yum命令管理软件 18610.5 使用rpm命令安装、查询和验证软件 19210.5.1 使用rpm安装和删除软 19310.5.2 查询rpm信息 19310.5.3 验证rpm软 19510.6 在企业中管理软件 19610.7 小结 19710.8 习题 197第11章 获取用户账户 19911.1 创建用户账户 19911.1.1 使用user命令添加用户 20111.1.2 设置用户默认值 20311.1.3 使用usermod修改用户 20511.1.4 使用userdel删除用户 20511.2 了解组账户 20611.2.1 使用组账户 20611.2.2 创建组账户 20711.3 在企业中管理用户 20811.3.1 使用ACL设置权限 20811.3.2 为用户添加目录以便进行协作 21211.4 集中用户账户 21411.5 小结 21511.6 习题 215第12章 管理磁盘和文件系统 21712.1 了解磁盘存储器 21712.2 对硬盘进行分区 21812.2.1 理解分区表 21912.2.2 查看磁盘分区 21912.2.3 创建单分区磁盘 22012.2.4 创建一个多分区磁盘 22312.3 使用逻辑卷管理分区 22712.3.1 检查现有的LVM 22712.3.2 创建LVM逻辑卷 23012.3.3 扩大LVM逻辑卷 23112.4 挂载文件系统 23212.4.1 被支持的文件系统 23212.4.2 启用交换区 23312.4.3 禁用交换区 23412.4.4 使用f文件定义可挂载的文件系统 23512.4.5 使用mount命令挂载文件系统 23712.4.6 以环回方式挂载磁盘镜像 23812.4.7 使用umount命令 23812.5 使用mkfs命令创建文件系统 23912.6 使用Cockpit管理存储 24012.7 小结 24112.8 习题 242第IV部分 成为一名Linux服务器管理员第13章 了解服务器管理 24513.1 开始学习服务器管理 24613.2 检查和设置服务器 25213.3 使用Secure Shell服务管理远程访问 25213.3.1 启动openssh-server服务 25313.3.2 使用SSH客户端工具 25413.3.3 使用基于密钥(无密码)的身份验证 25913.4 配置系统日志 26013.4.1 使用rsyslog启用系统日志 26013.4.2 使用logwatch查看日志 26413.5 使用sar检查系统资源 26513.6 检查系统空间 26613.6.1 使用df显示系统空间 26613.6.2 使用du检查磁盘使用情况 26713.6.3 使用find确定磁盘消耗 26713.7 管理企业中的服务器 26813.8 小结 26813.9 习题 269第14章 管理网络 27114.1 配置桌面网络 27214.1.1 检查网络接口 27314.1.2 配置网络接口 27814.1.3 配置网络代理连接 28014.2 使用命令行配置网络 28214.2.1 使用nmtui命令来配置网络 28214.2.2 编辑NetworkManager TUI连接 28214.2.3 了解网络配置文件 28314.2.4 设置别名网络接口 28714.2.5 设置Ether通道捆绑 28814.2.6 设置自定义路由 28914.3 配置企业中的网络 29014.3.1 将Linux配置为一个路由器 29014.3.2 将Linux配置为DHCP服务器 29014.3.3 将Linux配置为DNS服务器 29114.3.4 将Linux配置为代理服务器 29114.4 小结 29214.5 习题 292第15章 启动和停止服务 29315.1 了解初始化守护进程(init或systemd) 29415.1.1 了解经典的init守护进程 29515.1.2 了解systemd初始化守护进程 30015.2 检查服务的状态 30615.3 停止和启动服务 30815.4 启用持续服务 31215.5 配置默认的运行级别或者目标单元 31415.6 添加新的或自定义服务 31615.6.1 向SysVinit添加新服务 31615.6.2 向systemd添加新服务 31815.7 小结 32015.8 习题 321第16章 配置打印服务器 32316.1 通用UNIX打印系统(CUPS) 32316.2 设置打印机 32516.2.1 自动添加打印机 32516.2.2 使用基于Web的CUPS管理 32516.2.3 使用Print Settings窗口 32716.3 使用CUPS打印 33216.3.1 配置CUPS服务器(cupsd.conf) 33216.3.2 启动CUPS服务器 33316.3.3 手动配置CUPS打印机选项 33416.4 使用打印命令 33516.4.1 使用lp命令进行打印 33516.4.2 使用lpstat -t命令列出状态 33516.4.3 使用lprm命令删除打印作业 33616.5 配置打印服务器 33616.5.1 配置共享的CUPS打印机 33616.5.2 配置共享Samba打印机 33816.6 小结 33916.7 习题 340第17章 配置Web服务器 34117.1 了解Apache Web服务器 34117.2 获取和安装Web服务器 34217.2.1 了解d软 34217.2.2 安装Apache 34417.3 启动Apache 34517.3.1 确保Apache 34617.3.2 了解Apache配置文件 34817.3.3 向Apache添加虚拟主机 35117.3.4 允许用户发布自己的Web内容 35317.3.5 使用SSL/TLS保护Web流量 35417.4 对Web服务器进行故障排除 35817.4.1 检查配置错误 35817.4.2 禁止访问和服务器内部错误 36017.5 小结 36117.6 习题 361第18章 配置FTP服务器 36318.1 了解FTP 36318.2 安装vsftpd FTP服务器 36418.3 启动vsftpd服务 36618.4 确保FTP服务器 36818.4.1 为FTP打开防火墙 36818.4.2 为FTP服务器配置SELinux 37018.4.3 使Linux文件权限与vsftpd相关联 37118.5 配置FTP服务器 37118.5.1 设置用户访问 37218.5.2 允许上传 37218.5.3 为Inter设置vsftpd 37318.6 使用FTP客户端连接服务器 37518.6.1 通过Firefox访问FTP服务器 37518.6.2 使用lftp命令访问FTP服务器 37618.6.3 使用gFTP客户端 37718.7 小结 37818.8 习题 378第19章 配置Windows文件共享(Samba)服务器 37919.1 了解Samba 37919.2 安装Samba 38019.3 启动和停止Samba 38119.3.1 启动Samba()服务 38119.3.2 启动NetBIOS(nmbd)名称服务器 38319.3.3 停止Samba()和NetBIOS(nmb)服务 38419.4 确保Samba的 38519.4.1 为Samba配置防火墙 38519.4.2 为Samba配置SELinux 38619.4.3 配置Samba主机/用户权限 38819.5 配置Samba 38819.6 访问Samba共享 39419.6.1 在Linux中访问Samba共享 39419.6.2 在Windows中访问Samba共享 39619.7 在企业中使用Samba 39719.8 小结 39719.9 习题 397第20章 配置NFS服务器 39920.1 安装NFS服务器 40120.2 启动NFS服务 40120.3 共享NFS 40220.3.1 配置/etc/exports文件 40320.3.2 导出共享文件系统 40520.4 确保NFS服务器 40620.4.1 为NFS打开防火墙 40620.4.2 在TCP Wrappers中允许NFS访问 40820.4.3 为NFS服务器配置SELinux 40820.5 使用NFS 40920.5.1 查看NFS共享 40920.5.2 手动挂载NFS 41020.5.3 在启动时挂载NFS 41020.5.4 使用autofs按需挂载NFS 41320.6 卸载NFS 41620.7 小结 41620.8 习题 416第21章 Linux的故障排除 41921.1 启动故障排除 41921.1.1 了解启动方法 42021.1.2 从固件(BISO或UEFI)开始 42121.1.3 为GRUB启动加载程序进行故障排除 42321.1.4 GRUB 2启动加载程序 42421.1.5 启动内核 42521.2 排除软的故障 43321.3 排除网络故障 43721.3.1 排除传出连接的故障 43721.3.2 排除传入连接的故障 44021.4 解决内存问题 44221.5 在救援模式中进行故障排除 44621.6 小结 44721.7 习题 448第V部分 学习Linux技术第22章 理解基本的Linux 45122.1 实现物理 45122.1.1 实现灾难恢复 45222.1.2 保护用户账户的 45222.1.3 保护密码 45522.1.4 保护文件系统 45922.1.5 管理软件和服务 46222.1.6 执行 46322.2 监视系统 46322.2.1 监视日志文件 46322.2.2 监视用户账户 46622.2.3 监视文件系统 46922.3 审核和审查Linux 47522.3.1 进行合规审查 47522.3.2 进行审查 47622.4 小结 47622.5 习题 476第23章 理解的Linux 47923.1 利用加密实现Linux 47923.1.1 理解哈希 48023.1.2 理解加密/解密 48123.1.3 实现Linux加密 48823.2 使用PAM实现Linux 49423.2.1 理解PAM身份验证过程 49523.2.2 在Linux系统上管理PAM 49723.2.3 获取更多关于PAM的信息 50523.3 小结 50623.4 习题 506第24章 使用SELinux增强Linux 50724.1 了解SELinux的优点 50724.2 了解SELinux的工作原理 50824.2.1 了解类型强制 50924.2.2 了解多层次 51024.2.3 实现SELinux模型 51024.3 配置SELinux 51524.3.1 设置SELinux模式 51524.3.2 设置SELinux策略类型 51724.3.3 管理SElinux上下文 51724.3.4 管理SELinux策略规 52024.3.5 通过布尔值管理SELinux 52124.4 监视和排除SELinux故障 52224.4.1 了解SELinux日志 52224.4.2 排除SELinux日志记录故障 52424.4.3 解决常见的SELinux问题 52524.5 起来 52624.6 获取更多关于SELinux的信息 52724.7 小结 52724.8 习题 527第25章 保护网络上的Linux 52925.1 审核网络服务 52925.1.1 使用nmap评估对网络服务的访问 53025.1.2 使用nmap审核网络服务广告 53325.2 使用防火墙 53625.2.1 了解防火墙 53725.2.2 实现防火墙 53825.3 小结 54925.4 习题 549第VI部分 将Linux扩展到云第26章 转移到云和容器 55326.1 了解Linux容器 55426.1.1 名称空间 55426.1.2 容器的注册 55526.1.3 基本映像和图层 55526.2 从Linux容器开始 55626.2.1 牵引和运行容器 55626.2.2 启动和停止容器 55926.2.3 构建容器映像 56026.3 小结 56426.4 习题 564第27章 使用Linux进行云计算 56527.1 Linux和云计算概述 56527.1.1 云管理程序(也称为计算节点) 56627.1.2 云控制器 56627.1.3 云存储 56627.1.4 云身份验证 56727.1.5 云开发和配置 56727.1.6 云平台 56727.2 尝试基础的云技术 56827.3 建立一个小型的云 56927.3.1 配置管理程序 56927.3.2 配置存储 57227.3.3 创建虚拟机 57427.3.4 管理虚拟机 57727.3.5 迁移虚拟机 57727.4 小结 57927.5 习题 579第28章 将Linux部署到云 58128.1 在云中运行Linux 58128.2 创建Linux云镜像 58228.2.1 配置和运行cloud-init云实例 58328.2.2 对云实例进行研究 58428.2.3 克隆云实例 58528.2.4 扩展cloud-init配置 58628.2.5 在企业计算中使用cloud-init 58828.3 使用OpenStack来部署云镜像 58928.4 使用Amazon EC2部署云镜像 59228.5 小结 59428.6 习题 594第29章 使用Anle自动部署、 管理应用程序和基础设施 59729.1 理解Anle 59729.2 探索Anle组件 59829.2.1 清单 59929.2.2 剧本 59929.3 逐步完成Anle部署 60029.3.1 先决条件 60029.3.2 为每个节点设置SSH密钥 60129.4 安装Anle 60229.4.1 创建清单 60329.4.2 对主机进行身份验证 60329.4.3 创建剧本 60329.4.4 运行剧本 60529.5 运行特殊的Anle命令 60629.6 使用Anle Tower自动化框架 60829.7 小结 60829.8 习题 609第30章 使用Kuberes将应用程序部署为容器 61130.1 理解Kuberes 61230.1.1 Kuberes主节点 61230.1.2 Kuberes工作节点 61230.1.3 Kuberes应用程序 61330.1.4 Kuberes接口 61330.2 尝试Kuberes 61330.2.1 获取Kuberes 61430.2.2 运行Kuberes基础指南 61530.3 企业质量的Kuberes平台OpenShift 62430.4 小结 62530.5 习题 625第VII部分 附录附录A 介质 629附录B 习题答案 637