shell中的常用命令(diff,patch,cut,sort,uniq,tr,test)
一.diff
1.用法:
diff [optitions] files|directorys
2.输出信息:
[num1,num2][a|c|d][num3,num4]
num1,num2 #第一个文件中的行
a #添加
c #更改
d # 删除
< #第一个文件中的内容
> 第二个文件中的内容
num3,num4 第二个文件中的行
3.常用参数:
-b ##忽略空格
-B ##忽略空行
-i ##忽略大小写
-c ##显示文件所有内容并标识不同
-r ##对比目录
-u ##合并输出
二.patch
1.patch安装
dnf install path -y
2.基本命令
patch 源文件 补丁文件
-b #备份原文件
三.cut
cut
-b #指定显示字节
-d : #指定:为分隔符
-f #指定显示的列 5 第五列
#3,5 3和5列
#3-5 3到5列
#-5 到第5列
#5- 第五列以后
-c #指定截取的字符(数字用法同-f)
--complement #反选
--output-delimiter=分隔符 #指定输出的分隔符
四.sort
sort
-n ##纯数字排序
-r ##倒序
-u ##去掉重复
-o ##输出到指定文件
-t ##指定分隔符
-k ##指定排序的列
练习:ls -l 目录,可以显示目录中所有文件的属性,请按照
文件大小进行排序并找出最大的两个文件,显示名称
五.uniq
uniq
-c #合并重复并统计重复个数
-d #显示重复的行
-n #显示唯一的行
练习:显示访问Apache服务器次数最多的用户,显示ip与访问次数
六.test
test = [] #[] 相当于test命令
"test $a = $b" = [ "$a" = "$b" ]
2. test的数字对比
test
=
!=
-eq ##等于
-ne #不等于
-le #小于等于
-lt #小于
-ge #大于等于
-gt #大于
3. test的条件关系
test
-a #并且
-o #或者
4.test对空的判定
test
-n #nozero 判定内容不为空
-z #zero 判定内容为空
5. test对文件的判定
test
-ef #文件节点号是否一致(硬连)
-nt #文件1比文件2新
-ot #文件1比文件2旧
-d #目录
-S #套接字
-L #软连接
-e #存在
-f #普通文件
-b #块设备
-c #字符设备
练习1:检测网络是否通畅,通畅则输出yes和日历,不同则输出no和时间
练习2:监控/dev/sda3的使用情况,如果占用超过20%则向root用户发送邮件
dnf install mailx -y
dnf install postfix -y
七.tr
tr ‘a-z’ 'A-Z’ #小写转大写
tr 'A-Z' 'a-z' #大写转小写