重磅推荐
【产品特色】


【编辑推荐】

1. 畅销书全新升级,已经过20000 读者验证
2. 基于CentOS 8全新改版,新增了Docker技术,购买图书即加入阿铭Linux圈子,共享人脉和资源
3.小白和女友也能轻松学会的Linux入门书,提供配套源代码和PPT
4.圈内大佬DAOPS基金会中国区董事和高效运维社区发起人萧田国、新运维社区发起人赵舜东、优维科技CEO王津银强烈推荐




【内容简介】

本书是一本入门级的Linux学习教材,内容由浅入深,案例丰富,通俗易懂!书中分两部分:前面为基础知识,涉及安装、登录、文件和目录管理、磁盘管理、Vim、压缩和解压缩等;后面为进阶知识,包括LAMP、LNMP、NFS、FTP、Linux集群和Zabbix监控等。与上一版相比,这版不仅将虚拟机软件由VMware 10改为VMware 14,基于CentOS 8进行了全面修订,删掉了LAMP环境搭建与配置,还增加了Docker等内容。


【作者简介】

李世明
拥有12年运维经验,是前腾讯高级运维工程师,现任猿课在线教育运维方向教研总监、移动安全领域头部创业公司运维总监。


【媒体评论】

好书就像好酒,历久弥香。本书在传承精华的基础上及时将系统更新到CentOS 8, 更是增加了容器技术Docker。好书,你值得拥有。
——萧田国 DAOPS基金会中国区董事,高效运维社区发起人

学习Linux有两个重要条件:不懈的努力和一本通俗易懂的书。本书正是为初学者打造的、从0到1学习Linux的好帮手,并且书中的很多案例可以即刻用于实际工作。作者阿铭拥有十多年的Linux运维经验,既是运维领城的老兵,也是Linux专家,值得信赖。打开本书,跟随作者开启你的Linux之旅吧!
——赵舜东 新运维社区发起人

Linux是在服务器领域使用非常广泛的操作系统,每个IT运维人员都无法绕开它。作者经验丰富,将Linux方方面面的知识点总结、提炼为本书。本书是一本非常棒的Linux指南,细读之后,必将受益良多!
——王津银 优维科技CEO


【目录】

目 录

第1 章 学习之初 1

1.1 Linux 是什么 1

1.1.1 Linux 的由来 1

1.1.2 Linux 怎么读 2

1.1.3 常见Linux 发行版 2

1.1.4 我们要学习哪个Linux 发行版 2

1.2 Linux 系统管理员要养成的习惯 3

1.2.1 要习惯使用命令行 3

1.2.2 操作要严谨 4

1.2.3 安全不可忽视 4

1.3 学习建议 5

1.3.1 稳中求进 5

1.3.2 善于总结文档 5

1.3.3 复习很关键 5

1.3.4 举一反三 6

1.4 课后习题 6

第2 章 安装CentOS 7

2.1 安装虚拟机 7

2.1.1 下载虚拟机软件 7

2.1.2 安装虚拟机 8

2.1.3 新建一个虚拟机 10

2.2 安装Linux 操作系统 14

2.2.1 下载CentOS 镜像文件 14

2.2.2 设置虚拟光驱 14

2.2.3 安装CentOS 16

23 次亲密接触 22

2.3.1 初次使用命令行登录 22

2.3.2 设置网络 22

2.3.3 学会使用快捷键 26

2.3.4 学会查询帮助文档——man命令 26

2.3.5 Linux 系统目录结构 27

2.3.6 如何正确关机、重启 30

2.3.7 忘记root 密码怎么办 30

2.3.8 学会使用救援模式 32

2.4 课后习题 35

第3 章 远程登录Linux 系统 36

3.1 安装PuTTY 36

3.1.1 下载PuTTY 36

3.1.2 安装 37

3.2 远程登录 37

3.2.1 使用密码直接登录 37

