一·什么是shell脚本
我们在学习一门新技术的时候,我们一定要知道它是什么,学了这门技术能做什么,做程序员,一定要精准定位问题,这样才会事半功倍!
shell是一个程序,采用C语言编写,是用户和Linux内核沟通的桥梁,他就是一种命令语言,有时一种解释性的编程语言。
shell英文单词译为"贝壳",”贝壳“是动物作为外在保护的一种工具,linux中的shell就是Linux内核的一个外层保护工具,并且负责完成用户与内核之间的交互
linux系统中有内核,内核是用来管理硬件的,比如播放声音,打印文档,而这些系统反应是由用户下达命令才去执行操作的,但是内核听不懂人类语言,这时shell就派上用场了,shell相当于一个翻译官,将用户的指令翻译成二进制传给内核,内核就明白是什么意思并且去执行操作了
二·shell脚本能做什么
日常运维工作大部分是一些繁琐的工作,每天80%的工作量就是重复干做天的事情,而且工作量还比较大,那么摆在运维面前的选择就是:
-
自己搞定一切
-
机器搞定一切
当然,谁不愿意喝着茶水,逗着前台妹子过完愉快的一天呢,如何让机器搞定一切,得以解放自己,有更多的时间逗妹子,这是就要祭出shell大法了
shell大法好,妹子跟着跑
三·shell功能
- 命令解释功能
- 启动程序
- 输入输出重定向
- 管道连接
- 文件名置换
- 变量维护
- 环境控制
- shell编程
四·第一个shell脚本:hello world
1.虽然在linux系统中文件没有扩展名的概念,但建议shell 脚本的命名以.sh结束,见名知意,这样一看就知道是一个shell脚本
2.每个shell脚本都要定义脚本的执行环境,如何定义呢:在shell脚本的开头加上(#!/usr/bin/bash)这句话就可以了
3.脚本的组成:
- 解释环境
- 注释说明
- 执行代码
4:echo “hello word”
5:执行脚本的两种方法:
- 给予脚本执行权限 chomd xxx.sh 700 —> ./xxx.sh
- 解释器直接运行,不用权限: sh xxx.sh
五·shell中的特殊符号
~ 家目录
! 执行历史命令
!! 执行上一条命令
$ 变量中去取内容符
& 后台执行
* 通配符,匹配所有
? 匹配除回车以外的一个字符
; shell中可以一行执行多个命令,用分号分隔
| 管道符上一个命令的输出作为下一个命令的输入
\ 转义字符
‘’ 反尹浩,命令中先执行反引号的命令
六·echo 命令介绍
1.功能:将内容输出到默认显示设备,echo默认在输出后加个换行符
2.可添加参数
- -n 输出内容不自动换行
- -e 将一些特殊字符进行转意
3转意字符;
\a -------- 发出警告声
\b -------- 删除前一个字符
\c -------- 最后不加上换行符
\f --------- 换行但光标仍旧停留在当前位置
\n -------- 换行且光标移至行首
\r -------- 光标移至行首,但不换行
\t -------- 插入tab
七·shell基本输入:read命令
1.read命令默认接受键盘输入,回车符代表输入结束
2.read命令参数选项:
-p ------ 打印信息
-t ------- 限定时间
-s ------- 不回显
-n ------- 输入字符个数
八·shell常用指令
1.获取字符串长度
NAME='hello world'
echo ${#NAME}
2 转意字符-e
echo -e
3 重定向符号,将输出重定向记录到到a.txt中
echo 'hello' > a.txt
4 输出当前日期和时间
echo `date`
输出:2020年 07月 06日 星期一 16:30:55 CST
5 运算符expr,运算符+左右都要空格,expr命令为linux中的命令,一般用于整数值计算,但也可以用于字符串操作
echo `expr 2 + 2`
6 乘法运算要家转移意符,*有特殊意义
echo `expr 5 \* 6`
7 shell中的if判断条件:a,b两边都要空格
a=30
b=30
if [$a==$b]
then
echo "a=b"
fi