具体描述
作 者:张春晓 编著 著作 定 价:108 出 版 社:清华大学出版社 出版日期:2018年05月01日 页 数:521 装 帧:平装 ISBN:9787302498599 《Ubuntu Linux系统管理实战》全面介绍了Linux的基础知识、Ubuntu 17的安装方法、桌面环境、文件系统、文件管理、用户管理、服务管理、文件系统管理以及网络管理等技术。在介绍每部分内容时,都给出了大量具体的实例,使得读者能够深入了解、快速掌握相关系统操作。掌握本书所有内容,读者能够初步胜任Linux的日常管理和维护工作。
●目 录篇 Ubuntu入门第1章 了解Ubuntu31.1 什么是Linux31.2 Linux发行版51.2.1 Debian61.2.2 Ubuntu61.2.3 Arch Linux71.2.4 Fedora81.2.5 OpenSUSE81.2.6 CentOS91.2.7 Red Hat Enterprise Linux101.3 Ubuntu概述101.3.1 什么是Ubuntu101.3.2 Ubuntu的版本111.3.3 Ubuntu的特点121.3.4 如何获得Ubuntu131.4 GNU GPL和POSIX介绍141.4.1 什么是GNU GPL141.4.2 GNU GPL发展历史141.4.3 如何正确理解GNU GPL151.4.4 了解POSIX标准151.5 学习Ubuntu的方法15第2章 安装Ubuntu172.1 准备安装Ubuntu172.1.1 获得安装介质172.1.2 Ubuntu的硬件要求192.1.3 Ubuntu的安装方式202.2 虚拟机软件202.2.1 常见虚拟机软件202.2.2 选择虚拟机软件212.2.3 安装Oracle VM VirtualBox212.3 安装Ubuntu的方式262.3.1 下载ISO镜像文件262.3.2 创建虚拟机262.3.3 安装Ubuntu过程292.4 通过网络安装Ubuntu352.4.1 下载网络安装器352.4.2 通过网络安装Ubuntu步骤352.5 将Ubuntu安装到U盘中412.5.1 Rufus工具422.5.2 制作LiveUSB Ubuntu系统422.6 安装过程中的常见问题442.6.1 选择32位还是64位的Ubuntu442.6.2 应该选择哪种语言452.6.3 Ubuntu中的磁盘分区与Windows中的磁盘分区45第3章 桌面环境463.1 常见的桌面环境463.1.1 KDE463.1.2 GNOME483.1.3 Xfce503.1.4 Unity513.2 使用Unity523.2.1 菜单栏523.2.2 启动器543.2.3 Dash553.2.4 工作区563.2.5 管理窗口583.2.6 文件管理器593.2.7 搜索文件和文件夹613.2.8 定制桌面633.3 使用GNOME653.3.1 桌面布局653.3.2 活动按钮663.3.3 工作区663.3.4 浮动面板673.3.5 显示应用程序683.3.6 锁定、关闭或者重启电脑69第4章 文件系统基础知识704.1 文件系统的层次结构704.1.1 树形层次结构704.1.2 路径名724.1.3 Linux目录结构744.2 文件类型754.2.1 普通文件754.2.2 目录文件784.2.3 字符设备文件794.2.4 块设备文件804.2.5 管道814.2.6 套接字844.2.7 文件链接844.3 文件权限874.3.1 文件权限概述884.3.2 显示文件权限894.3.3 修改文件权限914.3.4 更改文件所有权944.3.5 文件特殊权限95第5章 文件和目录管理985.1 创建文件985.1.1 使用touch命令创建文件995.1.2 使用重定向创建文件995.1.3 使用vi命令创建文件1015.2 显示文件列表1035.2.1 使用ls命令显示文件列表1035.2.2 显示隐藏文件1065.2.3 递归显示目录内容1075.3 显示文件内容1085.3.1 拼接文件内容:cat命令1085.3.2 分屏显示:more命令1115.3.3 前后翻页分屏显示:less命令1135.3.4 查看前几行内容:head命令1135.3.5 查看几行内容:tail命令1145.4 文件的常用操作1165.4.1 复制文件1165.4.2 移动文件1185.4.3 删除文件1195.4.4 比较文件1205.4.5 重命名文件1225.5 搜索文件1225.5.1 快速搜索文件:locate命令1225.5.2 按类型搜索:whereis命令1255.5.3 搜索二进制文件:which命令1255.5.4 全功能搜索:find命令1265.6 文本内容筛选1275.6.1 使用grep命令检索文本内容1285.6.2 筛选其他命令的输出结果1295.6.3 在grep命令中使用正则表达式1305.7 文本排序1325.7.1 使用sort命令文本排序1335.7.2 合并有序文件1345.8 文件的压缩和解压1355.8.1 压缩文件1355.8.2 解压文件1385.9 目录管理1395.9.1 显示当前工作目录1395.9.2 改变目录1395.9.3 创建目录1405.9.4 移动目录1415.9.5 复制目录1415.9.6 删除目录141第6章 用户和权限管理1426.1 用户和用户组基础1426.1.1 用户和用户标识号1426.1.2 用户组和组标识号1436.1.3 /etc/passwd文件1446.1.4 /etc/shadow文件1456.1.5 /etc/group文件1466.2 用户管理1476.2.1 添加用户:useradd命令1476.2.2 添加用户:adduser命令1486.2.3 修改用户:usermod命令1506.2.4 删除用户:userdel命令1516.2.5 修改用户密码:passwd命令1526.2.6 显示用户信息:id命令1536.2.7 用户间切换:su命令1546.2.8 受限的特权:sudo命令1546.3 用户组管理1576.3.1 添加用户组:groupadd命令1576.3.2 添加用户组:addgroup命令1576.3.3 修改用户组:groupmod命令1576.3.4 删除用户组:groupdel命令1586.4 权限管理1586.4.1 权限概述1586.4.2 改变文件所有者:chown命令1606.4.3 改变文件所属组:chgrp命令1616.4.4 设置权限掩码:umask命令1626.4.5 修改文件访问权限:chmod命令1636.4.6 修改文件ACL:setfacl命令1656.4.7 查询文件ACL:getfacl命令166第二篇 进阶篇第7章 系统启动和关闭1697.1 Ubuntu启动过程1697.1.1 BIOS阶段1697.1.2 引导程序阶段1707.1.3 内核阶段1737.1.4 进入系统1747.2 引导相关组件1747.2.1 主引导记录1747.2.2 GRUB启动程序1757.3 登录1817.3.1 login进程1817.3.2 选择Shell1837.3.3 用户初始化文件1857.4 关闭系统1877.4.1 shutdown命令1877.4.2 init命令1887.4.3 其他命令188第8章 服务和进程管理1898.1 初始化程序概述1898.1.1 初始化程序1908.1.2 systemd1968.1.3 systemd基本配置文件1978.2 systemd单元1988.2.1 单元类型1988.2.2 列出单元2008.2.3 查看单元状态2038.2.4 单元依赖2058.2.5 单元配置文件2078.3 systemd单元管理2098.3.1 启动服务2108.3.2 停止服务2108.3.3 重启服务2108.3.4 重新加载服务配置文件2118.3.5 查看服务状态2118.3.6 配置服务自动启动2128.3.7 止服务自动启动2138.3.8 重新加载单元配置文件2148.3.9 显示服务属性2148.3.10 设置服务属性2168.4 常用systemd命令2168.4.1 systemd-analyze命令分析系统启动时的性能2168.4.2 hostnamectl命令2198.4.3 localectl命令2208.4.4 timedatectl命令2208.4.5 loginctl命令2218.5 目标2228.5.1 理解目标2228.5.2 切换目标2258.5.3 默认目标2268.6 日志管理2268.6.1 读取日志2268.6.2 过滤输出2278.6.3 日志大小2298.6.4 手动清理日志2308.7 进程管理2318.7.1 查询进程及其状态2318.7.2 监控进程及系统资源2338.7.3 终止进程2388.7.4 调整进程优先级239第9章 软件包管理2419.1 软件包管理概述2419.1.1 软件包管理基本概念2419.1.2 软件包管理工具2439.2 apt-get命令2459.2.1 搜索软件包2459.2.2 apt-get命令基本语法2479.2.3 安装软件包2489.2.4 重新安装软件包2499.2.5 删除软件包2509.2.6 更新和升级软件包2519.3 apt命令2539.3.1 apt命令基本语法2539.3.2 搜索软件包2539.3.3 安装软件包2549.3.4 删除软件包2549.3.5 更新和升级软件包2559.4 aptitude命令2559.4.1 aptitude命令基本语法2559.4.2 搜索软件包2579.4.3 安装软件包2599.4.4 删除软件包2599.4.5 更新和升级软件包2609.4.6 图形化界面2609.5 synaptic软件管理工具2619.5.1 安装软件包2619.5.2 删除软件包2649.5.3 更新和升级软件包265第10章 磁盘和文件系统管理26610.1 磁盘管理基础26610.1.1 磁头26610.1.2 磁道26710.1.3 柱面26710.1.4 扇区26710.1.5 磁盘分区26810.2 文件系统基础知识26810.2.1 常见文件系统26910.2.2 块27110.2.3 引导块27210.2.4 超级块27210.2.5 索引节点27210.3 创建文件系统27310.3.1 创建分区27310.3.2 mkfs命令27810.3.3 创建ext2/ext3/ext4文件系统28110.3.4 创建NTFS文件系统28210.3.5 创建FAT文件系统28210.3.6 调整文件系统28410.4 挂载与卸载文件系统28510.4.1 挂载点28510.4.2 mount和findmnt命令28610.4.3 /etc/fstab文件28910.4.4 手工挂载文件系统29010.4.5 自动挂载文件系统29110.4.6 卸载文件系统29110.5 检查与修复文件系统29210.5.1 fsck和e2fsck命令29310.5.2 交互式检查与修复文件系统29410.5.3 自动检查与修复文件系统29410.5.4 恢复严重受损的超级块29510.6 磁盘阵列29610.6.1 磁盘阵列概述29610.6.2 磁盘阵列级别29610.6.3 创建磁盘阵列29910.7 逻辑卷管理30510.7.1 逻辑卷管理基本概念30510.7.2 安装LVM30610.7.3 创建物理卷30610.7.4 创建卷组30910.7.5 创建逻辑卷31010.7.6 扩展逻辑卷31110.7.7 压缩逻辑卷312第11章 网络管理31411.1 网络接口31411.1.1 查看网络接口31411.1.2 网络接口命名31911.1.3 配置网络接口IP地址31911.1.4 域名解析32311.2 常用网络配置命令32411.2.1 ifconfig命令32411.2.2 ip命令32611.2.3 route命令33311.2.4 netstat命令33511.2.5 nslookup命令33811.2.6 ping命令33911.3 防火墙34011.3.1 ufw简介34011.3.2 ufw配置34011.3.3 ufw与应用系统的整合34211.3.4 ufw日志管理344第三篇 精通Linux第12章 Shell编程34712.1 Shell编程基础34712.1.1 Shell34712.1.2 Shell脚本34812.1.3 Shell脚本的执行方法34912.1.4 位置参数35012.1.5 内部命令35112.2 变量35312.2.1 变量分类35312.2.2 变量声明35412.2.3 变量赋值35512.2.4 变量的引用和替换35512.2.5 变量的间接引用35612.2.6 特殊变量替换35712.2.7 单引号和双引号35812.2.8 命令替换35912.3 算术运算35912.3.1 let命令36012.3.2 expr命令36012.3.3 $(())表达式36112.3.4 $[]表达式36112.4 数组36112.4.1 定义数组36212.4.2 获取数组长度36312.4.3 遍历数组36312.4.4 删除元素36512.4.5 数组切片36512.4.6 数组替换36612.5 条件测试36612.5.1 条件测试语法36712.5.2 文件测试36712.5.3 字符串测试37012.5.4 整数值测试37112.5.5 逻辑运算符37212.6 条件语句37212.6.1 if语句37312.6.2 case语句37512.7 循环语句37712.7.1 for语句37712.7.2 while语句37912.7.3 until语句38112.7.4 select语句38212.7.5 嵌套循环38412.7.6 continue和break语句38412.8 信号的捕获与处理38712.8.1 信号38712.8.2 捕获信号388第13章 网络服务管理39113.1 SSH服务39113.1.1 SSH协议39113.1.2 配置SSH服务39213.1.3 管理SSH服务39513.1.4 使用账号密码登录SSH服务39613.1.5 使用密钥对登录SSH服务39713.2 FTP文件传输服务40213.2.1 FTP文件传输协议40213.2.2 安装vsftpd40213.2.3 vsftpd配置文件40313.2.4 管理FTP用户:匿名用户、本地用户、虚拟用户40613.2.5 演示:使用FTP传输文件41113.3 DNS域名服务41613.3.1 域名、IP地址、域名服务器41713.3.2 BIND以及组件41813.3.3 BIND配置文件41813.3.4 配置区域42413.3.5 资源记录42513.3.6 演示:DNS服务器配置实例42713.4 NFS服务43013.4.1 安装NFS服务43113.4.2 共享文件系统43113.4.3 挂载NFS文件系统43313.4.4 NFS文件系统权限43413.5 其他网络服务管理43713.5.1 Samba资源共享43713.5.2 Apache万维网服务44113.5.3 MySQL数据库服务444第14章 虚拟化和云计算44714.1 虚拟化基础知识44714.1.1 虚拟化技术44714.1.2 常用虚拟化方案44714.2 KVM44814.2.1 KVM及其相关组件44814.2.2 安装KVM44814.2.3 创建虚拟机44914.2.4 管理虚拟机45114.3 Docker45214.3.1 Docker以及基础知识45214.3.2 安装Docker45314.3.3 使用镜像45414.3.4 管理容器45614.3.5 使用网络:外部访问容器45914.3.6 使用网络:容器互联46114.4 LXC和LXD46114.4.1 LXC和LXD简介46214.4.2 安装LXD46214.4.3 创建容器46314.4.4 列出容器46414.4.5 查看容器46614.4.6 管理容器46614.4.7 与容器交互46714.4.8 管理镜像46914.5 OpenStack47114.5.1 OpenStack的核心组件47114.5.2 通过DevStack部署OpenStack47314.5.3 仪表盘47414.5.4 实例管理47814.5.5 镜像管理48614.5.6 卷管理48814.5.7 网络管理:网络拓扑48914.5.8 网络管理:网络的修改和删除49014.5.9 网络管理:路由49414.5.10 网络管理:安全组496第15章 系统和网络安全49915.1 用户管理安全49915.1.1 管理好root用户49915.1.2 用户资料安全50015.1.3 密码策略50115.2 防火墙50315.2.1 ufw50315.2.2 IP伪装50415.2.3 日志50415.3 AppArmor50515.3.1 安装AppArmor50515.3.2 使用AppArmor50515.3.3 AppArmor配置文件50715.4 数字证书50915.4.1 获取数字证书50915.4.2 生成密钥50915.4.3 生成证书签署请求51015.4.4 安装证书51115.5 弱点扫描51115.5.1 安装OpenVAS51215.5.2 OpenVAS仪表盘51415.5.3 扫描任务管理51415.5.4 扫描报表51615.6 入侵检测51815.6.1 安装Snort51815.6.2 Snort配置文件51915.6.3 Snort检测规则51915.6.4 测试Snort521
内容简介
Linux是目前使用很为广泛的操作系统,而Ubuntu是众多Linux发行版中的佼佼者。本书由浅入深、循序渐进,使零基础的读者也能够熟练掌握如何管理和维护Ubuntu系统。《Ubuntu Linux系统管理实战》分为三部分,靠前部分是Ubuntu入门,包括Linux基础知识、Ubuntu 17的安装和配置、桌面环境、文件系统基础知识、文件和目录管理以及用户和权限管理等。第二部分是进阶篇,包括Ubuntu系统的启动和关闭、服务和进程管理、软件包管理、磁盘和文件系统管理以及网络管理等。第三部分是精通Linux,包括Shell编程、网络服务管理以及虚拟化和云计算等。《Ubuntu Linux系统管理实战》内容精练、重点突出、实例丰富,是广大Linux维护和开发人员、网络管理维护人员推荐的参考书,同时很好适合大中专院校师生学习阅读,也可作为高等院校计算机及相关专业当教等 张春晓 编著 著作 张春晓,计算机软件与理论硕士,长期从事UNIX及Linux系统维护达15年之久,对Shell编程有深入的研究。作者热衷于UNIX的严谨与简洁,又痴迷于Linux的自由与开放,整日与UNIX及Linux为伴,从中获益匪浅。 前 言自从1991年10月Linux诞生以来,一直受到广大IT界的关注。大批人士加入学习、研究、使用、开发以及交流Linux操作系统。尤其是20世纪90年代末,随着国际互联网的飞速发展,Linux系统更是得到了充足的发展,在互联网中扮演了一个极其重要的角色,成为目前运用领域广泛、使用人数多的操作系统。正因为众多研究者和开发者的积极参与,使得Linux系统出现了流派纷呈的局面。不同的派别百花齐放、各具特色。目前已经有超过三百个发行版被积极地开发,普遍使用的发行版本大约有十几个。其中,比较有名的有Debian、Ubuntu、Fedora、CentOS、Slackware、RedHat和openSUSE等。在诸多的发行版当中,Ubuntu尤其引人注目,成为Linux发行版中的佼佼者。尽管每个发行版各有不同,但是它们使用的却是同一个内核。因此,它的核心功能是相同的。从这个方面等
《Linux运维之道:从入门到精通》 内容概述 本书旨在为读者构建一个全面、深入的Linux系统管理知识体系。它并非停留在基础命令的罗列,而是从核心概念出发,逐步引导读者理解Linux系统的运作机制,掌握从安装配置到高级故障排除的各项关键技能。全书以实战为导向,通过大量的案例分析和操作演示,帮助读者在实际工作中能够游刃有余地应对各种Linux系统管理挑战。 第一部分:Linux基础架构与核心概念 本部分将带领读者走进Linux的世界,深入理解其设计哲学和核心组件。 Linux发行版与选择: 详细介绍主流Linux发行版(如CentOS/Rocky Linux、Debian/Ubuntu Server、Fedora等)的特点、适用场景以及如何根据实际需求进行选择。我们将对比不同发行版的包管理系统、社区支持、稳定性和安全性,帮助读者做出明智的决策。 内核与用户空间: 深入剖析Linux内核的角色,阐述其如何管理硬件资源、进程调度、内存分配和文件系统。理解内核与用户空间程序的交互方式,是掌握系统运行原理的关键。 文件系统层级标准(FHS): 详细讲解FHS目录结构的意义,理解每个目录(如 `/bin`, `/sbin`, `/etc`, `/home`, `/var`, `/usr` 等)的作用及其重要性。掌握文件系统的组织方式,有助于快速定位和管理系统文件。 Shell编程基础: 掌握Bash shell的强大功能,从基本的命令执行、管道、重定向,到变量、流程控制(if-else, for, while)、函数等,全面学习Shell脚本的编写,实现自动化任务。我们将通过实际脚本示例,展示如何提高工作效率。 第二部分:系统安装、配置与用户管理 本部分关注Linux系统的部署与日常维护,确保系统的安全、稳定运行。 安装与初始配置: 详细介绍Linux系统的安装过程,包括分区方案、网络配置、软件包选择等。讲解系统启动过程(GRUB、SysVinit/Systemd),理解系统启动流程。 用户与组管理: 掌握用户和组的创建、修改、删除以及权限管理(UID, GID, 用户名、组名)。深入理解 `/etc/passwd`, `/etc/shadow`, `/etc/group` 等配置文件。学习SUID, SGID, Sticky Bit等特殊权限的应用。 磁盘管理与文件系统: 学习硬盘分区(MBR, GPT)、文件系统创建(ext4, XFS)与挂载。掌握 `fdisk`, `parted`, `mkfs`, `mount`, `umount` 等命令。理解LVM(逻辑卷管理)的优势,学习创建和管理逻辑卷,实现灵活的磁盘扩展。 软件包管理: 精通不同发行版的包管理器(如RPM/YUM/DNF for Red Hat-based, DEB/APT for Debian-based)。学习软件包的安装、升级、卸载、查询,以及如何处理依赖关系。讲解仓库的配置与管理。 第三部分:进程、服务与系统监控 本部分聚焦于Linux系统的动态运行,学习如何管理进程、服务,并进行有效的系统监控。 进程管理: 深入理解进程的概念、生命周期(运行、睡眠、僵尸等)。学习使用 `ps`, `top`, `htop`, `pstree` 等工具查看和管理进程。掌握信号(SIGKILL, SIGTERM等)的概念和应用,学习如何优雅地终止进程。 服务管理: 理解Linux服务的概念,学习使用 `systemctl` (Systemd) 或 `service` (SysVinit) 命令来启动、停止、重启、禁用和启用系统服务。讲解服务的配置文件和依赖关系。 系统日志与审计: 掌握 `syslog` 或 `rsyslog` 的配置,理解日志文件的格式和存储位置。学习使用 `journalctl` (Systemd) 查看系统日志。讲解日志的轮转和归档,以及如何利用日志进行故障排查。 系统性能监控: 学习使用 `vmstat`, `iostat`, `sar`, `nmon`, `netstat`, `ss` 等工具监控CPU、内存、磁盘I/O、网络流量等关键性能指标。理解性能瓶颈的判断方法。 第四部分:网络服务配置与安全加固 本部分将深入探讨Linux网络服务的配置,并强调系统安全的重要性。 网络基础与配置: 讲解TCP/IP协议栈的基本原理,IP地址、子网掩码、网关、DNS的概念。学习使用 `ip`, `ifconfig` (legacy), `route`, `ping`, `traceroute` 等命令配置和测试网络。 SSH服务: 掌握SSH(Secure Shell)的安全远程登录配置,包括密钥认证、端口转发、SSH配置文件(`sshd_config`)的优化。学习如何安全地管理远程服务器。 Web服务器(Apache/Nginx): 详细介绍Apache和Nginx的安装、配置和虚拟主机设置。学习如何部署静态和动态网站,理解HTTP协议的工作原理。 数据库服务器(MySQL/PostgreSQL): 讲解MySQL或PostgreSQL的安装、基础配置、用户权限管理、数据库备份与恢复。 防火墙配置(iptables/firewalld): 学习使用 `iptables` 或 `firewalld` 配置系统防火墙,理解规则链、策略和端口开放。保障系统免受未经授权的访问。 安全加固策略: 讲解Linux系统的常见安全漏洞和攻击方式。学习SSH安全配置、禁用不必要的服务、配置SELinux或AppArmor、定期更新系统、使用入侵检测系统(如Fail2ban)等安全加固措施。 第五部分:高级主题与故障排除 本部分将深入探讨一些更高级的Linux管理技术,并提供系统故障排除的实用方法。 Shell脚本进阶: 学习更复杂的Shell脚本技巧,如正则表达式、awk, sed等文本处理工具的运用,编写更强大的自动化脚本。 Cron任务调度: 掌握 `cron` 服务的配置,学习如何定时执行脚本或命令,实现例行维护和备份任务的自动化。 文件传输与同步(SCP, SFTP, rsync): 学习使用 `scp`, `sftp` 进行安全的文件传输。深入掌握 `rsync` 的强大功能,实现高效、增量式的文件同步。 系统故障排除方法论: 建立一套系统的故障排除思路。从收集信息、分析日志、定位问题、验证解决方案到记录总结,学习如何高效解决Linux系统遇到的各种疑难杂症。 性能调优基础: 介绍系统性能调优的基本思路,包括识别瓶颈、优化配置参数(如内核参数、服务配置)等,以提升系统响应速度和吞吐量。 版本控制系统(Git): 简要介绍Git的基本概念和常用命令,为学习和管理配置文件、脚本等提供基础。 本书特色 实战导向: 每一章节都配有大量的实践操作示例,鼓励读者动手实践,在操作中学习。 由浅入深: 从基础概念入手,逐步深入到复杂的配置和管理技巧,适合不同程度的读者。 系统全面: 涵盖Linux系统管理的各个关键方面,构建完整的知识框架。 原理与实践结合: 不仅讲解“如何做”,更注重“为什么这样做”,帮助读者理解背后的原理。 案例分析: 针对常见的系统问题,提供分析思路和解决方案,提升读者的故障排除能力。 《Linux运维之道:从入门到精通》将是您学习和精通Linux系统管理不可或缺的指南,帮助您在IT职业生涯中打下坚实的基础,并不断提升专业技能。