1.Shell脚本

1.1概念

将要执行的命令按顺序保存到一个文本文件;

给该文件可执行权限;

可结合各种Shell控制语句以完成更复杂的操作。

1.2shell脚本应用场景

重复性操作

交互性任务

批量事务处理

服务运行状态监控

定时任务执行

1.3shell的作用

相当于一个翻译官, shell是一个特殊的应用程序,它介于操作系统内核和用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

Shell自定义变量及赋值_重定向

1.2执行脚本

使用vim文本编辑器

按执行顺序一次编写每一条linux命令

赋予可执行权限

Shell自定义变量及赋值_重定向_02

vim dome.sh #使用vim编辑器编辑
#!/bin/bash #脚本解释器声明
cd /boot
echo 当前目录位于: #linux输出命令
pwd #linux命令

Shell自定义变量及赋值_重定向_03

1.3创建shell的步骤

第一步:创建一个包含命令和控制结构的文件。

第二步:编辑完修改这个文件的权限使它可以执行  # 使用 chmod +x  test.sh

第三步:检测语法错误 (命令集合是否正确)   

第四步:执行脚本 ./dome.sh

1.4脚本执行的方法

第一种需要给权限 +x (绝对路径和相对路径)

Shell自定义变量及赋值_重定向_04

Shell自定义变量及赋值_变量名_05

Shell自定义变量及赋值_标准输出_06

2.重定向与管道操作

2.1交互式硬件设备

   由于Shell脚本“批量处理”的特殊性,其大部分操作过程位于后台,不需要用户进行干预,因此要学会提取、过滤执行信息变得十分重要,所以我们需要重定向和管道。

类型

设备文件

文件描述编号

默认设备

标准输入

/dev/stdin

0

键盘

标准输出

/dev/stdout

1

显示器

标准错误输出

/dev/stderr

2

显示器

2.2 重定向操作 

类型

操作符

用途

重定向输入

<

从指定文件读取数据

重定向输出

>

将标准输出结果保存到指定的文件,并且覆盖原有文件

>>

将标准输出追加到指定的文件的尾部,不覆盖原有内容

标准错误输出

2>

将错误信息保存到指定文件,并且覆盖原有文件

2>>

将错误信息追加到指定文件的尾部,不覆盖原有内容

混合输出

&>和2>&1

将标准输出,标准错误保存到同—文件中

uname -r :显示操作系统的发行版号  uname -p :显示类型

Shell自定义变量及赋值_变量名_07

Shell自定义变量及赋值_变量名_08

Shell自定义变量及赋值_变量名_09

重定向输入,输入0后直接输入了

Shell自定义变量及赋值_重定向_10

Shell自定义变量及赋值_标准输出_11

Shell自定义变量及赋值_重定向_12

grep过滤

Shell自定义变量及赋值_标准输出_13

Shell自定义变量及赋值_变量名_14

/dev/null 黑洞,写入它的东西会永远丢失。

Shell自定义变量及赋值_变量名_15

Shell自定义变量及赋值_标准输出_16

Shell自定义变量及赋值_标准输出_17

Shell自定义变量及赋值_重定向_18

2.2管道操作符号 |

管道操作为不同命令之间的协同工作提供了一种机制,位于管道符号“|”左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。  

在 Shell 脚本应用中,管道操作通常用来过滤所需要的关键信息。

$bash  $表示系统提示符,$ 表示此用户为普通用户,超级用户的提示符是#,

Shell自定义变量及赋值_标准输出_19

Shell自定义变量及赋值_变量名_20

df -ht查看磁盘使用情况

过滤以/结尾 打印第一行第6个字段,一定要加大括号。

过滤以/结尾 打印第一行第3个字段

Shell自定义变量及赋值_重定向_21

3.shell变量及赋值

shell的变量

变量是用来临时保存数据的,并且该数据时可以变化的,任何一个语言都离不开变量,

如果某个内容需要多次使用并且会重复出现,这样就可以使用变量了,如果需要修改直接修改变量就可以了

常见 Shell 变量的类型包括自定义变量、环境变量、只读变量、位置变量、预定义变量

注意:变量名以名字或下划线开头,区分大小写,建议全大写

格式:变量名=变量值

变量名:临时存放数据的地方

变量值:临时的可变化的数据

3.1自定义变量

Shell自定义变量及赋值_标准输出_22

3.2{}引用变量

Shell自定义变量及赋值_变量名_23

\c不换行输出

\n换行

Shell自定义变量及赋值_重定向_24

Shell自定义变量及赋值_重定向_25

.赋值时使用引号

双引号:允许通过$符号引用其他变量值

单引号:禁止引用其他变量值, $视为普通字符

反撇号:命令替换,提取命令执行后的输出结果,``和$(…)作用相同

Shell自定义变量及赋值_标准输出_26


Shell自定义变量及赋值_标准输出_27

Shell自定义变量及赋值_重定向_28

Shell自定义变量及赋值_标准输出_29

嵌套语句

qc是查询已安装软件的文件位置。

Shell自定义变量及赋值_变量名_30

Shell自定义变量及赋值_标准输出_31