3.2.2 使用密钥认证 38

3.3 两台Linux 相互登录 41

3.3.1 克隆CentOS 41

3 3.2 使用密码登录 42

3.3.3 使用密钥登录 43

3.4 课后习题 45

第4 章 Linux 文件和目录管理 46

4.1 路径和相对路径 46

4.1.1 命令cd 46

4.1.2 命令mkdir 47

4.1.3 命令rmdir 48

4.1.4 命令rm 48

42 环境变量PATH 49

4.2.1 命令cp 50

4.2.2 命令mv 51

4.3 几个与文档相关的命令 52

4.3.1 命令cat 52

4.3.2 命令tac 53

4.3.3 命令more 53

4.3.4 命令less 53

4.3.5 命令head 53

4.3.6 命令tail 54

4.4 文件的所有者和所属组 54

4.5 Linux 文件属性 55

4.6 更改文件的权限 56

4.6.1 命令chgrp 56

4.6.2 命令chown 57

4.6.3 命令chmod 57

4.6.4 命令umask 59

4.6.5 修改文件的特殊属性 60

4.7 在Linux 下搜索文件 62

4.7.1 用which 命令查找可执行文件的路径 62

4.7.2 用whereis 命令查找文件 62

4.7.3 用locate 命令查找文件 63

4.7.4 使用find 搜索文件 63

4.8 Linux 文件系统简介 65

4.9 Linux 文件类型 66

4.9.1 常见文件类型 66

4.9.2 Linux 文件后缀名 66

4.9.3 Linux 的链接文件 66

4.10 课后习题 68

第5 章 Linux 系统用户与用户组管理 70

5.1 认识 /etc/passwd 和 /etc/shadow 70

5.1.1 解说/etc/passwd 71

5.1.2 解说/etc/shadow 71

5.2 用户和用户组管理 72

5.2.1 新增组的命令groupadd 72

5.2.2 删除组的命令groupdel 73

5.2.3 增加用户的命令useradd 73

5.2.4 删除用户的命令userdel 74

5.3 用户密码管理 74

5.3.1 命令passwd 74

5.3.2 命令mkpasswd 75

5.4 用户身份切换 75

5.4.1 命令su 76

5.4.2 命令sudo 76

5.4.3 不允许root 远程登录Linux 78

5.5 课后习题 78

第6 章 Linux 磁盘管理 80

6.1 查看磁盘或者目录的容量 80

6.1.1 命令df 80

6.1.2 命令du 81

6.2 磁盘的分区和格式化 83

6.2.1 增加虚拟磁盘 83

6.2.2 命令fdisk 84

6.3 格式化磁盘分区 92

6.3.1 命令mke2fs、mkfsext2、mkfsext3、mkfsext4 和mkfsxfs 92

6.3.2 命令e2label 95

6.4 挂载/卸载磁盘 95

6.4.1 命令mount 95

6.4.2 /etc/fstab 配置文件 97

6.4.3 命令blkid 99

6.4.4 命令umount 100

6.5 建立一个swap 文件增加虚拟内存 101

6.6 课后习题 101

第7 章 文本编辑工具Vim 103

7.1 Vim 的3 种常用模式 103

7.1.1 一般模式 103

7.1.2 编辑模式 104

7.1.3 命令模式 105

7.2 Vim 实践 105

7.3 课后习题 107

第8 章 文档的压缩与打包 108

8.1 gzip 压缩工具 108

8.2 bzip2 压缩工具 109

8.3 xz 压缩工具 109

8.4 tar 打包工具 110

8.4.1 打包的同时使用gzip 压缩 112

8.4.2 打包的同时使用bzip2 压缩 112

8.5 使用zip 压缩 113

8.6 zcat、bzcat 命令的使用 114

8.7 课后习题 114

第9 章 安装RPM 包或源码包 115

9.1 RPM 工具 115

9.1.1 安装RPM 包 116

