Ubuntu Linux系统管理与运维实战
本书内容
Linux是目前最流行的操作系统之一,而Ubuntu是众多Linux发行版中的佼佼者。它以开源、稳定和广泛的社区支持等特点,被广泛用于桌面系统、服务器和二次开发的生产环境。《Ubuntu Linux系统管理与运维实战》使用Ubuntu 22.04 LTS版本,通过由浅入深、循序渐进的方式讲解Ubuntu系统管理与运维技能。
《Ubuntu Linux系统管理与运维实战》共分13章,内容包括了解Ubuntu、安装Ubuntu、桌面环境、文件系统基础知识、文件和目录管理、用户和权限管理、系统启动和关闭、服务和进程管理、软件包管理、磁盘和文件系统管理、高级网络管理、网络服务管理以及系统安全。
本书作者
张春晓,计算机软件与理论硕士,长期从事UNIX及Linux系统维护达15年之久,对Shell编程有深入的研究。热衷于UNIX的严谨与简洁,又痴迷于Linux的自由与开放,整日与UNIX及Linux为伴,从中获益匪浅。著有图书《Linux从零开始学(视频教学版)》《CentOS 8系统管理与运维实战》《LAMP+LNMP网站架构与运维实战》《Kubernetes零基础快速入门》《Ubuntu Linux系统管理实战》等。
本书读者
《Ubuntu Linux系统管理与运维实战》内容精练、重点突出、实例丰富,适合Linux初学者、运维人员、应用开发人员、网络管理人员和应用部署人员作为参考书。《Ubuntu Linux系统管理与运维实战》也可作为高等院校或高职高专Linux系统管理与运维课程的教材。
本书目录
目 录
第1章 了解Ubuntu 1
1.1 Linux是什么 1
1.2 Linux发行版 3
1.2.1 Debian 3
1.2.2 Ubuntu 4
1.2.3 Arch Linux 4
1.2.4 Fedora 4
1.2.5 openSUSE 5
1.2.6 CentOS 5
1.2.7 Red Hat Enterprise Linux 6
1.3 了解Ubuntu 6
1.3.1 什么是Ubuntu 6
1.3.2 Ubuntu的版本 7
1.3.3 Ubuntu的特点 8
1.3.4 如何获取Ubuntu 8
1.4 GNU GPL和POSIX介绍 9
1.4.1 什么是GNU GPL 9
1.4.2 GNU GPL的发展历史 9
1.4.3 如何正确理解GNU GPL 9
1.4.4 了解POSIX标准 10
1.5 学习Ubuntu的方法 10
第2章 安装Ubuntu 11
2.1 准备安装Ubuntu 11
2.1.1 获取安装介质 11
2.1.2 Ubuntu的硬件要求 13
2.1.3 Ubuntu的安装方式 13
2.2 虚拟机软件 14
2.2.1 常见的虚拟机软件 14
2.2.2 选择虚拟机软件 15
2.2.3 安装Oracle VM VirtualBox 15
2.3 安装Ubuntu桌面系统 19
2.3.1 下载ISO镜像文件 19
2.3.2 创建虚拟机 19
2.3.3 安装Ubuntu桌面系统 23
2.4 安装Ubuntu服务器系统 29
2.5 将Ubuntu安装到U盘中 36
2.5.1 Rufus工具 37
2.5.2 制作LiveUSB Ubuntu系统 37
2.6 安装过程中的常见问题 39
2.6.1 选择32位还是64位的Ubuntu 40
2.6.2 应该选择哪种语言 40
2.6.3 Ubuntu中的磁盘分区与Windows中的磁盘分区是否相同 40
第3章 桌面环境 41
3.1 常见的桌面环境 41
3.1.1 KDE 41
3.1.2 GNOME 43
3.1.3 Xfce 45
3.2 使用GNOME 46
3.2.1 桌面布局 46
3.2.2 活动按钮 47
3.2.3 工作区 48
3.2.4 浮动面板 49
3.2.5 显示应用程序 50
3.2.6 锁定、关闭或者重启计算机 50
第4章 文件系统基础知识 51
4.1 文件系统的层次结构 51
4.1.1 树形层次结构 51
4.1.2 路径名 53
4.1.3 Linux目录结构 54
4.2 文件类型 56
4.2.1 普通文件 56
4.2.2 目录文件 58
4.2.3 字符设备文件 59
4.2.4 块设备文件 60
4.2.5 管道 61
4.2.6 套接字 64
4.2.7 文件链接 64
4.3 文件权限 66
4.3.1 文件权限介绍 67
4.3.2 显示文件权限 68
4.3.3 修改文件权限 70
4.3.4 更改文件所有权 72
4.3.5 文件的特殊权限 73
第5章 文件和目录管理 75
5.1 创建文件 75
5.1.1 使用touch命令创建文件 76
5.1.2 使用重定向创建文件 76
5.1.3 使用vi命令创建文件 77
5.2 显示文件列表 80
5.2.1 使用ls命令显示文件列表 80
5.2.2 显示隐藏文件 82
5.2.3 递归显示目录内容 83
5.3 显示文件内容 84
5.3.1 拼接文件内容:cat命令 84
5.3.2 分屏显示:more命令 87
5.3.3 前后翻页分屏显示:less命令 89
5.3.4 查看前几行内容:head命令 89
5.3.5 查看最后几行内容:tail命令 90
5.4 文件的常用操作 92
5.4.1 复制文件 92
5.4.2 移动文件 93
5.4.3 删除文件 94
5.4.4 比较文件 95
5.4.5 重命名文件 97
5.5 搜索文件 97
5.5.1 快速搜索文件:locate命令 97
5.5.2 按类型搜索文件:whereis命令 99
5.5.3 搜索二进制文件:which命令 100
5.5.4 全功能搜索文件:find命令 100
5.6 文本内容筛选 102
5.6.1 使用grep命令检索文本内容 102
5.6.2 筛选其他命令的输出结果 103
5.6.3 在grep命令中使用正则表达式 104
5.7 文本排序 106
5.7.1 文本排序命令 106
5.7.2 合并有序文件 108
5.8 文件的压缩和解压 109
5.8.1 压缩文件 109
5.8.2 解压文件 111
5.9 目录管理 112
5.9.1 显示当前工作目录 112
5.9.2 改变目录 112
5.9.3 创建目录 113
5.9.4 移动目录 114
5.9.5 复制目录 114
5.9.6 删除目录 114
第6章 用户和权限管理 115
6.1 用户和用户组基础 115
6.1.1 用户和用户标识号 115
6.1.2 用户组和组标识号 116
6.1.3 /etc/passwd文件 117
6.1.4 /etc/shadow文件 118
6.1.5 /etc/group文件 119
6.2 用户管理 120
6.2.1 添加用户:useradd命令 120
6.2.2 添加用户:adduser命令 121
6.2.3 修改用户:usermod命令 123
6.2.4 删除用户:userdel命令 123
6.2.5 修改用户密码:passwd命令 124
6.2.6 显示用户信息:id命令 125
6.2.7 用户间切换:su命令 126
6.2.8 受限的特权:sudo命令 126
6.3 用户组管理 128
6.3.1 添加用户组:groupadd命令 129
6.3.2 添加用户组:addgroup命令 129
6.3.3 修改用户组:groupmod命令 129
6.3.4 删除用户组:groupdel命令 129
6.4 权限管理 130
6.4.1 权限概述 130
6.4.2 改变文件所有者:chown命令 132
6.4.3 改变文件所属组:chgrp命令 133
6.4.4 设置权限掩码:umask命令 133
6.4.5 修改文件访问权限:chmod命令 134
6.4.6 修改文件访问控制列表:setfacl命令 136
第7章 系统启动和关闭 138
7.1 Ubuntu的启动过程 138
7.1.1 BIOS阶段 138
7.1.2 引导程序阶段 139
7.1.3 内核阶段 142
7.1.4 进入系统 142
7.2 引导相关组件 143
7.2.1 主引导记录 143
7.2.2 GRUB启动程序 143
7.3 登录 149
7.3.1 login进程 149
7.3.2 选择Shell 151
7.3.3 用户初始化文件 152
7.4 关闭系统 154
7.4.1 shutdown命令 154
7.4.2 init命令 155
7.4.3 其他命令 155
第8章 服务和进程管理 156
8.1 初始化程序概述 156
8.1.1 初始化程序 157
8.1.2 systemd 162
8.1.3 systemd的基本配置文件 163
8.2 systemd单元 164
8.2.1 单元类型 164
8.2.2 列出单元 166
8.2.3 查看单元状态 169
8.2.4 单元依赖 170
8.2.5 单元配置文件 172
8.3 systemd单元管理 175
8.3.1 启动服务 175
8.3.2 停止服务 175
8.3.3 重启服务 175
8.3.4 重新加载服务配置文件 176
8.3.5 查看服务状态 176
8.3.6 配置服务自动启动 177
8.3.7 禁止服务自动启动 178
8.3.8 重新加载单元配置文件 179
8.3.9 显示服务属性 179
8.3.10 设置服务属性 180
8.4 常用的systemd命令 180
8.4.1 systemd-analyze命令分析系统启动时的性能 181
8.4.2 hostnamectl命令 183
8.4.3 localectl命令 184
8.4.4 timedatectl命令 184
8.4.5 loginctl命令 185
8.5 目标 186
8.5.1 理解目标 186
8.5.2 切换目标 189
8.5.3 默认目标 189
8.6 日志管理 190
8.6.1 读取日志 190
8.6.2 过滤输出 191
8.6.3 日志大小限制 192
8.6.4 手动清理日志 193
8.7 进程管理 194
8.7.1 查询进程及其状态 194
8.7.2 监控进程及系统资源 196
8.7.3 终止进程 201
8.7.4 调整进程的优先级 202
第9章 软件包管理 203
9.1 软件包管理概述 203
9.1.1 软件包管理的基本概念 204
9.1.2 软件包管理工具 205
9.2 apt-get命令 207
9.2.1 搜索软件包 207
9.2.2 apt-get命令的基本语法 210
9.2.3 安装软件包 210
9.2.4 重新安装软件包 211
9.2.5 删除软件包 212
9.2.6 更新和升级软件包 212
9.3 apt命令 213
9.3.1 apt命令的基本语法 213
9.3.2 搜索软件包 214
9.3.3 安装软件包 214
9.3.4 删除软件包 215
9.3.5 更新和升级软件包 215
9.4 aptitude命令 216
9.4.1 aptitude命令的基本语法 216
9.4.2 搜索软件包 217
9.4.3 安装软件包 219
9.4.4 删除软件包 219
9.4.5 更新和升级软件包 220
9.4.6 图形化界面 220
9.5 synaptic软件管理工具 222
9.5.1 安装软件包 222
9.5.2 删除软件包 224
9.5.3 更新和升级软件包 225
第10章 磁盘和文件系统管理 226
10.1 磁盘管理基础 226
10.1.1 磁头 226
10.1.2 磁道 227
10.1.3 柱面 227
10.1.4 扇区 227
10.1.5 磁盘分区 228
10.2 文件系统相关基础知识 228
10.2.1 常见的文件系统 228
10.2.2 块 230
10.2.3 引导块 231
10.2.4 超级块 231
10.2.5 索引节点 232
10.3 创建文件系统 233
10.3.1 创建分区 233
10.3.2 mkfs命令 237
10.3.3 创建Ext2/Ext3/Ext4文件系统 240
10.3.4 创建NTFS文件系统 241
10.3.5 创建FAT文件系统 241
10.3.6 调整文件系统 243
10.4 挂载与卸载文件系统 244
10.4.1 挂载点 244
10.4.2 mount和findmnt命令 244
10.4.3 /etc/fstab文件 247
10.4.4 手工挂载文件系统 248
10.4.5 自动挂载文件系统 249
10.4.6 卸载文件系统 249
10.5 检查与修复文件系统 250
10.5.1 fsck和e2fsck命令 250
10.5.2 交互式检查与修复文件系统 251
10.5.3 自动检查与修复文件系统 252
10.5.4 恢复严重受损的超级块 252
10.6 磁盘阵列 253
10.6.1 磁盘阵列介绍 253
10.6.2 磁盘阵列级别 254
10.6.3 创建磁盘阵列 256
10.7 逻辑卷管理 261
10.7.1 逻辑卷管理的基本概念 261
10.7.2 安装LVM 262
10.7.3 创建物理卷 262
10.7.4 创建卷组 265
10.7.5 创建逻辑卷 266
10.7.6 扩展逻辑卷 267
10.7.7 压缩逻辑卷 268
第11章 网络管理 270
11.1 网络接口 270
11.1.1 查看网络接口 270
11.1.2 网络接口命名 274
11.1.3 配置网络接口IP地址 275
11.1.4 域名解析 278
11.2 常用的网络配置命令 278
11.2.1 ifconfig命令 279
11.2.2 ip命令 280
11.2.3 route命令 287
11.2.4 netstat命令 288
11.2.5 nslookup命令 291
11.2.6 ping命令 292
11.3 防火墙 293
11.3.1 ufw简介 293
11.3.2 ufw配置 293
11.3.3 ufw与应用系统的整合 295
11.3.4 ufw日志管理 296
第12章 网络服务管理 297
12.1 SSH服务 297
12.1.1 SSH协议 298
12.1.2 配置SSH服务 298
12.1.3 管理SSH服务 301
12.1.4 使用账号密码登录SSH服务 302
12.1.5 使用密钥对登录SSH服务 304
12.2 FTP文件传输服务 308
12.2.1 FTP文件传输协议 308
12.2.2 安装vsftpd 308
12.2.3 vsftpd配置文件 309
12.2.4 管理FTP用户:匿名用户、本地用户、虚拟用户 312
12.2.5 演示:使用FTP传输文件 316
12.3 DNS域名服务 321
12.3.1 域名、IP地址、域名服务器 321
12.3.2 BIND以及组件 323
12.3.3 BIND配置文件 323
12.3.4 配置区域 328
12.3.5 资源记录 329
12.3.6 演示:DNS服务器配置实例 330
12.4 NFS网络文件服务 333
12.4.1 安装NFS服务 334
12.4.2 共享文件系统 334
12.4.3 挂载NFS文件系统 336
12.4.4 NFS文件系统权限 337
12.5 其他网络服务管理 340
12.5.1 Samba资源共享 340
12.5.2 Apache万维网服务 343
12.5.3 MySQL数据库服务 346
第13章 系统和网络安全 350
13.1 用户管理安全 350
13.1.1 管理好root用户 350
13.1.2 用户资料安全 351
13.1.3 密码策略 352
13.2 防火墙 354
13.2.1 ufw 354
13.2.2 IP伪装 354
13.2.3 日志 355
13.3 AppArmor 355
13.3.1 安装AppArmor 355
13.3.2 使用AppArmor 356
13.3.3 AppArmor配置文件 357
13.4 数字证书 359
13.4.1 获取数字证书 359
13.4.2 生成密钥 359
13.4.3 生成证书签署请求 360
13.4.4 安装证书 361
13.5 弱点扫描 361
13.5.1 安装GVM(OpenVAS) 361
13.5.2 OpenVAS仪表盘 365
13.5.3 扫描任务管理 365
13.5.4 扫描报表 367
13.6 入侵检测 368
13.6.1 安装Snort 368
13.6.2 Snort配置文件 369
13.6.3 Snort检测规则 370
13.6.4 测试Snort 371
编辑推荐
围绕如下技能块进行讲解。在介绍每块内容时,都给出了大量具体的操作实例,帮助读者快速掌握相关系统操作技能,并能初步胜任Linux的日常管理和运维工作。
1安装和配置、桌面环境、文件系统、文件和目录管理、用户和权限管理
2系统的启动和关闭、服务和进程管理、软件包管理、磁盘和文件系统管理
3网络管理、网络服务管理、系统和网络安全
本文摘自《Ubuntu Linux系统管理与运维实战》,获出版社和作者授权发布。