一、shell 的基本知识
1.shell 的定义
shell 是操作系统中的一个软件,它包在linux 内核的外面,为用户和内核之间的交互提供了一个接口,系统中的命令用shell 去解释,shell 接受系统回应的输出并显示到屏幕中
2.shell 脚本的定义
脚本是一种解释型语言,用shell脚本保存执行动作,用脚本判定命令的执行条件,用脚本来实现动作的批量执行。
3.Unix系统中常见的shell有:sh、csh、ksh、tcsh、bash
二、shell 的应用
1.shell 脚本的创建
call 表示调用 以下设置只针对新脚本有用
测试:
2.比较两个文件或目录的不同 (diff )
只显示两个文件的不同之处
a 表示添加 add
c 表示更改 change
d 表示删除 delete
< 表示第一个文件中的内容
>表示第二个文件中的内容
创建两个不同的文件
在第一个文件的第一行添加123 才能匹配第二个文件内容
vim file
两个文件的第二行不同
将第一个文件的第二行更改为123后才能与第二个文件相匹配
3.patch 补丁
安装 patch
yum install patch -y
整合两个不同的文件,生成补丁
生成补丁文件 file.path
使用补丁 (不备份)
-b可以备份file 的原始文件
4.diff中使用的参数
-b 不检测空格字符的不同
-B不检测空格行的不同
-c 显示全部内容,并标明不同之处
-i 不检测大小写的不同
-q仅显示有无差异,不显示详细信息
-r 比较子目录中文件
5.cut 的使用
cut 命令多用于字符截取
-d 指定分隔符 -f 指定截取的列
截取1到3列
截取1列和3列
-c 指定截取的字符位置 截取第二个和第三个字符
截取第二个到第五个字符
6.sort命令的使用 多用于字符的排序
-o 表示输出到指定文件
对第一个字符排序
-n 表示纯字数排序
-r 倒序
-u 去掉重复数字
排序并统计文件内容重复次数
-t 指定分隔符 -k 指定要排序的列
uniq -c 每行显示一次并统计重复次数
uniq -d 显示重复的行
uniq -u 显示唯一的行
三、&&和||
&& 用来执行条件成立后执行的命令
|| 用来执行条件不成立后执行的命令
编写脚本 若ip可以ping通,则显示 yes 若不通,则显示no
四、test 命令
test 命令和[ ]等同 如:test "$A" ="$B" 等同 ["$A"="$B"]
如果 a=b 则显示yes 如果不是显示no
如果a=b 则显示yes 如果不是显示no
!= 表示为 不等于 如果a不等于b则显示yes,如果不是则显示no
-eq 表示等于
-ne 表示不等于
-gt 表示大于
-lt 表示小于
-le 小于等于
-ge 大于等于
a 大于0且小于10
-z 表示为空
-n 表示不为空
-ef 判断节点相不相等
ln 制作链接
查看节点
file 比 file1 创建的早
file 比 file1 创建的晚
-e 判断文件是否存在
-d 判断是不是目录
-f 判断是否为普通文件
-L 判断是否为链接
-b 块设备
-S 判断是否为套结字
-c 字符设备
编写脚本,判断文件是否存在,若存在,判断它是什么类型的文件
测试
tr 'A-Z' 'a-z' 表示将大写转化为小写
tr 'a-z' 'A-Z' 表示将小写转化为大写