shell脚本学习指南

作者: 云计算机网 分类: 云计算知识 发布时间: 2019-03-16 04:34

shell脚本学习指南

书名: Shell脚本学习指南

作者: (美)罗宾

ISBN: 9787111255048

前言

近几年来,shell一直被忽略,是一个不受重视的脚本语言。shell虽然是UNIX的个脚本语言,但它仍是相当的。它结合了延展性与效率。持续保有独具的特殊,并不断地被改良,使它们多年来一直与那些花招很多的脚本语言保存抗衡。

背景

本书可以回答你这些问题。告诉你如何结合UNIX工具,将其与标准的shell相结合完成工作。shell脚本的编写是门艺术,需要的不只是shell语言的相关知识,还要你对各个独立的UNIX程序有基本认识:为什么会有这些工具,要怎么单独地使用它们,怎么将它们与其他程序结合应用。

为什么需要学习编写shell命令?因为大部分情况下,中型到大型的问题都能拆成较小的部分,这些小部分也多半能找到现成的UNIX工具。用心编写的好用shell脚本常常能够比C或C++语言编写的程序更快地解决相同的问题。也可以让shell脚本提供可移植性,也是说,可以跨越UNIX与POSIX兼容的系统,有时仅需略作修改,甚至不必修改,即可使用。

目录

第1章 背景知识

1.1 UNIX简史

1.2 软件工具的原则

1.3 小结

第2章 入门

2.1 脚本编程语言与编译型语言的差异

2.2 为什么要使用Shell脚本

2.3 一个简单的脚本

2.4 自给自足的脚本:位于行的#!

2.5 Shell的基本元素

2.6 访问Shell脚本的参数

2.7 简单的执行跟踪

2.8 国际化与本地化

2.9 小结

第3章 查找与替换

3.1 查找文本

3.2 正则表达式

3.3 字段处理

3.4 小结

第4章 文本处理工具

4.1 排序文本

4.2 删除重复

4.3 重新格式化段落

4.4 计算行数、字数以及字符数

4.5 打印

4.6 提取开头或结尾数行

4.7 小结

第5章 管道的神奇魔力

5.1 从结构化文本文件中提取数据

5.2 针对Web的结构型数据

5.3 文字解谜好帮手

5.4 单词列表

5.5 标签列表

5.6 小结

第6章 变量、判断、重复动作

6.1 变量与算术

6.2 退出状态

6.3 case 语句

6.4 循环

6.5 函数

6.6 小结

第7章 输入/输出、文件与命令执行

7.1 标准输入、标准输出与标准错误输出

7.2 使用read读取行

7.3 关于重定向

7.4 printf的完整介绍

7.5 波浪号展开与通配符

7.6 命令替换

7.7 引用

7.8 执行顺序与eval

7.9 内建命令

