本书阐述了如何通过命令行方式使用Linux作业系统。本书前几章面向没有计算机使用经验的读者,阅读这部分内容将能够使其快速上手。剩余部分则主要针对经验丰富的计算机用户。本书并不针对特定的Linux版本或者某个发布版,而是适用于所有近期发布的Linux版本。
基本介绍
- 书名:Linux命令、编辑器与Shell编程
- 又名: A Practical Guide to Linux Commands, Editors, and Shell Programming, Second Edition
- 作者:索贝尔(Mark G.Sobell)
- 译者:包战、孔向华、胡艮胜
- 页数:770页
- 定价:98.00 元
- 出版社:清华大学出版社
- 出版时间:2012-6-1
- 开本:16
内容推荐
您已有Linux基础,想要进一步学习伺服器架设?还想了解如何维护与管理您的伺服器?《Linux命令、编辑器与Shell编程》是您最佳的选择。
目前有关Linux架站的书籍大多只教导读者如何架设伺服器,很少针对伺服器的维护与管理,以及发生问题时的应对策略加以说明,以至于一旦伺服器遭受攻击,眼见的就是一场手忙脚乱。因此,作者先从系统基础以及网路基础讲起,再谈到网路攻击与防火墙防护主机后,才进入伺服器的架设。本书共分为四篇:第一篇,伺服器搭建前的进修专区,主要介绍架设伺服器之前必须具备的基本知识,看完这一篇,不论您的Linux是以何种方式进行Internet连线,都将不成问题;第二篇,主机的简易安全防护措施,这一篇将告诉您如何保护您的主机,以及如何养成良好的操作习惯,使您的主机能够百毒不侵,安然渡过一次次的考验;第三篇,区域网路内常见伺服器的搭建,介绍内部网路经常使用的远程连线服务(SSH、VNC、XRDP),网路参数设定服务(DHCP、NTP),网路磁碟服务(Samba、NFS、iSCSI),以及代理伺服器等服务。其中SSH密钥系统,对于异地备份更是相当有帮助,您绝对不能错过;第四篇,常见网际网路伺服器的搭建,介绍DNS、WWW、FTP及Mail Server等常见的服务。
目前有关Linux架站的书籍大多只教导读者如何架设伺服器,很少针对伺服器的维护与管理,以及发生问题时的应对策略加以说明,以至于一旦伺服器遭受攻击,眼见的就是一场手忙脚乱。因此,作者先从系统基础以及网路基础讲起,再谈到网路攻击与防火墙防护主机后,才进入伺服器的架设。本书共分为四篇:第一篇,伺服器搭建前的进修专区,主要介绍架设伺服器之前必须具备的基本知识,看完这一篇,不论您的Linux是以何种方式进行Internet连线,都将不成问题;第二篇,主机的简易安全防护措施,这一篇将告诉您如何保护您的主机,以及如何养成良好的操作习惯,使您的主机能够百毒不侵,安然渡过一次次的考验;第三篇,区域网路内常见伺服器的搭建,介绍内部网路经常使用的远程连线服务(SSH、VNC、XRDP),网路参数设定服务(DHCP、NTP),网路磁碟服务(Samba、NFS、iSCSI),以及代理伺服器等服务。其中SSH密钥系统,对于异地备份更是相当有帮助,您绝对不能错过;第四篇,常见网际网路伺服器的搭建,介绍DNS、WWW、FTP及Mail Server等常见的服务。
目录
第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
内容简介
为了真正掌握Linux必须全面理解shell和命令行。以前,读者必须购买两本书才能掌握这些知识:一本介绍Linux基本概念和技术的指南,再加一本参考手册。现在,着名Linux专家Mark Sobell通过《Linux命令、编辑器与shell编程》一本书,不仅全面深入地介绍了系统管理员、开发人员和高级用户最需要的工具,而且涵盖了日常工作中最常用的参考资源。
《Linux命令、编辑器与shell编程》完全适用于所有发布版,可以把它用于任意Linux系统,包括现在和将来发布的Linux系统。《Linux命令、编辑器与shell编程》还全面介绍了Mac OS X命令行。包括其他Linux/UNIX图书忽略的仅用于OS X的工具和实用程式。
《Linux命令、编辑器与Shell编程》结构清晰.包含数百个优秀的实际範例,从最基础的知识开始,介绍了Linux中最有用的知识,包捶文体系统、shell、编辑器、实用程式、编程工具、正则表达式等。还添加了Perl的入门介绍,Perl是Linux管理员自动完成複杂、耗时的任务最重要的编程工具。
《Linux命令、编辑器与shell编程》 是目前所能找到的最实用、最全面的Linux指南和参考手册,也是唯一涵盖以下全部内容的书籍
·更好、更实用的範例,涵盖了用户实际中需要执行的任务
·深入浅出地介绍了Linux和OSX的每个知识点
·适用于每个系统管理员的Pe门完整入门指南
·深入剖析如何使用bash和tcsh进行基本和高级的Linux shell编程
·从aspell到xargs的100个核心实用程式的全面阐述,包括从ditto到SetFile的Mac OS X专用实用程式
·新增了如何使用rsync自动完成远程备份的内容
·数十个系统安全提示:包括使用ssh和scp实现安全通信的详细步骤
·定製shell和从命令行互动使用shell的提示和技巧
·使用vim和emacs进行高效编辑的完全指南
·全面的命令参考部分——现在包含修订过和扩展过的索引,以便读者快速查找需要的信息
·使用apt-get和yum自动更新系统的指令
·数十个练习有助于读者提升实践能力和自信心
·还包括BitTorrent、gawk、Sed、find、sort、bzip2和正则表达式等内容
作者简介
索贝尔(Mark G.Sobell),是Sobell Associates公司的总裁。该谘询公司致力于UNIX/Linux培训、支持和定製软体开发。他在使用UNIX和Linux系统方面有超过25年的经验,编写了许多畅销书.包括Prentice Hall出版社出版的A Practical Guide to Fedora and Red HatEnterprise Ltnux.Fourth Edition、A Practicat Guide to Ubuntu Linux,Second Edition、A Practical Guide to UNtX for Mac 0S X Users(与Pete r Seebach合着),以及Addison-Wesley出版社出版的A Practical Guide to UNIX System。
目录
第1章 欢迎进入Linux世界
1.1 UNIX和GNU-Linux的发展史
1.1.1 Linux的起源:UNIX
1.1.2 回顾1983年
1.1.3 下一场景,1991年
1.1.4 自由代码
1.1.5 Linux的关键
1.2 Linux的优点
1.2.1 Linux在硬体公司和开发人员中流行的原因
1.2.2 Linux的可移植性
1.2.3 C程式语言
1.3 Linux概述
1.3.1 Linux具有核心编程接口
l.3.2 Linux支持多用户
1.3.3 Linux支持多任务
1.3.4 Linux支持安全的分层档案系统
1.3.5 shell命令解释器和程式语言
1.3.6 大量有用的实用程式
1.3.7 进程问的通信
1.3.8 系统管理
1.4 Linux的其他特性
1.4.1 GUI
1.4.2 (互联的)网路实用程式
1.4.3 软体开发
1.5 本章小结
练习
第Ⅰ部分 Linux作业系统
第2章 入门
2.1 本书约定
2.2 从终端或终端模拟器登录
2.3 shell
2.3.1 识别当前运行的是哪种shell
2.3.2 校正错误
2.4 su/sudo:慎用root许可权
2.5 如何查找相关文档
2.5.1 -help选项
2.5.2 man:显示系统手册页
2.5.3 apropos:搜寻关键字
2.5.4 info:显示实用程式的相关信息
2.5.5 HOWT0文档
2.5.6 利用系统获取帮助
2.6 登录的更多方面
2.6.1 使用虚拟控制台
2.6.2 如何处理登录失败
2.6.3 退出
2.6.4 更改密码
2.7 本章小结
练习
高级练习
第3章实用程式
3.1 特殊字元
3.2 基本工具
3.2.1 1s:显示档案名称
3.2.2 cat:显示文本档案内容
3.2.3 rm:删除档案
3.2.4 少即多:分屏显示档案
3.2.5 hostname:显示系统名
3.3 档案操作
3.3.1 cp:複製档案
3.3.2 mv:更改档案名称
3.3.3 lpr:列印档案
3.3.4 grep:查找字元串
3.3.5 head:显示档案头部
3.3.6 tail:显示档案尾部
3.3.7 sort:按顺序显示档案内容
3.3.8 uniq:忽略档案中重複的行
3.3.9 dim比较两个档案
3.3.10 file:识别档案内容
3.4 l(管道):实现进程间的通信
3.5 4个有用的实用程式
3.5.1 echo:显示文本
3.5.2 date:显示日期和时间
3.5.3 script:记录shell会话信息
3.5.4 todos/unix2dos:将L,inux和.MacOSX档案转换为Windows格式
3.6 压缩和归档档案
3.6.1 bzip2:压缩档案
3.6.2 bunzip2和bzcat:解压缩档案
3.6.3 gzip:压缩档案
3.6.4 tar:打包和解包档案
3.7 定位命令
3.7.1 which和whereis:定位实用程式
3.7.2 slocate/Iocate:搜寻档案
3.8 获取用户和系统信息
3.8.1 who:列出系统上的用户
3.8.2 finger:列出系统上的用户
3.8.3 w:列出系统上的用户
3.9 与其他用户通信
3.9.1 write:传送讯息
3.9.2 mesg:拒绝或接受讯息
3.10 电子邮件
3.11 本章小结
练习
高级练习
第4章 Linux档案系统
4.1 分层档案系统
4.2 目录档案和普通档案
4.2.1 档案名称
4.2.2 工作目录
4.2.3 主目录
4.3 路径名
4.3.1 绝对路径名
4.3.2 相对路径名
4.4 目录操作
4.4.1 mkdir:创建目录
4.4.2 cd:更改工作目录
4.4.3 rmdir:删除目录
4.4..4 路径名
4.4.5 mv/cp:移动/複製档案
4.4.6 mv:移动目录
4.4.7 重要的标準目录和档案
4.5 访问许可权
4.5.1 ls.1 :显示访问许可权
4.5.2 chmod:改变访问许可权
4.5.3 setuid和setgid许可权
4.5.4 目录访问许可权
4.6 ACL
4.6.1 启用ACL
4.6.2 处理访问规则
4.6.3 设定目录的默认规则
4.7 连结
4.7.1 硬连结
4.7.2 符号连结
4.7.3 nn:删除连结
4.8 本章小结
练习
高级练习
第5章 shell
5.1 命令行
5.1.1 语法
5.1.2 处理命令行
5.1.3 执行命令行
5.1.4 编辑命令行
5.2 标準输入输出
5.2.1 作为档案的萤幕
5.2.2 作为标準输入的键盘和作为标準输出的萤幕
5.2.3 重定向
5.2.4 管道
5.3 在后台运行命令
5.4 生成档案名称/扩展路径名
5.4.1 特殊字元“?
5.4.2 特殊字元“*”
5.4.3 特殊字元“[]
5.5 内置命令
5.6 本章小结
练习
高级练习
第Ⅱ部分 编辑器
第6章 vim编辑器
6.1 历史
6.2 入门:用vim创建和编辑档案
6.2.1 启动vim
6.2.2 命令模式和输入模式
6.2.3 输入文本
6.2.4 获取帮助
6.2.5 结束编辑会话
6.2.6 comDatible参数
6.3 介绍vim的特性
6.3.1 在线上帮助
6.3.2 术语
6.3.3 操作模式
6.3.4 显示
6.3.5 输入模式下校正文本
6.3.6 工作缓冲区
6.3.7 行长度与档案大小
6.3.8 视窗
6.3.9 锁定档案
6.3.10 非正常结束编辑会话
6.3.11 崩溃后的文本恢复
6.4 在命令模式下移动游标
6.4.1 按字元移动游标
6.4.2 将游标移到某个特定字元
6.4.3 按字移动游标
6.4.4 按行移动游标
6.4.5 按句子和段落移动游标
6.4.6 在萤幕内移动游标
6.4.7 查看工作缓冲区的不同部分
6.5 输入模式
6.5.1 插入文本
6.5.2 追加文本
6.5.3 为输入文本打开行
6.5.4 替换文本
6.5.5 在输入模式下转义特殊字元
6.6 在命令模式下删除和修改文本
6.6.1 撤销修改
6.6.2 删除字元
6.6.3 删除文本
6.6.4 修改文本
6.6.5 替换文本
6.6.6 修改大小写
6.7 查找和替换
6.7.1 查找字元
6.7.2 查找字元串
6.7.3 字元串的替换
6.8 其他命令
6.8.1 连线命令
6.8.2 状态命令
6.8.3.(句点)
6.9 複製、移动和删除文本
6.9.1 通用缓冲区
6.9.2 命名缓冲区
6.9.3 编号缓冲区
6.10 档案的读写
6.10.1 读档案
6.10.2 写档案
6.10.3 识别当前档案
6.11 参数设定
6.11.1 在vim中设定参数
6.11.2 在启动档案中设定参数
6.11.3.vimrc启动档案
6.11.4 参数
6.12 高级编辑技巧
6.12.1 使用标记
6.12.2 编辑其他档案
6.12.3 宏与快捷键
6.12.4 在vim中执行shell命令
6.13 度量单位
6.13.1 字元
6.13.2 字
6.13.3 空白分隔字
6.13.4 行
6.13.5 句子
6.13.6 段落
6.13.7 萤幕(视窗)
6.13.8 重複因子
6.14 本章小结
练习
高级练习
第7章 emacs编辑器
7.1 历史
7.1.1 演化
7.1.2 emacs与vim
7.1.3 命令行emacs和图形emacs
7.2 入门:开始使用emacs
7.2.1 启动emacs
7.2.2 退出emacs
7.2.3 插入文本
7.2.4 删除字元
7.2.5 移动游标
7.2.6 在游标处编辑
7.2.7 保存和检索缓冲区中的内容
7.3 emacs GUI
7.4 基本编辑命令
7.4.1 按键的表示与使用
7.4.2 键序列和命令
7.4.3 META+x:运行不带绑定键的命令
7.4.4 数值参数
7.4.5 编辑点与游标
7.4.6 在缓冲区中滚动
7.4.7 删除文本
7.4.8 搜寻
7.4.9 通过键盘使用选单栏
7.5 在线上帮助
7.6 高级编辑
7.6.1 撤销修改
7.6.2 编辑点标记和区域
7.6.3 剪下与贴上:移出已剪下文本
7.6.4 插入特殊字元
……
第Ⅲ部分 Shell
第8章 Bourne Again Shell
第9章 TC Shell
第Ⅳ部分 编程工具
第10章 BASH程式设计
第11章 Perl脚本语言
第12章 AWK模式处理语言
第13章 Sed编辑器
第14章 rsync安全複製实用程式
第Ⅴ部分 编程工具
第15章 命令参考
第Ⅵ部分 附录