9.1.2 升级RPM 包 116

9.1.3 卸载RPM 包 116

9.1.4 查询一个包是否已安装 117

9.1.5 得到一个已安装的RPM包的相关信息 117

9.1.6 列出一个RPM 包的安装文件 118

9.1.7 列出某个文件属于哪个RPM包 119

9.2 yum 工具 119

9.2.1 列出所有可用的RPM 包 119

9.2.2 搜索RPM 包 120

9.2.3 安装RPM 包 120

9.2.4 卸载RPM 包 121

9.2.5 升级RPM 包 122

9.2.6 更改yum 仓库为国内镜像站 122

9.2.7 利用yum 工具下载RPM 包 123

9.3 安装源码包 124

9.3.1 下载源码包 124

9.3.2 解压源码包 124

9.3.3 配置相关的选项并生成Makefile 125

9.3.4 进行编译 126

9.3.5 安装 126

9.4 课后习题 127

第10 章 shell 基础知识 128

10.1 什么是shell 128

10.1.1 记录命令历史 128

10.1.2 命令和文件名补全 129

10.1.3 别名 129

10.1.4 通配符 130

10.1.5 输入/输出重定向 130

10.1.6 管道符 130

10.1.7 作业控制 131

10.2 变量 132

10.2.1 命令env 132

10.2.2 命令set 134

10.3 系统环境变量与个人环境变量的配置文件 137

10.4 Linux shell 中的特殊符号 137

10.41 *代表零个或多个任意字符 137

10.4.2 只代表一个任意的字符 137

10.4.3 注释符号# 138

10.4.4 脱义字符\ 138

10.4.5 再说管道符| 138

10.4.6 特殊符号$ 142

10.4.7 特殊符号; 142

10.4.8 特殊符号~ 143

10.4.9 特殊符号& 143

10.4.10 重定向符号>、>>、2>和2>> 143

10.4.11 中括号[] 143

10.4.12 特殊符号&&和|| 144

10.5 课后习题 144

第11 章 正则表达式 146

11.1 grep/egrep 工具的使用 146

11.1.1 过滤出带有某个关键词的行,并输出行号 147

11.1.2 过滤出不带有某个关键词的行,并输出行号 147

11.1.3 过滤出所有包含数字的行 148

11.1.4 过滤出所有不包含数字的行 148

11.1.5 过滤掉所有以#开头的行 148

11.1.6 过滤出任意一个字符和重复字符 149

11.1.7 指定要过滤出的字符出现次数 150

11.1.8 过滤出一个或多个指定的字符 150

11.1.9 过滤出零个或一个指定的字符 151

11.1.10 过滤出字符串1 或者字符串2 151

11.1.11 egrep 中()的应用 151

11.2 sed 工具的使用 152

11.2.1 打印某行 152

11.2.2 打印包含某个字符串的行 152

11.2.3 删除某些行 153

11.2.4 替换字符或者字符串 153

11.2.5 调换两个字符串的位置 154

11.2.6 直接修改文件的内容 155

11.2.7 sed 练习题 155

11.3 awk 工具的使用 156

11.3.1 截取文档中的某个段 157

11.3.2 匹配字符或者字符串 157

11.3.3 条件操作符 158

11.3.4 awk 的内置变量 159

11.3.5 awk 中的数学运算 160

11.3.6 awk 练习题 161

11,4 课后习题 162

第12 章 shell 脚本 163

12.1 什么是shell 脚本 163

12.1.1 shell 脚本的创建和执行 164

12.1.2 命令date 165

12.2 shell 脚本中的变量 165

12.2.1 数学运算 166

12.2.2 和用户交互 166

12.2.3 shell 脚本预设变量 167

12.3 shell 脚本中的逻辑判断 168

12.3.1 不带else 168

12.3.2 带有else 168

12.3.3 带有elif 169

12.3.4 和文件相关的判断 170

12.3.5 case 逻辑判断 171

