一、diff命令
diff 命令能比较单个文件或者目录内容。如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。如果指定比较的是目录的 的时候,diff 命令会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。
必须牢记一点,diff描述两个文件不同的方式是告诉我们怎么样改变第一个文件之后与第二个文件匹配,
shell输出信息详解[num1,num2][a|c|d][num3,num4]
a 添加
c 更改
d 删除
< 第一个文件中的内容
> 第二个文件中的内容
num3,num4 第二个文件中的行
num1,num2 第一个文件中的行
常用参数:
-b 忽略空格
-B 忽略空行
-i 忽略大小写
-c 显示文件所有内容并标示不同
-r 对比目录
-u 合并输出
二、patch
patch就是利用diff制作的补丁来实现源文件(夹)和目的文件(夹)的转换
[root@test mnt]# dnf install patch -y
二、cut
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的
常用参数概述
-d : 指定 :为分隔符
-f 指定显示的列
-c 指定截取的字符(数字用法同-f)
三、sort
sort命令是帮我们依据不同的数据类型进行排序
参数
-n 纯数字排序
-r 倒叙
-u 去掉重复
-o 输出到指定文件
-t 指定分隔符
-k 指定排序的列
五、uniq
-c 合并重复并统计重复个数 在输出行前面加上每行在输入文件中出现的次数。
-d 显示重复的
-u 显示唯一的即不重复的行
六、tr
tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。
七、test
test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
理解test命令:
test——[ ] 使用中test可以替换成中括号使用
test $a = $B 与 [$a = $b] 命令使用效果一致
&& 表示符合条件的动作
|| 表示不符合条件的动作
test数字对比
= 等于
!= 不等于
-eq 等于
-ne不等于
-le 小于等于
-lt 小于
-ge 大于等于
-gt 大于
test的条件关系
-a 并且 多个条件都必须满足
-o 或者 多个条件只要满足一个
test对空的判定
-n nozero 判定内容不为空
-z zero 判定内容为空
test对于文件的判定
-ef 文件节点号是否一致(硬链——ln file1 file)
-nt 文件1是不是比文件2新
-ot文件1是不是比文件2老
-d 目录
-S 套结字 (/var/lib/mysql/mysql.sock)
-L 软连接 (ln -s /etc/passwd /mnt/)
-e 存在
-f 普通文件
-b 快设备 (/dev/cdrom)
-c 字符设备(/dev/pts/0)
脚本命令测试
1.使用ifconfig 网卡 ;
可以显示此网卡的信息 ,显示信息中包含此网卡使用的ip地址 ;
请用命令过滤此ip并在输出时只显示ip其他信息不显示。
2.编写脚本完成以下条件 file_check.sh ;
在执行时 如果脚本后未指定检测文件报错“未指定检测文件,请指定” 如果脚本后指定文件不存在报错“此文件不存在”;
当文件存在时请检测文件类型并显示到输出中;
[root@rhel8_node1 mnt]# vim file_check.sh
3.ls -l 目录 可以显示目录中所有文件案的属性 ;
按照文件大小进行排序并找出最大的2个文件并显示其名称;
测试:
1.ifconfig网卡来显示此网卡的信息,显示信息中包含此网卡的ip,并且只显示ip号,其他信息不显示。
方法一: [root@rhel8_node1 ~]# ifconfig ens160 | head -n 2 | tail -n 1| cut -d " " -f 10
192.168.1.55 输入网卡名称并显示前两行的倒数第一行(也就是有ip地址的那一行)并且截取以空格为分隔符的第十列ip所在位置
脚本制作
2.ls-l目录显示目录当中所有文案的属性,请按照大小进行排序,并且找出最大的两个文件显示其名称。
3.file_check.sh 在执行时
如果脚本后未指定检测文件报错“未指定检测文件请指定;
如果脚本后指定文件不存在报错“此文件不存在;
当文件存在时请检测文件类型并显示到输出中。