第1篇 Linux命令
第1章 Linux简介与安装(教学视频:52分钟)2
1.1 Linux系统简介2
1.1.1 Linux能做什么2
1.1.2 Linux的主要发行版3
1.1.3 Linux系统的优势4
1.2 Linux的存储设备和目录结构5
1.2.1 Linux系统中的存储设备5
1.2.2 Linux系统中的目录结构7
1.3 虚拟化技术的应用8
1.3.1 虚拟化和VMware公司9
1.3.2 VMware Workstation简介10
1.3.3 VMware Workstation的网络连接方式11
1.3.4 VMware Workstation的使用技巧13
1.3.5 VMware ESX Server简介13
1.4 Linux安装过程14
1.4.1 安装前的准备工作14
1.4.2 创建虚拟机并使用光盘引导15
1.4.3 安装模式和光盘检测18
1.4.4 图形安装环境配置19
1.4.5 磁盘分区21
1.4.6 引导程序和网络配置23
1.4.7 设置时区和根用户密码25
1.4.8 定制软件包并开始安装26
1.4.9 第一次启动27
1.5 小结30
第2章 Linux系统入门(教学视频:109分钟)31
2.1 如何使用本书学习31
2.1.1 本书的知识结构和约定31
2.1.2 学习Linux系统的建议33
2.2 登录系统33
2.2.1 图形界面登录33
2.2.2 命令行登录35
2.2.3 SSH远程登录36
2.2.4 Telnet远程登录38
2.2.5 VNC远程登录38
2.2.6 SFTP登录39
2.3 关闭、重启系统41
2.3.1 关闭系统命令之shutdown41
2.3.2 关闭系统命令之poweroff41
2.3.3 挂起系统命令halt42
2.3.4 重启系统命令reboot42
2.3.5 切换系统运行级别命令init42
2.4 Linux命令基础及帮助43
2.4.1 Linux系统中的命令43
2.4.2 帮助之help命令和选项45
2.4.3 帮助之man手册46
2.4.4 帮助之info信息页48
2.5 系统与用户的交互程序Shell50
2.5.1 Shell分类50
2.5.2 更改默认Shell51
2.6 Bash中的命令基本操作54
2.6.1 命令行编辑功能54
2.6.2 绑定快捷键和命令55
2.6.3 命令行补全功能59
2.6.4 命令历史功能61
2.6.5 命令别名功能63
2.7 管道和输入/输出65
2.7.1 管道65
2.7.2 命令的输入/输出和错误66
2.7.3 重定向命令的输入/输出和错误66
2.8 小结69
第3章 常用命令(教学视频:115分钟)70
3.1 Linux基本命令70
3.1.1 切换工作目录命令cd70
3.1.2 查看当前路径命令pwd71
3.1.3 查看文件列表命令ls72
3.1.4 文件链接命令ln75
3.2 文件操作命令76
3.2.1 文件命名规则76
3.2.2 创建文件命令touch77
3.2.3 创建目录命令mkdir77
3.2.4 移动、重命名文件命令mv78
3.2.5 复制文件命令cp79
3.2.6 删除文件命令rm80
3.2.7 删除空目录命令rmdir81
3.2.8 查看文件类型命令file81
3.3 文本文件内容相关命令82
3.3.1 查看文本文件内容命令cat82
3.3.2 从文本尾查看文本内容命令tail83
3.3.3 从文本首行查看文本内容命令head84
3.3.4 分屏显示文本内容命令more和less85
3.3.5 文本内容比较命令diff87
3.3.6 文本统计命令wc89
3.4 日期时间命令89
3.4.1 查看日期时间命令date90
3.4.2 查看日历命令cal90
3.4.3 修改日期时间命令date和clock91
3.5 联线用户命令92
3.5.1 查看联线用户命令who、finger和w92
3.5.2 与联线用户通信的命令wall、write和mesg93
3.5.3 断开联线用户命令fuser94
3.6 切换用户命令94
3.6.1 临时切换用户命令su94
3.6.2 以root用户身份运行命令sudo95
3.7 定位和查找96
3.7.1 搜索命令 which96
3.7.2 文件搜索命令locate96
3.7.3 特殊文件搜索命令whereis97
3.7.4 关键字搜索命令apropos97
3.8 输入/输出相关命令98
3.8.1 回显命令echo98
3.8.2 接收用户输入命令read99
3.8.3 显示并保存文本命令tee102
3.8.4 邮件命令mail103
3.8.5 启动新Shell命令exec106
3.9 小结107
第4章 Linux命令中的特殊字符和正则表达式(教学视频:48分钟)108
4.1 命令中的特殊字符108
4.1.1 字符串引用符双引号和单引号108
4.1.2 命令引用符反引号110
4.1.3 变量引用和命令转换符美元符号111
4.1.4 反斜线屏蔽符111
4.2 文件名通配符111
4.2.1 单字符匹配元字符“?”112
4.2.2 多字符匹配元字符“*”112
4.2.3 字符范围匹配符“[]”113
4.2.4 排除范围匹配符“[!]”114
4.3 多条命令中的逻辑运算符和括号115
4.3.1 逻辑或“||”115
4.3.2 逻辑与“&&”116
4.3.3 括号116
4.4 命令中的正则表达式117
4.4.1 单字符匹配符“.”117
4.4.2 单字符或字符串重复匹配符“*”118
4.4.3 行首匹配符“^”118
4.4.4 行尾匹配符“$”119
4.4.5 反斜杠屏蔽符“\”119
4.4.6 范围匹配符“[]”和排除范围匹配符“[^]”120
4.4.7 词首、词尾匹配符“\<”和“\>”120
4.4.8 重复次数匹配符“x\{\}”120
4.4.9 组合并使用正则表达式121
4.5 小结121
第5章 查找和筛选工具(教学视频:93分钟)123
5.1 查找文件工具find123
5.1.1 find的基本格式123
5.1.2 按文件名称查找125
5.1.3 按文件权限查找125
5.1.4 按文件类型查找126
5.1.5 按文件的时间戳记和大小查找126
5.1.6 按文件属主或属组查找127
5.1.7 find工具的其他参数128
5.1.8 使用exec和ok处理查找到的文件128
5.1.9 使用xargs命令处理查找到的文件129
5.1.10 find工具应用实例130
5.2 查找文本工具grep131
5.2.1 grep的基本格式131
5.2.2 使用grep查找文本132
5.2.3 行首、行尾匹配查找134
5.2.4 配合常用的正则表达式查找135
5.2.5 使用或、与多匹配模式查找136
5.2.6 grep工具应用实例137
5.3 流编辑器sed138
5.3.1 sed基本格式138
5.3.2 显示和删除行140
5.3.3 插入和修改文本142
5.3.4 替换文本和其他编辑指令145
5.3.5 处理文本中的控制字符148
5.3.6 分支结构149
5.4 格式化文本数据抽取工具awk152
5.4.1 awk命令基本格式152
5.4.2 正则表达、元字符、运算符和关系运算符153
5.4.3 在awk命令中使用变量156
5.4.4 在awk命令中使用流程控制159
5.4.5 awk命令中的函数162
5.5 转换和删除重复命令tr170
5.5.1 tr命令的基本格式170
5.5.2 字符转换171
5.5.3 删除字符172
5.6 合并和分割工具173
5.6.1 排序命令sort174
5.6.2 数据剪切命令cut179
5.6.3 数据粘贴命令paste181
5.6.4 数据连接命令join183
5.6.5 去除重复命令uniq186
5.6.6 分割文件命令split188
5.7 小结190
第6章 用户和文件权限管理(教学视频:73分钟)191
6.1 用户管理191
6.1.1 系统用户文件概述191
6.1.2 添加用户命令useradd193
6.1.3 设置用户密码命令passwd196
6.1.4 删除用户命令userdel197
6.1.5 用户管理命令usermod197
6.2 用户组管理199
6.2.1 用户组文件概述199
6.2.2 添加用户组命令groupadd201
6.2.3 删除用户组命令groupdel201
6.2.4 用户组管理202
6.3 基本权限及管理命令203
6.3.1 文件的属主和属组203
6.3.2 修改文件属主和属组命令chown、chgrp203
6.3.3 文件权限及表示方法205
6.3.4 文件权限管理命令chmod207
6.3.5 suid、sgid和sticky权限概述208
6.3.6 权限掩码命令umask211
6.4 POSIX ACL权限系统及其管理命令212
6.4.1 POSIX ACL权限系统概述213
6.4.2 ACL权限管理和查看命令setfacl、getfacl213
6.4.3 ACL权限管理214
6.5 小结217
第7章 磁盘和文件系统管理(教学视频:70分钟)218
7.1 磁盘及分区管理218
7.1.1 查看磁盘设备列表命令fdisk218
7.1.2 查看磁盘设备命令hdparm220
7.1.3 磁盘分区工具fdisk221
7.1.4 利用fdisk工具对磁盘分区222
7.2 文件系统管理225
7.2.1 Linux系统支持的文件系统225
7.2.2 创建文件系统命令mkfs226
7.2.3 查看和修改卷标命令e2label227
7.2.4 挂载文件系统228
7.2.5 卸载文件系统命令umount231
7.2.6 利用fstab自动挂载文件系统232
7.3 RAID设备233
7.3.1 磁盘阵列的种类233
7.3.2 磁盘阵列级别234
7.3.3 创建组成阵列的磁盘分区236
7.3.4 创建磁盘阵列237
7.3.5 为阵列添加热备盘239
7.3.6 使用热备盘替换损坏磁盘239
7.3.7 扩展阵列240
7.4 LVM逻辑卷管理241
7.4.1 LVM的基本概念241
7.4.2 创建物理卷243
7.4.3 创建卷组244
7.4.4 创建逻辑卷245
7.4.5 添加物理卷247
7.4.6 扩充逻辑卷248
7.4.7 减小逻辑卷249
7.4.8 移动数据并移除物理卷250
7.4.9 逻辑卷快照252
7.5 磁盘配额管理253
7.5.1 为磁盘配额提供支持253
7.5.2 检查磁盘配额命令quotacheck254
7.5.3 查看磁盘使用情况命令repquota255
7.5.4 建立磁盘配额命令edquota255
7.5.5 开启磁盘配额命令quotaon257
7.5.6 关闭磁盘配额命令quotaoff258
7.5.7 管理磁盘配额258
7.6 文件系统维护基础259
7.6.1 查看文件系统使用情况命令df259
7.6.2 追踪大文件命令du260
7.6.3 修复文件系统命令fsck261
7.7 小结264
第8章 Linux系统管理(教学视频:70分钟)265
8.1 系统服务管理265
8.1.1 查看系统服务265
8.1.2 设置服务自启动状态267
8.1.3 添加删除系统服务269
8.1.4 启动和关闭服务命令service270
8.2 进程管理命令271
8.2.1 查看进程命令ps271
8.2.2 进程树274
8.2.3 实时显示进程命令top274
8.2.4 将任务放在后台执行277
8.2.5 查看后台任务命令jobs277
8.2.6 后台任务调至前台命令fg278
8.2.7 终止进程命令kill278
8.2.8 查看进程优先级281
8.2.9 指定进程运行优先级命令nice282
8.2.10 改变进程优先级命令renice283
8.3 计划任务命令crontab、at284
8.3.1 为计划任务提供支持284
8.3.2 cron计划任务格式285
8.3.3 添加计划任务命令crontab286
8.3.4 备份及恢复计划任务288
8.3.5 用户计划任务288
8.3.6 系统计划任务289
8.3.7 使用at执行一次性计划任务289
8.4 日志管理292
8.4.1 syslogd守护进程及其配置文本292
8.4.2 日志消息的格式295
8.4.3 记录日志消息命令logger295
8.4.4 日志轮循296
8.4.5 监视系统日志297
8.5 小结299
第9章 数据备份和应用程序管理(教学视频:74分钟)301
9.1 数据备份基础301
9.1.1 数据备份概述301
9.1.2 备份数据存放的介质302
9.1.3 备份类型302
9.1.4 备份时间选择304
9.2 tar备份工具304
9.2.1 tar命令的基本格式304
9.2.2 tar归档和备份文件305
9.2.3 查看归档文件中的文件列表306
9.2.4 从归档文件中还原文件306
9.3 cpio备份命令307
9.3.1 cpio命令的基本格式308
9.3.2 使用cpio归档文件308
9.3.3 查看归档文件中的文件列表309
9.3.4 恢复cpio归档文件310
9.4 压缩工具和整盘备份工具dd311
9.4.1 使用gzip压缩文件311
9.4.2 使用bzip2压缩文件313
9.4.3 整盘备份命令dd314
9.5 RPM包管理命令rpm317
9.5.1 RPM包管理器简介317
9.5.2 rpm命令基本格式318
9.5.3 使用rpm命令查询软件包319
9.5.4 使用rpm命令安装软件包321
9.5.5 使用rpm命令卸载软件包323
9.5.6 使用rpm命令升级软件包324
9.6 编译安装相关命令和工具324
9.6.1 安装编译环境324
9.6.2 获取软件工具wget、links325
9.6.3 编译前的配置327
9.6.4 编译软件命令make329
9.6.5 安装命令make install329
9.6.6 运行及环境配置330
9.6.7 卸载软件命令make uninstall332
9.7 利用yum工具安装应用程序332
9.7.1 yum简介333
9.7.2 配置yum333
9.7.3 查询源上的软件包336
9.7.4 利用yum安装软件包337
9.7.5 利用yum卸载软件包339
9.7.6 安装、卸载软件包组339
9.8 小结341
第10章 网络管理(教学视频:81分钟)343
10.1 网络接口配置命令343
10.1.1 查看网络接口信息343
10.1.2 配置网络接口347
10.1.3 重新启用网络接口351
10.1.4 配置DNS服务器地址352
10.2 路由命令route354
10.2.1 查看系统中的路由表355
10.2.2 添加默认路由356
10.2.3 添加路由条目357
10.3 主机名称命令hostname360
10.3.1 查看主机名称360
10.3.2 修改主机名称361
10.4 设置网络冗余363
10.4.1 bonding简介364
10.4.2 bonding的模式365
10.4.3 设置网络接口366
10.4.4 加载模块生成新的网络连接367
10.4.5 验证设置368
10.5 网络工具370
10.5.1 测试连通命令ping370
10.5.2 网络路径测试命令traceroute374
10.5.3 查看网络状态命令netstat374
10.5.4 域名解析工具dig和nslookup377
10.5.5 排除网络故障380
10.6 小结382
第2篇 文本编辑器
第11章 Vi和Vim文本编辑器(教学视频:37分钟)386
11.1 文本编辑器概述386
11.1.1 文本编辑器的发展及分类386
11.1.2 Linux系统中的文本编辑器387
11.2 认识Vi和Vim编辑器388
11.2.1 启动Vim编辑器388
11.2.2 Vim编辑器帮助390
11.2.3 退出Vim编辑器391
11.2.4 Vim编辑器的模式391
11.2.5 Vim编辑器的工作界面392
11.3 向Vim编辑器迈出第1步393
11.3.1 读取文件393
11.3.2 保存文件394
11.3.3 进入插入模式并插入文本394
11.3.4 移动光标395
11.3.5 删除文本396
11.3.6 撤销和恢复396
11.4 快速移动光标396
11.4.1 按单词移动光标396
11.4.2 快速移动光标至行首和行尾397
11.4.3 移动光标至指定的行397
11.4.4 滚动屏幕398
11.4.5 使用鼠标移动光标398
11.4.6 其他移动光标的技巧399
11.5 Vim编辑器的查找和替换功能400
11.5.1 简单的查找功能401
11.5.2 反向查找401
11.5.3 查找时忽略大小写402
11.5.4 高亮显示查找结果403
11.5.5 增量查找403
11.5.6 简单的查找替换功能404
11.5.7 区域性查找替换405
11.5.8 谨慎的查找替换405
11.6 Vim编辑器中的窗口操作406
11.6.1 分割窗口406
11.6.2 关闭窗口409
11.6.3 控制窗口大小409
11.6.4 窗口中的操作410
11.6.5 移动窗口410
11.7 Vim编辑器的高级技巧411
11.7.1 复制和粘贴411
11.7.2 剪切和粘贴411
11.7.3 编辑多个文件411
11.7.4 Visual模式413
11.7.5 在Vim编辑器中执行Shell命令415
11.8 定制Vim编辑器及灾难恢复415
11.8.1 定制文件vimrc416
11.8.2 定制Vim编辑器416
11.8.3 灾难恢复417
11.9 小结418
第12章 Emacs编辑器(教学视频:28分钟)419
12.1 Emacs编辑器概述与入门419
12.1.1 Emacs编辑器概述419
12.1.2 启动Emacs编辑器420
12.1.3 Emacs编辑器启动界面421
12.1.4 退出Emacs编辑器423
12.2 Emacs基本操作424
12.2.1 使用Emacs菜单栏424
12.2.2 打开新文件425
12.2.3 保存文件426
12.2.4 简单编辑操作426
12.3 快速移动光标427
12.3.1 按字符移动光标427
12.3.2 按句子移动光标428
12.3.3 按单词移动光标428
12.3.4 按段落移动光标428
12.3.5 滚动屏幕428
12.3.6 其他移动光标的技巧429
12.4 Emacs编辑器的常用功能430
12.4.1 撤销与恢复430
12.4.2 搜索功能431
12.4.3 查找并替换432
12.4.4 复制、剪切和粘贴433
12.5 Emacs编辑器的高级技巧434
12.5.1 删除环435
12.5.2 编辑文本区域436
12.5.3 书签功能436
12.5.4 灾难恢复440
12.5.5 使用多窗口441
12.6 目录模式444
12.6.1 查看文件445
12.6.2 删除、复制、重命名文件446
12.6.3 操作压缩文件447
12.6.4 其他文件操作447
12.7 Emacs编辑器的其他功能448
12.7.1 在Emacs编辑器中执行Shell命令449
12.7.2 发送电子邮件450
12.7.3 阅读电子邮件450
12.8 小结453
第13章 Eclipse编辑器(教学视频:29分钟)454
13.1 Eclipse开发平台概述与安装454
13.1.1 Eclipse平台概述454
13.1.2 Eclipse平台安装前的准备455
13.1.3 安装Eclipse平台457
13.2 Eclipse界面入门459
13.2.1 第1次启动459
13.2.2 Eclipse界面介绍460
13.2.3 操作窗口461
13.3 使用Eclipse开发Java程序463
13.3.1 建立编程项目463
13.3.2 建立Java类464
13.3.3 输入编程内容465
13.3.4 运行Java程序467
13.3.5 调试程序468
13.4 小结470
第14章 常用的文本编辑器(教学视频:28分钟)471
14.1 Nano编辑器471
14.1.1 Nano编辑器简介471
14.1.2 安装Nano编辑器471
14.1.3 Nano启动及工作界面472
14.1.4 快速移动光标474
14.1.5 复制粘贴文本474
14.1.6 查找和替换475
14.2 Gedit文本编辑器477
14.2.1 Gedit文本编辑器概述477
14.2.2 Gedit工作界面介绍478
14.2.3 快速移动光标479
14.2.4 显示行号479
14.2.5 语法高亮480
14.2.6 拼写检查480
14.2.7 查找和替换482
14.3 Kate编辑器482
14.3.1 Kate编辑器概述483
14.3.2 Kate基本界面484
14.3.3 快速移动光标485
14.3.4 查找和替换485
14.3.5 拼写检查487
14.3.6 语法高亮488
14.3.7 脚本编程环境488
14.4 小结490
第3篇 Shell编程
第15章 Shell脚本编程基础、变量(教学视频:56分钟)492
15.1 Bash脚本编程基础492
15.1.1 Shell脚本概述492
15.1.2 Shell脚本的基本内容493
15.1.3 脚本的运行方式495
15.1.4 接收用户输入496
15.1.5 向脚本传递参数497
15.2 Tcsh脚本编程498
15.2.1 输出字符串Hello的示例脚本498
15.2.2 Tcsh与Bash脚本的区别499
15.3 Shell中的变量499
15.3.1 保存系统运行情况的环境变量500
15.3.2 传递参数的位置变量503
15.3.3 系统预先定义的变量504
15.3.4 用户自定义变量505
15.4 Shell中的数组509
15.4.1 数组的定义509
15.4.2 数组的使用510
15.4.3 清除数组512
15.5 小结512
第16章 系统脚本和登录环境(教学视频:32分钟)513
16.1 系统启动过程513
16.1.1 Linux系统的启动步骤513
16.1.2 引导装载程序GRUB514
16.2 系统初始化过程518
16.2.1 INIT进程的配置文件518
16.2.2 设置系统默认运行级别519
16.2.3 初始化系统脚本520
16.2.4 启动系统服务520
16.2.5 重启快捷键522
16.2.6 UPS选项522
16.2.7 运行终端523
16.3 系统初始化过程中使用的脚本523
16.3.1 系统初始化脚本524
16.3.2 rc.local脚本525
16.4 用户环境526
16.4.1 全局用户配置文件/etc/profile526
16.4.2 个人用户配置文件.bash_profile527
16.4.3 定制用户环境529
16.5 小结529
第17章 函数和脚本参数(教学视频:22分钟)531
17.1 Shell中的函数531
17.1.1 在脚本中定义函数531
17.1.2 在脚本中使用函数532
17.1.3 向函数传递参数和返回值533
17.1.4 返回函数执行状态535
17.2 在Shell中使用函数文件536
17.2.1 函数文件的编写536
17.2.2 函数文件的调用537
17.3 两个示例脚本538
17.3.1 示例1:检查包的依赖性538
17.3.2 示例2:监控文件系统541
17.4 向脚本传递参数545
17.4.1 使用shift命令处理参数545
17.4.2 使用shift命令处理选项参数548
17.5 小结549
第18章 控制Shell脚本执行顺序(教学视频:29分钟)550
18.1 条件测试和捕获信号550
18.1.1 退出状态550
18.1.2 文件测试553
18.1.3 变量测试558
18.1.4 字符串和数值测试559
18.1.5 逻辑操作符561
18.1.6 捕获系统信号562
18.2 条件判断语句if564
18.2.1 简单if语句的使用564
18.2.2 if else语句的使用566
18.2.3 if elif语句的使用569
18.2.4 多if语句嵌套572
18.3 多条件判断语句case573
18.3.1 多条件判断语句case的基本格式573
18.3.2 利用case语句处理选项参数574
18.3.3 利用case语句处理用户输入577
18.4 步进循环语句for578
18.4.1 for语句的基本格式578
18.4.2 利用for语句处理数组579
18.4.3 一个设置防火墙的例子580
18.5 循环语句until581
18.5.1 until语句的基本格式581
18.5.2 利用until语句监控文件系统状态582
18.6 while循环语句583
18.6.1 while语句的基本格式583
18.6.2 while语句与until语句的区别584
18.6.3 利用while语句监控系统网络状态585
18.7 利用break和continue控制循环586
18.7.1 使用break语句控制循环586
18.7.2 使用continue语句控制循环588
18.8 小结589
第19章 Shell编程技巧和应用实例(教学视频:56分钟)591
19.1 运行级别脚本591
19.1.1 运行级别脚本的结构591
19.1.2 编写运行级别脚本593
19.1.3 添加和管理运行级别脚本595
19.2 怎样写好Shell脚本596
19.2.1 一般性原则596
19.2.2 良好的编程习惯596
19.2.3 Shell脚本的安全性597
19.3 调试脚本599
19.3.1 排除错误599
19.3.2 脚本调试601
19.4 Shell编程实例——自动备份文件脚本603
19.4.1 需求和设计思路603
19.4.2 完全备份模块604
19.4.3 差异备份模块605
19.4.4 远程备份模块606
19.4.5 主体和日志功能607
19.4.6 自动运行备份脚本610
19.5 Shell编程实例——防火墙快速配置脚本610
19.5.1 设置防火墙状态610
19.5.2 添加防火墙规则612
19.5.3 保存防火墙规则616
19.6 快速初始化系统脚本617
19.6.1 初始化系统网络617
19.6.2 更改SSH服务的端口625
19.6.3 设置SELinux状态626
19.6.4 关闭不必要的系统服务626
19.7 服务监控和主备切换脚本627
19.7.1 测试主服务器状态627
19.7.2 切换备用服务器状态628
19.8 小结629