12.4 shell 脚本中的循环 172

12.4.1 for 循环 172

12.4.2 while 循环 173

12.5 shell 脚本中的函数 173

12.6 shell 脚本中的中断和继续 174

12.6.1 break 174

12.6.2 continue 175

12.6.3 exit 175

12.7 shell 脚本练习题 176

12.8 课后习题 178

第13 章 Linux 系统管理技巧 179

13.1 监控系统的状态 179

13.1.1 使用w 命令查看当前系统的负载 179

13.1.2 用vmstat 命令监控系统的状态 182

13.1.3 用top 命令显示进程所占的系统资源 183

13.1.4 用sar 命令监控系统状态 184

13.1.5 用nload 命令查看网卡流量 186

13.1.6 用free 命令查看内存使用状况 186

13.1.7 用ps 命令查看系统进程 187

13.1.8 用netstat 命令查看网络状况 189

13.2 抓包工具 191

13.2.1 tcpdump 工具 191

13.2.2 wireshark 工具 192

13.3 Linux 网络相关 192

13.3.1 用ifconfig 命令查看网卡IP 193

13.3.2 给一个网卡设定多个IP 193

13.3.3 查看网卡连接状态 194

13.3.4 更改主机名 195

13.3.5 设置DNS 195

13.4 Linux 的防火墙 196

13.4.1 SELinux 196

13.4.2 netfilter 197

13.4.3 firewalld 204

13.5 Linux 系统的任务计划 210

13.5.1 命令crontab 210

13.5.2 cron 练习题 211

13.6 Linux 系统服务管理 212

13.6.1 chkconfig 服务管理工具 212

13.6.2 systemd 服务管理 213

13.7 Linux 下的数据备份工具rsync 216

13.7.1 rsync 的命令格式 217

13.7.2 rsync 常用选项 217

13.7.3 rsync 应用实例 222

13.8 Linux 系统日志 227

13.8.1 /var/log/messages 228

13.8.2 dmesg 229

13.8.3 安全日志 229

13.9 xargs 与exec 230

13.9.1 xargs 应用 230

13.9.2 exec 应用 230

13.10 screen 工具介绍 231

13.10.1 使用nohup 231

13.10.2 screen 工具的使用 231

13.11 课后习题 232

第14 章 LNMP 环境配置 234

14.1 安装MySQL 234

14.1.1 下载软件包 234

14.1.2 初始化 235

14.1.3 MySQL 配置文件 236

14.2 安装PHP 236

14.3 安装Nginx 239

14.4 Nginx 配置 242

14.4.1 默认虚拟主机 242

14.4.2 用户认证 244

14.4.3 域名或链接重定向 245

14.4.4 Nginx 的访问日志 247

14.4.5 配置静态文件不记录日志并添加过期时间 248

14.4.6 Nginx 防盗链 250

14.4.7 访问控制 251

14.4.8 Nignx 解析PHP 253

14.4.9 Nginx 代理 253

14.4.10 Nignx 配置SSL 257

14.5 php-fpm 配置 261

14.5.1 php-fpm 的pool 261

14.5.2 php-fpm 的慢执行日志 262

14.5.3 php-fpm 定义open_basedir 263

14.5.4 php-fpm 进程管理 263

14.6 课后习题 264

第15 章 常用MySQL 操作 265

15.1 更改MySQL 数据库root 的密码 265

15.2 连接数据库 268

15.3 MySQL 基本操作的常用命令 268

15.3.1 查询当前库 268

15.3.2 查询某个库的表 269

15.3.3 查看某个表的全部字段 270

15.3.4 查看当前是哪个用户 271

15.3.5 查看当前所使用的数据库 271

15.3.6 创建一个新库 272

15.3.7 创建一个新表 272

15.3.8 查看当前数据库的版本 272

15.3.9 查看MySQL 的当前状态 272

15.3.10 查看MySQL 的参数 273

