第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发行版 3
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 复习很关键 6
1.3.4 举一反三 6
1.4 课后习题 6
第2章 安装CentOS 7
2.1 安装虚拟机 7
2.1.1 下载虚拟机软件 8
2.1.2 安装虚拟机 8
2.1.3 新建一个虚拟机 11
2.2 安装Linux操作系统 14
2.2.1 下载CentOS镜像 15
2.2.2 设置虚拟光驱 15
2.2.3 安装CentOS 16
2.3 第一次亲密接触 31
2.3.1 初次使用命令行登录 31
2.3.2 设置网络 32
2.3.3 图形和命令行切换 35
2.3.4 Linux的7个运行级别 35
2.3.5 学会使用快捷键 36
2.3.6 学会查询帮助文档——man 36
2.3.7 Linux系统目录结构 37
2.3.8 如何正确关机、重启 39
2.3.9 忘记root密码怎么办 40
2.3.10 学会使用救援模式 41
2.4 课后习题 42
第3章 远程登录Linux系统 43
3.1 安装PuTTY 43
3.1.1 下载PuTTY 43
3.1.2 安装 44
3.2 设置IP 44
3.2.1 增加网卡 44
3.2.2 配置IP 44
3.3 远程登录 45
3.3.1 使用密码直接登录 45
3.3.2 使用密钥认证 46
3.4 两台Linux相互登录 48
3.4.1 克隆CentOS 48
3.4.2 使用密码登录 49
3.4.3 使用密钥登录 49
3.5 课后习题 51
第4章 Linux文件和目录管理 52
4.1 绝对路径和相对路径 52
4.1.1 命令cd 53
4.1.2 命令mkdir 53
4.1.3 命令rmdir 54
4.1.4 命令rm 54
4.2 环境变量PATH 55
4.2.1 命令cp 56
4.2.2 命令mv 57
4.3 几个与文档相关的命令 58
4.3.1 命令cat 59
4.3.2 命令tac 59
4.3.3 命令more 59
4.3.4 命令less 60
4.3.5 命令head 60
4.3.6 命令tail 60
4.4 文件的所属主和所属组 61
4.5 Linux文件属性 61
4.6 更改文件的权限 63
4.6.1 命令chgrp 63
4.6.2 命令chown 64
4.6.3 命令chmod 64
4.6.4 命令umask 65
4.6.5 修改文件的特殊属性 66
4.7 在Linux下搜索文件 69
4.7.1 用which命令查找可执行文件的绝对路径 69
4.7.2 用whereis命令查找文件 69
4.7.3 用locate命令查找文件 69
4.7.4 使用find搜索文件 70
4.8 Linux文件系统简介 71
4.9 Linux文件类型 72
4.9.1 常见文件类型 72
4.9.2 Linux文件后缀名 73
4.9.3 Linux的链接文件 73
4.10 课后习题 75
第5章 Linux系统用户与用户组管理 77
5.1 认识/etc/passwd和/etc/shadow 77
5.1.1 /etc/passwd解说 78
5.1.2 /etc/shadow解说 78
5.2 用户和用户组管理 79
5.2.1 新增组的命令groupadd 79
5.2.2 删除组的命令groupdel 80
5.2.3 增加用户的命令useradd 80
5.2.4 删除账户的命令userdel 81
5.2.5 使用命令chfn更改用户的finger 81
5.3 用户密码管理 82
5.3.1 命令passwd 82
5.3.2 命令mkpasswd 83
5.4 用户身份切换 83
5.4.1 命令su 84
5.4.2 命令sudo 84
5.4.3 不允许root远程登录Linux 86
5.5 使用密码工具管理密码 86
5.6 课后习题 87
第6章 Linux磁盘管理 89
6.1 查看磁盘或者目录的容量 89
6.1.1 命令df 89
6.1.2 命令du 90
6.2 磁盘的分区和格式化 91
6.2.1 增加虚拟磁盘 91
6.2.2 命令fdisk 92
6.3 格式化磁盘分区 100
6.3.1 命令mke2fs、mkfs.ext2、mkfs.ext3和mkfs.ext4 100
6.3.2 命令e2label 102
6.4 挂载/卸载磁盘 103
6.4.1 命令mount 103
6.4.2 /etc/fstab配置文件 105
6.4.3 命令blkid 107
6.4.4 命令umount 108
6.5 建立一个swap文件增加虚拟内存 109
6.6 课后习题 110
第7章 文本编辑工具Vim 111
7.1 Vim的3种常用模式 111
7.1.1 一般模式 111
7.1.2 编辑模式 112
7.1.3 命令模式 113
7.2 Vim实践 114
7.3 课后习题 115
第8章 文档的压缩与打包 117
8.1 gzip压缩工具 117
8.2 bzip2压缩工具 118
8.3 tar压缩工具 119
8.3.1 打包的同时使用gzip压缩 120
8.3.2 打包的同时使用bzip2压缩 120
8.4 使用zip压缩 121
8.5 bzcat命令的使用 122
8.6 课后习题 122
第9章 安装RPM包或源码包 123
9.1 RPM工具 123
9.1.1 安装一个rpm包 124
9.1.2 升级一个rpm包 124
9.1.3 卸载一个rpm包 125
9.1.4 查询一个包是否已安装 125
9.1.5 得到一个已安装的rpm包的相关信息 125
9.1.6 列出一个rpm包的安装文件 126
9.1.7 列出某一个文件属于哪个rpm包 126
9.2 yum工具 126
9.2.1 列出所有可用的rpm包 127
9.2.2 搜索一个rpm包 127
9.2.3 安装一个rpm包 128
9.2.4 卸载一个rpm包 129
9.2.5 升级一个rpm包 130
9.2.6 使用本地光盘制作一个yum源 131
9.2.7 利用yum工具下载一个rpm包 131
9.3 安装一个源码包 133
9.3.1 下载一个源码包 133
9.3.2 解压源码包 134
9.3.3 配置相关的选项并生成Makefile 134
9.3.4 进行编译 135
9.3.5 安装 136
9.4 课后习题 137
第10章 shell基础知识 138
10.1 什么是shell 138
10.1.1 记录命令历史 139
10.1.2 命令和文件名补全 139
10.1.3 别名 139
10.1.4 通配符 140
10.1.5 输入/输出重定向 140
10.1.6 管道符 140
10.1.7 作业控制 141
10.2 变量 142
10.2.1 命令env 142
10.2.2 命令set 144
10.3 系统环境变量与个人环境变量的配置文件 148
10.4 linux shell中的特殊符号 149
10.4.1 *代表零个或多个任意字符 149
10.4.2 ?只代表一个任意的字符 149
10.4.3 注释符号# 149
10.4.4 脱义字符\ 150
10.4.5 管道符| 150
10.4.6 命令cut 150
10.4.7 命令sort 151
10.4.8 命令wc 152
10.4.9 命令uniq 152
10.4.10 命令tee 153
10.4.11 命令tr 153
10.4.12 命令split 153
10.4.13 特殊符号$ 154
10.4.14 特殊符号; 154
10.4.15 特殊符号~ 154
10.4.16 特殊符号& 155
10.4.17 重定向符号>、>>、2>和2>> 155
10.4.18 中括号[ ] 155
10.4.19 特殊符号&&和|| 156
10.5 课后习题 157
第11章 正则表达式 159
11.1 grep/egrep工具的使用 159
11.1.1 过滤带有某个关键词的行并输出行号 160
11.1.2 过滤不带有某个关键词的行并输出行号 160
11.1.3 过滤所有包含数字的行 161
11.1.4 过滤所有不包含数字的行 161
11.1.5 删除所有以“#”开头的行 161
11.1.6 删除所有空行和以“#”开头的行 161
11.1.7 过滤任意一个字符和重复字符 162
11.1.8 指定要过滤的字符的出现次数 163
11.1.9 筛选一个或多个前面的字符 163
11.1.10 筛选零个或一个前面的字符 163
11.1.11 筛选字符串1或者字符串2 164
11.1.12 egrep中()的应用 164
11.2 sed工具的使用 164
11.2.1 打印某行 164
11.2.2 打印包含某个字符串的行 165
11.2.3 删除某行或者多行 165
11.2.4 替换字符或者字符串 166
11.2.5 调换两个字符串的位置 167
11.2.6 直接修改文件的内容 167
11.2.7 sed练习题 168
11.3 awk工具的使用 169
11.3.1 截取文档中的某个段 169
11.3.2 匹配字符或者字符串 169
11.3.3 条件操作符 170
11.3.4 awk的内置变量 171
11.3.5 awk中的数学运算 172
11.3.6 awk练习题 173
11.4 课后习题 174
第12章 shell脚本 175
12.1 什么是shell脚本 175
12.1.1 shell脚本的创建和执行 176
12.1.2 命令date 177
12.2 shell脚本中的变量 177
12.2.1 数学运算 178
12.2.2 和用户交互 179
12.2.3 shell脚本预设变量 179
12.3 shell脚本中的逻辑判断 180
12.3.1 不带else 180
12.3.2 带有else 181
12.3.3 带有elif 181
12.3.4 和文档相关的判断 182
12.3.5 case逻辑判断 183
12.4 shell脚本中的循环 184
12.4.1 for循环 184
12.4.2 while循环 185
12.5 shell脚本中的函数 186
12.6 shell脚本练习题 187
12.7 课后习题 189
第13章 Linux系统日常管理 190
13.1 监控系统的状态 190
13.1.1 w查看当前系统的负载 190
13.1.2 vmstat监控系统的状态 191
13.1.3 top显示进程所占的系统资源 193
13.1.4 sar监控系统状态 194
13.1.5 free查看内存使用状况 196
13.1.6 ps查看系统进程 196
13.1.7 netstat查看网络状况 198
13.2 抓包工具 198
13.2.1 tcpdump工具 198
13.2.2 wireshark工具 199
13.3 Linux网络相关 200
13.3.1 ifconfig查看网卡IP 200
13.3.2 给一个网卡设定多个IP 200
13.3.3 查看网卡连接状态 201
13.3.4 更改主机名 201
13.3.5 设置DNS 202
13.4 Linux的防火墙 203
13.4.1 selinux 203
13.4.2 iptables 203
13.5 Linux系统的任务计划 209
13.5.1 命令crontab 209
13.5.2 cron练习题 210
13.6 Linux系统服务管理 211
13.6.1 ntsysv服务配置工具 211
13.6.2 chkconfig服务管理工具 212
13.7 Linux下的数据备份工具rsync 214
13.7.1 rsync的命令格式 214
13.7.2 rsync常用选项 215
13.7.3 rsync应用实例 219
13.8 Linux系统日志 226
13.8.1 /var/log/messages 226
13.8.2 dmesg 227
13.8.3 安全日志 228
13.9 xargs与exec 228
13.9.1 xargs应用 228
13.9.2 exec应用 229
13.10 screen工具介绍 230
13.10.1 使用nohup 230
13.10.2 screen工具的使用 230
13.11 课后习题 231
第14章 LAMP环境搭建 233
14.1 安装MySQL 233
14.1.1 下载软件包 233
14.1.2 初始化 234
14.1.3 配置MySQL 234
14.2 安装Apache 235
14.3 安装PHP 236
14.4 Apache结合PHP 238
14.5 测试LAMP是否成功 238
14.5.1 测试配置文件是否正确 238
14.5.2 测试是否正确解析PHP 239
14.6 课后习题 239
第15章 LNMP环境配置 241
15.1 安装MySQL 241
15.2 安装PHP 242
15.3 安装Nginx 244
15.4 课后习题 249
第16章 常用MySQL操作 250
16.1 更改MySQL数据库root的密码 250
16.2 连接数据库 251
16.3 MySQL基本操作的常用命令 252
16.3.1 查询当前库 252
16.3.2 查询某个库的表 252
16.3.3 查看某个表的全部字段 253
16.3.4 查看当前是哪个用户 254
16.3.5 查看当前所使用的数据库 254
16.3.6 创建一个新库 254
16.3.7 创建一个新表 254
16.3.8 查看当前数据库的版本 255
16.3.9 查看MySQL的当前状态 255
16.3.10 查看MySQL的参数 255
16.3.11 修改MySQL的参数 256
16.3.12 查看当前MySQL服务器的队列 256
16.3.13 创建一个普通用户并授权 256
16.4 常用的SQL语句 257
16.4.1 查询语句 257
16.4.2 插入一行 258
16.4.3 更改表的某一行 258
16.4.4 清空某个表的数据 258
16.4.5 删除表 258
16.4.6 删除数据库 259
16.5 MySQL数据库的备份与恢复 259
16.5.1 MySQL备份 259
16.5.2 MySQL恢复 259
16.6 课后习题 259
第17章 NFS服务配置 261
17.1 服务端配置NFS 261
17.2 客户端挂载NFS 262
17.3 命令exportfs 263
17.4 课后习题 264
第18章 配置FTP服务 265
18.1 安装pure-ftpd 265
18.1.1 下载软件 265
18.1.2 安装pure-ftpd 265
18.1.3 配置pure-ftpd 266
18.1.4 建立账号 267
18.1.5 测试pure-ftpd 267
18.2 使用vsftpd搭建ftp服务 268
18.2.1 安装vsftpd 268
18.2.2 建立账号 268
18.2.3 创建和用户对应的配置文件 269
18.2.4 修改全局配置文件/etc/vsftpd.conf 269
18.3 课后习题 270
第19章 配置Squid服务 271
19.1 Squid是什么 271
19.2 搭建Squid正向代理 272
19.3 搭建Squid反向代理 276
19.4 Squid命令常用选项 276
19.5 课后习题 277
第20章 配置Tomcat 278
20.1 安装Tomcat 278
20.1.1 安装JDK 278
20.1.2 安装Tomcat 279
20.2 配置Tomcat 280
20.2.1 配置Tomcat服务的访问端口 280
20.2.2 配置新的虚拟主机 281
20.3 测试Tomcat 281
第21章 配置Samba服务器 282
21.1 Samba的配置文件smb.conf 282
21.2 Samba实践 284
21.2.1 Samba实践一 284
21.2.2 Samba实践二 285
21.2.3 使用Linux访问Samba服务器 286
21.3 课后习题 286
第22章 MySQL Replication配置 287
22.1 配置MySQL服务 287
22.2 配置Replication 288
22.2.1 设置master 288
22.2.2 设置slave 289
22.3 测试主从 290
22.4 课后习题 291