1.diff命令:
用法:
diff [options] files|directotys
输出信息:
[num1,num2][a|c|d][num3,num4]
num1,num2 #第一个文件中的行
a #添加
c #更改
d #删除
< #第一个文件中的内容
> #第二个文件中的内容
> num3,num4 #第二个文件中的行
常用参数:
-b #忽略空格
-B #忽略空行
-i #忽略大小写
-c #显示文件所有内容并表示不同
-r #对比目录
-u #合并输出
2.patch
patch 原文件 补丁文件
-b #备份原文件
3.cut
cut -d : #指定 :为分隔符
-f #指定显示的列 #(3,5 表示第三列和第五列,3-5 表示第三列到第五列,-5 表示第一列到第五列,5-表示第五列到最后一列)
-c #指定截取的字符(数字用法同-f)
4.sort #排序
-n #纯数字排序
-r #表示倒叙
-u #表示去掉重复部分
-o #输出到指定文件
-t #指定分隔府
-k #指定排序的列
5.uniq #处理重复
-c #合并重复并统计重复个数
-d #显示重复的行
-u #显示唯一的行
6.tr字符转换(用于命令之后)
tr ‘a-z’ ‘A-Z’ #小写转大写
tr ‘A-Z’ ‘a-z’ #大写转小写
7. && ||
用于命令之后
&& 后跟命令成功执行后的命令
|| 后跟命令执行失败后的命令
练习:
1.检测用户是否存在
vim test.sh
///
#!/bin/bash
id $1 &> /dev/null &&{ ##$1表示脚本后所跟的第一串字符
echo $1 is exist
}||{
echo $1 is not exist
}
///
[root@westoslinux mnt]# sh test.sh hello #检测hello用户是否存在
hello is not exist
[root@westoslinux mnt]# sh test.sh westos #检测westos用户是否存在
westos is exist
2.ifconfig 网卡 可以显示此网卡的信息
显示信息中包含此网卡使用的ip地址
请用命令过滤此ip并在输出时只显示ip其他信息不显示
ifconfig ens3 | head -n 2 | tail -n 1 | cut -d " " -f 10 #10表示ip位第10列
3.找出能登陆系统用户中UID最大的用户,并显示其名称
grep bash /etc/passwd | sort -rn -t : -k 3 | cut -d :-f 1 | head -n1
8.test
test = [] ##[]相当于test命令
“test $a = $b” =[ "$a"="$b" ]
test数字对比
=
! =
-eq #等于
-nq #不等于
-le #小于等于
-lt #小于
-ge #大于等于
-gt #大于
test的条件关系
-a ##并且
-o ##或者
test对空的判定
-n #nozero 判定内容不为空
-z #zero 判定内容为空
实验:
编写测试脚本:
vim num_check.sh
///
#!/bin/bash
[ "$1" -ge "0" -a "$1" -lt "10" ] && {
echo $1 is in 0~9
}||{
echo $1 is not in 0-9
}
///
[root@westoslinux mnt]# sh num_check.sh 3 #检测数字3是否在0-9之间
3 is in 0~9
[root@westoslinux mnt]# sh num_check.sh 11 #检测数字11是否在0-9之间
11 is not in 0-9
test对于文件的判定:
-ef #文件节点号是否一致
-nt #文件1是不是比文件2新
-ot #文件1是不是比文件2老
-d #目录
-S #套接字
-L #软连接
-e #存在
-f #普通文件
-b #快设备
-c #字符设备
编写测试脚本:
检测文件类型
vim file_check.sh
#!/bin/bash
[ -z "$1" ] && {
echo "未指定检测文件,请指定"
}||{ [ ! -e "$1" ] && { echo "此文件不存在"
} || {
[ -d "$1" ] && { echo "目录"
}||{
[ -S "$1" ] && { echo "套接字"
}||{
[ -L "$1" ] && { echo "软连接"
}||{
[ -f "$1" ] && { echo "普通文件"
}||{
[ -b "$1" ] && { echo "快设备"
}||{
[ -c "$1" ] && { echo "字符设备"
}
}
}
}
}
}
}
}
///