-
① Shell的基本语法结构
如:变量定义、条件判断、循环语句(for、until、while)、分支语句、函数和数组等;
② 基本正则表达式的运用;
③ 文件处理三剑客:grep、sed、awk工具的使用;
④ 使用shell脚本完成一些较复杂的任务,如:服务搭建、批量处理等。
说明:以上内容仅仅是基本要求,还有很多更深更难的语法需要扩充学习。
-
本节目标
- ==熟练掌握shell变量的定义和获取(重点)==
- ==能够进行shell简单的四则运算==
前言:
计算机只能认识(识别)机器语言(0和1),如(11000000 这种)。但是,我们的程序猿们不能直接去写01这样的代码,所以,要想将程序猿所开发的代码在计算机上运行,就必须找"人"(工具)来==翻译成机器语言==,这个"人"(工具)就是我们常常所说的==编译器==或者==解释器==。

- 编译型语言:
==程序在执行之前需要一个专门的编译过程==,把程序编译成为机器语言文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++
- 解释型语言:
程序不需要编译,程序在运行时由==解释器==翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Python/JavaScript/ Perl /ruby/==Shell==等都是解释型语言。

- 总结
编译型语言比解释型语言==速度较快==,但是不如解释型语言==跨平台性好==。如果做底层开发或者大型应用程序或者操作系开发一==般都用编译型语言==;如果是一些服务器脚本及一些辅助的接口,对速度要求不高、对各个平台的==兼容性有要求==的话则一般都用==解释型语言==。

总结:
- ==shell就是人机交互的一个桥梁==
- shell的种类
思考:终端和shell有什么关系?

- 一句话概括
简单来说就是将==需要执行的命令==保存到文本中,==按照顺序执行==。它是解释型的,意味着不需要编译。
- 准确叙述
若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= shell脚本
重复化、复杂化的工作,通过把工作的命令写成脚本,以后仅仅需要执行脚本就能完成这些工作。
①自动化软件部署 LAMP/LNMP/Tomcat...
②自动化管理 系统初始化脚本、批量更改主机密码、推送公钥...
③==自动化分析处理== 统计网站访问量
④==自动化备份== 数据库备份、日志转储...
⑤自动化监控脚本
- 尽可能记忆更多的命令(记忆命令使用功能和场景)
- 掌握脚本的标准的格式(指定魔法字节、使用标准的执行方式运行脚本)
- 必须==熟悉掌握==脚本的基本语法(重点)
多看(看懂)——>模仿(多练)——>多思考(多写)
1)脚本第一行,魔法字符==#!==指定解释器【==必写==】
表示以下内容使用bash解释器解析
==注意:==
如果直接将解释器路径写死在脚本里,可能在某些系统就会存在找不到解释器的兼容性问题,所以可以使用:==== ====
2)脚本第二部分,注释(#号)说明,对脚本的基本信息进行描述【可选】
3)脚本第三部分,脚本要实现的具体代码内容
- 标准脚本执行方法(建议)
- 非标准的执行方法(不建议)
- 直接在命令行指定解释器执行
- 使用命令读取脚本文件,执行文件里的代码
小试牛刀:写一个木有灵魂的脚本,要求如下:
删除/tmp/目录下的所有文件
然后在/tmp目录里创建3个目录,分别是dir1~dir3
拷贝/etc/hosts文件到刚创建的dir1目录里
-
最后打印"==报告首长,任务已于2019-05-05 10:10:10时间完成=="内容
一句话概括:变量是用来临时保存数据的,该数据是可以变化的数据。
- 如果某个内容需要多次使用,并且在代码中重复出现,那么可以用变量代表该内容。这样在修改内容的时候,仅仅需要修改变量的值。
- 在代码运作的过程中,可能会把某些命令的执行结果保存起来,后续代码需要使用这些结果,就可以直接使用这个变量。
变量名=====变量值
变量名:用来临时保存数据的
变量值:就是临时的可变化的数据
虽然可以给变量(变量名)赋予任何值;但是,对于==变量名==也是要求的!:unamused:
直接赋值给一个变量
目的:让==用户自己==给变量赋值,比较灵活。
语法:
常见选项:
举例说明:
用法2:变量值来自文件
目的: 给变量做一些限制,固定变量的类型,比如:整型、只读
用法:
常用选项:
举例说明:
- ==本地变量==:当前用户自定义的变量。当前进程中有效,其他进程及当前进程的子进程无效。
-
环境变量:当前进程有效,并且能够被子进程调用。
- 查看当前用户的环境变量
- ==查询当前用户的所有变量(临时变量与环境变量)==
- 或者
全局变量:全局所有的用户和程序都能调用,且继承,新建的用户也默认能调用.
解读相关配置文件
说明:以上文件修改后,都需要重新==source==让其生效或者退出重新登录。
-
用户登录系统读取相关==文件的顺序==
- 系统变量(内置bash中变量) : shell本身已经固定好了它的名字和作用.
- 进一步了解位置参数
- 进一步了解$*和$@的区别
:表示将变量看成一个整体
:表示变量是独立的
算术运算:默认情况下,shell就只能支持简单的==整数==运算
运算内容:加(+)、减(-)、乘(*)、除(/)、求余数(%)
- 对变量的值的影响
- 对==表达式==的值的影响
- 普通数组:只能使用整数作为数组索引(元素的下标)
- 关联数组:可以使用字符串作为数组索引(元素的下标)
- 一次赋予一个值
- 一次赋予多个值
①首先声明关联数组
==declare -A asso_array1==
② 数组赋值
- 一次赋一个值
- 一次赋多个值
- 查看关联数组
- 获取关联数组值
- 其他定义方式
- 取出一个目录下的目录和文件:和
- -==变量"内容"的删除和替换==
- 以下了解,自己完成
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/24367.html