目录
1.diff
用法:
diff 参数 file file1 或 dir1 dir2
输出信息[num1,num2] [a|c|d] [num3,num4]
num1,num2 #第一个文件中的行
a #添加
c #更改
d #删除
< #第一个文件中的内容
> #第二个文件中的内容
num3,num4 #第二个文件中的行
常用参数:
-b #忽略空格
-B #忽略空行
-i #对比时忽略大小写
-c #显示文件所有内容并标示有不同内容的行
-r #对比目录内容的不同
-u #合并输出
diff -u westos westos1 >westos.path #生成补丁
2.patch
dnf install patch -y #下载打补丁的工具
patch 原文件 补丁文件 #用补丁文件内容修改原文件内容,不使用-b原文件原先的内容会被覆盖并不会备份
-b #备份原文件内容.orig
3.cut
-d : #指定:为分隔符
-f
5 #第5列
3,5 #3到5列
5- #5列到最后一列
-5 #第1列到第5列-c #指定截取的字符(-c 3 前三个字符,数字用法同-f)
4.sort
-n #纯数字排序
-r #倒叙
-u #去掉重复
-o #输出到指定文件
-t #指定分隔符
-k #指定排序的列
5.uniq
配合sort使用
-c #合并重复,统计重复个数
-d #只显示重复的行
-u #只显示唯一的行
6.&& ||
&& #符合条件做动作
|| #不符合条件做动作ping -c1 -w1 172.25.254.34 &> /dev/null && echo 172.25.254.34 is up || echo 172.25.254.34 is down
#!/bin/bash #命令运行环境的指定
vim test.sh
#!/bin/bash
ping -c1 -w1 172.25.254.34 &> /dev/null &&{
echo 172.25.254.34 is up
}||{
echo 172.25.254.34 is down
}
检测输入的用户在系统中是否存在,存在显示用户is exist,不存在用户 is not exist
#!/bin/bash
id $1 &> /dev/null &&{
echo $1 is exist
}||{
echo $1 is not exist
}
检测输入的数字是否在0-9以内
#!/bin/bash
[ "$1" -ge "0" -a "$1" -lt "10" ] &&{
echo $1 is in 0-9
}||{
echo $1 is not in 0-9
}
7.tr
tr 'a-z' 'A-Z' < file #把小写转换成大写
tr 'e' 'x' < file #把e转换为x
8.test
test=[] #[]就相当与test命令
"test $a = $b " = [ "$a" = "$b" ] #括号两边必须有空格test数字对比
=
!=
-eq #等于
-ne #不等于
-le #小于等于
-lt #小于
-ge #大于等于
-gt #大于
test的条件关系
-a #并且
-o #或者
test对空的判定
-n #nozero判定内容不为空
-z #zero 判定内容为空
test对于文件的判定
-e #判定文件是否存在
-f #判定目标是否是文件
-d #判定目标是否是目录
-S #套接字
-L #软链接
-b #块设备
-c #字符设备
-ef #文件节点号是否一致(硬链接)
-nt #文件1是不是比文件2新
-ot #文件1是不是比文件2老
编写脚本
如果脚本后未指定检测文件报错“input filename”
如果脚本后指定文件,但文件不存在报错“file is not exist”
当文件存在检测文件类型并输出