- Shell是指“为使用者提供操作界面”的软件(command interpreter,命令解析器),它接收用户命令,然后调用相应的应用程序。程序是由数据和逻辑组成的,脚本其实就是一个文本,对于遇到文本的升级,可以通过分析对比脚本的不同,然后进行打补丁。
一、diff
用法:diff [options] files|directorys
输出信息: [num1,num2][a|c|d][num3,num4]
num1,num2 :第一个文件中的行
a :添加
c :更改
d :删除
< :第一个文件中的内容
:第二个文件中的内容
num3,num4 :第二个文件中的行
- 编辑westos和westos.new 两个文件
diff westos westos.new 可以看到两个文件的不同,表示第一个文件中的第二行添加一个空行便可和第二个文件一样;
给westos.new 第二行后面加一个空格;
-b :忽略空格
表示第一个文件的第三行删除linux,即可和第二个文件相同
表示第二个文件的第二行发生了更改;
-c :显示文件所有内容并标示不同
-B :忽略空行
在/westosdir1目录下建立文件;
-r :对比目录
-u :合并输出
生成补丁文件
二、patch
- 输入命令 dnf install path -y,来安装patch软件(打补丁的工具);
输入命令 patch westos westos.path 即可用补丁文件来为 westos 文件补全信息;但是之前的文件会被替代;
-b :备份原文件,此时westos.orig就是源文件(westos补丁之前生成的副本)
三、cut
- 将/etc/passwd 文件复制到 /mnt 目录,可以用head命令截取所需要的信息
-d : 指定:为分隔符
-f :指定显示的列,6: 第6列,1-3:第1-3列
截取第一列和第三列;
截取第五列之后
截取到第3列
-c :指定截取的字符(数字用法同-f)
- 测试:ifconfig 网卡: 可以显示此网卡的信息, 显示信息中包含此网卡使用的ip地址, 请用命令过滤此ip并在输出时只显示ip其他信息不显示;( (文件存储在硬盘中,程序运行时先要把数据调入内存,这需要时间,所以不能把ifconfig ens3 输出重定向到文件) )
四、sort
- westos文件内容如下
-n :纯数字排序;
-r :倒叙
-u :去掉重复
westos文件内容如下
-t :指定分隔符
-k :指定排序的列
倒序
-o :输出到指定文件(/mnt/lr 文件)
westos文件内容如下
uniq -d :显示重复的行;
-u :显示唯一的行;
-c :合并重复并统计重复个数
测试:1、找出westos文件中出现次数最多的数字
方法一:
方法二:
2、找出能登陆系统用户中UID最大的用户,并显示其名称;
过滤passwd文件中以bash结尾的行
五、tr
- tr ‘a-z’ ‘A-Z’ :小写转大写
tr ‘A-Z’ ‘a-z’ :大写转小写
&& :符合条件作动作
|| :不符合条件作动作
**测试:**1、编写一个脚本,判断用户是否存在
2、编写一个脚本,测试主机能否ping通
六、test
test = [] : [] 就相当于test命令
“test $a = b"=["b" = [ "b"=["a” = “$b” ]
- test数字对比
=
!=
-eq :等于
-ne :不等于
-le :小于等于
-lt :小于
-ge :大于等于
-gt :大于
test的条件关系
-a :并且
-o :或者
!:条件成立为假
unset:不设置c的值;
test对空的判定
-n :nozero 判定内容不为空
-z :zero 判定内容为空
- test对于文件的判定
-i:查看文件节点号;
ln (硬链接),westos和westosfile是相同的
-ef :文件节点号是否一致(硬链)
-nt :文件1是不是比文件2新
-ot :文件1是不是比文件2老
重新建立一个文件
-d :目录
-S :套结字
ln -s (软链接);
-L :软连接
-e :存在
-f :普通文件
-b :快设备
-c :字符设备
**测试:**编写脚本完成以下条件
file_check.sh 在执行时,如果脚本后未指定检测文件报错“未指定检测文件,请指定”,如果脚本后指定文件不存在报错“此文件不存在”,当文件存在时请检测文件类型并显示到输出中
测试脚本