一、什么是shell
shell也是操作系统中的一个软件,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口,系统中的命令用shell去解释shell接受系统回应的输出并显示其到屏幕中
shell的类型如下图
bash= GUN Bourne-Again Shell
二、什么是shell脚本
脚本是一种解释型语言
用shell脚本保存执行的动作
用脚本判定命令的执行动作
用脚本来实现动作的批量执行
*shell脚本hello world如下图
第一行为幻术,指定shell的类型
*shell脚本的执行
1)sh 直接用指定解释器解释(什么都不加默认用shell),不读幻术,不需要加执行权限
2)./执行,用脚本写入的幻术解释器解释,需要加执行权限chmod +x
三、shell脚本的vim编写
在/etc/vimrc配置文件下,编写如下图
第66行map表示设置快捷键为[F9];ms调用什么东西 <cr>‘s表示自动执行
第67行表示自动运行,条件是新文件以.sh结尾的文件;自动运行
Author__脚本作者
CreateTime__脚本创作时间;.strftime表示捕捉时间
*)diff -u 以合并的方式来显示文件内容的不同
这里可以生成westos.path(补丁文件)
可以将第一个文件添加补丁使两个文件一致
2、pacth命令
用于不同文件打补丁
pacth file.old file.path
3、cut命令
用于命令多用与字符截取
cut -d 指定分隔符
cut -f 指定截取的列
cut -c 指定截取的字符位置
实例:执行ifconfig eth0截取出ip
4、sort
多用与字符排序
sort -n 纯数字排序
sort -r 倒序
sort -u 去掉重复数字
sort -o 输出到指定文件
sort -t 指定分隔符
sort -k 指定要排序的列
实例:按内存使用率排序,并显示其pid
5、&&和||
&&用来执行条件成立后执行的命令
||用来执行条件不成立后执行的命令
实例:用来显示ping主机,如果ping通显示up,不通显示down
6、颜色的设置
7、test命令
test命令和[ ]等同
还是配合上面显示ping通否
1)[ -z "$1" ]-z 表示是否是空白
2)-ge 大于等于
实例:如果根目录的使用率大于百分之八十则给root发邮件提示
3)
-eq 等于
-ne 不等于
这两个是数学的表示方法
-gt 大于
-ge 大于等于
-le 小于等于
-lt 小于
4)可以满足多个条件
-a and 和
-o or 或者
5)-ef 节点号是否一致
-nt是否比这个文件新(时间戳)
-ot 是否比这个文件老
6)file
检测文件类型
-e 查看是否存在这个文件
-f 是否是普通文件
-L 是否是链接文件
-S 是否是套接字文件
-b 是否是块设备文件
-d 是否是目录
-c 是否是字符设备
实例:写一个脚本可以显示文件时什么类型
补充tr命令,大小写的转换
tr 'a-z' 'A-Z' < 选择导入的文件