15.3.11 修改MySQL 的参数 273

15.3.12 查看当前MySQL 服务器的队列 273

15.3.13 创建一个普通用户并授权 274

15.4 常用的SQL 语句 274

15.4.1 查询语句 274

15.4.2 插入一行 275

15.4.3 更改表的某一行 275

15.4.4 清空某个表的数据 275

15.4.5 删除表 276

15.4.6 删除数据库 276

15.5 MySQL 数据库的备份与恢复 276

15.5.1 MySQL 备份 276

15.5.2 MySQL 的恢复 276

15.6 课后习题 276

第16 章 NFS 服务配置 278

16.1 服务端配置NFS 278

16.2 客户端挂载NFS 279

16.3 命令exportfs 280

16.4 课后习题 281

第17 章 配置FTP 服务 282

17.1 使用vsftpd 搭建FTP 服务 282

17.1.1 安装vsftpd 282

17.1.2 建立账号 282

17.1.3 创建和用户对应的配置文件 283

17.1.4 修改全局配置文件/etc/vsftpd/vsftpdconf 284

17.2 安装配置pure-ftpd 284

17.2.1 安装pure-ftpd 284

17.2.2 配置pure-ftpd 285

17.2.3 建立账号 285

17.2.4 测试pure-ftpd 286

17.3 课后习题 286

第18 章 配置Tomcat 287

18.1 安装Tomcat 287

18.1.1 安装JDK 287

18.1.2 安装Tomcat 288

18.2 配置Tomcat 290

18.2.1 配置Tomcat 服务的访问端口 290

18.2.2 Tomca 的虚拟主机 290

18.3 测试Tomcat 解析JSP 292

18.4 Tomcat 日志 293

18.5 Tomcat 连接MySQL 293

第19 章 MySQL Replication 配置 296

19.1 配置MySQL 服务 296

19.2 配置Replication 297

19.2.1 设置master(主) 298

19.2.2 设置slave(从) 299

19.3 测试主从 300

19.4 课后习题 301

第20 章 Linux 集群 302

20.1 搭建高可用集群 302

20.1.1 keepalived 的工作原理 303

20.1.2 安装keepalived 303

20.1.3 keepalived+Nginx 实现 Web 高可用 303

20.2 搭建负载均衡集群 309

20.2.1 介绍LVS 309

20.2.2 LVS 的调度算法 313

20.2.3 使用keepalived+LVS DR 模式实现负载均衡 315

20.2.4 使用Nginx 实现负载均衡 317

20.3 课后习题 319

第21 章 配置监控服务器 320

21.1 Zabbix 监控介绍 320

21.1.1 Zabbix 组件 321

21.1.2 Zabbix 架构 321

21.2 Zabbix 监控安装和部署 322

21.2.1 用yum 安装Zabbix 322

21.2.2 配置MySQL 323

21.2.3 配置Web 界面 324

21.2.4 部署Zabbix 客户端 327

21.3 Zabbix 配置和使用 328

21.3.1 忘记Admin 密码 328

21.3.2 添加主机 328

21.3.3 添加模板 330

21.3.4 主机链接模板 332

21.3.5 图形中的中文乱码 332

21.3.6 添加自定义监控项目 333

21.3.7 配置告警 335

第22 章 Docker 容器 338

22.1 在CentOS 8 上安装Docker 338

22.1.1 下载Docker 338

22.1.2 在CentOS 8 上安装 Docker 339

22.2 Docker 镜像 340

22.3 容器 342

22.4 创建镜像 345

22.4.1 通过容器创建镜像 345

22.4.2 使用模板创建镜像 345

22.4.3 使用Dockerfile 创建镜像 346

22.4.4 Dockerfile 实践 349

22.5 Docker 私人仓库 350

22.5.1 部署harbor 前的准备工作 351

22.5.2 部署harbor 351

22.5.3 使用harbor 352




返回顶部