1.Shell脚本
1.1概念
将要执行的命令按顺序保存到一个文本文件;
给该文件可执行权限;
可结合各种Shell控制语句以完成更复杂的操作。
1.2shell脚本应用场景
重复性操作
交互性任务
批量事务处理
服务运行状态监控
定时任务执行
1.3shell的作用
相当于一个翻译官, shell是一个特殊的应用程序,它介于操作系统内核和用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。
1.2执行脚本
使用vim文本编辑器
按执行顺序一次编写每一条linux命令
赋予可执行权限
vim dome.sh #使用vim编辑器编辑
#!/bin/bash #脚本解释器声明
cd /boot
echo 当前目录位于: #linux输出命令
pwd #linux命令
1.3创建shell的步骤
第一步:创建一个包含命令和控制结构的文件。
第二步:编辑完修改这个文件的权限使它可以执行 # 使用 chmod +x test.sh
第三步:检测语法错误 (命令集合是否正确)
第四步:执行脚本 ./dome.sh
1.4脚本执行的方法
第一种需要给权限 +x (绝对路径和相对路径)
2.重定向与管道操作
2.1交互式硬件设备
由于Shell脚本“批量处理”的特殊性,其大部分操作过程位于后台,不需要用户进行干预,因此要学会提取、过滤执行信息变得十分重要,所以我们需要重定向和管道。
类型 | 设备文件 | 文件描述编号 | 默认设备 |
标准输入 | /dev/stdin | 0 | 键盘 |
标准输出 | /dev/stdout | 1 | 显示器 |
标准错误输出 | /dev/stderr | 2 | 显示器 |
2.2 重定向操作
类型 | 操作符 | 用途 |
重定向输入 | < | 从指定文件读取数据 |
重定向输出 | > | 将标准输出结果保存到指定的文件,并且覆盖原有文件 |
>> | 将标准输出追加到指定的文件的尾部,不覆盖原有内容 | |
标准错误输出 | 2> | 将错误信息保存到指定文件,并且覆盖原有文件 |
2>> | 将错误信息追加到指定文件的尾部,不覆盖原有内容 | |
混合输出 | &>和2>&1 | 将标准输出,标准错误保存到同—文件中 |
uname -r :显示操作系统的发行版号 uname -p :显示类型
重定向输入,输入0后直接输入了
grep过滤
/dev/null 黑洞,写入它的东西会永远丢失。
2.2管道操作符号 |
管道操作为不同命令之间的协同工作提供了一种机制,位于管道符号“|”左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。
在 Shell 脚本应用中,管道操作通常用来过滤所需要的关键信息。
$bash $表示系统提示符,$ 表示此用户为普通用户,超级用户的提示符是#,
df -ht查看磁盘使用情况
过滤以/结尾 打印第一行第6个字段,一定要加大括号。
过滤以/结尾 打印第一行第3个字段
3.shell变量及赋值
shell的变量
变量是用来临时保存数据的,并且该数据时可以变化的,任何一个语言都离不开变量,
如果某个内容需要多次使用并且会重复出现,这样就可以使用变量了,如果需要修改直接修改变量就可以了
常见 Shell 变量的类型包括自定义变量、环境变量、只读变量、位置变量、预定义变量
注意:变量名以名字或下划线开头,区分大小写,建议全大写
格式:变量名=变量值
变量名:临时存放数据的地方
变量值:临时的可变化的数据
3.1自定义变量
3.2{}引用变量
\c不换行输出
\n换行
.赋值时使用引号
双引号:允许通过$符号引用其他变量值
单引号:禁止引用其他变量值, $视为普通字符
反撇号:命令替换,提取命令执行后的输出结果,``和$(…)作用相同
嵌套语句
qc是查询已安装软件的文件位置。