##diff
diff - files|dir
输出信息:
eg:
diff westos westos1
num1 num2 第一个文件中的行
a 添加
c 更改
d 删除
< 第一个文件中的内容
> 第二个文件中的内容
num3,num4 第二个文件中的行
常用参数:
-b 忽略空格
-B 忽略空行
-i 忽略大小写
-c 显示所有文件内容
-r 对比目录
-u 合并输出
###patch
patch 源文件 补丁文件
patch -b 备份原文件
##cut
cut
-d : 指定: 为分割符
-f 指定显示的列 5 3,5 3-5 5- -5
-c 指定截取的字符(数字用法同上)
eg:
cut -d : -f 1 passwd
ifconfig ens3 | cut -d ’ ’ -f 10 | head -n 2 |tail -n 1
##sort
-n 纯数字排序
-r 倒叙
-u 去掉重复
-o 输出到指定文件
-t 指定分割符
-k 指定分割符排序的列
eg:
sort -t ’ ’ -k 1
##uniq
-c 合并重复并统计重复个数
-d 显示重复的行
-u 显示唯一的行
eg:
grep bash$ /etc/passwd | sort -t : -nrk 3 |cut -d : -f 1 |head -n1
###tr
tr ‘a-z’ ‘A-Z’ 转换大小写
##|| &&
&& 可以
|| 不可以
##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 ##文件节点号是否一致(硬链)
-nt ##文件1是不是比文件2新
-ot ##文件1是不是比文件2老
-d ##目录
-S ##套结字
-L ##软连接 ln -s ......
-e ##存在
-f ##普通文件
-b ##快设备
-c ##字符设备
eg:
[ -d “westosdir” ] && echo yes || echo no
[ “westos.path” -ef “westos” ] && echo yes || echo no
编写脚本完成以下条件
file_check.sh 在执行时
如果脚本后未指定检测文件报错“未指定检测文件,请指定”
如果脚本后指定文件不存在报错“此文件不存在”
当文件存在时请检测文件类型并显示到输出中
#! /bin/bash
test -z $1 && {
echo "未指定检测文件,请指定"
exit
}
test -e $1 &> /dev/null && {
file $1 # <------ 小bug
} || {
echo "此文件不存在"
}