7.10 小结

  • linux命令行和shell脚本编程宝典 PDF

    基本信息

    书名:linux命令行和shell脚本编程宝典

    作者:[美]richardblum

    翻译:苏丽 张妍婧

    内容摘要

    在Linux系统中,命令和shell脚本是非常重要的内容,它们的功能非常强大,使用它们可以完成各种操作。本书分为5部分。第1部分介绍Linux shell的基础知识;第2部分介绍shell脚本;第3部分介绍shell脚本编程的高等内容;第4部分介绍如何使用Linux环境中的各种shell编写shell脚本;第5部分演示如何在实际使用情况中使用shell脚本。

    本书非常全面地介绍了Linux命令行和shell命令,并且提供了很多实践教程和实例应用程序信息,为学习的内容提供了相关环境,是linux的爱好者以及Linux系统管理员的。

    目录

    第1部分linux命令行

    第1章linuxshell入门3

    1.1什么是linux3

    1.1.1深入研究linux内核4

    1.1.2gnu实用程序9

    1.1.3linux桌面环境10

    1.2linux发行版13

    1.2.1核心linux发行版13

    1.2.2特定linux发行版14

    1.2.3linuxlivecd14

    1.3小结15

    第2章了解shell17

    2.1终端模拟17

    2.1.1图形功能18

    2.1.2键盘20

    2.2terminfo数据库21

    2.3linux控制台23

    2.4xterm终端24

    2.4.1命令行参数24

    2.4.2xterm主菜单25

    2.4.3vt选项菜单26

    2.4.4vt字体菜单28

    2.5konsole终端29

    2.5.1命令行参数29

    2.5.2会话30

    2.5.3菜单栏31

    2.6gnome终端34

    2.6.1命令行参数34

    2.6.2选项卡35

    2.6.3菜单栏35

    2.7小结37

    第3章基本的bashshell命令38

    3.1启动shell38

    3.2shell提示符39

    3.3bash手册40

    3.4文件系统导航41

    3.4.1linux文件系统41

    3.4.2浏览目录43

    3.5文件和目录列表44

    3.5.1基本列表44

    3.5.2修改显示的信息45

    3.5.3完整的参数列表46

    3.5.4过滤列表输出48

    3.6文件处理48

    3.6.1创建文件48

    3.6.2复制文件49

    3.6.3链接文件50

    3.6.4重命名文件51

    3.6.5删除文件52

    3.7目录处理53

    3.7.1创建目录53

    3.7.2删除目录53

    3.8查看文件内容54

    3.8.1查看文件统计数据54

    3.8.2查看文件类型54

    3.8.3查看整个文件55

    3.8.4查看部分文件57

    3.9小结58

    第4章更多bashshell命令59

    4.1监控程序59

    4.1.1进程查看59

    4.1.2实时进程监控64

    4.1.3停止进程66

    4.2监控磁盘空间67

    4.2.1挂载介质68

    4.2.2使用df命令70

    4.2.3使用du命令71

    4.3操作数据文件71

    4.3.1数据排序72#p#分页标题#e#

    4.3.2搜索数据74

    4.3.3压缩数据75

    4.3.4归档数据78

    4.4小结79

    第5章使用linux环境变量80

    5.1什么是环境变量80

    5.1.1全局环境变量80

    5.1.2本地环境变量81

    5.2设置环境变量83

    5.2.1设置本地环境变量83

    5.2.2设置全局环境变量84

    5.3移除环境变量84

    5.4默认的shell环境变量85

    5.5设置path环境变量87

    5.6定位系统环境变量88

    5.6.1登录shell88

    5.6.2交互式shell90

    5.6.3非交互式shell92

    5.7变量数组92

    5.8使用命令别名93

    5.9小结94

    第6章理解linux文件权限96

    6.1linux安全性96

    6.1.1/etc/passwd文件96

    6.1.2/etc/shadow文件98

    6.1.3添加新用户98

    6.1.4删除用户100

    6.1.5修改用户100

    6.2使用linux用户组102

    6.2.1/etc/group文件103

    6.2.2创建新用户组103

    6.2.3修改用户组104

    6.3解码文件权限104

    6.3.1使用文件权限符号105

    6.3.2默认文件权限105

    6.4修改安全设置107

    6.4.1修改权限107

    6.4.2修改所有者108

    6.5共享文件108

    6.6小结109

    第7章使用编辑器111

    7.1vim编辑器111

    7.1.1vim基本用法111

    7.1.2编辑数据113

    7.1.3复制和粘贴113

    7.1.4搜索和替换114

    7.2emacs编辑器114

    7.2.1在控制台中使用emacs114

    7.2.2在xwindows中使用emacs118

    7.3kde系列编辑器119

    7.3.1kwrite编辑器119

    7.3.2kate编辑器121

    7.4gnome编辑器124

    7.4.1启动gedit124

    7.4.2基本gedit特性125

    7.4.3设置项125

    7.5小结128

    第2部分shell脚本的基础知识

    第8章基本脚本编译131

    8.1使用多条命令131

    8.2创建脚本文件131

    8.3显示消息133

    8.4使用变量134

    8.4.1环境变量134

    8.4.2用户变量135

    8.4.3反引号136

    8.5重定向输入输出137

    8.5.1输出重定向137

    8.5.2输入重定向137

    8.6管道138

    8.7数学计算140

    8.7.1expr命令140

    8.7.2使用括号141

    8.7.3浮点解决方案142

    8.8退出脚本145

    8.8.1核对退出状态145

    8.8.2退出命令146

    8.9小结147

    第9章使用结构化命令148

    9.1使用if-then语句148

    9.2if-then-else语句150

    9.3嵌套if语句150

    9.4test命令151

    9.4.1数值比较151

    9.4.2字符串比较152

    9.4.3文件比较155

    9.5复合条件检查161

    9.6if-then的高级特征161

    9.6.1使用双圆括号162

    9.6.2使用双方括号162

    9.7case命令163

    9.8小结164

    第10章更多结构化命令165

    10.1for命令165

    10.1.1读取列表中的值165#p#分页标题#e#

    10.1.2读取列表中的复杂值166

    10.1.3从变量读取列表168

    10.1.4读取命令中的值168

    10.1.5改变字段分隔符169

    10.1.6使用通配符读取目录170

    10.2c式的for命令171

    10.2.1c语言中的for命令171

    10.2.2使用多个变量172

    10.3while命令173

    10.3.1while的基本格式173

    10.3.2使用多条测试命令174

    10.4until命令175

    10.5嵌套循环176

    10.6文件数据的循环178

    10.7控制循环178

    10.7.1break命令179

    10.7.2continue命令181

    10.8处理循环的输出183

    10.9小结184

    第11章处理用户输入185

    11.1命令行参数185

    11.1.1读取参数185

    11.1.2读取程序名称187

    11.1.3测试参数188

    11.2特殊的参数变量188

    11.2.1参数计数188

    11.2.2获取所有数据190

    11.3移位190

    11.4处理选项191

    11.4.1找出选项191

    11.4.2使用getopt命令194

    11.4.3更高级的getopts命令196

    11.5标准化选项197

    11.6获取用户输入198

    11.6.1基本读取198

    11.6.2计时199

    11.6.3默读200

    11.6.4读取文件200

    11.7小结201

    第12章显示数据202

    12.1了解输入和输出202

    12.1.1标准文件描述符202

    12.1.2重定向错误204

    12.2在脚本中重定向输出205

    12.2.1临时重定向205

    12.2.2重定向206

    12.3在脚本中重定向输入207

    12.4创建自己的重定向207

    12.4.1创建输出文件描述符207

    12.4.2重定向文件描述符208

    12.4.3创建输入文件描述符208

    12.4.4创建读取/写入文件描述符209

    12.4.5关闭文件描述符210

    12.5列出开放文件描述符210

    12.6禁止命令输出212

    12.7使用临时文件212

    12.7.1创建本地临时文件213

    12.7.2在/temp中创建临时文件213

    12.7.3创建临时目录214

    12.8记录消息215

    12.9小结216

    第13章脚本控制217

    13.1处理信号217

    13.1.1linux信号回顾217

    13.1.2生成信号218

    13.1.3捕获信号219

    13.1.4捕获脚本退出220

    13.1.5移除捕获220

    13.2以后台模式运行脚本221

    13.2.1以后台模式运行221

    13.2.2运行多个后台作业222

    13.2.3退出终端222

    13.3在不使用控制台的情况下运行脚本222

    13.4作业控制223

    13.4.1查看作业223

    13.4.2重新启动停止的作业225

    13.5变得更好225

    13.5.1nice命令226

    13.5.2renice命令226

    13.6准确无误地运行227

    13.6.1使用at命令调度作业227

    13.6.2使用batch命令229

    13.6.3调度定期脚本229

    13.7从头开始230

    13.7.1在启动时启动脚本231

    13.7.2随新shell一起启动232#p#分页标题#e#

    13.8小结232

    第3部分高级shell脚本编程

    第14章创建函数235

    14.1基本脚本函数235

    14.1.1创建函数235

    14.1.2使用函数236

    14.2返回值237

    14.2.1默认退出状态237

    14.2.2使用return命令238

    14.2.3使用函数输出239

    14.3在函数中使用变量239

    14.3.1向函数传递参数240

    14.3.2在函数中处理变量241

    14.4数组变量与函数243

    14.4.1向函数传递数组243

    14.4.2从函数返回数组244

    14.5函数递归245

    14.6创建库246

    14.7在命令行中使用函数247

    14.7.1在命令行创建函数247

    14.7.2在.bashrc文件中定义函数248

    14.8小结249

    第15章在脚本中添加颜色250

    15.1创建文本菜单250

    15.1.1创建菜单布局250

    15.1.2创建菜单函数251

    15.1.3添加菜单逻辑252

    15.1.4将其全部组合在一起252

    15.1.5使用select命令253

    15.2添加颜色254

    15.2.1ansi转义码254

    15.2.2显示ansi转义码255

    15.2.3在脚本中使用颜色256

    15.3制作窗口257

    15.3.1dialog软件包257

    15.3.2dialog选项261

    15.3.3在脚本中使用dialog命令263

    15.4获取图形265

    15.4.1kde环境265

    15.4.2gnome环境267

    15.5小结270

    第16章sed和gawk介绍271

    16.1文本处理271

    16.1.1sed编辑器271

    16.1.2gawk程序273

    16.2sed编辑器基础知识278

    16.2.1更多替换选项278

    16.2.2使用地址279

    16.2.3删除行281

    16.2.4插入和附加文本282

    16.2.5更改行283

    16.2.6变换命令284

    16.2.7打印命令温习284

    16.2.8将文件用于sed286

    16.3小结288

    第17章正则表达式289

    17.1正则表达式是什么289

    17.1.1正则表达式的定义289

    17.1.2正则表达式的类型290

    17.2定义bre模式290

    17.2.1纯文本290

    17.2.2特殊字符291

    17.2.3定位符292

    17.2.4点字符293

    17.2.5字符类294

    17.2.6否定字符类295

    17.2.7使用范围296

    17.2.8特殊字符类296

    17.2.9星号297

    17.3扩展的正则表达式298

    17.3.1问号298

    17.3.2加号299

    17.3.3使用大括号299

    17.3.4管道符号300

    17.3.5将表达式分组300

    17.4正则表达式实战301

    17.4.1计算目录文件301

    17.4.2验证电话号码302

    17.4.3解析电子邮件地址303

    17.5小结304

    第18章高级sed编程306

    18.1多行命令306

    18.1.1next命令306

    18.1.2多行删除命令309

    18.1.3多行打印命令310

    18.2保留空间310

    18.3否定命令311

    18.4更改命令流313

    18.4.1分支313

    18.4.2测试314

    18.5模式替换315#p#分页标题#e#

    18.5.1与号315

    18.5.2替换个别单词315

    18.6在脚本中使用sed316

    18.6.1使用包装器316

    18.6.2重定向sed输出317

    18.7创建sed工具317

    18.7.1双倍行距318

    18.7.2对可能有空行的文件使用双倍行距318

    18.7.3对文件中的行记数319

    18.7.4打印几行319

    18.7.5删除行320

    18.7.6删除html标记322

    18.8小结323

    第19章高级gawk编程324

    19.1使用变量324

    19.1.1内置变量324

    19.1.2用户定义的变量328

    19.2使用数组329

    19.2.1定义数组变量329

    19.2.2在数组变量中递归330

    19.2.3删除数组变量330

    19.3使用模式331

    19.3.1正则表达式331

    19.3.2匹配操作符331

    19.3.3数学表达式332

    19.4结构化命令332

    19.4.1if语句333

    19.4.2while语句334

    19.4.3do-while语句335

    19.4.4for语句335

    19.5格式化打印335

    19.6内置函数337

    19.6.1数学函数337

    19.6.2字符串函数338

    19.6.3时间函数339

    19.7用户定义的函数340

    19.7.1定义函数340

    19.7.2使用自己的函数340

    19.7.3创建函数库341

    19.8小结341

    第4部分可选的linuxshell

    第20章ashshell345

    20.1什么是ashshell345

    20.2原始ashshell346

    20.2.1原始ash命令行参数346

    20.2.2原始ash内置命令347

    20.2.3ashshell文件349

    20.3dashshell349

    20.3.1dash命令行参数349

    20.3.2dash环境变量350

    20.3.3dash内置命令352

    20.4在dash中编写脚本355

    20.4.1创建ash和dash脚本355

    20.4.2失效的特性355

    20.5小结359

    第21章tcshshell360

    21.1什么是tcshshell360

    21.2tcashshell的组成部分360

    21.2.1tcsh命令行参数361

    21.2.2tcsh文件361

    21.2.3tcsh登录文件362

    21.2.4shell启动文件362

    21.2.5退出文件363

    21.2.6tcsh环境变量364

    21.2.7shell变量364

    21.2.8环境变量367

    21.2.9在tcsh中设置变量369

    21.2.10使用set命令369

    21.2.11使用setenv命令369

    21.2.12tcsh内置命令370

    21.3在tcsh中编写脚本372

    21.3.1处理变量372

    21.3.2数组变量372

    21.3.3处理数学运算372

    21.3.4结构化命令373

    21.3.5if语句373

    21.3.6foreach语句375

    21.3.7while语句375

    21.3.8switch命令375

    21.4小结376

    第22章kornshell378

    22.1kornshell的历史378

    22.2ksh93shell的组成部分378

    22.2.1命令行参数379

    22.2.2默认文件380

    22.2.3环境变量380

    22.2.4内置命令385

    22.3在ksh93shell中编写脚本387

    22.3.1数学运算387

    22.3.2结构化命令389

    22.3.3命令重定向391#p#分页标题#e#

    22.3.4规程函数391

    22.4小结392

    第23章zshshell393

    23.1zshshell的历史393

    23.2zshshell的组成部分393

    23.2.1shell选项394

    23.2.2zshshell文件396

    23.2.3环境变量398

    23.2.4内置命令401

    23.3使用zsh编写脚本405

    23.3.1数学运算405

    23.3.2结构化命令406

    23.3.3函数406

    23.4小结408

    第5部分高级主题

    第24章使用数据库411

    24.1mysql数据库411

    24.1.1安装mysql411

    24.1.2完成mysql配置413

    24.1.3mysql客户端接口414

    24.1.4创建mysql数据库对象417

    24.2postgresql数据库419

    24.2.1安装postgresql419

    24.2.2postgresql命令接口421

    24.2.3创建postgresql数据库对象422

    24.3处理表424

    24.3.1创建表424

    24.3.2插入和删除数据425

    24.3.3查询数据426

    24.4在脚本中使用数据库427

    24.4.1连接到数据库427

    24.4.2向服务器发送命令428

    24.4.3格式化数据431

    24.5小结432

    第25章使用web433

    25.1lynx程序433

    25.1.1安装lynx434

    25.1.2lynx命令行434

    25.1.3lynx配置文件438

    25.1.4lynx环境变量439

    25.1.5从lynx捕获数据439

    25.2curl程序441

    25.2.1安装curl441

    25.2.2curl命令行442

    25.2.3研究curl444

    25.3使用zsh连接网络445

    25.3.1tcp模块445

    25.3.2客户端/服务器模型446

    25.3.3使用zsh进行客户端/服务器编程446

    25.4小结449

    第26章使用电子邮件450

    26.1linux电子邮件基础知识450

    26.1.1linux中的电子邮件450

    26.1.2邮件传输代理451

    26.1.3邮件分发代理452

    26.1.4邮件用户代理452

    26.2设置服务器454

    26.2.1sendmail455

    26.2.2postfix456

    26.3使用mailx发送消息459

    26.4mutt程序461

    26.4.1安装mutt461

    26.4.2mutt命令行462

    26.4.3使用mutt462

    26.5小结463

    第27章管理员使用的shell脚本465

    27.1监视系统统计信息465

    27.1.1监视磁盘空闲空间465

    27.1.2谁在霸占磁盘资源467

    27.1.3监视cpu和内存使用情况469

    27.2执行备份474

    27.2.1归档数据文件474

    27.2.2脱机存储备份文件477

    27.3小结478

    附录abash命令快速指南479

    a.1内置命令479

    a.2bash命令480

    a.3环境变量481

    附录bsed和gawk快速指南484

    b.1sed编辑器484

    b.1.1启动sed编辑器484

    b.1.2sed命令484

    b.2gawk程序487

    b.2.1gawk命令格式487

    b.2.2使用gawk487

    b.2.3gawk变量488

    b.2.4gawk程序功能489

    附录cshell版本比较491

    c.1变量491

    c.1.1环境变量491

    c.1.2用户定义的变量491#p#分页标题#e#

    c.1.3数组变量492

    c.2结构化命令492

    c.2.1if-then、while和until语句492

    c.2.2for语句493

    c.3数学计算493

    下载链接:http://pan.baidu.com/s/1bnxosl5

    推荐书籍:嵌入式Linux基础教程PDF

  • 相关推荐:

  • linux命令行和shell脚本编
  • 怎么用xshell连接云服务器
  • ie浏览器脚本错误
  • 微软发布PowerShell快照预
  • Microsoft PowerShell Core For
  • shell脚本监控系统资源并
  • rsync+inotifywait实现数据实
  • Python脚本监控线上AMQNu
  • rhel5+dhcp+vsftp+pxe+tftp+kic
  • 基于jenkins结合svn、ansi
  • 网站内容禁止违规转载,转载授权联系中国云计算网